@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.
- package/dist/hardhat.config.d.ts +3 -3
- package/dist/hardhat.config.js +6 -17
- package/dist/hardhat.config.js.map +1 -0
- package/dist/src/abi.d.ts +2 -2
- package/dist/src/abi.js +8 -4
- package/dist/src/abi.js.map +1 -0
- package/dist/src/contractFactory.d.ts +4 -0
- package/dist/src/contractFactory.js +84 -0
- package/dist/src/contractFactory.js.map +1 -0
- package/dist/src/contractVerifier.d.ts +14 -0
- package/dist/src/contractVerifier.js +67 -0
- package/dist/src/contractVerifier.js.map +1 -0
- package/dist/src/deploy.d.ts +5 -4
- package/dist/src/deploy.js +77 -58
- package/dist/src/deploy.js.map +1 -0
- package/dist/src/exitCodes.d.ts +8 -0
- package/dist/src/exitCodes.js +13 -0
- package/dist/src/exitCodes.js.map +1 -0
- package/dist/src/gnosis-safe.d.ts +2 -2
- package/dist/src/gnosis-safe.js +105 -96
- package/dist/src/gnosis-safe.js.map +1 -0
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/nonceProvider.d.ts +10 -0
- package/dist/src/nonceProvider.js +34 -0
- package/dist/src/nonceProvider.js.map +1 -0
- package/dist/src/proxyAdmin.d.ts +4 -0
- package/dist/src/proxyAdmin.js +56 -0
- package/dist/src/proxyAdmin.js.map +1 -0
- package/dist/src/submitters/auto-submitter.d.ts +22 -5
- package/dist/src/submitters/auto-submitter.js +135 -120
- package/dist/src/submitters/auto-submitter.js.map +1 -0
- package/dist/src/submitters/eoa-submitter.d.ts +3 -2
- package/dist/src/submitters/eoa-submitter.js +23 -12
- package/dist/src/submitters/eoa-submitter.js.map +1 -0
- package/dist/src/submitters/index.js +1 -0
- package/dist/src/submitters/index.js.map +1 -0
- package/dist/src/submitters/safe-ima-legacy-marionette-submitter.d.ts +4 -3
- package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js +14 -13
- package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js.map +1 -0
- package/dist/src/submitters/safe-ima-marionette-submitter.d.ts +3 -3
- package/dist/src/submitters/safe-ima-marionette-submitter.js +13 -11
- package/dist/src/submitters/safe-ima-marionette-submitter.js.map +1 -0
- package/dist/src/submitters/safe-submitter.d.ts +4 -4
- package/dist/src/submitters/safe-submitter.js +4 -3
- package/dist/src/submitters/safe-submitter.js.map +1 -0
- package/dist/src/submitters/safe-to-ima-submitter.d.ts +11 -6
- package/dist/src/submitters/safe-to-ima-submitter.js +23 -15
- package/dist/src/submitters/safe-to-ima-submitter.js.map +1 -0
- package/dist/src/submitters/submitter.d.ts +3 -3
- package/dist/src/submitters/submitter.js +11 -7
- package/dist/src/submitters/submitter.js.map +1 -0
- package/dist/src/submitters/types/marionette.d.ts +6 -3
- package/dist/src/submitters/types/marionette.js +1 -0
- package/dist/src/submitters/types/marionette.js.map +1 -0
- package/dist/src/types/SkaleManifestData.js +1 -0
- package/dist/src/types/SkaleManifestData.js.map +1 -0
- package/dist/src/types/upgrader.d.ts +12 -0
- package/dist/{typechain-types/AccessControlUpgradeable.js → src/types/upgrader.js} +1 -0
- package/dist/src/types/upgrader.js.map +1 -0
- package/dist/src/upgrader.d.ts +27 -12
- package/dist/src/upgrader.js +145 -95
- package/dist/src/upgrader.js.map +1 -0
- package/dist/src/verification.d.ts +18 -2
- package/dist/src/verification.js +198 -29
- package/dist/src/verification.js.map +1 -0
- package/dist/src/version.js +24 -2
- package/dist/src/version.js.map +1 -0
- package/dist/typechain-types/AdminUpgradeabilityProxy.d.ts +59 -54
- package/dist/typechain-types/AdminUpgradeabilityProxy.js +1 -0
- package/dist/typechain-types/AdminUpgradeabilityProxy.js.map +1 -0
- package/dist/typechain-types/ProxyAdmin.d.ts +94 -137
- package/dist/typechain-types/ProxyAdmin.js +1 -0
- package/dist/typechain-types/ProxyAdmin.js.map +1 -0
- package/dist/typechain-types/common.d.ts +40 -11
- package/dist/typechain-types/common.js +1 -0
- package/dist/typechain-types/common.js.map +1 -0
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.d.ts +71 -41
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js +8 -11
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js.map +1 -0
- package/dist/typechain-types/factories/ProxyAdmin__factory.d.ts +129 -41
- package/dist/typechain-types/factories/ProxyAdmin__factory.js +8 -11
- package/dist/typechain-types/factories/ProxyAdmin__factory.js.map +1 -0
- package/dist/typechain-types/factories/index.d.ts +2 -0
- package/dist/typechain-types/factories/index.js +11 -0
- package/dist/typechain-types/factories/index.js.map +1 -0
- package/dist/typechain-types/index.d.ts +1 -22
- package/dist/typechain-types/index.js +36 -23
- package/dist/typechain-types/index.js.map +1 -0
- package/package.json +23 -27
- package/dist/src/multiSend.d.ts +0 -2
- package/dist/src/multiSend.js +0 -46
- package/dist/typechain-types/AccessControlEnumerableUpgradeable.d.ts +0 -183
- package/dist/typechain-types/AccessControlEnumerableUpgradeable.js +0 -2
- package/dist/typechain-types/AccessControlUpgradeable.d.ts +0 -167
- package/dist/typechain-types/ContextUpgradeable.d.ts +0 -40
- package/dist/typechain-types/ContextUpgradeable.js +0 -2
- package/dist/typechain-types/ERC165Upgradeable.d.ts +0 -53
- package/dist/typechain-types/ERC165Upgradeable.js +0 -2
- package/dist/typechain-types/IAccessControlEnumerableUpgradeable.d.ts +0 -159
- package/dist/typechain-types/IAccessControlEnumerableUpgradeable.js +0 -2
- package/dist/typechain-types/IAccessControlUpgradeable.d.ts +0 -143
- package/dist/typechain-types/IAccessControlUpgradeable.js +0 -2
- package/dist/typechain-types/IERC165Upgradeable.d.ts +0 -43
- package/dist/typechain-types/IERC165Upgradeable.js +0 -2
- package/dist/typechain-types/ISafeMock.d.ts +0 -86
- package/dist/typechain-types/ISafeMock.js +0 -2
- package/dist/typechain-types/Initializable.d.ts +0 -40
- package/dist/typechain-types/Initializable.js +0 -2
- package/dist/typechain-types/OwnableUpgradeable.d.ts +0 -97
- package/dist/typechain-types/OwnableUpgradeable.js +0 -2
- package/dist/typechain-types/SafeMock.d.ts +0 -172
- package/dist/typechain-types/SafeMock.js +0 -2
- package/dist/typechain-types/factories/AccessControlEnumerableUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/AccessControlEnumerableUpgradeable__factory.js +0 -279
- package/dist/typechain-types/factories/AccessControlUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/AccessControlUpgradeable__factory.js +0 -236
- package/dist/typechain-types/factories/ContextUpgradeable__factory.d.ts +0 -18
- package/dist/typechain-types/factories/ContextUpgradeable__factory.js +0 -32
- package/dist/typechain-types/factories/ERC165Upgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/ERC165Upgradeable__factory.js +0 -51
- package/dist/typechain-types/factories/IAccessControlEnumerableUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/IAccessControlEnumerableUpgradeable__factory.js +0 -234
- package/dist/typechain-types/factories/IAccessControlUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/IAccessControlUpgradeable__factory.js +0 -191
- package/dist/typechain-types/factories/IERC165Upgradeable__factory.d.ts +0 -22
- package/dist/typechain-types/factories/IERC165Upgradeable__factory.js +0 -38
- package/dist/typechain-types/factories/ISafeMock__factory.d.ts +0 -22
- package/dist/typechain-types/factories/ISafeMock__factory.js +0 -114
- package/dist/typechain-types/factories/Initializable__factory.d.ts +0 -18
- package/dist/typechain-types/factories/Initializable__factory.js +0 -32
- package/dist/typechain-types/factories/OwnableUpgradeable__factory.d.ts +0 -42
- package/dist/typechain-types/factories/OwnableUpgradeable__factory.js +0 -84
- package/dist/typechain-types/factories/SafeMock__factory.d.ts +0 -56
- package/dist/typechain-types/factories/SafeMock__factory.js +0 -247
package/dist/src/gnosis-safe.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
34
|
-
|
|
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.
|
|
45
|
-
[Network.
|
|
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
|
-
|
|
49
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
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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"}
|
package/dist/src/index.d.ts
CHANGED
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
}
|