@skalenetwork/upgrade-tools 1.0.0-develop.2 → 1.0.0-develop.21

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.
@@ -18,7 +18,7 @@ const config = {
18
18
  ]
19
19
  },
20
20
  typechain: {
21
- externalArtifacts: ['node_modules/@openzeppelin/upgrades-core/artifacts/*.json']
21
+ externalArtifacts: ['node_modules/@openzeppelin/upgrades-core/artifacts/[!b]*.json']
22
22
  }
23
23
  };
24
24
  exports.default = config;
@@ -90,7 +90,9 @@ function getContractFactory(contract) {
90
90
  Object.assign(libraryArtifacts, manifest.libraries);
91
91
  }
92
92
  finally {
93
- Object.assign(manifest, { libraries: libraryArtifacts });
93
+ if (manifest !== undefined) {
94
+ Object.assign(manifest, { libraries: libraryArtifacts });
95
+ }
94
96
  yield fs_1.promises.writeFile(yield getManifestFile(), JSON.stringify(manifest, null, 4));
95
97
  }
96
98
  return yield getLinkedContractFactory(contract, libraries);
@@ -20,6 +20,6 @@ interface SafeMultisigTransaction {
20
20
  }
21
21
  export declare function getSafeTransactionUrl(chainId: number): string;
22
22
  export declare function getSafeRelayUrl(chainId: number): string;
23
- export declare function createMultiSendTransaction(ethers: Ethers, safeAddress: string, privateKey: string, transactions: string[], isSafeMock?: boolean): Promise<SafeMultisigTransaction>;
23
+ export declare function createMultiSendTransaction(ethers: Ethers, safeAddress: string, privateKey: string, transactions: string[], nonce?: number): Promise<SafeMultisigTransaction>;
24
24
  export declare function sendSafeTransaction(safe: string, chainId: number, safeTx: SafeMultisigTransaction): Promise<void>;
25
25
  export {};
@@ -44,44 +44,39 @@ var Network;
44
44
  (function (Network) {
45
45
  Network[Network["MAINNET"] = 1] = "MAINNET";
46
46
  Network[Network["RINKEBY"] = 4] = "RINKEBY";
47
+ Network[Network["GOERLI"] = 5] = "GOERLI";
47
48
  Network[Network["GANACHE"] = 1337] = "GANACHE";
48
49
  Network[Network["HARDHAT"] = 31337] = "HARDHAT";
49
50
  })(Network || (Network = {}));
51
+ // constants
50
52
  const ADDRESSES = {
51
53
  multiSend: {
52
54
  [Network.MAINNET]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
53
55
  [Network.RINKEBY]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
56
+ [Network.GOERLI]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
54
57
  },
55
58
  };
56
59
  const URLS = {
57
60
  safe_transaction: {
58
61
  [Network.MAINNET]: "https://safe-transaction.mainnet.gnosis.io",
59
62
  [Network.RINKEBY]: "https://safe-transaction.rinkeby.gnosis.io",
63
+ [Network.GOERLI]: "https://safe-transaction.goerli.gnosis.io",
60
64
  },
61
65
  safe_relay: {
62
66
  [Network.MAINNET]: "https://safe-relay.mainnet.gnosis.io",
63
67
  [Network.RINKEBY]: "https://safe-relay.rinkeby.gnosis.io",
68
+ [Network.GOERLI]: "https://safe-relay.goerli.gnosis.io",
64
69
  }
65
70
  };
66
- function getMultiSendAddress(chainId) {
71
+ // public functions
72
+ function getSafeTransactionUrl(chainId) {
67
73
  if (chainId === Network.MAINNET) {
68
- return ADDRESSES.multiSend[chainId];
74
+ return URLS.safe_transaction[chainId];
69
75
  }
70
76
  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
- }
80
- function getSafeTransactionUrl(chainId) {
81
- if (chainId === Network.MAINNET) {
82
77
  return URLS.safe_transaction[chainId];
83
78
  }
84
- else if (chainId === 4) {
79
+ else if (chainId === Network.GOERLI) {
85
80
  return URLS.safe_transaction[chainId];
86
81
  }
87
82
  else {
@@ -101,17 +96,7 @@ function getSafeRelayUrl(chainId) {
101
96
  }
102
97
  }
103
98
  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
- function createMultiSendTransaction(ethers, safeAddress, privateKey, transactions, isSafeMock = false) {
99
+ function createMultiSendTransaction(ethers, safeAddress, privateKey, transactions, nonce) {
115
100
  return __awaiter(this, void 0, void 0, function* () {
116
101
  const chainId = (yield ethers.provider.getNetwork()).chainId;
117
102
  const multiSendAddress = getMultiSendAddress(chainId);
@@ -119,11 +104,29 @@ function createMultiSendTransaction(ethers, safeAddress, privateKey, transaction
119
104
  const multiSend = new ethers.Contract(multiSendAddress, new ethers.utils.Interface(multiSendAbi), ethers.provider);
120
105
  const safeAbi = [{ "constant": true, "inputs": [{ "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "enum Enum.Operation", "name": "operation", "type": "uint8" }, { "internalType": "uint256", "name": "safeTxGas", "type": "uint256" }, { "internalType": "uint256", "name": "baseGas", "type": "uint256" }, { "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { "internalType": "address", "name": "gasToken", "type": "address" }, { "internalType": "address", "name": "refundReceiver", "type": "address" }, { "internalType": "uint256", "name": "_nonce", "type": "uint256" }], "name": "getTransactionHash", "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], "payable": false, "stateMutability": "view", "type": "function" }];
121
106
  const safe = new ethers.Contract(safeAddress, new ethers.utils.Interface(safeAbi), ethers.provider);
122
- let nonce = 0;
123
- if (!isSafeMock) {
107
+ let nonceValue = 0;
108
+ if (nonce === undefined) {
124
109
  try {
125
- const nonceResponse = yield axios_1.default.get(`${getSafeTransactionUrl(chainId)}/api/v1/safes/${safeAddress}/`);
126
- nonce = nonceResponse.data.nonce;
110
+ if (process.env.NONCE) {
111
+ // NONCE variable is set
112
+ if (isNaN(Number.parseInt(process.env.NONCE))) {
113
+ // NONCE variable is not a number
114
+ if (process.env.NONCE.toLowerCase() === "pending") {
115
+ nonceValue = yield getSafeNonceWithPending(chainId, safeAddress);
116
+ }
117
+ else {
118
+ nonceValue = yield getSafeNonce(chainId, safeAddress);
119
+ }
120
+ }
121
+ else {
122
+ // NONCE variable is a number
123
+ nonceValue = Number.parseInt(process.env.NONCE);
124
+ }
125
+ }
126
+ else {
127
+ // NONCE variable is not set
128
+ nonceValue = yield getSafeNonce(chainId, safeAddress);
129
+ }
127
130
  }
128
131
  catch (e) {
129
132
  if (!(e instanceof Error) || !e.toString().startsWith("Error: Can't get safe-transaction url")) {
@@ -131,6 +134,10 @@ function createMultiSendTransaction(ethers, safeAddress, privateKey, transaction
131
134
  }
132
135
  }
133
136
  }
137
+ else {
138
+ nonceValue = nonce;
139
+ }
140
+ console.log("Will send tx to Gnosis with nonce", nonceValue);
134
141
  const tx = {
135
142
  "safe": safeAddress,
136
143
  "to": multiSend.address,
@@ -142,7 +149,7 @@ function createMultiSendTransaction(ethers, safeAddress, privateKey, transaction
142
149
  "baseGas": 0,
143
150
  "gasPrice": 0,
144
151
  "refundReceiver": ethers.constants.AddressZero,
145
- "nonce": nonce, // Nonce of the Safe, transaction cannot be executed until Safe's nonce is not equal to this nonce
152
+ "nonce": nonceValue, // Nonce of the Safe, transaction cannot be executed until Safe's nonce is not equal to this nonce
146
153
  };
147
154
  const digestHex = yield safe.getTransactionHash(tx.to, tx.value, tx.data, tx.operation, tx.safeTxGas, tx.baseGas, tx.gasPrice, tx.gasToken, tx.refundReceiver, tx.nonce);
148
155
  const privateKeyBuffer = ethUtil.toBuffer(privateKey);
@@ -187,3 +194,48 @@ function sendSafeTransaction(safe, chainId, safeTx) {
187
194
  });
188
195
  }
189
196
  exports.sendSafeTransaction = sendSafeTransaction;
197
+ // private functions
198
+ function getMultiSendAddress(chainId) {
199
+ if (chainId === Network.MAINNET) {
200
+ return ADDRESSES.multiSend[chainId];
201
+ }
202
+ else if (chainId === Network.RINKEBY) {
203
+ return ADDRESSES.multiSend[chainId];
204
+ }
205
+ else if (chainId === Network.GOERLI) {
206
+ return ADDRESSES.multiSend[chainId];
207
+ }
208
+ else if ([Network.GANACHE, Network.HARDHAT].includes(chainId)) {
209
+ return ethers_1.ethers.constants.AddressZero;
210
+ }
211
+ else {
212
+ throw Error(`Can't get multiSend contract at network with chainId = ${chainId}`);
213
+ }
214
+ }
215
+ function concatTransactions(transactions) {
216
+ return "0x" + transactions.map((transaction) => {
217
+ if (transaction.startsWith("0x")) {
218
+ return transaction.slice(2);
219
+ }
220
+ else {
221
+ return transaction;
222
+ }
223
+ }).join("");
224
+ }
225
+ function getSafeNonce(chainId, safeAddress) {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ const safeInfo = yield axios_1.default.get(`${getSafeTransactionUrl(chainId)}/api/v1/safes/${safeAddress}/`);
228
+ return safeInfo.data.nonce;
229
+ });
230
+ }
231
+ function getSafeNonceWithPending(chainId, safeAddress) {
232
+ return __awaiter(this, void 0, void 0, function* () {
233
+ const allTransactions = yield axios_1.default.get(`${getSafeTransactionUrl(chainId)}/api/v1/safes/${safeAddress}/all-transactions/?executed=false&queued=true&trusted=true`);
234
+ if (allTransactions.data.results.length > 0) {
235
+ return allTransactions.data.results[0].nonce + 1;
236
+ }
237
+ else {
238
+ return 0;
239
+ }
240
+ });
241
+ }
@@ -3,5 +3,6 @@ import { Contract } from "ethers";
3
3
  import { OwnableUpgradeable } from "../typechain-types";
4
4
  export declare function getContractFactoryAndUpdateManifest(contract: string): Promise<import("ethers").ContractFactory>;
5
5
  declare type DeploymentAction<ContractManagerType extends Contract> = (safeTransactions: string[], abi: SkaleABIFile, contractManager: ContractManagerType) => Promise<void>;
6
- export declare function upgrade<ContractManagerType extends OwnableUpgradeable>(projectName: string, targetVersion: string, getDeployedVersion: (abi: SkaleABIFile) => Promise<string | undefined>, setVersion: (safeTransaction: string[], abi: SkaleABIFile, newVersion: string) => Promise<void>, safeMockAccessRequirements: string[], contractNamesToUpgrade: string[], deployNewContracts: DeploymentAction<ContractManagerType>, initialize: DeploymentAction<ContractManagerType>): Promise<void>;
6
+ declare type MultiTransactionAction<ContractManagerType extends Contract> = (abi: SkaleABIFile, contractManager: ContractManagerType) => Promise<string[][]>;
7
+ export declare function upgrade<ContractManagerType extends OwnableUpgradeable>(projectName: string, targetVersion: string, getDeployedVersion: (abi: SkaleABIFile) => Promise<string | undefined>, setVersion: (safeTransaction: string[], abi: SkaleABIFile, newVersion: string) => Promise<void>, safeMockAccessRequirements: string[], contractNamesToUpgrade: string[], deployNewContracts: DeploymentAction<ContractManagerType>, initialize: DeploymentAction<ContractManagerType>, afterUpgrade?: MultiTransactionAction<ContractManagerType>): Promise<void>;
7
8
  export {};
@@ -62,7 +62,7 @@ function getContractFactoryAndUpdateManifest(contract) {
62
62
  });
63
63
  }
64
64
  exports.getContractFactoryAndUpdateManifest = getContractFactoryAndUpdateManifest;
65
- function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, safeMockAccessRequirements, contractNamesToUpgrade, deployNewContracts, initialize) {
65
+ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, safeMockAccessRequirements, contractNamesToUpgrade, deployNewContracts, initialize, afterUpgrade) {
66
66
  return __awaiter(this, void 0, void 0, function* () {
67
67
  if (!process.env.ABI) {
68
68
  console.log(chalk_1.default.red("Set path to file with ABI and addresses to ABI environment variables"));
@@ -171,10 +171,23 @@ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, saf
171
171
  // Use random one because we most probable run tests
172
172
  privateKey = hardhat_1.ethers.Wallet.createRandom().privateKey;
173
173
  }
174
- const safeTx = yield (0, gnosis_safe_1.createMultiSendTransaction)(hardhat_1.ethers, safe, privateKey, safeTransactions, safeMock !== undefined);
174
+ const safeTx = yield (0, gnosis_safe_1.createMultiSendTransaction)(hardhat_1.ethers, safe, privateKey, safeTransactions, safeMock !== undefined ? 0 : undefined);
175
+ let transactionsBatches;
176
+ if (afterUpgrade !== undefined) {
177
+ transactionsBatches = yield afterUpgrade(abi, contractManager);
178
+ for (const { index, batch } of transactionsBatches.map((batch, index) => ({ index, batch }))) {
179
+ yield fs_1.promises.writeFile(`data/after-transactions-${index}-${version}-${hardhat_1.network.name}.json`, JSON.stringify(batch, null, 4));
180
+ }
181
+ }
175
182
  if (!safeMock) {
176
183
  const chainId = (yield hardhat_1.ethers.provider.getNetwork()).chainId;
177
184
  yield (0, gnosis_safe_1.sendSafeTransaction)(safe, chainId, safeTx);
185
+ if (transactionsBatches !== undefined) {
186
+ for (const { batch, index } of transactionsBatches.map((batch, index) => ({ batch, index }))) {
187
+ const multiSendTransaction = yield (0, gnosis_safe_1.createMultiSendTransaction)(hardhat_1.ethers, safe, privateKey, batch, safeTx.nonce + index + 1);
188
+ yield (0, gnosis_safe_1.sendSafeTransaction)(safe, chainId, multiSendTransaction);
189
+ }
190
+ }
178
191
  }
179
192
  else {
180
193
  console.log(chalk_1.default.blue("Send upgrade transactions to safe mock"));
@@ -184,8 +197,23 @@ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, saf
184
197
  value: safeTx.value,
185
198
  data: safeTx.data,
186
199
  })).wait();
200
+ if (transactionsBatches !== undefined) {
201
+ for (const batch of transactionsBatches) {
202
+ const multiSendTransaction = yield (0, gnosis_safe_1.createMultiSendTransaction)(hardhat_1.ethers, safe, privateKey, batch, 0);
203
+ yield (yield deployer.sendTransaction({
204
+ to: safeMock.address,
205
+ value: multiSendTransaction.value,
206
+ data: multiSendTransaction.data,
207
+ })).wait();
208
+ }
209
+ }
187
210
  console.log(chalk_1.default.blue("Transactions have been sent"));
188
211
  }
212
+ catch (exception) {
213
+ console.log(chalk_1.default.red("Error during upgrade"));
214
+ console.log(exception);
215
+ process.exitCode = 13;
216
+ }
189
217
  finally {
190
218
  console.log(chalk_1.default.blue("Return ownership to wallet"));
191
219
  yield (yield safeMock.transferProxyAdminOwnership(contractManager.address, deployer.address)).wait();
@@ -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 = "0x608060405260405162000f4638038062000f468339810160408190526200002691620004da565b82828282816200005860017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd62000609565b60008051602062000eff833981519152146200008457634e487b7160e01b600052600160045260246000fd5b620000928282600062000105565b50620000c2905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610462000609565b60008051602062000edf83398151915214620000ee57634e487b7160e01b600052600160045260246000fd5b620000f98262000176565b50505050505062000672565b6200011083620001d1565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2600082511180620001525750805b1562000171576200016f83836200029960201b6200026c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001a1620002c8565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001ce8162000301565b50565b620001e7816200039160201b620002981760201c565b6200024f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806200027860008051602062000eff83398151915260001b6200039b60201b620002141760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060620002c1838360405180606001604052806027815260200162000f1f602791396200039e565b9392505050565b6000620002f260008051602062000edf83398151915260001b6200039b60201b620002141760201c565b546001600160a01b0316905090565b6001600160a01b038116620003685760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840162000246565b806200027860008051602062000edf83398151915260001b6200039b60201b620002141760201c565b803b15155b919050565b90565b6060620003ab8462000391565b620004085760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840162000246565b600080856001600160a01b031685604051620004259190620005b6565b600060405180830381855af49150503d806000811462000462576040519150601f19603f3d011682016040523d82523d6000602084013e62000467565b606091505b5090925090506200047a82828662000484565b9695505050505050565b6060831562000495575081620002c1565b825115620004a65782518084602001fd5b8160405162461bcd60e51b8152600401620002469190620005d4565b80516001600160a01b03811681146200039657600080fd5b600080600060608486031215620004ef578283fd5b620004fa84620004c2565b92506200050a60208501620004c2565b60408501519092506001600160401b038082111562000527578283fd5b818601915086601f8301126200053b578283fd5b8151818111156200055057620005506200065c565b604051601f8201601f19908116603f011681019083821181831017156200057b576200057b6200065c565b8160405282815289602084870101111562000594578586fd5b620005a78360208301602088016200062d565b80955050505050509250925092565b60008251620005ca8184602087016200062d565b9190910192915050565b6000602082528251806020840152620005f58160408501602087016200062d565b601f01601f19169190910160400192915050565b6000828210156200062857634e487b7160e01b81526011600452602481fd5b500390565b60005b838110156200064a57818101518382015260200162000630565b838111156200016f5750506000910152565b634e487b7160e01b600052604160045260246000fd5b61085d80620006826000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106ed565b610118565b61005b610093366004610707565b610164565b3480156100a457600080fd5b506100ad6101da565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106ed565b610217565b3480156100f557600080fd5b506100ad610241565b6101066102a2565b610116610111610346565b610355565b565b610120610379565b6001600160a01b0316336001600160a01b0316141561015957610154816040518060200160405280600081525060006103ac565b610161565b6101616100fe565b50565b61016c610379565b6001600160a01b0316336001600160a01b031614156101cd576101c88383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103ac915050565b6101d5565b6101d56100fe565b505050565b60006101e4610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610346565b9050610214565b6102146100fe565b90565b61021f610379565b6001600160a01b0316336001600160a01b03161415610159576101548161040b565b600061024b610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610379565b606061029183836040518060600160405280602781526020016108016027913961045f565b9392505050565b803b15155b919050565b6102aa610379565b6001600160a01b0316336001600160a01b031614156103415760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b610116565b600061035061053a565b905090565b3660008037600080366000845af43d6000803e808015610374573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b6103b583610562565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806103f65750805b156101d557610405838361026c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610434610379565b604080516001600160a01b03928316815291841660208301520160405180910390a161016181610611565b606061046a84610298565b6104c55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610338565b600080856001600160a01b0316856040516104e09190610785565b600060405180830381855af49150503d806000811461051b576040519150601f19603f3d011682016040523d82523d6000602084013e610520565b606091505b509150915061053082828661069d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61039d565b61056b81610298565b6105cd5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610338565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381166106765760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610338565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036105f0565b606083156106ac575081610291565b8251156106bc5782518084602001fd5b8160405162461bcd60e51b815260040161033891906107a1565b80356001600160a01b038116811461029d57600080fd5b6000602082840312156106fe578081fd5b610291826106d6565b60008060006040848603121561071b578182fd5b610724846106d6565b9250602084013567ffffffffffffffff80821115610740578384fd5b818601915086601f830112610753578384fd5b813581811115610761578485fd5b876020828501011115610772578485fd5b6020830194508093505050509250925092565b600082516107978184602087016107d4565b9190910192915050565b60006020825282518060208401526107c08160408501602087016107d4565b601f01601f19169190910160400192915050565b60005b838110156107ef5781810151838201526020016107d7565b83811115610405575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f5c19409927d53d7936776163f06d660d061a2b4ad02a6d6ea11d18f552e1c4a64736f6c63430008020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564";
17
+ static readonly bytecode = "0x608060405260405162000f2538038062000f258339810160408190526200002691620004ff565b82828282816200005860017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd620005df565b60008051602062000ede8339815191521462000078576200007862000605565b6200008682826000620000ed565b50620000b6905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104620005df565b60008051602062000ebe83398151915214620000d657620000d662000605565b620000e1826200015e565b5050505050506200066e565b620000f883620001b9565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806200013a5750805b1562000159576200015783836200028160201b620002601760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f62000189620002b0565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001b681620002e9565b50565b620001cf816200037960201b6200028c1760201c565b620002375760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806200026060008051602062000ede83398151915260001b6200037f60201b620002081760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060620002a9838360405180606001604052806027815260200162000efe6027913962000382565b9392505050565b6000620002da60008051602062000ebe83398151915260001b6200037f60201b620002081760201c565b546001600160a01b0316919050565b6001600160a01b038116620003505760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016200022e565b806200026060008051602062000ebe83398151915260001b6200037f60201b620002081760201c565b3b151590565b90565b6060833b620003e35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200022e565b600080856001600160a01b0316856040516200040091906200061b565b600060405180830381855af49150503d80600081146200043d576040519150601f19603f3d011682016040523d82523d6000602084013e62000442565b606091505b509092509050620004558282866200045f565b9695505050505050565b6060831562000470575081620002a9565b825115620004815782518084602001fd5b8160405162461bcd60e51b81526004016200022e919062000639565b80516001600160a01b0381168114620004b557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004ed578181015183820152602001620004d3565b83811115620001575750506000910152565b6000806000606084860312156200051557600080fd5b62000520846200049d565b925062000530602085016200049d565b60408501519092506001600160401b03808211156200054e57600080fd5b818601915086601f8301126200056357600080fd5b815181811115620005785762000578620004ba565b604051601f8201601f19908116603f01168101908382118183101715620005a357620005a3620004ba565b81604052828152896020848701011115620005bd57600080fd5b620005d0836020830160208801620004d0565b80955050505050509250925092565b6000828210156200060057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b600082516200062f818460208701620004d0565b9190910192915050565b60208152600082518060208401526200065a816040850160208701620004d0565b601f01601f19169190910160400192915050565b610840806200067e6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106ca565b610118565b61005b6100933660046106e5565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106ca565b61020b565b3480156100f557600080fd5b506100ad610235565b610106610292565b610116610111610331565b61033b565b565b61012061035f565b6001600160a01b0316336001600160a01b031614156101575761015481604051806020016040528060008152506000610392565b50565b6101546100fe565b61016761035f565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610392915050565b505050565b6101c36100fe565b60006101da61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb610331565b905090565b6102086100fe565b90565b61021361035f565b6001600160a01b0316336001600160a01b0316141561015757610154816103f1565b600061023f61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb61035f565b606061028583836040518060600160405280602781526020016107e460279139610445565b9392505050565b3b151590565b61029a61035f565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb610519565b3660008037600080366000845af43d6000803e80801561035a573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039b83610541565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806103dc5750805b156101c3576103eb8383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61041a61035f565b604080516001600160a01b03928316815291841660208301520160405180910390a1610154816105e9565b6060833b6104a45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610328565b600080856001600160a01b0316856040516104bf9190610794565b600060405180830381855af49150503d80600081146104fa576040519150601f19603f3d011682016040523d82523d6000602084013e6104ff565b606091505b509150915061050f828286610675565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610383565b803b6105a55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610328565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b03811661064e5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610328565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036105c8565b60608315610684575081610285565b8251156106945782518084602001fd5b8160405162461bcd60e51b815260040161032891906107b0565b80356001600160a01b03811681146106c557600080fd5b919050565b6000602082840312156106dc57600080fd5b610285826106ae565b6000806000604084860312156106fa57600080fd5b610703846106ae565b9250602084013567ffffffffffffffff8082111561072057600080fd5b818601915086601f83011261073457600080fd5b81358181111561074357600080fd5b87602082850101111561075557600080fd5b6020830194508093505050509250925092565b60005b8381101561078357818101518382015260200161076b565b838111156103eb5750506000910152565b600082516107a6818460208701610768565b9190910192915050565b60208152600082518060208401526107cf816040850160208701610768565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f3a5325b227890d3a202519f1180cb31461c999231add379698f6d37d0c2c64f64736f6c63430008090033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564";
18
18
  static readonly abi: ({
19
19
  inputs: {
20
20
  internalType: string;
@@ -151,7 +151,7 @@ const _abi = [
151
151
  type: "receive",
152
152
  },
153
153
  ];
154
- const _bytecode = "0x608060405260405162000f4638038062000f468339810160408190526200002691620004da565b82828282816200005860017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd62000609565b60008051602062000eff833981519152146200008457634e487b7160e01b600052600160045260246000fd5b620000928282600062000105565b50620000c2905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610462000609565b60008051602062000edf83398151915214620000ee57634e487b7160e01b600052600160045260246000fd5b620000f98262000176565b50505050505062000672565b6200011083620001d1565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2600082511180620001525750805b1562000171576200016f83836200029960201b6200026c1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620001a1620002c8565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001ce8162000301565b50565b620001e7816200039160201b620002981760201c565b6200024f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806200027860008051602062000eff83398151915260001b6200039b60201b620002141760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060620002c1838360405180606001604052806027815260200162000f1f602791396200039e565b9392505050565b6000620002f260008051602062000edf83398151915260001b6200039b60201b620002141760201c565b546001600160a01b0316905090565b6001600160a01b038116620003685760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840162000246565b806200027860008051602062000edf83398151915260001b6200039b60201b620002141760201c565b803b15155b919050565b90565b6060620003ab8462000391565b620004085760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840162000246565b600080856001600160a01b031685604051620004259190620005b6565b600060405180830381855af49150503d806000811462000462576040519150601f19603f3d011682016040523d82523d6000602084013e62000467565b606091505b5090925090506200047a82828662000484565b9695505050505050565b6060831562000495575081620002c1565b825115620004a65782518084602001fd5b8160405162461bcd60e51b8152600401620002469190620005d4565b80516001600160a01b03811681146200039657600080fd5b600080600060608486031215620004ef578283fd5b620004fa84620004c2565b92506200050a60208501620004c2565b60408501519092506001600160401b038082111562000527578283fd5b818601915086601f8301126200053b578283fd5b8151818111156200055057620005506200065c565b604051601f8201601f19908116603f011681019083821181831017156200057b576200057b6200065c565b8160405282815289602084870101111562000594578586fd5b620005a78360208301602088016200062d565b80955050505050509250925092565b60008251620005ca8184602087016200062d565b9190910192915050565b6000602082528251806020840152620005f58160408501602087016200062d565b601f01601f19169190910160400192915050565b6000828210156200062857634e487b7160e01b81526011600452602481fd5b500390565b60005b838110156200064a57818101518382015260200162000630565b838111156200016f5750506000910152565b634e487b7160e01b600052604160045260246000fd5b61085d80620006826000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106ed565b610118565b61005b610093366004610707565b610164565b3480156100a457600080fd5b506100ad6101da565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106ed565b610217565b3480156100f557600080fd5b506100ad610241565b6101066102a2565b610116610111610346565b610355565b565b610120610379565b6001600160a01b0316336001600160a01b0316141561015957610154816040518060200160405280600081525060006103ac565b610161565b6101616100fe565b50565b61016c610379565b6001600160a01b0316336001600160a01b031614156101cd576101c88383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103ac915050565b6101d5565b6101d56100fe565b505050565b60006101e4610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610346565b9050610214565b6102146100fe565b90565b61021f610379565b6001600160a01b0316336001600160a01b03161415610159576101548161040b565b600061024b610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610379565b606061029183836040518060600160405280602781526020016108016027913961045f565b9392505050565b803b15155b919050565b6102aa610379565b6001600160a01b0316336001600160a01b031614156103415760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b610116565b600061035061053a565b905090565b3660008037600080366000845af43d6000803e808015610374573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b6103b583610562565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806103f65750805b156101d557610405838361026c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610434610379565b604080516001600160a01b03928316815291841660208301520160405180910390a161016181610611565b606061046a84610298565b6104c55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610338565b600080856001600160a01b0316856040516104e09190610785565b600060405180830381855af49150503d806000811461051b576040519150601f19603f3d011682016040523d82523d6000602084013e610520565b606091505b509150915061053082828661069d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61039d565b61056b81610298565b6105cd5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610338565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381166106765760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610338565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036105f0565b606083156106ac575081610291565b8251156106bc5782518084602001fd5b8160405162461bcd60e51b815260040161033891906107a1565b80356001600160a01b038116811461029d57600080fd5b6000602082840312156106fe578081fd5b610291826106d6565b60008060006040848603121561071b578182fd5b610724846106d6565b9250602084013567ffffffffffffffff80821115610740578384fd5b818601915086601f830112610753578384fd5b813581811115610761578485fd5b876020828501011115610772578485fd5b6020830194508093505050509250925092565b600082516107978184602087016107d4565b9190910192915050565b60006020825282518060208401526107c08160408501602087016107d4565b601f01601f19169190910160400192915050565b60005b838110156107ef5781810151838201526020016107d7565b83811115610405575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f5c19409927d53d7936776163f06d660d061a2b4ad02a6d6ea11d18f552e1c4a64736f6c63430008020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564";
154
+ const _bytecode = "0x608060405260405162000f2538038062000f258339810160408190526200002691620004ff565b82828282816200005860017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd620005df565b60008051602062000ede8339815191521462000078576200007862000605565b6200008682826000620000ed565b50620000b6905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104620005df565b60008051602062000ebe83398151915214620000d657620000d662000605565b620000e1826200015e565b5050505050506200066e565b620000f883620001b9565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806200013a5750805b1562000159576200015783836200028160201b620002601760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f62000189620002b0565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001b681620002e9565b50565b620001cf816200037960201b6200028c1760201c565b620002375760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806200026060008051602062000ede83398151915260001b6200037f60201b620002081760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060620002a9838360405180606001604052806027815260200162000efe6027913962000382565b9392505050565b6000620002da60008051602062000ebe83398151915260001b6200037f60201b620002081760201c565b546001600160a01b0316919050565b6001600160a01b038116620003505760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016200022e565b806200026060008051602062000ebe83398151915260001b6200037f60201b620002081760201c565b3b151590565b90565b6060833b620003e35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200022e565b600080856001600160a01b0316856040516200040091906200061b565b600060405180830381855af49150503d80600081146200043d576040519150601f19603f3d011682016040523d82523d6000602084013e62000442565b606091505b509092509050620004558282866200045f565b9695505050505050565b6060831562000470575081620002a9565b825115620004815782518084602001fd5b8160405162461bcd60e51b81526004016200022e919062000639565b80516001600160a01b0381168114620004b557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004ed578181015183820152602001620004d3565b83811115620001575750506000910152565b6000806000606084860312156200051557600080fd5b62000520846200049d565b925062000530602085016200049d565b60408501519092506001600160401b03808211156200054e57600080fd5b818601915086601f8301126200056357600080fd5b815181811115620005785762000578620004ba565b604051601f8201601f19908116603f01168101908382118183101715620005a357620005a3620004ba565b81604052828152896020848701011115620005bd57600080fd5b620005d0836020830160208801620004d0565b80955050505050509250925092565b6000828210156200060057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b600082516200062f818460208701620004d0565b9190910192915050565b60208152600082518060208401526200065a816040850160208701620004d0565b601f01601f19169190910160400192915050565b610840806200067e6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106ca565b610118565b61005b6100933660046106e5565b61015f565b3480156100a457600080fd5b506100ad6101d0565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106ca565b61020b565b3480156100f557600080fd5b506100ad610235565b610106610292565b610116610111610331565b61033b565b565b61012061035f565b6001600160a01b0316336001600160a01b031614156101575761015481604051806020016040528060008152506000610392565b50565b6101546100fe565b61016761035f565b6001600160a01b0316336001600160a01b031614156101c8576101c38383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610392915050565b505050565b6101c36100fe565b60006101da61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb610331565b905090565b6102086100fe565b90565b61021361035f565b6001600160a01b0316336001600160a01b0316141561015757610154816103f1565b600061023f61035f565b6001600160a01b0316336001600160a01b03161415610200576101fb61035f565b606061028583836040518060600160405280602781526020016107e460279139610445565b9392505050565b3b151590565b61029a61035f565b6001600160a01b0316336001600160a01b031614156101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101fb610519565b3660008037600080366000845af43d6000803e80801561035a573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039b83610541565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806103dc5750805b156101c3576103eb8383610260565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61041a61035f565b604080516001600160a01b03928316815291841660208301520160405180910390a1610154816105e9565b6060833b6104a45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610328565b600080856001600160a01b0316856040516104bf9190610794565b600060405180830381855af49150503d80600081146104fa576040519150601f19603f3d011682016040523d82523d6000602084013e6104ff565b606091505b509150915061050f828286610675565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610383565b803b6105a55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610328565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b03811661064e5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610328565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036105c8565b60608315610684575081610285565b8251156106945782518084602001fd5b8160405162461bcd60e51b815260040161032891906107b0565b80356001600160a01b03811681146106c557600080fd5b919050565b6000602082840312156106dc57600080fd5b610285826106ae565b6000806000604084860312156106fa57600080fd5b610703846106ae565b9250602084013567ffffffffffffffff8082111561072057600080fd5b818601915086601f83011261073457600080fd5b81358181111561074357600080fd5b87602082850101111561075557600080fd5b6020830194508093505050509250925092565b60005b8381101561078357818101518382015260200161076b565b838111156103eb5750506000910152565b600082516107a6818460208701610768565b9190910192915050565b60208152600082518060208401526107cf816040850160208701610768565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f3a5325b227890d3a202519f1180cb31461c999231add379698f6d37d0c2c64f64736f6c63430008090033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564";
155
155
  const isSuperArgs = (xs) => xs.length > 1;
156
156
  class AdminUpgradeabilityProxy__factory extends ethers_1.ContractFactory {
157
157
  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 = "0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610759806100616000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead146101645761007b565b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610515565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610554565b610292565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461058c565b61031c565b34801561013057600080fd5b506100d161013f366004610554565b6103ad565b34801561015057600080fd5b506100d161015f366004610515565b610405565b34801561017057600080fd5b506100a061017f366004610515565b6104ef565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d9190610538565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f906106c0565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102bc5760405162461bcd60e51b815260040161023f906106c0565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561030057600080fd5b505af1158015610314573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103465760405162461bcd60e51b815260040161023f906106c0565b60405163278f794360e11b81526001600160a01b03841690634f1ef286903490610376908690869060040161065d565b6000604051808303818588803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260040161023f906106c0565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102e6565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260040161023f906106c0565b6001600160a01b0381166104945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b600060208284031215610526578081fd5b81356105318161070b565b9392505050565b600060208284031215610549578081fd5b81516105318161070b565b60008060408385031215610566578081fd5b82356105718161070b565b915060208301356105818161070b565b809150509250929050565b6000806000606084860312156105a0578081fd5b83356105ab8161070b565b925060208401356105bb8161070b565b9150604084013567ffffffffffffffff808211156105d7578283fd5b818601915086601f8301126105ea578283fd5b8135818111156105fc576105fc6106f5565b604051601f8201601f19908116603f01168101908382118183101715610624576106246106f5565b8160405282815289602084870101111561063c578586fd5b82602086016020830137856020848301015280955050505050509250925092565b600060018060a01b038416825260206040818401528351806040850152825b818110156106985785810183015185820160600152820161067c565b818111156106a95783606083870101525b50601f01601f191692909201606001949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461072057600080fd5b5056fea2646970667358221220d849f96f3086b9f82cdcf665adb8c697ace05638da1c7c16ab2d26293717af6764736f6c63430008020033";
17
+ static readonly bytecode = "0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610763806100616000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b36600461052d565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610551565b610292565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f3660046105a0565b61031c565b34801561013057600080fd5b506100d161013f366004610551565b6103ad565b34801561015057600080fd5b506100d161015f36600461052d565b610405565b34801561017057600080fd5b506100a061017f36600461052d565b6104ef565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d9190610676565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f90610693565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102bc5760405162461bcd60e51b815260040161023f90610693565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561030057600080fd5b505af1158015610314573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103465760405162461bcd60e51b815260040161023f90610693565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061037690869086906004016106c8565b6000604051808303818588803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260040161023f90610693565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102e6565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260040161023f90610693565b6001600160a01b0381166104945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6001600160a01b038116811461052a57600080fd5b50565b60006020828403121561053f57600080fd5b813561054a81610515565b9392505050565b6000806040838503121561056457600080fd5b823561056f81610515565b9150602083013561057f81610515565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156105b557600080fd5b83356105c081610515565b925060208401356105d081610515565b9150604084013567ffffffffffffffff808211156105ed57600080fd5b818601915086601f83011261060157600080fd5b8135818111156106135761061361058a565b604051601f8201601f19908116603f0116810190838211818310171561063b5761063b61058a565b8160405282815289602084870101111561065457600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561068857600080fd5b815161054a81610515565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60018060a01b038316815260006020604081840152835180604085015260005b81811015610704578581018301518582016060015282016106e8565b81811115610716576000606083870101525b50601f01601f19169290920160600194935050505056fea264697066735822122036f6852a5df0655a14e69e29e9ab5e34ffa2e6d97259f414f152f3aff72edd4864736f6c63430008090033";
18
18
  static readonly abi: ({
19
19
  anonymous: boolean;
20
20
  inputs: {
@@ -156,7 +156,7 @@ const _abi = [
156
156
  type: "function",
157
157
  },
158
158
  ];
159
- const _bytecode = "0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610759806100616000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead146101645761007b565b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610515565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610554565b610292565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461058c565b61031c565b34801561013057600080fd5b506100d161013f366004610554565b6103ad565b34801561015057600080fd5b506100d161015f366004610515565b610405565b34801561017057600080fd5b506100a061017f366004610515565b6104ef565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d9190610538565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f906106c0565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102bc5760405162461bcd60e51b815260040161023f906106c0565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561030057600080fd5b505af1158015610314573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103465760405162461bcd60e51b815260040161023f906106c0565b60405163278f794360e11b81526001600160a01b03841690634f1ef286903490610376908690869060040161065d565b6000604051808303818588803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260040161023f906106c0565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102e6565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260040161023f906106c0565b6001600160a01b0381166104945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b600060208284031215610526578081fd5b81356105318161070b565b9392505050565b600060208284031215610549578081fd5b81516105318161070b565b60008060408385031215610566578081fd5b82356105718161070b565b915060208301356105818161070b565b809150509250929050565b6000806000606084860312156105a0578081fd5b83356105ab8161070b565b925060208401356105bb8161070b565b9150604084013567ffffffffffffffff808211156105d7578283fd5b818601915086601f8301126105ea578283fd5b8135818111156105fc576105fc6106f5565b604051601f8201601f19908116603f01168101908382118183101715610624576106246106f5565b8160405282815289602084870101111561063c578586fd5b82602086016020830137856020848301015280955050505050509250925092565b600060018060a01b038416825260206040818401528351806040850152825b818110156106985785810183015185820160600152820161067c565b818111156106a95783606083870101525b50601f01601f191692909201606001949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461072057600080fd5b5056fea2646970667358221220d849f96f3086b9f82cdcf665adb8c697ace05638da1c7c16ab2d26293717af6764736f6c63430008020033";
159
+ const _bytecode = "0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610763806100616000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b36600461052d565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610551565b610292565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f3660046105a0565b61031c565b34801561013057600080fd5b506100d161013f366004610551565b6103ad565b34801561015057600080fd5b506100d161015f36600461052d565b610405565b34801561017057600080fd5b506100a061017f36600461052d565b6104ef565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d9190610676565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f90610693565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102bc5760405162461bcd60e51b815260040161023f90610693565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561030057600080fd5b505af1158015610314573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103465760405162461bcd60e51b815260040161023f90610693565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061037690869086906004016106c8565b6000604051808303818588803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260040161023f90610693565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102e6565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260040161023f90610693565b6001600160a01b0381166104945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6001600160a01b038116811461052a57600080fd5b50565b60006020828403121561053f57600080fd5b813561054a81610515565b9392505050565b6000806040838503121561056457600080fd5b823561056f81610515565b9150602083013561057f81610515565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156105b557600080fd5b83356105c081610515565b925060208401356105d081610515565b9150604084013567ffffffffffffffff808211156105ed57600080fd5b818601915086601f83011261060157600080fd5b8135818111156106135761061361058a565b604051601f8201601f19908116603f0116810190838211818310171561063b5761063b61058a565b8160405282815289602084870101111561065457600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561068857600080fd5b815161054a81610515565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60018060a01b038316815260006020604081840152835180604085015260005b81811015610704578581018301518582016060015282016106e8565b81811115610716576000606083870101525b50601f01601f19169290920160600194935050505056fea264697066735822122036f6852a5df0655a14e69e29e9ab5e34ffa2e6d97259f414f152f3aff72edd4864736f6c63430008090033";
160
160
  const isSuperArgs = (xs) => xs.length > 1;
161
161
  class ProxyAdmin__factory extends ethers_1.ContractFactory {
162
162
  constructor(...args) {
@@ -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 = "0x60806040523480156200001157600080fd5b506000620000206001620000b6565b9050801562000039576000805461ff0019166101001790555b6200004e620001c860201b6200039a1760201c565b604080516020810190915260008152620000689062000230565b8015620000af576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000381565b60008054610100900460ff16156200014f578160ff166001148015620000ef5750620000ed30620002bf60201b620003c91760201c565b155b620001475760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60005460ff808416911610620001ae5760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200013e565b506000805460ff191660ff92909216919091179055600190565b600054610100900460ff16620002245760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e620002ce565b565b805160205b81811015620002ba578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146200027e57600181146200028f576200029a565b6000808585888a5af191506200029a565b6000808585895af491505b5080620002a657600080fd5b505080605501850194505050505062000235565b505050565b6001600160a01b03163b151590565b600054610100900460ff166200032a5760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e33603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61092180620003916000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638d80ff0a116100665780638d80ff0a146101075780638da5cb5b1461011a578063d8d11f7814610135578063f2fde38b14610148578063f5dcb7bb1461015b57600080fd5b806312cc533f146100985780632bf613a5146100ad578063715018a6146100e757806388f8bae1146100ef575b600080fd5b6100ab6100a63660046105a9565b610182565b005b6100d47fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d881565b6040519081526020015b60405180910390f35b6100ab610214565b6100f7600181565b60405190151581526020016100de565b6100ab6101153660046105f8565b61024a565b6033546040516001600160a01b0390911681526020016100de565b6100d46101433660046106b8565b6102d2565b6100ab6101563660046107a2565b6102ff565b6100d47f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921881565b6033546001600160a01b031633146101b55760405162461bcd60e51b81526004016101ac906107c6565b60405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156101f857600080fd5b505af115801561020c573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461023e5760405162461bcd60e51b81526004016101ac906107c6565b61024860006103d8565b565b805160205b818110156102cd578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461029457600181146102a4576102af565b6000808585888a5af191506102af565b6000808585895af491505b50806102ba57600080fd5b505080605501850194505050505061024f565b505050565b60006102e78c8c8c8c8c8c8c8c8c8c8c61042a565b8051906020012090509b9a5050505050505050505050565b6033546001600160a01b031633146103295760405162461bcd60e51b81526004016101ac906107c6565b6001600160a01b03811661038e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ac565b610397816103d8565b50565b600054610100900460ff166103c15760405162461bcd60e51b81526004016101ac906107fb565b610248610554565b6001600160a01b03163b151590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d88d8d8d8d604051610461929190610846565b604051908190038120610487949392918e908e908e908e908e908e908e90602001610856565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b610507604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b600054610100900460ff1661057b5760405162461bcd60e51b81526004016101ac906107fb565b610248336103d8565b6001600160a01b038116811461039757600080fd5b80356105a481610584565b919050565b600080604083850312156105bc57600080fd5b82356105c781610584565b915060208301356105d781610584565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561060a57600080fd5b813567ffffffffffffffff8082111561062257600080fd5b818401915084601f83011261063657600080fd5b813581811115610648576106486105e2565b604051601f8201601f19908116603f01168101908382118183101715610670576106706105e2565b8160405282815287602084870101111561068957600080fd5b826020860160208301376000928101602001929092525095945050505050565b8035600281106105a457600080fd5b60008060008060008060008060008060006101408c8e0312156106da57600080fd5b8b356106e581610584565b9a5060208c0135995060408c013567ffffffffffffffff8082111561070957600080fd5b818e0191508e601f83011261071d57600080fd5b81358181111561072c57600080fd5b8f602082850101111561073e57600080fd5b602083019b50809a5050505061075660608d016106a9565b965060808c0135955060a08c0135945060c08c0135935061077960e08d01610599565b92506107886101008d01610599565b91506101208c013590509295989b509295989b9093969950565b6000602082840312156107b457600080fd5b81356107bf81610584565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8183823760009101908152919050565b8b81526001600160a01b038b166020820152604081018a90526060810189905261016081016002891061089957634e487b7160e01b600052602160045260246000fd5b8860808301528760a08301528660c08301528560e08301526108c76101008301866001600160a01b03169052565b6001600160a01b03939093166101208201526101400152999850505050505050505056fea264697066735822122009f92f3f8147620e576fa16549dc3b015ae4033d658fbf1ed5e761406ba193ec64736f6c634300080b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
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 = "0x60806040523480156200001157600080fd5b506000620000206001620000b6565b9050801562000039576000805461ff0019166101001790555b6200004e620001c860201b6200039a1760201c565b604080516020810190915260008152620000689062000230565b8015620000af576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000381565b60008054610100900460ff16156200014f578160ff166001148015620000ef5750620000ed30620002bf60201b620003c91760201c565b155b620001475760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60005460ff808416911610620001ae5760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200013e565b506000805460ff191660ff92909216919091179055600190565b600054610100900460ff16620002245760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e620002ce565b565b805160205b81811015620002ba578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146200027e57600181146200028f576200029a565b6000808585888a5af191506200029a565b6000808585895af491505b5080620002a657600080fd5b505080605501850194505050505062000235565b505050565b6001600160a01b03163b151590565b600054610100900460ff166200032a5760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e33603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61092180620003916000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638d80ff0a116100665780638d80ff0a146101075780638da5cb5b1461011a578063d8d11f7814610135578063f2fde38b14610148578063f5dcb7bb1461015b57600080fd5b806312cc533f146100985780632bf613a5146100ad578063715018a6146100e757806388f8bae1146100ef575b600080fd5b6100ab6100a63660046105a9565b610182565b005b6100d47fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d881565b6040519081526020015b60405180910390f35b6100ab610214565b6100f7600181565b60405190151581526020016100de565b6100ab6101153660046105f8565b61024a565b6033546040516001600160a01b0390911681526020016100de565b6100d46101433660046106b8565b6102d2565b6100ab6101563660046107a2565b6102ff565b6100d47f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921881565b6033546001600160a01b031633146101b55760405162461bcd60e51b81526004016101ac906107c6565b60405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156101f857600080fd5b505af115801561020c573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461023e5760405162461bcd60e51b81526004016101ac906107c6565b61024860006103d8565b565b805160205b818110156102cd578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461029457600181146102a4576102af565b6000808585888a5af191506102af565b6000808585895af491505b50806102ba57600080fd5b505080605501850194505050505061024f565b505050565b60006102e78c8c8c8c8c8c8c8c8c8c8c61042a565b8051906020012090509b9a5050505050505050505050565b6033546001600160a01b031633146103295760405162461bcd60e51b81526004016101ac906107c6565b6001600160a01b03811661038e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ac565b610397816103d8565b50565b600054610100900460ff166103c15760405162461bcd60e51b81526004016101ac906107fb565b610248610554565b6001600160a01b03163b151590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d88d8d8d8d604051610461929190610846565b604051908190038120610487949392918e908e908e908e908e908e908e90602001610856565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b610507604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b600054610100900460ff1661057b5760405162461bcd60e51b81526004016101ac906107fb565b610248336103d8565b6001600160a01b038116811461039757600080fd5b80356105a481610584565b919050565b600080604083850312156105bc57600080fd5b82356105c781610584565b915060208301356105d781610584565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561060a57600080fd5b813567ffffffffffffffff8082111561062257600080fd5b818401915084601f83011261063657600080fd5b813581811115610648576106486105e2565b604051601f8201601f19908116603f01168101908382118183101715610670576106706105e2565b8160405282815287602084870101111561068957600080fd5b826020860160208301376000928101602001929092525095945050505050565b8035600281106105a457600080fd5b60008060008060008060008060008060006101408c8e0312156106da57600080fd5b8b356106e581610584565b9a5060208c0135995060408c013567ffffffffffffffff8082111561070957600080fd5b818e0191508e601f83011261071d57600080fd5b81358181111561072c57600080fd5b8f602082850101111561073e57600080fd5b602083019b50809a5050505061075660608d016106a9565b965060808c0135955060a08c0135945060c08c0135935061077960e08d01610599565b92506107886101008d01610599565b91506101208c013590509295989b509295989b9093969950565b6000602082840312156107b457600080fd5b81356107bf81610584565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8183823760009101908152919050565b8b81526001600160a01b038b166020820152604081018a90526060810189905261016081016002891061089957634e487b7160e01b600052602160045260246000fd5b8860808301528760a08301528660c08301528560e08301526108c76101008301866001600160a01b03169052565b6001600160a01b03939093166101208201526101400152999850505050505050505056fea264697066735822122009f92f3f8147620e576fa16549dc3b015ae4033d658fbf1ed5e761406ba193ec64736f6c634300080b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
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) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skalenetwork/upgrade-tools",
3
- "version": "1.0.0-develop.2",
3
+ "version": "1.0.0-develop.21",
4
4
  "description": "Scripts to support upgrades of smart contracts",
5
5
  "files": [
6
6
  "dist/**/*"