@skalenetwork/upgrade-tools 3.0.0-verification.0 → 4.0.0-update-verify.1

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 (136) hide show
  1. package/dist/hardhat.config.d.ts +3 -3
  2. package/dist/hardhat.config.js +6 -17
  3. package/dist/hardhat.config.js.map +1 -0
  4. package/dist/src/abi.d.ts +2 -2
  5. package/dist/src/abi.js +8 -4
  6. package/dist/src/abi.js.map +1 -0
  7. package/dist/src/contractFactory.d.ts +4 -0
  8. package/dist/src/contractFactory.js +84 -0
  9. package/dist/src/contractFactory.js.map +1 -0
  10. package/dist/src/contractVerifier.d.ts +14 -0
  11. package/dist/src/contractVerifier.js +67 -0
  12. package/dist/src/contractVerifier.js.map +1 -0
  13. package/dist/src/deploy.d.ts +5 -4
  14. package/dist/src/deploy.js +77 -58
  15. package/dist/src/deploy.js.map +1 -0
  16. package/dist/src/exitCodes.d.ts +8 -0
  17. package/dist/src/exitCodes.js +13 -0
  18. package/dist/src/exitCodes.js.map +1 -0
  19. package/dist/src/gnosis-safe.d.ts +2 -2
  20. package/dist/src/gnosis-safe.js +105 -96
  21. package/dist/src/gnosis-safe.js.map +1 -0
  22. package/dist/src/index.d.ts +0 -1
  23. package/dist/src/index.js +1 -1
  24. package/dist/src/index.js.map +1 -0
  25. package/dist/src/nonceProvider.d.ts +10 -0
  26. package/dist/src/nonceProvider.js +34 -0
  27. package/dist/src/nonceProvider.js.map +1 -0
  28. package/dist/src/proxyAdmin.d.ts +4 -0
  29. package/dist/src/proxyAdmin.js +56 -0
  30. package/dist/src/proxyAdmin.js.map +1 -0
  31. package/dist/src/submitters/auto-submitter.d.ts +22 -5
  32. package/dist/src/submitters/auto-submitter.js +135 -120
  33. package/dist/src/submitters/auto-submitter.js.map +1 -0
  34. package/dist/src/submitters/eoa-submitter.d.ts +3 -2
  35. package/dist/src/submitters/eoa-submitter.js +23 -12
  36. package/dist/src/submitters/eoa-submitter.js.map +1 -0
  37. package/dist/src/submitters/index.js +1 -0
  38. package/dist/src/submitters/index.js.map +1 -0
  39. package/dist/src/submitters/safe-ima-legacy-marionette-submitter.d.ts +4 -3
  40. package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js +14 -13
  41. package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js.map +1 -0
  42. package/dist/src/submitters/safe-ima-marionette-submitter.d.ts +3 -3
  43. package/dist/src/submitters/safe-ima-marionette-submitter.js +13 -11
  44. package/dist/src/submitters/safe-ima-marionette-submitter.js.map +1 -0
  45. package/dist/src/submitters/safe-submitter.d.ts +4 -4
  46. package/dist/src/submitters/safe-submitter.js +4 -3
  47. package/dist/src/submitters/safe-submitter.js.map +1 -0
  48. package/dist/src/submitters/safe-to-ima-submitter.d.ts +11 -6
  49. package/dist/src/submitters/safe-to-ima-submitter.js +23 -15
  50. package/dist/src/submitters/safe-to-ima-submitter.js.map +1 -0
  51. package/dist/src/submitters/submitter.d.ts +3 -3
  52. package/dist/src/submitters/submitter.js +11 -7
  53. package/dist/src/submitters/submitter.js.map +1 -0
  54. package/dist/src/submitters/types/marionette.d.ts +6 -3
  55. package/dist/src/submitters/types/marionette.js +1 -0
  56. package/dist/src/submitters/types/marionette.js.map +1 -0
  57. package/dist/src/types/SkaleManifestData.js +1 -0
  58. package/dist/src/types/SkaleManifestData.js.map +1 -0
  59. package/dist/src/types/upgrader.d.ts +12 -0
  60. package/dist/{typechain-types/AccessControlUpgradeable.js → src/types/upgrader.js} +1 -0
  61. package/dist/src/types/upgrader.js.map +1 -0
  62. package/dist/src/upgrader.d.ts +27 -12
  63. package/dist/src/upgrader.js +145 -95
  64. package/dist/src/upgrader.js.map +1 -0
  65. package/dist/src/verification.d.ts +18 -2
  66. package/dist/src/verification.js +198 -29
  67. package/dist/src/verification.js.map +1 -0
  68. package/dist/src/version.js +24 -2
  69. package/dist/src/version.js.map +1 -0
  70. package/dist/typechain-types/AdminUpgradeabilityProxy.d.ts +59 -54
  71. package/dist/typechain-types/AdminUpgradeabilityProxy.js +1 -0
  72. package/dist/typechain-types/AdminUpgradeabilityProxy.js.map +1 -0
  73. package/dist/typechain-types/ProxyAdmin.d.ts +94 -137
  74. package/dist/typechain-types/ProxyAdmin.js +1 -0
  75. package/dist/typechain-types/ProxyAdmin.js.map +1 -0
  76. package/dist/typechain-types/common.d.ts +40 -11
  77. package/dist/typechain-types/common.js +1 -0
  78. package/dist/typechain-types/common.js.map +1 -0
  79. package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.d.ts +71 -41
  80. package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js +8 -11
  81. package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js.map +1 -0
  82. package/dist/typechain-types/factories/ProxyAdmin__factory.d.ts +129 -41
  83. package/dist/typechain-types/factories/ProxyAdmin__factory.js +8 -11
  84. package/dist/typechain-types/factories/ProxyAdmin__factory.js.map +1 -0
  85. package/dist/typechain-types/factories/index.d.ts +2 -0
  86. package/dist/typechain-types/factories/index.js +11 -0
  87. package/dist/typechain-types/factories/index.js.map +1 -0
  88. package/dist/typechain-types/index.d.ts +1 -22
  89. package/dist/typechain-types/index.js +36 -23
  90. package/dist/typechain-types/index.js.map +1 -0
  91. package/package.json +23 -27
  92. package/dist/src/multiSend.d.ts +0 -2
  93. package/dist/src/multiSend.js +0 -46
  94. package/dist/typechain-types/AccessControlEnumerableUpgradeable.d.ts +0 -183
  95. package/dist/typechain-types/AccessControlEnumerableUpgradeable.js +0 -2
  96. package/dist/typechain-types/AccessControlUpgradeable.d.ts +0 -167
  97. package/dist/typechain-types/ContextUpgradeable.d.ts +0 -40
  98. package/dist/typechain-types/ContextUpgradeable.js +0 -2
  99. package/dist/typechain-types/ERC165Upgradeable.d.ts +0 -53
  100. package/dist/typechain-types/ERC165Upgradeable.js +0 -2
  101. package/dist/typechain-types/IAccessControlEnumerableUpgradeable.d.ts +0 -159
  102. package/dist/typechain-types/IAccessControlEnumerableUpgradeable.js +0 -2
  103. package/dist/typechain-types/IAccessControlUpgradeable.d.ts +0 -143
  104. package/dist/typechain-types/IAccessControlUpgradeable.js +0 -2
  105. package/dist/typechain-types/IERC165Upgradeable.d.ts +0 -43
  106. package/dist/typechain-types/IERC165Upgradeable.js +0 -2
  107. package/dist/typechain-types/ISafeMock.d.ts +0 -86
  108. package/dist/typechain-types/ISafeMock.js +0 -2
  109. package/dist/typechain-types/Initializable.d.ts +0 -40
  110. package/dist/typechain-types/Initializable.js +0 -2
  111. package/dist/typechain-types/OwnableUpgradeable.d.ts +0 -97
  112. package/dist/typechain-types/OwnableUpgradeable.js +0 -2
  113. package/dist/typechain-types/SafeMock.d.ts +0 -172
  114. package/dist/typechain-types/SafeMock.js +0 -2
  115. package/dist/typechain-types/factories/AccessControlEnumerableUpgradeable__factory.d.ts +0 -35
  116. package/dist/typechain-types/factories/AccessControlEnumerableUpgradeable__factory.js +0 -279
  117. package/dist/typechain-types/factories/AccessControlUpgradeable__factory.d.ts +0 -35
  118. package/dist/typechain-types/factories/AccessControlUpgradeable__factory.js +0 -236
  119. package/dist/typechain-types/factories/ContextUpgradeable__factory.d.ts +0 -18
  120. package/dist/typechain-types/factories/ContextUpgradeable__factory.js +0 -32
  121. package/dist/typechain-types/factories/ERC165Upgradeable__factory.d.ts +0 -35
  122. package/dist/typechain-types/factories/ERC165Upgradeable__factory.js +0 -51
  123. package/dist/typechain-types/factories/IAccessControlEnumerableUpgradeable__factory.d.ts +0 -35
  124. package/dist/typechain-types/factories/IAccessControlEnumerableUpgradeable__factory.js +0 -234
  125. package/dist/typechain-types/factories/IAccessControlUpgradeable__factory.d.ts +0 -35
  126. package/dist/typechain-types/factories/IAccessControlUpgradeable__factory.js +0 -191
  127. package/dist/typechain-types/factories/IERC165Upgradeable__factory.d.ts +0 -22
  128. package/dist/typechain-types/factories/IERC165Upgradeable__factory.js +0 -38
  129. package/dist/typechain-types/factories/ISafeMock__factory.d.ts +0 -22
  130. package/dist/typechain-types/factories/ISafeMock__factory.js +0 -114
  131. package/dist/typechain-types/factories/Initializable__factory.d.ts +0 -18
  132. package/dist/typechain-types/factories/Initializable__factory.js +0 -32
  133. package/dist/typechain-types/factories/OwnableUpgradeable__factory.d.ts +0 -42
  134. package/dist/typechain-types/factories/OwnableUpgradeable__factory.js +0 -84
  135. package/dist/typechain-types/factories/SafeMock__factory.d.ts +0 -56
  136. package/dist/typechain-types/factories/SafeMock__factory.js +0 -247
@@ -1,119 +1,128 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.createMultiSendTransaction = void 0;
30
- const chalk_1 = __importDefault(require("chalk"));
7
+ const safe_core_sdk_types_1 = require("@safe-global/safe-core-sdk-types");
8
+ const ethers_1 = require("ethers");
31
9
  const hardhat_1 = require("hardhat");
10
+ const protocol_kit_1 = __importDefault(require("@safe-global/protocol-kit"));
32
11
  const api_kit_1 = __importDefault(require("@safe-global/api-kit"));
33
- const protocol_kit_1 = __importStar(require("@safe-global/protocol-kit"));
34
- var Network;
35
- (function (Network) {
36
- Network[Network["MAINNET"] = 1] = "MAINNET";
37
- Network[Network["GOERLI"] = 5] = "GOERLI";
38
- Network[Network["GANACHE"] = 1337] = "GANACHE";
39
- Network[Network["HARDHAT"] = 31337] = "HARDHAT";
40
- })(Network || (Network = {}));
41
- // constants
12
+ // Cspell:words arbitrum celo sepolia xdai holesky
13
+ // Constants
42
14
  const URLS = {
43
- safe_transaction: {
44
- [Network.MAINNET]: "https://safe-transaction-mainnet.safe.global",
45
- [Network.GOERLI]: "https://safe-transaction-goerli.safe.global",
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",
46
38
  }
47
39
  };
48
- // public functions
49
- async function createMultiSendTransaction(safeAddress, transactions) {
40
+ const defaultOptions = {
41
+ /*
42
+ * Gas costs not related to the transaction execution
43
+ * (signature check, refund payment...)
44
+ */
45
+ "baseGas": "0",
46
+ // Gas price used for the refund calculation
47
+ "gasPrice": "0",
48
+ /*
49
+ * Token address (hold by the Safe)
50
+ * to be used as a refund to the sender,
51
+ * if `null` is Ether
52
+ */
53
+ "gasToken": hardhat_1.ethers.ZeroAddress,
54
+ // Address of receiver of gas payment (or `null` if tx.origin)
55
+ "refundReceiver": hardhat_1.ethers.ZeroAddress,
56
+ // Max gas to use in the transaction
57
+ "safeTxGas": "0"
58
+ };
59
+ // Private functions
60
+ const getSafeTransactionData = (transactions) => {
50
61
  const safeTransactionData = [];
51
62
  for (const transaction of transactions) {
52
63
  safeTransactionData.push({
53
- to: transaction.to ? transaction.to : hardhat_1.ethers.constants.AddressZero,
54
- data: transaction.data ? transaction.data.toString() : "0x",
55
- value: transaction.value ? transaction.value.toString() : "0",
56
- operation: 0,
64
+ "data": transaction.data,
65
+ "operation": safe_core_sdk_types_1.OperationType.Call,
66
+ "to": transaction.to ?? hardhat_1.ethers.ZeroAddress,
67
+ "value": transaction.value.toString()
57
68
  });
58
69
  }
59
- const safeService = await getSafeService(), nonce = await safeService.getNextNonce(safeAddress);
60
- console.log("Will send tx to Gnosis with nonce", nonce);
61
- const options = {
62
- safeTxGas: "0",
63
- baseGas: "0",
64
- gasPrice: "0",
65
- gasToken: hardhat_1.ethers.constants.AddressZero,
66
- refundReceiver: hardhat_1.ethers.constants.AddressZero,
67
- nonce: nonce // Nonce of the Safe, transaction cannot be executed until Safe's nonce is not equal to this nonce
68
- }, ethAdapter = await getEthAdapter(), safeSdk = await protocol_kit_1.default.create({ ethAdapter, safeAddress }), safeTransaction = await safeSdk.createTransaction({ safeTransactionData, options });
69
- await estimateSafeTransaction(safeAddress, safeTransactionData);
70
- await proposeTransaction(safeAddress, safeTransaction);
71
- }
72
- exports.createMultiSendTransaction = createMultiSendTransaction;
73
- // private functions
74
- async function estimateSafeTransaction(safeAddress, safeTransactionData) {
75
- console.log("Estimate gas");
76
- const safeService = await getSafeService();
77
- for (const transaction of safeTransactionData) {
78
- const estimateResponse = await safeService.estimateSafeTransaction(safeAddress, {
79
- to: transaction.to,
80
- value: transaction.value,
81
- data: transaction.data,
82
- operation: transaction.operation || 0,
83
- });
84
- console.log(chalk_1.default.cyan(`Recommend to set gas limit to ${parseInt(estimateResponse.safeTxGas, 10)}`));
70
+ return safeTransactionData;
71
+ };
72
+ const getSafeTransactionUrl = (chainId) => {
73
+ if (Object.keys(URLS.safe_transaction).includes(chainId.toString())) {
74
+ return URLS.safe_transaction[Number(chainId)];
85
75
  }
86
- console.log(chalk_1.default.green("Send transaction to gnosis safe"));
87
- }
88
- async function proposeTransaction(safeAddress, safeTransaction) {
89
- const [safeOwner] = await hardhat_1.ethers.getSigners(), ethAdapter = await getEthAdapter(), safeSdk = await protocol_kit_1.default.create({ ethAdapter, safeAddress }), safeTxHash = await safeSdk.getTransactionHash(safeTransaction), senderSignature = await safeSdk.signTransactionHash(safeTxHash), safeService = await getSafeService();
76
+ throw Error("Can't get Safe Transaction Service url" +
77
+ ` at network with chainId = ${chainId}`);
78
+ };
79
+ const getSafeService = (chainId) => {
80
+ const safeService = new api_kit_1.default({
81
+ chainId,
82
+ "txServiceUrl": getSafeTransactionUrl(chainId)
83
+ });
84
+ return safeService;
85
+ };
86
+ const proposeTransaction = async (safeAddress, chainId, safeTransaction) => {
87
+ const [safeOwner] = await hardhat_1.ethers.getSigners();
88
+ const safeSdk = await protocol_kit_1.default.init({ provider: hardhat_1.network.provider, safeAddress });
89
+ const safeTxHash = await safeSdk.getTransactionHash(safeTransaction);
90
+ const senderSignature = await safeSdk.signHash(safeTxHash);
91
+ const safeService = getSafeService(chainId);
90
92
  await safeService.proposeTransaction({
91
93
  safeAddress,
92
- safeTransactionData: safeTransaction.data,
94
+ "safeTransactionData": safeTransaction.data,
93
95
  safeTxHash,
94
- senderAddress: safeOwner.address,
95
- senderSignature: senderSignature.data
96
+ "senderAddress": safeOwner.address,
97
+ "senderSignature": senderSignature.data
96
98
  });
97
- }
98
- async function getEthAdapter() {
99
- const [safeOwner] = await hardhat_1.ethers.getSigners(), ethAdapter = new protocol_kit_1.EthersAdapter({
100
- ethers: hardhat_1.ethers,
101
- signerOrProvider: safeOwner
99
+ };
100
+ // Public functions
101
+ const createMultiSendTransaction = async (safeAddress, chainId, transactions) => {
102
+ const safeTransactionData = getSafeTransactionData(transactions);
103
+ const safeService = getSafeService(chainId);
104
+ const nonce = await safeService.getNextNonce(safeAddress);
105
+ console.log("Will send tx to Gnosis with nonce", nonce);
106
+ const options = {
107
+ ...defaultOptions,
108
+ ...{
109
+ /*
110
+ * Nonce of the Safe,
111
+ * Transaction cannot be executed until
112
+ * Safe's nonce is not equal to this nonce
113
+ */
114
+ nonce
115
+ }
116
+ };
117
+ const safeSdk = await protocol_kit_1.default.init({
118
+ provider: hardhat_1.network.provider,
119
+ safeAddress
102
120
  });
103
- return ethAdapter;
104
- }
105
- async function getSafeService() {
106
- const chainId = (await hardhat_1.ethers.provider.getNetwork()).chainId, ethAdapter = await getEthAdapter(), safeService = new api_kit_1.default({
107
- txServiceUrl: getSafeTransactionUrl(chainId),
108
- ethAdapter
121
+ const safeTransaction = await safeSdk.createTransaction({
122
+ options,
123
+ transactions: safeTransactionData
109
124
  });
110
- return safeService;
111
- }
112
- function getSafeTransactionUrl(chainId) {
113
- if (Object.keys(URLS.safe_transaction).includes(chainId.toString())) {
114
- return URLS.safe_transaction[chainId];
115
- }
116
- else {
117
- throw Error(`Can't get safe-transaction url at network with chainId = ${chainId}`);
118
- }
119
- }
125
+ await proposeTransaction(safeAddress, chainId, safeTransaction);
126
+ };
127
+ exports.createMultiSendTransaction = createMultiSendTransaction;
128
+ //# sourceMappingURL=gnosis-safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gnosis-safe.js","sourceRoot":"","sources":["../../src/gnosis-safe.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  export * from "./abi";
2
2
  export * from "./deploy";
3
3
  export * from "./gnosis-safe";
4
- export * from "./multiSend";
5
4
  export * from "./submitters";
6
5
  export * from "./verification";
7
6
  export * from "./version";
package/dist/src/index.js CHANGED
@@ -17,8 +17,8 @@ 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("./multiSend"), exports);
21
20
  __exportStar(require("./submitters"), exports);
22
21
  __exportStar(require("./verification"), exports);
23
22
  __exportStar(require("./version"), exports);
24
23
  __exportStar(require("./upgrader"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ import { Signer } from "ethers";
2
+ export declare class NonceProvider {
3
+ currentNonce: number;
4
+ releasedNonces: number[];
5
+ constructor(nonce: number);
6
+ static createForWallet(signer: Signer): Promise<NonceProvider>;
7
+ reserveNonce(): number | undefined;
8
+ releaseNonce(nonce: number): void;
9
+ private static next;
10
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NonceProvider = void 0;
4
+ class NonceProvider {
5
+ constructor(nonce) {
6
+ this.currentNonce = nonce;
7
+ this.releasedNonces = [];
8
+ }
9
+ static async createForWallet(signer) {
10
+ return new NonceProvider(await signer.getNonce());
11
+ }
12
+ reserveNonce() {
13
+ if (!this.releasedNonces.length) {
14
+ const nonce = this.currentNonce;
15
+ this.currentNonce += 1;
16
+ return nonce;
17
+ }
18
+ return this.releasedNonces.shift();
19
+ }
20
+ releaseNonce(nonce) {
21
+ if (NonceProvider.next(nonce) === this.currentNonce) {
22
+ this.currentNonce -= 1;
23
+ }
24
+ else {
25
+ this.releasedNonces.push(nonce);
26
+ }
27
+ }
28
+ static next(nonce) {
29
+ const nextDiff = 1;
30
+ return nonce + nextDiff;
31
+ }
32
+ }
33
+ exports.NonceProvider = NonceProvider;
34
+ //# sourceMappingURL=nonceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonceProvider.js","sourceRoot":"","sources":["../../src/nonceProvider.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAItB,YAAa,KAAa;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAE,MAAc;QACxC,OAAO,IAAI,aAAa,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,YAAY,CAAE,KAAa;QACvB,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAClD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,IAAI,CAAE,KAAa;QAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,OAAO,KAAK,GAAG,QAAQ,CAAC;IAC5B,CAAC;CACJ;AAlCD,sCAkCC"}
@@ -0,0 +1,4 @@
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>;
@@ -0,0 +1,56 @@
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
@@ -0,0 +1 @@
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"}
@@ -1,10 +1,27 @@
1
1
  import { Transaction } from "ethers";
2
2
  import { Submitter } from "./submitter";
3
+ import { Upgrader } from "../upgrader";
3
4
  export declare class AutoSubmitter extends Submitter {
5
+ name: string;
6
+ upgrader: Upgrader;
7
+ constructor(upgrader: Upgrader);
8
+ static marionetteInterface: {
9
+ inputs: never[];
10
+ name: string;
11
+ outputs: {
12
+ internalType: string;
13
+ name: string;
14
+ type: string;
15
+ }[];
16
+ stateMutability: string;
17
+ type: string;
18
+ }[];
4
19
  submit(transactions: Transaction[]): Promise<void>;
5
- _getImaInstance(): Promise<import("@skalenetwork/skale-contracts/lib/instance").Instance<import("ethers").BaseContract>>;
6
- _getSafeAddress(): string;
7
- _getSchainHash(): string;
8
- _getMainnetChainId(): number;
9
- _versionFunctionExists(): Promise<boolean>;
20
+ private getSubmitter;
21
+ private static getSubmitterForContractOwner;
22
+ private static getImaInstance;
23
+ private static getSafeAddress;
24
+ private static getSchainHash;
25
+ private static getMainnetChainId;
26
+ private static _versionFunctionExists;
10
27
  }