@skalenetwork/upgrade-tools 2.0.0-develop.0 → 2.0.0-develop.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/src/gnosis-safe.d.ts +2 -25
- package/dist/src/gnosis-safe.js +82 -219
- package/dist/src/submitters/safe-submitter.js +1 -14
- package/dist/typechain-types/AdminUpgradeabilityProxy.d.ts +7 -92
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.d.ts +1 -26
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js +1 -71
- package/dist/typechain-types/factories/ProxyAdmin__factory.d.ts +1 -1
- package/dist/typechain-types/factories/ProxyAdmin__factory.js +6 -6
- package/package.json +6 -2
|
@@ -1,25 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
declare type Ethers = typeof ethers & HardhatEthersHelpers;
|
|
4
|
-
interface SafeMultisigTransaction {
|
|
5
|
-
safe: string;
|
|
6
|
-
to: string;
|
|
7
|
-
value: number;
|
|
8
|
-
data?: string;
|
|
9
|
-
operation: number;
|
|
10
|
-
gasToken?: string;
|
|
11
|
-
safeTxGas: number;
|
|
12
|
-
baseGas: number;
|
|
13
|
-
gasPrice: number;
|
|
14
|
-
refundReceiver?: string;
|
|
15
|
-
nonce: number;
|
|
16
|
-
contractTransactionHash: string;
|
|
17
|
-
sender: string;
|
|
18
|
-
signature?: string;
|
|
19
|
-
origin?: string;
|
|
20
|
-
}
|
|
21
|
-
export declare function getSafeTransactionUrl(chainId: number): string;
|
|
22
|
-
export declare function getSafeRelayUrl(chainId: number): string;
|
|
23
|
-
export declare function createMultiSendTransaction(ethers: Ethers, safeAddress: string, privateKey: string, transactions: string[], chainId: number, nonce?: number): Promise<SafeMultisigTransaction>;
|
|
24
|
-
export declare function sendSafeTransaction(safe: string, chainId: number, safeTx: SafeMultisigTransaction): Promise<void>;
|
|
25
|
-
export {};
|
|
1
|
+
import { UnsignedTransaction } from "ethers";
|
|
2
|
+
export declare function createMultiSendTransaction(safeAddress: string, transactions: UnsignedTransaction[]): Promise<void>;
|
package/dist/src/gnosis-safe.js
CHANGED
|
@@ -1,27 +1,4 @@
|
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -35,231 +12,117 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
13
|
};
|
|
37
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.
|
|
39
|
-
const axios_1 = __importDefault(require("axios"));
|
|
40
|
-
const ethUtil = __importStar(require("ethereumjs-util"));
|
|
15
|
+
exports.createMultiSendTransaction = void 0;
|
|
41
16
|
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
-
const
|
|
17
|
+
const hardhat_1 = require("hardhat");
|
|
18
|
+
const safe_ethers_lib_1 = __importDefault(require("@safe-global/safe-ethers-lib"));
|
|
19
|
+
const safe_service_client_1 = __importDefault(require("@safe-global/safe-service-client"));
|
|
20
|
+
const safe_core_sdk_1 = __importDefault(require("@safe-global/safe-core-sdk"));
|
|
43
21
|
var Network;
|
|
44
22
|
(function (Network) {
|
|
45
23
|
Network[Network["MAINNET"] = 1] = "MAINNET";
|
|
46
|
-
Network[Network["RINKEBY"] = 4] = "RINKEBY";
|
|
47
24
|
Network[Network["GOERLI"] = 5] = "GOERLI";
|
|
48
25
|
Network[Network["GANACHE"] = 1337] = "GANACHE";
|
|
49
26
|
Network[Network["HARDHAT"] = 31337] = "HARDHAT";
|
|
50
27
|
})(Network || (Network = {}));
|
|
51
28
|
// constants
|
|
52
|
-
const ADDRESSES = {
|
|
53
|
-
multiSend: {
|
|
54
|
-
[Network.MAINNET]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
|
|
55
|
-
[Network.RINKEBY]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
|
|
56
|
-
[Network.GOERLI]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
29
|
const URLS = {
|
|
60
30
|
safe_transaction: {
|
|
61
|
-
[Network.MAINNET]: "https://safe-transaction
|
|
62
|
-
[Network.
|
|
63
|
-
[Network.GOERLI]: "https://safe-transaction.goerli.gnosis.io",
|
|
64
|
-
},
|
|
65
|
-
safe_relay: {
|
|
66
|
-
[Network.MAINNET]: "https://safe-relay.mainnet.gnosis.io",
|
|
67
|
-
[Network.RINKEBY]: "https://safe-relay.rinkeby.gnosis.io",
|
|
68
|
-
[Network.GOERLI]: "https://safe-relay.goerli.gnosis.io",
|
|
31
|
+
[Network.MAINNET]: "https://safe-transaction-mainnet.safe.global",
|
|
32
|
+
[Network.GOERLI]: "https://safe-transaction-goerli.safe.global",
|
|
69
33
|
}
|
|
70
34
|
};
|
|
71
35
|
// public functions
|
|
72
|
-
function
|
|
73
|
-
if (Object.keys(URLS.safe_transaction).includes(chainId.toString())) {
|
|
74
|
-
return URLS.safe_transaction[chainId];
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
throw Error(`Can't get safe-transaction url at network with chainId = ${chainId}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.getSafeTransactionUrl = getSafeTransactionUrl;
|
|
81
|
-
function getSafeRelayUrl(chainId) {
|
|
82
|
-
if (Object.keys(URLS.safe_relay).includes(chainId.toString())) {
|
|
83
|
-
return URLS.safe_relay[chainId];
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
throw Error(`Can't get safe-relay url at network with chainId = ${chainId}`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
exports.getSafeRelayUrl = getSafeRelayUrl;
|
|
90
|
-
function createMultiSendTransaction(ethers, safeAddress, privateKey, transactions, chainId, nonce) {
|
|
36
|
+
function createMultiSendTransaction(safeAddress, transactions) {
|
|
91
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (isNaN(Number.parseInt(process.env.NONCE))) {
|
|
101
|
-
// NONCE variable is not a number
|
|
102
|
-
if (process.env.NONCE.toLowerCase() === "pending") {
|
|
103
|
-
nonceValue = yield getSafeNonceWithPending(chainId, safeAddress);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
nonceValue = yield getSafeNonce(chainId, safeAddress);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
// NONCE variable is a number
|
|
111
|
-
nonceValue = Number.parseInt(process.env.NONCE);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
// NONCE variable is not set
|
|
116
|
-
nonceValue = yield getSafeNonce(chainId, safeAddress);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
catch (e) {
|
|
120
|
-
if (!(e instanceof Error) || !e.toString().startsWith("Error: Can't get safe-transaction url")) {
|
|
121
|
-
throw e;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
38
|
+
const safeTransactionData = [];
|
|
39
|
+
for (const transaction of transactions) {
|
|
40
|
+
safeTransactionData.push({
|
|
41
|
+
to: transaction.to ? transaction.to : hardhat_1.ethers.constants.AddressZero,
|
|
42
|
+
data: transaction.data ? transaction.data.toString() : "0x",
|
|
43
|
+
value: transaction.value ? transaction.value.toString() : "0",
|
|
44
|
+
operation: 0,
|
|
45
|
+
});
|
|
124
46
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"gasToken": ethers.constants.AddressZero,
|
|
136
|
-
"safeTxGas": 0,
|
|
137
|
-
"baseGas": 0,
|
|
138
|
-
"gasPrice": 0,
|
|
139
|
-
"refundReceiver": ethers.constants.AddressZero,
|
|
140
|
-
"nonce": nonceValue, // Nonce of the Safe, transaction cannot be executed until Safe's nonce is not equal to this nonce
|
|
47
|
+
const safeService = yield getSafeService();
|
|
48
|
+
const nonce = yield safeService.getNextNonce(safeAddress);
|
|
49
|
+
console.log("Will send tx to Gnosis with nonce", nonce);
|
|
50
|
+
const options = {
|
|
51
|
+
safeTxGas: 0,
|
|
52
|
+
baseGas: 0,
|
|
53
|
+
gasPrice: 0,
|
|
54
|
+
gasToken: hardhat_1.ethers.constants.AddressZero,
|
|
55
|
+
refundReceiver: hardhat_1.ethers.constants.AddressZero,
|
|
56
|
+
nonce: nonce // Nonce of the Safe, transaction cannot be executed until Safe's nonce is not equal to this nonce
|
|
141
57
|
};
|
|
142
|
-
const
|
|
143
|
-
const
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
// Owner of the Safe proposing the transaction. Must match one of the signatures
|
|
148
|
-
"sender": ethers.utils.getAddress(ethUtil.bufferToHex(ethUtil.privateToAddress(privateKeyBuffer))), "signature": signature, "origin": "Upgrade skale-manager" // Give more information about the transaction, e.g. "My Custom Safe app"
|
|
149
|
-
});
|
|
150
|
-
return txToSend;
|
|
58
|
+
const ethAdapter = yield getEthAdapter();
|
|
59
|
+
const safeSdk = yield safe_core_sdk_1.default.create({ ethAdapter, safeAddress });
|
|
60
|
+
const safeTransaction = yield safeSdk.createTransaction({ safeTransactionData, options });
|
|
61
|
+
yield estimateSafeTransaction(safeAddress, safeTransactionData);
|
|
62
|
+
yield proposeTransaction(safeAddress, safeTransaction);
|
|
151
63
|
});
|
|
152
64
|
}
|
|
153
65
|
exports.createMultiSendTransaction = createMultiSendTransaction;
|
|
154
|
-
|
|
66
|
+
// private functions
|
|
67
|
+
function estimateSafeTransaction(safeAddress, safeTransactionData) {
|
|
155
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
console.log(chalk_1.default.green("Send transaction to gnosis safe"));
|
|
168
|
-
yield axios_1.default.post(`${getSafeTransactionUrl(chainId)}/api/v1/safes/${safe}/multisig-transactions/`, safeTx);
|
|
169
|
-
}
|
|
170
|
-
catch (e) {
|
|
171
|
-
if (axios_1.default.isAxiosError(e)) {
|
|
172
|
-
if (e.response) {
|
|
173
|
-
console.log(JSON.stringify(e.response.data, null, 4));
|
|
174
|
-
console.log(chalk_1.default.red(`Request failed with ${e.response.status} code`));
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
console.log(chalk_1.default.red("Request failed with unknown reason"));
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
throw e;
|
|
69
|
+
console.log("Estimate gas");
|
|
70
|
+
const safeService = yield getSafeService();
|
|
71
|
+
for (const transaction of safeTransactionData) {
|
|
72
|
+
const estimateResponse = yield safeService.estimateSafeTransaction(safeAddress, {
|
|
73
|
+
to: transaction.to,
|
|
74
|
+
value: transaction.value,
|
|
75
|
+
data: transaction.data,
|
|
76
|
+
operation: transaction.operation || 0,
|
|
77
|
+
});
|
|
78
|
+
console.log(chalk_1.default.cyan(`Recommend to set gas limit to ${parseInt(estimateResponse.safeTxGas, 10)}`));
|
|
181
79
|
}
|
|
80
|
+
console.log(chalk_1.default.green("Send transaction to gnosis safe"));
|
|
182
81
|
});
|
|
183
82
|
}
|
|
184
|
-
|
|
185
|
-
// private functions
|
|
186
|
-
function getMultiSendAddress(chainId) {
|
|
187
|
-
if ([Network.GANACHE, Network.HARDHAT].includes(chainId)) {
|
|
188
|
-
return ethers_1.ethers.constants.AddressZero;
|
|
189
|
-
}
|
|
190
|
-
else if (Object.keys(ADDRESSES.multiSend).includes(chainId.toString())) {
|
|
191
|
-
return ADDRESSES.multiSend[chainId];
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
throw Error(`Can't get multiSend contract at network with chainId = ${chainId}`);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
function concatTransactions(transactions) {
|
|
198
|
-
return "0x" + transactions.map((transaction) => {
|
|
199
|
-
if (transaction.startsWith("0x")) {
|
|
200
|
-
return transaction.slice(2);
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
return transaction;
|
|
204
|
-
}
|
|
205
|
-
}).join("");
|
|
206
|
-
}
|
|
207
|
-
function getSafeNonce(chainId, safeAddress) {
|
|
83
|
+
function proposeTransaction(safeAddress, safeTransaction) {
|
|
208
84
|
return __awaiter(this, void 0, void 0, function* () {
|
|
209
|
-
const
|
|
210
|
-
|
|
85
|
+
const [safeOwner] = yield hardhat_1.ethers.getSigners();
|
|
86
|
+
const ethAdapter = yield getEthAdapter();
|
|
87
|
+
const safeSdk = yield safe_core_sdk_1.default.create({ ethAdapter, safeAddress });
|
|
88
|
+
const safeTxHash = yield safeSdk.getTransactionHash(safeTransaction);
|
|
89
|
+
const senderSignature = yield safeSdk.signTransactionHash(safeTxHash);
|
|
90
|
+
const safeService = yield getSafeService();
|
|
91
|
+
yield safeService.proposeTransaction({
|
|
92
|
+
safeAddress,
|
|
93
|
+
safeTransactionData: safeTransaction.data,
|
|
94
|
+
safeTxHash,
|
|
95
|
+
senderAddress: safeOwner.address,
|
|
96
|
+
senderSignature: senderSignature.data
|
|
97
|
+
});
|
|
211
98
|
});
|
|
212
99
|
}
|
|
213
|
-
function
|
|
100
|
+
function getEthAdapter() {
|
|
214
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}
|
|
102
|
+
const [safeOwner] = yield hardhat_1.ethers.getSigners();
|
|
103
|
+
const ethAdapter = new safe_ethers_lib_1.default({
|
|
104
|
+
ethers: hardhat_1.ethers,
|
|
105
|
+
signerOrProvider: safeOwner
|
|
106
|
+
});
|
|
107
|
+
return ethAdapter;
|
|
222
108
|
});
|
|
223
109
|
}
|
|
224
|
-
function
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
"bytes32",
|
|
235
|
-
"address",
|
|
236
|
-
"uint256",
|
|
237
|
-
"bytes32",
|
|
238
|
-
"uint256",
|
|
239
|
-
"uint256",
|
|
240
|
-
"uint256",
|
|
241
|
-
"uint256",
|
|
242
|
-
"address",
|
|
243
|
-
"address",
|
|
244
|
-
"uint256"
|
|
245
|
-
], [
|
|
246
|
-
SAFE_TX_TYPEHASH,
|
|
247
|
-
to,
|
|
248
|
-
value,
|
|
249
|
-
dataHash,
|
|
250
|
-
operation,
|
|
251
|
-
safeTxGas,
|
|
252
|
-
baseGas,
|
|
253
|
-
gasPrice,
|
|
254
|
-
gasToken,
|
|
255
|
-
refundReceiver,
|
|
256
|
-
_nonce
|
|
257
|
-
]);
|
|
258
|
-
const encodedHash = ethers_1.ethers.utils.solidityKeccak256(["bytes"], [encoded]);
|
|
259
|
-
return ethers_1.ethers.utils.solidityPack(["bytes1", "bytes1", "bytes32", "bytes32"], ["0x19", "0x01", getDomainSeparator(safeAddress, chainId), encodedHash]);
|
|
110
|
+
function getSafeService() {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const chainId = (yield hardhat_1.ethers.provider.getNetwork()).chainId;
|
|
113
|
+
const ethAdapter = yield getEthAdapter();
|
|
114
|
+
const safeService = new safe_service_client_1.default({
|
|
115
|
+
txServiceUrl: getSafeTransactionUrl(chainId),
|
|
116
|
+
ethAdapter
|
|
117
|
+
});
|
|
118
|
+
return safeService;
|
|
119
|
+
});
|
|
260
120
|
}
|
|
261
|
-
function
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
121
|
+
function getSafeTransactionUrl(chainId) {
|
|
122
|
+
if (Object.keys(URLS.safe_transaction).includes(chainId.toString())) {
|
|
123
|
+
return URLS.safe_transaction[chainId];
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
throw Error(`Can't get safe-transaction url at network with chainId = ${chainId}`);
|
|
127
|
+
}
|
|
265
128
|
}
|
|
@@ -10,10 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.SafeSubmitter = void 0;
|
|
13
|
-
const ethers_1 = require("ethers");
|
|
14
13
|
const hardhat_1 = require("hardhat");
|
|
15
14
|
const gnosis_safe_1 = require("../gnosis-safe");
|
|
16
|
-
const multiSend_1 = require("../multiSend");
|
|
17
15
|
const submitter_1 = require("./submitter");
|
|
18
16
|
class SafeSubmitter extends submitter_1.Submitter {
|
|
19
17
|
constructor(safeAddress, chainId) {
|
|
@@ -23,21 +21,10 @@ class SafeSubmitter extends submitter_1.Submitter {
|
|
|
23
21
|
}
|
|
24
22
|
submit(transactions) {
|
|
25
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
const safeTransactions = [];
|
|
27
|
-
for (const transaction of transactions) {
|
|
28
|
-
safeTransactions.push((0, multiSend_1.encodeTransaction)(0, transaction.to ? transaction.to : hardhat_1.ethers.constants.AddressZero, transaction.value ? ethers_1.BigNumber.from(transaction.value) : 0, transaction.data ? transaction.data.toString() : "0x"));
|
|
29
|
-
}
|
|
30
|
-
let privateKey = hardhat_1.network.config.accounts[0];
|
|
31
|
-
if (hardhat_1.network.config.accounts === "remote") {
|
|
32
|
-
// Don't have an information about private key
|
|
33
|
-
// Use random one because we most probable run tests
|
|
34
|
-
privateKey = hardhat_1.ethers.Wallet.createRandom().privateKey;
|
|
35
|
-
}
|
|
36
24
|
if (!this.chainId) {
|
|
37
25
|
this.chainId = (yield hardhat_1.ethers.provider.getNetwork()).chainId;
|
|
38
26
|
}
|
|
39
|
-
|
|
40
|
-
yield (0, gnosis_safe_1.sendSafeTransaction)(this.safeAddress, this.chainId, safeTx);
|
|
27
|
+
yield (0, gnosis_safe_1.createMultiSendTransaction)(this.safeAddress, transactions);
|
|
41
28
|
});
|
|
42
29
|
}
|
|
43
30
|
}
|
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
import { BaseContract,
|
|
2
|
-
import {
|
|
1
|
+
import { BaseContract, Signer, utils } from "ethers";
|
|
2
|
+
import { EventFragment } from "@ethersproject/abi";
|
|
3
3
|
import { Listener, Provider } from "@ethersproject/providers";
|
|
4
4
|
import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
|
|
5
5
|
export interface AdminUpgradeabilityProxyInterface extends utils.Interface {
|
|
6
6
|
contractName: "AdminUpgradeabilityProxy";
|
|
7
|
-
functions: {
|
|
8
|
-
"admin()": FunctionFragment;
|
|
9
|
-
"changeAdmin(address)": FunctionFragment;
|
|
10
|
-
"implementation()": FunctionFragment;
|
|
11
|
-
"upgradeTo(address)": FunctionFragment;
|
|
12
|
-
"upgradeToAndCall(address,bytes)": FunctionFragment;
|
|
13
|
-
};
|
|
14
|
-
encodeFunctionData(functionFragment: "admin", values?: undefined): string;
|
|
15
|
-
encodeFunctionData(functionFragment: "changeAdmin", values: [string]): string;
|
|
16
|
-
encodeFunctionData(functionFragment: "implementation", values?: undefined): string;
|
|
17
|
-
encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string;
|
|
18
|
-
encodeFunctionData(functionFragment: "upgradeToAndCall", values: [string, BytesLike]): string;
|
|
19
|
-
decodeFunctionResult(functionFragment: "admin", data: BytesLike): Result;
|
|
20
|
-
decodeFunctionResult(functionFragment: "changeAdmin", data: BytesLike): Result;
|
|
21
|
-
decodeFunctionResult(functionFragment: "implementation", data: BytesLike): Result;
|
|
22
|
-
decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result;
|
|
23
|
-
decodeFunctionResult(functionFragment: "upgradeToAndCall", data: BytesLike): Result;
|
|
7
|
+
functions: {};
|
|
24
8
|
events: {
|
|
25
9
|
"AdminChanged(address,address)": EventFragment;
|
|
26
10
|
"BeaconUpgraded(address)": EventFragment;
|
|
@@ -61,45 +45,8 @@ export interface AdminUpgradeabilityProxy extends BaseContract {
|
|
|
61
45
|
on: OnEvent<this>;
|
|
62
46
|
once: OnEvent<this>;
|
|
63
47
|
removeListener: OnEvent<this>;
|
|
64
|
-
functions: {
|
|
65
|
-
|
|
66
|
-
from?: string | Promise<string>;
|
|
67
|
-
}): Promise<ContractTransaction>;
|
|
68
|
-
changeAdmin(newAdmin: string, overrides?: Overrides & {
|
|
69
|
-
from?: string | Promise<string>;
|
|
70
|
-
}): Promise<ContractTransaction>;
|
|
71
|
-
implementation(overrides?: Overrides & {
|
|
72
|
-
from?: string | Promise<string>;
|
|
73
|
-
}): Promise<ContractTransaction>;
|
|
74
|
-
upgradeTo(newImplementation: string, overrides?: Overrides & {
|
|
75
|
-
from?: string | Promise<string>;
|
|
76
|
-
}): Promise<ContractTransaction>;
|
|
77
|
-
upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
|
|
78
|
-
from?: string | Promise<string>;
|
|
79
|
-
}): Promise<ContractTransaction>;
|
|
80
|
-
};
|
|
81
|
-
admin(overrides?: Overrides & {
|
|
82
|
-
from?: string | Promise<string>;
|
|
83
|
-
}): Promise<ContractTransaction>;
|
|
84
|
-
changeAdmin(newAdmin: string, overrides?: Overrides & {
|
|
85
|
-
from?: string | Promise<string>;
|
|
86
|
-
}): Promise<ContractTransaction>;
|
|
87
|
-
implementation(overrides?: Overrides & {
|
|
88
|
-
from?: string | Promise<string>;
|
|
89
|
-
}): Promise<ContractTransaction>;
|
|
90
|
-
upgradeTo(newImplementation: string, overrides?: Overrides & {
|
|
91
|
-
from?: string | Promise<string>;
|
|
92
|
-
}): Promise<ContractTransaction>;
|
|
93
|
-
upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
|
|
94
|
-
from?: string | Promise<string>;
|
|
95
|
-
}): Promise<ContractTransaction>;
|
|
96
|
-
callStatic: {
|
|
97
|
-
admin(overrides?: CallOverrides): Promise<string>;
|
|
98
|
-
changeAdmin(newAdmin: string, overrides?: CallOverrides): Promise<void>;
|
|
99
|
-
implementation(overrides?: CallOverrides): Promise<string>;
|
|
100
|
-
upgradeTo(newImplementation: string, overrides?: CallOverrides): Promise<void>;
|
|
101
|
-
upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: CallOverrides): Promise<void>;
|
|
102
|
-
};
|
|
48
|
+
functions: {};
|
|
49
|
+
callStatic: {};
|
|
103
50
|
filters: {
|
|
104
51
|
"AdminChanged(address,address)"(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
|
|
105
52
|
AdminChanged(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
|
|
@@ -108,38 +55,6 @@ export interface AdminUpgradeabilityProxy extends BaseContract {
|
|
|
108
55
|
"Upgraded(address)"(implementation?: string | null): UpgradedEventFilter;
|
|
109
56
|
Upgraded(implementation?: string | null): UpgradedEventFilter;
|
|
110
57
|
};
|
|
111
|
-
estimateGas: {
|
|
112
|
-
|
|
113
|
-
from?: string | Promise<string>;
|
|
114
|
-
}): Promise<BigNumber>;
|
|
115
|
-
changeAdmin(newAdmin: string, overrides?: Overrides & {
|
|
116
|
-
from?: string | Promise<string>;
|
|
117
|
-
}): Promise<BigNumber>;
|
|
118
|
-
implementation(overrides?: Overrides & {
|
|
119
|
-
from?: string | Promise<string>;
|
|
120
|
-
}): Promise<BigNumber>;
|
|
121
|
-
upgradeTo(newImplementation: string, overrides?: Overrides & {
|
|
122
|
-
from?: string | Promise<string>;
|
|
123
|
-
}): Promise<BigNumber>;
|
|
124
|
-
upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
|
|
125
|
-
from?: string | Promise<string>;
|
|
126
|
-
}): Promise<BigNumber>;
|
|
127
|
-
};
|
|
128
|
-
populateTransaction: {
|
|
129
|
-
admin(overrides?: Overrides & {
|
|
130
|
-
from?: string | Promise<string>;
|
|
131
|
-
}): Promise<PopulatedTransaction>;
|
|
132
|
-
changeAdmin(newAdmin: string, overrides?: Overrides & {
|
|
133
|
-
from?: string | Promise<string>;
|
|
134
|
-
}): Promise<PopulatedTransaction>;
|
|
135
|
-
implementation(overrides?: Overrides & {
|
|
136
|
-
from?: string | Promise<string>;
|
|
137
|
-
}): Promise<PopulatedTransaction>;
|
|
138
|
-
upgradeTo(newImplementation: string, overrides?: Overrides & {
|
|
139
|
-
from?: string | Promise<string>;
|
|
140
|
-
}): Promise<PopulatedTransaction>;
|
|
141
|
-
upgradeToAndCall(newImplementation: string, data: BytesLike, overrides?: PayableOverrides & {
|
|
142
|
-
from?: string | Promise<string>;
|
|
143
|
-
}): Promise<PopulatedTransaction>;
|
|
144
|
-
};
|
|
58
|
+
estimateGas: {};
|
|
59
|
+
populateTransaction: {};
|
|
145
60
|
}
|
|
@@ -14,7 +14,7 @@ export declare class AdminUpgradeabilityProxy__factory extends ContractFactory {
|
|
|
14
14
|
connect(signer: Signer): AdminUpgradeabilityProxy__factory;
|
|
15
15
|
static readonly contractName: "AdminUpgradeabilityProxy";
|
|
16
16
|
readonly contractName: "AdminUpgradeabilityProxy";
|
|
17
|
-
static readonly bytecode = "
|
|
17
|
+
static readonly bytecode = "0x608060405260405162000ee038038062000ee08339810160408190526200002691620004a3565b8282828281620000398282600062000053565b506200004790508262000090565b505050505050620005d6565b6200005e83620000eb565b6000825111806200006c5750805b156200008b576200008983836200012d60201b620001791760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000bb6200015c565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e88162000195565b50565b620000f6816200024a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000155838360405180606001604052806027815260200162000eb960279139620002fe565b9392505050565b60006200018660008051602062000e9983398151915260001b6200037d60201b620001a51760201c565b546001600160a01b0316919050565b6001600160a01b038116620002005760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022960008051602062000e9983398151915260001b6200037d60201b620001a51760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b62000260816200038060201b620001a81760201c565b620002c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f7565b80620002297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037d60201b620001a51760201c565b6060600080856001600160a01b0316856040516200031d919062000583565b600060405180830381855af49150503d80600081146200035a576040519150601f19603f3d011682016040523d82523d6000602084013e6200035f565b606091505b50909250905062000373868383876200038f565b9695505050505050565b90565b6001600160a01b03163b151590565b6060831562000400578251620003f8576001600160a01b0385163b620003f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f7565b50816200040c565b6200040c838362000414565b949350505050565b815115620004255781518083602001fd5b8060405162461bcd60e51b8152600401620001f79190620005a1565b80516001600160a01b03811681146200045957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200049157818101518382015260200162000477565b83811115620000895750506000910152565b600080600060608486031215620004b957600080fd5b620004c48462000441565b9250620004d46020850162000441565b60408501519092506001600160401b0380821115620004f257600080fd5b818601915086601f8301126200050757600080fd5b8151818111156200051c576200051c6200045e565b604051601f8201601f19908116603f011681019083821181831017156200054757620005476200045e565b816040528281528960208487010111156200056157600080fd5b6200057483602083016020880162000474565b80955050505050509250925092565b600082516200059781846020870162000474565b9190910192915050565b6020815260008251806020840152620005c281604085016020870162000474565b601f01601f19169190910160400192915050565b6108b380620005e66000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101b7565b6001600160a01b0316336001600160a01b0316141561016f5760606001600160e01b031960003516631b2ce7f360e11b8114156100655761005e6101ea565b9150610167565b6001600160e01b0319811663278f794360e11b14156100865761005e610241565b6001600160e01b031981166308f2839760e41b14156100a75761005e610287565b6001600160e01b031981166303e1469160e61b14156100c85761005e6102b8565b6001600160e01b03198116635c60da1b60e01b14156100e95761005e6102f8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b61017761030c565b565b606061019e83836040518060600160405280602781526020016108576027913961031c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101f4610394565b600061020336600481846106a2565b81019061021091906106e8565b905061022d8160405180602001604052806000815250600061039f565b505060408051602081019091526000815290565b606060008061025336600481846106a2565b8101906102609190610719565b915091506102708282600161039f565b604051806020016040528060008152509250505090565b6060610291610394565b60006102a036600481846106a2565b8101906102ad91906106e8565b905061022d816103cb565b60606102c2610394565b60006102cc6101b7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b6060610302610394565b60006102cc610422565b610177610317610422565b610431565b6060600080856001600160a01b0316856040516103399190610807565b600060405180830381855af49150503d8060008114610374576040519150601f19603f3d011682016040523d82523d6000602084013e610379565b606091505b509150915061038a86838387610455565b9695505050505050565b341561017757600080fd5b6103a8836104d3565b6000825111806103b55750805b156103c6576103c48383610179565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103f46101b7565b604080516001600160a01b03928316815291841660208301520160405180910390a161041f81610513565b50565b600061042c6105bc565b905090565b3660008037600080366000845af43d6000803e808015610450573d6000f35b3d6000fd5b606083156104c15782516104ba576001600160a01b0385163b6104ba5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015e565b50816104cb565b6104cb83836105e4565b949350505050565b6104dc8161060e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105785760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161015e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101db565b8151156105f45781518083602001fd5b8060405162461bcd60e51b815260040161015e9190610823565b6001600160a01b0381163b61067b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161015e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61059b565b600080858511156106b257600080fd5b838611156106bf57600080fd5b5050820193919092039150565b80356001600160a01b03811681146106e357600080fd5b919050565b6000602082840312156106fa57600080fd5b61019e826106cc565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072c57600080fd5b610735836106cc565b9150602083013567ffffffffffffffff8082111561075257600080fd5b818501915085601f83011261076657600080fd5b81358181111561077857610778610703565b604051601f8201601f19908116603f011681019083821181831017156107a0576107a0610703565b816040528281528860208487010111156107b957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107f65781810151838201526020016107de565b838111156103c45750506000910152565b600082516108198184602087016107db565b9190910192915050565b60208152600082518060208401526108428160408501602087016107db565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c305b1ecbe12f30c701a08768fe5424f3f90ab320940a940a3ef1f7469a68ab164736f6c63430008090033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564";
|
|
18
18
|
static readonly abi: ({
|
|
19
19
|
inputs: {
|
|
20
20
|
internalType: string;
|
|
@@ -25,7 +25,6 @@ export declare class AdminUpgradeabilityProxy__factory extends ContractFactory {
|
|
|
25
25
|
type: string;
|
|
26
26
|
anonymous?: undefined;
|
|
27
27
|
name?: undefined;
|
|
28
|
-
outputs?: undefined;
|
|
29
28
|
} | {
|
|
30
29
|
anonymous: boolean;
|
|
31
30
|
inputs: {
|
|
@@ -37,36 +36,12 @@ export declare class AdminUpgradeabilityProxy__factory extends ContractFactory {
|
|
|
37
36
|
name: string;
|
|
38
37
|
type: string;
|
|
39
38
|
stateMutability?: undefined;
|
|
40
|
-
outputs?: undefined;
|
|
41
39
|
} | {
|
|
42
40
|
stateMutability: string;
|
|
43
41
|
type: string;
|
|
44
42
|
inputs?: undefined;
|
|
45
43
|
anonymous?: undefined;
|
|
46
44
|
name?: undefined;
|
|
47
|
-
outputs?: undefined;
|
|
48
|
-
} | {
|
|
49
|
-
inputs: never[];
|
|
50
|
-
name: string;
|
|
51
|
-
outputs: {
|
|
52
|
-
internalType: string;
|
|
53
|
-
name: string;
|
|
54
|
-
type: string;
|
|
55
|
-
}[];
|
|
56
|
-
stateMutability: string;
|
|
57
|
-
type: string;
|
|
58
|
-
anonymous?: undefined;
|
|
59
|
-
} | {
|
|
60
|
-
inputs: {
|
|
61
|
-
internalType: string;
|
|
62
|
-
name: string;
|
|
63
|
-
type: string;
|
|
64
|
-
}[];
|
|
65
|
-
name: string;
|
|
66
|
-
outputs: never[];
|
|
67
|
-
stateMutability: string;
|
|
68
|
-
type: string;
|
|
69
|
-
anonymous?: undefined;
|
|
70
45
|
})[];
|
|
71
46
|
static createInterface(): AdminUpgradeabilityProxyInterface;
|
|
72
47
|
static connect(address: string, signerOrProvider: Signer | Provider): AdminUpgradeabilityProxy;
|
|
@@ -76,82 +76,12 @@ const _abi = [
|
|
|
76
76
|
stateMutability: "payable",
|
|
77
77
|
type: "fallback",
|
|
78
78
|
},
|
|
79
|
-
{
|
|
80
|
-
inputs: [],
|
|
81
|
-
name: "admin",
|
|
82
|
-
outputs: [
|
|
83
|
-
{
|
|
84
|
-
internalType: "address",
|
|
85
|
-
name: "admin_",
|
|
86
|
-
type: "address",
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
stateMutability: "nonpayable",
|
|
90
|
-
type: "function",
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
inputs: [
|
|
94
|
-
{
|
|
95
|
-
internalType: "address",
|
|
96
|
-
name: "newAdmin",
|
|
97
|
-
type: "address",
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
name: "changeAdmin",
|
|
101
|
-
outputs: [],
|
|
102
|
-
stateMutability: "nonpayable",
|
|
103
|
-
type: "function",
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
inputs: [],
|
|
107
|
-
name: "implementation",
|
|
108
|
-
outputs: [
|
|
109
|
-
{
|
|
110
|
-
internalType: "address",
|
|
111
|
-
name: "implementation_",
|
|
112
|
-
type: "address",
|
|
113
|
-
},
|
|
114
|
-
],
|
|
115
|
-
stateMutability: "nonpayable",
|
|
116
|
-
type: "function",
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
inputs: [
|
|
120
|
-
{
|
|
121
|
-
internalType: "address",
|
|
122
|
-
name: "newImplementation",
|
|
123
|
-
type: "address",
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
name: "upgradeTo",
|
|
127
|
-
outputs: [],
|
|
128
|
-
stateMutability: "nonpayable",
|
|
129
|
-
type: "function",
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
inputs: [
|
|
133
|
-
{
|
|
134
|
-
internalType: "address",
|
|
135
|
-
name: "newImplementation",
|
|
136
|
-
type: "address",
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
internalType: "bytes",
|
|
140
|
-
name: "data",
|
|
141
|
-
type: "bytes",
|
|
142
|
-
},
|
|
143
|
-
],
|
|
144
|
-
name: "upgradeToAndCall",
|
|
145
|
-
outputs: [],
|
|
146
|
-
stateMutability: "payable",
|
|
147
|
-
type: "function",
|
|
148
|
-
},
|
|
149
79
|
{
|
|
150
80
|
stateMutability: "payable",
|
|
151
81
|
type: "receive",
|
|
152
82
|
},
|
|
153
83
|
];
|
|
154
|
-
const _bytecode = "
|
|
84
|
+
const _bytecode = "0x608060405260405162000ee038038062000ee08339810160408190526200002691620004a3565b8282828281620000398282600062000053565b506200004790508262000090565b505050505050620005d6565b6200005e83620000eb565b6000825111806200006c5750805b156200008b576200008983836200012d60201b620001791760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000bb6200015c565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e88162000195565b50565b620000f6816200024a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000155838360405180606001604052806027815260200162000eb960279139620002fe565b9392505050565b60006200018660008051602062000e9983398151915260001b6200037d60201b620001a51760201c565b546001600160a01b0316919050565b6001600160a01b038116620002005760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022960008051602062000e9983398151915260001b6200037d60201b620001a51760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b62000260816200038060201b620001a81760201c565b620002c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f7565b80620002297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037d60201b620001a51760201c565b6060600080856001600160a01b0316856040516200031d919062000583565b600060405180830381855af49150503d80600081146200035a576040519150601f19603f3d011682016040523d82523d6000602084013e6200035f565b606091505b50909250905062000373868383876200038f565b9695505050505050565b90565b6001600160a01b03163b151590565b6060831562000400578251620003f8576001600160a01b0385163b620003f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f7565b50816200040c565b6200040c838362000414565b949350505050565b815115620004255781518083602001fd5b8060405162461bcd60e51b8152600401620001f79190620005a1565b80516001600160a01b03811681146200045957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200049157818101518382015260200162000477565b83811115620000895750506000910152565b600080600060608486031215620004b957600080fd5b620004c48462000441565b9250620004d46020850162000441565b60408501519092506001600160401b0380821115620004f257600080fd5b818601915086601f8301126200050757600080fd5b8151818111156200051c576200051c6200045e565b604051601f8201601f19908116603f011681019083821181831017156200054757620005476200045e565b816040528281528960208487010111156200056157600080fd5b6200057483602083016020880162000474565b80955050505050509250925092565b600082516200059781846020870162000474565b9190910192915050565b6020815260008251806020840152620005c281604085016020870162000474565b601f01601f19169190910160400192915050565b6108b380620005e66000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101b7565b6001600160a01b0316336001600160a01b0316141561016f5760606001600160e01b031960003516631b2ce7f360e11b8114156100655761005e6101ea565b9150610167565b6001600160e01b0319811663278f794360e11b14156100865761005e610241565b6001600160e01b031981166308f2839760e41b14156100a75761005e610287565b6001600160e01b031981166303e1469160e61b14156100c85761005e6102b8565b6001600160e01b03198116635c60da1b60e01b14156100e95761005e6102f8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b61017761030c565b565b606061019e83836040518060600160405280602781526020016108576027913961031c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101f4610394565b600061020336600481846106a2565b81019061021091906106e8565b905061022d8160405180602001604052806000815250600061039f565b505060408051602081019091526000815290565b606060008061025336600481846106a2565b8101906102609190610719565b915091506102708282600161039f565b604051806020016040528060008152509250505090565b6060610291610394565b60006102a036600481846106a2565b8101906102ad91906106e8565b905061022d816103cb565b60606102c2610394565b60006102cc6101b7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b6060610302610394565b60006102cc610422565b610177610317610422565b610431565b6060600080856001600160a01b0316856040516103399190610807565b600060405180830381855af49150503d8060008114610374576040519150601f19603f3d011682016040523d82523d6000602084013e610379565b606091505b509150915061038a86838387610455565b9695505050505050565b341561017757600080fd5b6103a8836104d3565b6000825111806103b55750805b156103c6576103c48383610179565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103f46101b7565b604080516001600160a01b03928316815291841660208301520160405180910390a161041f81610513565b50565b600061042c6105bc565b905090565b3660008037600080366000845af43d6000803e808015610450573d6000f35b3d6000fd5b606083156104c15782516104ba576001600160a01b0385163b6104ba5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015e565b50816104cb565b6104cb83836105e4565b949350505050565b6104dc8161060e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105785760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161015e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101db565b8151156105f45781518083602001fd5b8060405162461bcd60e51b815260040161015e9190610823565b6001600160a01b0381163b61067b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161015e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61059b565b600080858511156106b257600080fd5b838611156106bf57600080fd5b5050820193919092039150565b80356001600160a01b03811681146106e357600080fd5b919050565b6000602082840312156106fa57600080fd5b61019e826106cc565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561072c57600080fd5b610735836106cc565b9150602083013567ffffffffffffffff8082111561075257600080fd5b818501915085601f83011261076657600080fd5b81358181111561077857610778610703565b604051601f8201601f19908116603f011681019083821181831017156107a0576107a0610703565b816040528281528860208487010111156107b957600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107f65781810151838201526020016107de565b838111156103c45750506000910152565b600082516108198184602087016107db565b9190910192915050565b60208152600082518060208401526108428160408501602087016107db565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c305b1ecbe12f30c701a08768fe5424f3f90ab320940a940a3ef1f7469a68ab164736f6c63430008090033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564";
|
|
155
85
|
const isSuperArgs = (xs) => xs.length > 1;
|
|
156
86
|
class AdminUpgradeabilityProxy__factory extends ethers_1.ContractFactory {
|
|
157
87
|
constructor(...args) {
|
|
@@ -14,7 +14,7 @@ export declare class ProxyAdmin__factory extends ContractFactory {
|
|
|
14
14
|
connect(signer: Signer): ProxyAdmin__factory;
|
|
15
15
|
static readonly contractName: "ProxyAdmin";
|
|
16
16
|
readonly contractName: "ProxyAdmin";
|
|
17
|
-
static readonly bytecode = "
|
|
17
|
+
static readonly bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b038316815260006020604081840152835180604085015260005b8181101561063b5785810183015185820160600152820161061f565b8181111561064d576000606083870101525b50601f01601f19169290920160600194935050505056fea26469706673582212207ad53e1008cce369999f6b5f2f77109510b404ff1de9b47b639981fd68e6239264736f6c63430008090033";
|
|
18
18
|
static readonly abi: ({
|
|
19
19
|
anonymous: boolean;
|
|
20
20
|
inputs: {
|
|
@@ -28,7 +28,7 @@ const _abi = [
|
|
|
28
28
|
{
|
|
29
29
|
inputs: [
|
|
30
30
|
{
|
|
31
|
-
internalType: "contract
|
|
31
|
+
internalType: "contract ITransparentUpgradeableProxy",
|
|
32
32
|
name: "proxy",
|
|
33
33
|
type: "address",
|
|
34
34
|
},
|
|
@@ -46,7 +46,7 @@ const _abi = [
|
|
|
46
46
|
{
|
|
47
47
|
inputs: [
|
|
48
48
|
{
|
|
49
|
-
internalType: "contract
|
|
49
|
+
internalType: "contract ITransparentUpgradeableProxy",
|
|
50
50
|
name: "proxy",
|
|
51
51
|
type: "address",
|
|
52
52
|
},
|
|
@@ -65,7 +65,7 @@ const _abi = [
|
|
|
65
65
|
{
|
|
66
66
|
inputs: [
|
|
67
67
|
{
|
|
68
|
-
internalType: "contract
|
|
68
|
+
internalType: "contract ITransparentUpgradeableProxy",
|
|
69
69
|
name: "proxy",
|
|
70
70
|
type: "address",
|
|
71
71
|
},
|
|
@@ -117,7 +117,7 @@ const _abi = [
|
|
|
117
117
|
{
|
|
118
118
|
inputs: [
|
|
119
119
|
{
|
|
120
|
-
internalType: "contract
|
|
120
|
+
internalType: "contract ITransparentUpgradeableProxy",
|
|
121
121
|
name: "proxy",
|
|
122
122
|
type: "address",
|
|
123
123
|
},
|
|
@@ -135,7 +135,7 @@ const _abi = [
|
|
|
135
135
|
{
|
|
136
136
|
inputs: [
|
|
137
137
|
{
|
|
138
|
-
internalType: "contract
|
|
138
|
+
internalType: "contract ITransparentUpgradeableProxy",
|
|
139
139
|
name: "proxy",
|
|
140
140
|
type: "address",
|
|
141
141
|
},
|
|
@@ -156,7 +156,7 @@ const _abi = [
|
|
|
156
156
|
type: "function",
|
|
157
157
|
},
|
|
158
158
|
];
|
|
159
|
-
const _bytecode = "
|
|
159
|
+
const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b038316815260006020604081840152835180604085015260005b8181101561063b5785810183015185820160600152820161061f565b8181111561064d576000606083870101525b50601f01601f19169290920160600194935050505056fea26469706673582212207ad53e1008cce369999f6b5f2f77109510b404ff1de9b47b639981fd68e6239264736f6c63430008090033";
|
|
160
160
|
const isSuperArgs = (xs) => xs.length > 1;
|
|
161
161
|
class ProxyAdmin__factory extends ethers_1.ContractFactory {
|
|
162
162
|
constructor(...args) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skalenetwork/upgrade-tools",
|
|
3
|
-
"version": "2.0.0-develop.
|
|
3
|
+
"version": "2.0.0-develop.1",
|
|
4
4
|
"description": "Scripts to support upgrades of smart contracts",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**/*"
|
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
"cspell": "npx cspell \"**/*\""
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
+
"@safe-global/safe-core-sdk": "^3.3.2",
|
|
29
|
+
"@safe-global/safe-core-sdk-types": "^1.9.0",
|
|
30
|
+
"@safe-global/safe-ethers-lib": "^1.9.2",
|
|
31
|
+
"@safe-global/safe-service-client": "^2.0.0",
|
|
28
32
|
"@tsconfig/recommended": "^1.0.1",
|
|
29
33
|
"@typechain/ethers-v5": "^9.0.0",
|
|
30
34
|
"@typechain/hardhat": "^4.0.0",
|
|
@@ -48,7 +52,7 @@
|
|
|
48
52
|
"@openzeppelin/hardhat-upgrades": "^1.14.0",
|
|
49
53
|
"@openzeppelin/upgrades-core": "^1.12.0",
|
|
50
54
|
"@types/mocha": "^9.1.0",
|
|
51
|
-
"ethers": "^5.
|
|
55
|
+
"ethers": "^5.7.2",
|
|
52
56
|
"hardhat": "^2.8.3"
|
|
53
57
|
}
|
|
54
58
|
}
|