@skalenetwork/upgrade-tools 1.0.0-develop.14 → 1.0.0-develop.17
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.js
CHANGED
|
@@ -47,6 +47,7 @@ var Network;
|
|
|
47
47
|
Network[Network["GANACHE"] = 1337] = "GANACHE";
|
|
48
48
|
Network[Network["HARDHAT"] = 31337] = "HARDHAT";
|
|
49
49
|
})(Network || (Network = {}));
|
|
50
|
+
// constants
|
|
50
51
|
const ADDRESSES = {
|
|
51
52
|
multiSend: {
|
|
52
53
|
[Network.MAINNET]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
|
|
@@ -63,20 +64,7 @@ const URLS = {
|
|
|
63
64
|
[Network.RINKEBY]: "https://safe-relay.rinkeby.gnosis.io",
|
|
64
65
|
}
|
|
65
66
|
};
|
|
66
|
-
|
|
67
|
-
if (chainId === Network.MAINNET) {
|
|
68
|
-
return ADDRESSES.multiSend[chainId];
|
|
69
|
-
}
|
|
70
|
-
else if (chainId === Network.RINKEBY) {
|
|
71
|
-
return ADDRESSES.multiSend[chainId];
|
|
72
|
-
}
|
|
73
|
-
else if ([Network.GANACHE, Network.HARDHAT].includes(chainId)) {
|
|
74
|
-
return ethers_1.ethers.constants.AddressZero;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
throw Error(`Can't get multiSend contract at network with chainId = ${chainId}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
67
|
+
// public functions
|
|
80
68
|
function getSafeTransactionUrl(chainId) {
|
|
81
69
|
if (chainId === Network.MAINNET) {
|
|
82
70
|
return URLS.safe_transaction[chainId];
|
|
@@ -101,16 +89,6 @@ function getSafeRelayUrl(chainId) {
|
|
|
101
89
|
}
|
|
102
90
|
}
|
|
103
91
|
exports.getSafeRelayUrl = getSafeRelayUrl;
|
|
104
|
-
function concatTransactions(transactions) {
|
|
105
|
-
return "0x" + transactions.map((transaction) => {
|
|
106
|
-
if (transaction.startsWith("0x")) {
|
|
107
|
-
return transaction.slice(2);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
return transaction;
|
|
111
|
-
}
|
|
112
|
-
}).join("");
|
|
113
|
-
}
|
|
114
92
|
function createMultiSendTransaction(ethers, safeAddress, privateKey, transactions, nonce) {
|
|
115
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
116
94
|
const chainId = (yield ethers.provider.getNetwork()).chainId;
|
|
@@ -122,8 +100,26 @@ function createMultiSendTransaction(ethers, safeAddress, privateKey, transaction
|
|
|
122
100
|
let nonceValue = 0;
|
|
123
101
|
if (nonce === undefined) {
|
|
124
102
|
try {
|
|
125
|
-
|
|
126
|
-
|
|
103
|
+
if (process.env.NONCE) {
|
|
104
|
+
// NONCE variable is set
|
|
105
|
+
if (isNaN(Number.parseInt(process.env.NONCE))) {
|
|
106
|
+
// NONCE variable is not a number
|
|
107
|
+
if (process.env.NONCE.toLowerCase() === "pending") {
|
|
108
|
+
nonceValue = yield getSafeNonceWithPending(chainId, safeAddress);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
nonceValue = yield getSafeNonce(chainId, safeAddress);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// NONCE variable is a number
|
|
116
|
+
nonceValue = Number.parseInt(process.env.NONCE);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// NONCE variable is not set
|
|
121
|
+
nonceValue = yield getSafeNonce(chainId, safeAddress);
|
|
122
|
+
}
|
|
127
123
|
}
|
|
128
124
|
catch (e) {
|
|
129
125
|
if (!(e instanceof Error) || !e.toString().startsWith("Error: Can't get safe-transaction url")) {
|
|
@@ -134,6 +130,7 @@ function createMultiSendTransaction(ethers, safeAddress, privateKey, transaction
|
|
|
134
130
|
else {
|
|
135
131
|
nonceValue = nonce;
|
|
136
132
|
}
|
|
133
|
+
console.log("Will send tx to Gnosis with nonce", nonceValue);
|
|
137
134
|
const tx = {
|
|
138
135
|
"safe": safeAddress,
|
|
139
136
|
"to": multiSend.address,
|
|
@@ -190,3 +187,45 @@ function sendSafeTransaction(safe, chainId, safeTx) {
|
|
|
190
187
|
});
|
|
191
188
|
}
|
|
192
189
|
exports.sendSafeTransaction = sendSafeTransaction;
|
|
190
|
+
// private functions
|
|
191
|
+
function getMultiSendAddress(chainId) {
|
|
192
|
+
if (chainId === Network.MAINNET) {
|
|
193
|
+
return ADDRESSES.multiSend[chainId];
|
|
194
|
+
}
|
|
195
|
+
else if (chainId === Network.RINKEBY) {
|
|
196
|
+
return ADDRESSES.multiSend[chainId];
|
|
197
|
+
}
|
|
198
|
+
else if ([Network.GANACHE, Network.HARDHAT].includes(chainId)) {
|
|
199
|
+
return ethers_1.ethers.constants.AddressZero;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
throw Error(`Can't get multiSend contract at network with chainId = ${chainId}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function concatTransactions(transactions) {
|
|
206
|
+
return "0x" + transactions.map((transaction) => {
|
|
207
|
+
if (transaction.startsWith("0x")) {
|
|
208
|
+
return transaction.slice(2);
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
return transaction;
|
|
212
|
+
}
|
|
213
|
+
}).join("");
|
|
214
|
+
}
|
|
215
|
+
function getSafeNonce(chainId, safeAddress) {
|
|
216
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
217
|
+
const safeInfo = yield axios_1.default.get(`${getSafeTransactionUrl(chainId)}/api/v1/safes/${safeAddress}/`);
|
|
218
|
+
return safeInfo.data.nonce;
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function getSafeNonceWithPending(chainId, safeAddress) {
|
|
222
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
223
|
+
const allTransactions = yield axios_1.default.get(`${getSafeTransactionUrl(chainId)}/api/v1/safes/${safeAddress}/all-transactions/?executed=false&queued=true&trusted=true`);
|
|
224
|
+
if (allTransactions.data.results.length > 0) {
|
|
225
|
+
return allTransactions.data.results[0].nonce + 1;
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
return 0;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
package/dist/src/upgrade.js
CHANGED
|
@@ -209,6 +209,11 @@ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, saf
|
|
|
209
209
|
}
|
|
210
210
|
console.log(chalk_1.default.blue("Transactions have been sent"));
|
|
211
211
|
}
|
|
212
|
+
catch (exception) {
|
|
213
|
+
console.log(chalk_1.default.red("Error during upgrade"));
|
|
214
|
+
console.log(exception);
|
|
215
|
+
process.exitCode = 13;
|
|
216
|
+
}
|
|
212
217
|
finally {
|
|
213
218
|
console.log(chalk_1.default.blue("Return ownership to wallet"));
|
|
214
219
|
yield (yield safeMock.transferProxyAdminOwnership(contractManager.address, deployer.address)).wait();
|
|
@@ -14,7 +14,7 @@ export declare class SafeMock__factory extends ContractFactory {
|
|
|
14
14
|
connect(signer: Signer): SafeMock__factory;
|
|
15
15
|
static readonly contractName: "SafeMock";
|
|
16
16
|
readonly contractName: "SafeMock";
|
|
17
|
-
static readonly bytecode = "
|
|
17
|
+
static readonly bytecode = "0x60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200016d60201b620003301760201c565b15801562000063575060005460ff166001145b620000cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015620000f0576000805461ff0019166101001790555b620001056200017c60201b6200033f1760201c565b6040805160208101909152600081526200011f90620001e4565b801562000166576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000326565b6001600160a01b03163b151590565b600054610100900460ff16620001d85760405162461bcd60e51b815260206004820152602b602482015260008051602062000c1283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000c3565b620001e262000273565b565b805160205b818110156200026e578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811462000232576001811462000243576200024e565b6000808585888a5af191506200024e565b6000808585895af491505b50806200025a57600080fd5b5050806055018501945050505050620001e9565b505050565b600054610100900460ff16620002cf5760405162461bcd60e51b815260206004820152602b602482015260008051602062000c1283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000c3565b620001e233603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6108dc80620003366000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638d80ff0a116100665780638d80ff0a146101075780638da5cb5b1461011a578063d8d11f7814610135578063f2fde38b14610148578063f5dcb7bb1461015b57600080fd5b806312cc533f146100985780632bf613a5146100ad578063715018a6146100e757806388f8bae1146100ef575b600080fd5b6100ab6100a6366004610599565b610182565b005b6100d47fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d881565b6040519081526020015b60405180910390f35b6100ab6101e9565b6100f7600181565b60405190151581526020016100de565b6100ab6101153660046105e8565b6101fd565b6033546040516001600160a01b0390911681526020016100de565b6100d46101433660046106a8565b610285565b6100ab610156366004610792565b6102b2565b6100d47f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921881565b61018a61036e565b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156101cd57600080fd5b505af11580156101e1573d6000803e3d6000fd5b505050505050565b6101f161036e565b6101fb60006103c8565b565b805160205b81811015610280578083015160f81c6001820184015160601c601583018501516035840186015160558501870160008560008114610247576001811461025757610262565b6000808585888a5af19150610262565b6000808585895af491505b508061026d57600080fd5b5050806055018501945050505050610202565b505050565b600061029a8c8c8c8c8c8c8c8c8c8c8c61041a565b8051906020012090509b9a5050505050505050505050565b6102ba61036e565b6001600160a01b0381166103245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61032d816103c8565b50565b6001600160a01b03163b151590565b600054610100900460ff166103665760405162461bcd60e51b815260040161031b906107b6565b6101fb610544565b6033546001600160a01b031633146101fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161031b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d88d8d8d8d604051610451929190610801565b604051908190038120610477949392918e908e908e908e908e908e908e90602001610811565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b6104f7604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b600054610100900460ff1661056b5760405162461bcd60e51b815260040161031b906107b6565b6101fb336103c8565b6001600160a01b038116811461032d57600080fd5b803561059481610574565b919050565b600080604083850312156105ac57600080fd5b82356105b781610574565b915060208301356105c781610574565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156105fa57600080fd5b813567ffffffffffffffff8082111561061257600080fd5b818401915084601f83011261062657600080fd5b813581811115610638576106386105d2565b604051601f8201601f19908116603f01168101908382118183101715610660576106606105d2565b8160405282815287602084870101111561067957600080fd5b826020860160208301376000928101602001929092525095945050505050565b80356002811061059457600080fd5b60008060008060008060008060008060006101408c8e0312156106ca57600080fd5b8b356106d581610574565b9a5060208c0135995060408c013567ffffffffffffffff808211156106f957600080fd5b818e0191508e601f83011261070d57600080fd5b81358181111561071c57600080fd5b8f602082850101111561072e57600080fd5b602083019b50809a5050505061074660608d01610699565b965060808c0135955060a08c0135945060c08c0135935061076960e08d01610589565b92506107786101008d01610589565b91506101208c013590509295989b509295989b9093969950565b6000602082840312156107a457600080fd5b81356107af81610574565b9392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8183823760009101908152919050565b8b81526001600160a01b038b166020820152604081018a90526060810189905261016081016002891061085457634e487b7160e01b600052602160045260246000fd5b8860808301528760a08301528660c08301528560e08301526108826101008301866001600160a01b03169052565b6001600160a01b03939093166101208201526101400152999850505050505050505056fea26469706673582212202ff0141edaf3f76ff4bf691522a740076b0763d16b29f9b28057904188aeb98c64736f6c634300080b0033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
|
|
18
18
|
static readonly abi: ({
|
|
19
19
|
inputs: never[];
|
|
20
20
|
stateMutability: string;
|
|
@@ -211,7 +211,7 @@ const _abi = [
|
|
|
211
211
|
type: "function",
|
|
212
212
|
},
|
|
213
213
|
];
|
|
214
|
-
const _bytecode = "
|
|
214
|
+
const _bytecode = "0x60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200016d60201b620003301760201c565b15801562000063575060005460ff166001145b620000cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015620000f0576000805461ff0019166101001790555b620001056200017c60201b6200033f1760201c565b6040805160208101909152600081526200011f90620001e4565b801562000166576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000326565b6001600160a01b03163b151590565b600054610100900460ff16620001d85760405162461bcd60e51b815260206004820152602b602482015260008051602062000c1283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000c3565b620001e262000273565b565b805160205b818110156200026e578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811462000232576001811462000243576200024e565b6000808585888a5af191506200024e565b6000808585895af491505b50806200025a57600080fd5b5050806055018501945050505050620001e9565b505050565b600054610100900460ff16620002cf5760405162461bcd60e51b815260206004820152602b602482015260008051602062000c1283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000c3565b620001e233603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6108dc80620003366000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638d80ff0a116100665780638d80ff0a146101075780638da5cb5b1461011a578063d8d11f7814610135578063f2fde38b14610148578063f5dcb7bb1461015b57600080fd5b806312cc533f146100985780632bf613a5146100ad578063715018a6146100e757806388f8bae1146100ef575b600080fd5b6100ab6100a6366004610599565b610182565b005b6100d47fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d881565b6040519081526020015b60405180910390f35b6100ab6101e9565b6100f7600181565b60405190151581526020016100de565b6100ab6101153660046105e8565b6101fd565b6033546040516001600160a01b0390911681526020016100de565b6100d46101433660046106a8565b610285565b6100ab610156366004610792565b6102b2565b6100d47f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921881565b61018a61036e565b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156101cd57600080fd5b505af11580156101e1573d6000803e3d6000fd5b505050505050565b6101f161036e565b6101fb60006103c8565b565b805160205b81811015610280578083015160f81c6001820184015160601c601583018501516035840186015160558501870160008560008114610247576001811461025757610262565b6000808585888a5af19150610262565b6000808585895af491505b508061026d57600080fd5b5050806055018501945050505050610202565b505050565b600061029a8c8c8c8c8c8c8c8c8c8c8c61041a565b8051906020012090509b9a5050505050505050505050565b6102ba61036e565b6001600160a01b0381166103245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61032d816103c8565b50565b6001600160a01b03163b151590565b600054610100900460ff166103665760405162461bcd60e51b815260040161031b906107b6565b6101fb610544565b6033546001600160a01b031633146101fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161031b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d88d8d8d8d604051610451929190610801565b604051908190038120610477949392918e908e908e908e908e908e908e90602001610811565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b6104f7604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b600054610100900460ff1661056b5760405162461bcd60e51b815260040161031b906107b6565b6101fb336103c8565b6001600160a01b038116811461032d57600080fd5b803561059481610574565b919050565b600080604083850312156105ac57600080fd5b82356105b781610574565b915060208301356105c781610574565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156105fa57600080fd5b813567ffffffffffffffff8082111561061257600080fd5b818401915084601f83011261062657600080fd5b813581811115610638576106386105d2565b604051601f8201601f19908116603f01168101908382118183101715610660576106606105d2565b8160405282815287602084870101111561067957600080fd5b826020860160208301376000928101602001929092525095945050505050565b80356002811061059457600080fd5b60008060008060008060008060008060006101408c8e0312156106ca57600080fd5b8b356106d581610574565b9a5060208c0135995060408c013567ffffffffffffffff808211156106f957600080fd5b818e0191508e601f83011261070d57600080fd5b81358181111561071c57600080fd5b8f602082850101111561072e57600080fd5b602083019b50809a5050505061074660608d01610699565b965060808c0135955060a08c0135945060c08c0135935061076960e08d01610589565b92506107786101008d01610589565b91506101208c013590509295989b509295989b9093969950565b6000602082840312156107a457600080fd5b81356107af81610574565b9392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8183823760009101908152919050565b8b81526001600160a01b038b166020820152604081018a90526060810189905261016081016002891061085457634e487b7160e01b600052602160045260246000fd5b8860808301528760a08301528660c08301528560e08301526108826101008301866001600160a01b03169052565b6001600160a01b03939093166101208201526101400152999850505050505050505056fea26469706673582212202ff0141edaf3f76ff4bf691522a740076b0763d16b29f9b28057904188aeb98c64736f6c634300080b0033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
|
|
215
215
|
const isSuperArgs = (xs) => xs.length > 1;
|
|
216
216
|
class SafeMock__factory extends ethers_1.ContractFactory {
|
|
217
217
|
constructor(...args) {
|