@skalenetwork/upgrade-tools 0.0.1-custom.9 → 0.0.1-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +21 -1
  2. package/dist/src/gnosis-safe.d.ts +1 -1
  3. package/dist/src/gnosis-safe.js +12 -32
  4. package/dist/src/index.js +5 -1
  5. package/dist/src/upgrade.d.ts +2 -1
  6. package/dist/src/upgrade.js +4 -3
  7. package/dist/typechain-types/AccessControlEnumerableUpgradeable.d.ts +8 -0
  8. package/dist/typechain-types/AccessControlUpgradeable.d.ts +8 -0
  9. package/dist/typechain-types/ContextUpgradeable.d.ts +40 -0
  10. package/dist/typechain-types/ContextUpgradeable.js +2 -0
  11. package/dist/typechain-types/ERC165Upgradeable.d.ts +13 -3
  12. package/dist/typechain-types/ISafeMock.d.ts +20 -1
  13. package/dist/typechain-types/Initializable.d.ts +40 -0
  14. package/dist/typechain-types/Initializable.js +2 -0
  15. package/dist/typechain-types/OwnableUpgradeable.d.ts +8 -0
  16. package/dist/typechain-types/SafeMock.d.ts +44 -1
  17. package/dist/typechain-types/factories/AccessControlEnumerableUpgradeable__factory.js +13 -0
  18. package/dist/typechain-types/factories/AccessControlUpgradeable__factory.js +13 -0
  19. package/dist/typechain-types/factories/ContextUpgradeable__factory.d.ts +18 -0
  20. package/dist/typechain-types/factories/ContextUpgradeable__factory.js +32 -0
  21. package/dist/typechain-types/factories/ERC165Upgradeable__factory.d.ts +15 -2
  22. package/dist/typechain-types/factories/ERC165Upgradeable__factory.js +13 -0
  23. package/dist/typechain-types/factories/ISafeMock__factory.d.ts +5 -1
  24. package/dist/typechain-types/factories/ISafeMock__factory.js +64 -0
  25. package/dist/typechain-types/factories/Initializable__factory.d.ts +18 -0
  26. package/dist/typechain-types/factories/Initializable__factory.js +32 -0
  27. package/dist/typechain-types/factories/OwnableUpgradeable__factory.js +13 -0
  28. package/dist/typechain-types/factories/SafeMock__factory.d.ts +4 -11
  29. package/dist/typechain-types/factories/SafeMock__factory.js +104 -1
  30. package/dist/typechain-types/index.d.ts +4 -0
  31. package/dist/typechain-types/index.js +5 -1
  32. package/package.json +19 -8
package/README.md CHANGED
@@ -1,2 +1,22 @@
1
1
  # upgrade-tools
2
- Scripts to support upgrades of smart contracts
2
+
3
+ Scripts to support upgrades of smart contracts. The package contains common used functions for writing hardhat scripts for smart contracts deployment and upgrade.
4
+
5
+ ## Upgrade scripts
6
+
7
+ To write upgrade script import `upgrade` function.
8
+
9
+ ```typescript
10
+ import { upgrade } from "@skalenetwork/upgrade-tools"
11
+ ```
12
+
13
+ Then call it with parameters below:
14
+
15
+ - `projectName` - project name
16
+ - `targetVersion` - version of smart contracts that can be upgraded by the script
17
+ - `getDeployedVersion` - a function to request current version from smart contracts
18
+ - `setVersion` - function that sets version to smart contracts
19
+ - `safeMockAccessRequirements` - list of smart contracts that requires ownership changing for successful upgrade (when EOA + SafeMock are used during upgrade)
20
+ - `contractNamesToUpgrade` - list of smart contracts to upgrade
21
+ - `deployNewContracts` - optional - a function that deploys new smart contracts
22
+ - `initialize` - optional - a function that setup smart contracts after upgrade
@@ -1,4 +1,4 @@
1
- import type { ethers } from "ethers";
1
+ import { ethers } from "ethers";
2
2
  import { HardhatEthersHelpers } from "@nomiclabs/hardhat-ethers/types";
3
3
  declare type Ethers = typeof ethers & HardhatEthersHelpers;
4
4
  interface SafeMultisigTransaction {
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -33,9 +37,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
37
  Object.defineProperty(exports, "__esModule", { value: true });
34
38
  exports.sendSafeTransaction = exports.createMultiSendTransaction = exports.getSafeRelayUrl = exports.getSafeTransactionUrl = void 0;
35
39
  const axios_1 = __importDefault(require("axios"));
36
- const ethers_eip712_1 = require("ethers-eip712");
37
40
  const ethUtil = __importStar(require("ethereumjs-util"));
38
41
  const chalk_1 = __importDefault(require("chalk"));
42
+ const ethers_1 = require("ethers");
39
43
  var Network;
40
44
  (function (Network) {
41
45
  Network[Network["MAINNET"] = 1] = "MAINNET";
@@ -43,7 +47,6 @@ var Network;
43
47
  Network[Network["GANACHE"] = 1337] = "GANACHE";
44
48
  Network[Network["HARDHAT"] = 31337] = "HARDHAT";
45
49
  })(Network || (Network = {}));
46
- const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
47
50
  const ADDRESSES = {
48
51
  multiSend: {
49
52
  [Network.MAINNET]: "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
@@ -68,7 +71,7 @@ function getMultiSendAddress(chainId) {
68
71
  return ADDRESSES.multiSend[chainId];
69
72
  }
70
73
  else if ([Network.GANACHE, Network.HARDHAT].includes(chainId)) {
71
- return ZERO_ADDRESS;
74
+ return ethers_1.ethers.constants.AddressZero;
72
75
  }
73
76
  else {
74
77
  throw Error(`Can't get multiSend contract at network with chainId = ${chainId}`);
@@ -114,6 +117,8 @@ function createMultiSendTransaction(ethers, safeAddress, privateKey, transaction
114
117
  const multiSendAddress = getMultiSendAddress(chainId);
115
118
  const multiSendAbi = [{ "constant": false, "inputs": [{ "internalType": "bytes", "name": "transactions", "type": "bytes" }], "name": "multiSend", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }];
116
119
  const multiSend = new ethers.Contract(multiSendAddress, new ethers.utils.Interface(multiSendAbi), ethers.provider);
120
+ 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
+ const safe = new ethers.Contract(safeAddress, new ethers.utils.Interface(safeAbi), ethers.provider);
117
122
  let nonce = 0;
118
123
  if (!isSafeMock) {
119
124
  try {
@@ -132,39 +137,14 @@ function createMultiSendTransaction(ethers, safeAddress, privateKey, transaction
132
137
  "value": 0,
133
138
  "data": multiSend.interface.encodeFunctionData("multiSend", [concatTransactions(transactions)]),
134
139
  "operation": 1,
135
- "gasToken": ZERO_ADDRESS,
140
+ "gasToken": ethers.constants.AddressZero,
136
141
  "safeTxGas": 0,
137
142
  "baseGas": 0,
138
143
  "gasPrice": 0,
139
- "refundReceiver": ZERO_ADDRESS,
144
+ "refundReceiver": ethers.constants.AddressZero,
140
145
  "nonce": nonce, // Nonce of the Safe, transaction cannot be executed until Safe's nonce is not equal to this nonce
141
146
  };
142
- const typedData = {
143
- types: {
144
- EIP712Domain: [
145
- { name: "verifyingContract", type: "address" },
146
- ],
147
- SafeTx: [
148
- { type: "address", name: "to" },
149
- { type: "uint256", name: "value" },
150
- { type: "bytes", name: "data" },
151
- { type: "uint8", name: "operation" },
152
- { type: "uint256", name: "safeTxGas" },
153
- { type: "uint256", name: "baseGas" },
154
- { type: "uint256", name: "gasPrice" },
155
- { type: "address", name: "gasToken" },
156
- { type: "address", name: "refundReceiver" },
157
- { type: "uint256", name: "nonce" },
158
- ]
159
- },
160
- primaryType: 'SafeTx',
161
- domain: {
162
- verifyingContract: safeAddress
163
- },
164
- message: Object.assign(Object.assign({}, tx), { data: ethers.utils.arrayify(tx.data) })
165
- };
166
- const digest = ethers_eip712_1.TypedDataUtils.encodeDigest(typedData);
167
- const digestHex = ethers.utils.hexlify(digest);
147
+ 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);
168
148
  const privateKeyBuffer = ethUtil.toBuffer(privateKey);
169
149
  const { r, s, v } = ethUtil.ecsign(ethUtil.toBuffer(digestHex), privateKeyBuffer);
170
150
  const signature = ethUtil.toRpcSig(v, r, s).toString();
package/dist/src/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1,6 +1,7 @@
1
1
  import { SkaleABIFile } from "./types";
2
2
  import { Contract } from "ethers";
3
+ import { OwnableUpgradeable } from "../typechain-types";
3
4
  export declare function getContractFactoryAndUpdateManifest(contract: string): Promise<import("ethers").ContractFactory>;
4
5
  declare type DeploymentAction<ContractManagerType extends Contract> = (safeTransactions: string[], abi: SkaleABIFile, contractManager: ContractManagerType) => Promise<void>;
5
- export declare function upgrade<ContractManagerType extends Contract>(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
+ 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
7
  export {};
@@ -89,7 +89,7 @@ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, saf
89
89
  const [deployer] = yield hardhat_1.ethers.getSigners();
90
90
  let safe = yield proxyAdmin.owner();
91
91
  const safeTransactions = [];
92
- let safeMock;
92
+ let safeMock = undefined;
93
93
  if ((yield hardhat_1.ethers.provider.getCode(safe)) === "0x") {
94
94
  console.log("Owner is not a contract");
95
95
  if (deployer.address !== safe) {
@@ -98,7 +98,7 @@ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, saf
98
98
  }
99
99
  console.log(chalk_1.default.blue("Deploy SafeMock to simulate upgrade via multisig"));
100
100
  const safeMockFactory = yield hardhat_1.ethers.getContractFactory("SafeMock");
101
- safeMock = (yield safeMockFactory.deploy());
101
+ safeMock = yield safeMockFactory.deploy();
102
102
  yield safeMock.deployTransaction.wait();
103
103
  console.log(chalk_1.default.blue("Transfer ownership to SafeMock"));
104
104
  safe = safeMock.address;
@@ -115,7 +115,7 @@ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, saf
115
115
  else {
116
116
  try {
117
117
  const safeMockFactory = yield hardhat_1.ethers.getContractFactory("SafeMock");
118
- const checkSafeMock = (safeMockFactory.attach(safe));
118
+ const checkSafeMock = safeMockFactory.attach(safe);
119
119
  if (yield checkSafeMock.IS_SAFE_MOCK()) {
120
120
  safeMock = checkSafeMock;
121
121
  }
@@ -184,6 +184,7 @@ function upgrade(projectName, targetVersion, getDeployedVersion, setVersion, saf
184
184
  value: safeTx.value,
185
185
  data: safeTx.data,
186
186
  })).wait();
187
+ console.log(chalk_1.default.blue("Transactions have been sent"));
187
188
  }
188
189
  finally {
189
190
  console.log(chalk_1.default.blue("Return ownership to wallet"));
@@ -34,14 +34,20 @@ export interface AccessControlEnumerableUpgradeableInterface extends utils.Inter
34
34
  decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
35
35
  decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
36
36
  events: {
37
+ "Initialized(uint8)": EventFragment;
37
38
  "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;
38
39
  "RoleGranted(bytes32,address,address)": EventFragment;
39
40
  "RoleRevoked(bytes32,address,address)": EventFragment;
40
41
  };
42
+ getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
41
43
  getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;
42
44
  getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
43
45
  getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
44
46
  }
47
+ export declare type InitializedEvent = TypedEvent<[number], {
48
+ version: number;
49
+ }>;
50
+ export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
45
51
  export declare type RoleAdminChangedEvent = TypedEvent<[
46
52
  string,
47
53
  string,
@@ -131,6 +137,8 @@ export interface AccessControlEnumerableUpgradeable extends BaseContract {
131
137
  supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<boolean>;
132
138
  };
133
139
  filters: {
140
+ "Initialized(uint8)"(version?: null): InitializedEventFilter;
141
+ Initialized(version?: null): InitializedEventFilter;
134
142
  "RoleAdminChanged(bytes32,bytes32,bytes32)"(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
135
143
  RoleAdminChanged(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
136
144
  "RoleGranted(bytes32,address,address)"(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleGrantedEventFilter;
@@ -28,14 +28,20 @@ export interface AccessControlUpgradeableInterface extends utils.Interface {
28
28
  decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
29
29
  decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
30
30
  events: {
31
+ "Initialized(uint8)": EventFragment;
31
32
  "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;
32
33
  "RoleGranted(bytes32,address,address)": EventFragment;
33
34
  "RoleRevoked(bytes32,address,address)": EventFragment;
34
35
  };
36
+ getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
35
37
  getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;
36
38
  getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
37
39
  getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
38
40
  }
41
+ export declare type InitializedEvent = TypedEvent<[number], {
42
+ version: number;
43
+ }>;
44
+ export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
39
45
  export declare type RoleAdminChangedEvent = TypedEvent<[
40
46
  string,
41
47
  string,
@@ -119,6 +125,8 @@ export interface AccessControlUpgradeable extends BaseContract {
119
125
  supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<boolean>;
120
126
  };
121
127
  filters: {
128
+ "Initialized(uint8)"(version?: null): InitializedEventFilter;
129
+ Initialized(version?: null): InitializedEventFilter;
122
130
  "RoleAdminChanged(bytes32,bytes32,bytes32)"(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
123
131
  RoleAdminChanged(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
124
132
  "RoleGranted(bytes32,address,address)"(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleGrantedEventFilter;
@@ -0,0 +1,40 @@
1
+ import { BaseContract, Signer, utils } from "ethers";
2
+ import { EventFragment } from "@ethersproject/abi";
3
+ import { Listener, Provider } from "@ethersproject/providers";
4
+ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
5
+ export interface ContextUpgradeableInterface extends utils.Interface {
6
+ contractName: "ContextUpgradeable";
7
+ functions: {};
8
+ events: {
9
+ "Initialized(uint8)": EventFragment;
10
+ };
11
+ getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
12
+ }
13
+ export declare type InitializedEvent = TypedEvent<[number], {
14
+ version: number;
15
+ }>;
16
+ export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
17
+ export interface ContextUpgradeable extends BaseContract {
18
+ contractName: "ContextUpgradeable";
19
+ connect(signerOrProvider: Signer | Provider | string): this;
20
+ attach(addressOrName: string): this;
21
+ deployed(): Promise<this>;
22
+ interface: ContextUpgradeableInterface;
23
+ queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
24
+ listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
25
+ listeners(eventName?: string): Array<Listener>;
26
+ removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
27
+ removeAllListeners(eventName?: string): this;
28
+ off: OnEvent<this>;
29
+ on: OnEvent<this>;
30
+ once: OnEvent<this>;
31
+ removeListener: OnEvent<this>;
32
+ functions: {};
33
+ callStatic: {};
34
+ filters: {
35
+ "Initialized(uint8)"(version?: null): InitializedEventFilter;
36
+ Initialized(version?: null): InitializedEventFilter;
37
+ };
38
+ estimateGas: {};
39
+ populateTransaction: {};
40
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
1
  import { BaseContract, BigNumber, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from "ethers";
2
- import { FunctionFragment, Result } from "@ethersproject/abi";
2
+ import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
3
3
  import { Listener, Provider } from "@ethersproject/providers";
4
4
  import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
5
5
  export interface ERC165UpgradeableInterface extends utils.Interface {
@@ -9,8 +9,15 @@ export interface ERC165UpgradeableInterface extends utils.Interface {
9
9
  };
10
10
  encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
11
11
  decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
12
- events: {};
12
+ events: {
13
+ "Initialized(uint8)": EventFragment;
14
+ };
15
+ getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
13
16
  }
17
+ export declare type InitializedEvent = TypedEvent<[number], {
18
+ version: number;
19
+ }>;
20
+ export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
14
21
  export interface ERC165Upgradeable extends BaseContract {
15
22
  contractName: "ERC165Upgradeable";
16
23
  connect(signerOrProvider: Signer | Provider | string): this;
@@ -33,7 +40,10 @@ export interface ERC165Upgradeable extends BaseContract {
33
40
  callStatic: {
34
41
  supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<boolean>;
35
42
  };
36
- filters: {};
43
+ filters: {
44
+ "Initialized(uint8)"(version?: null): InitializedEventFilter;
45
+ Initialized(version?: null): InitializedEventFilter;
46
+ };
37
47
  estimateGas: {
38
48
  supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
39
49
  };
@@ -1,15 +1,29 @@
1
- import { BaseContract, BigNumber, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
1
+ import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
2
2
  import { FunctionFragment, Result } from "@ethersproject/abi";
3
3
  import { Listener, Provider } from "@ethersproject/providers";
4
4
  import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
5
5
  export interface ISafeMockInterface extends utils.Interface {
6
6
  contractName: "ISafeMock";
7
7
  functions: {
8
+ "getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)": FunctionFragment;
8
9
  "multiSend(bytes)": FunctionFragment;
9
10
  "transferProxyAdminOwnership(address,address)": FunctionFragment;
10
11
  };
12
+ encodeFunctionData(functionFragment: "getTransactionHash", values: [
13
+ string,
14
+ BigNumberish,
15
+ BytesLike,
16
+ BigNumberish,
17
+ BigNumberish,
18
+ BigNumberish,
19
+ BigNumberish,
20
+ string,
21
+ string,
22
+ BigNumberish
23
+ ]): string;
11
24
  encodeFunctionData(functionFragment: "multiSend", values: [BytesLike]): string;
12
25
  encodeFunctionData(functionFragment: "transferProxyAdminOwnership", values: [string, string]): string;
26
+ decodeFunctionResult(functionFragment: "getTransactionHash", data: BytesLike): Result;
13
27
  decodeFunctionResult(functionFragment: "multiSend", data: BytesLike): Result;
14
28
  decodeFunctionResult(functionFragment: "transferProxyAdminOwnership", data: BytesLike): Result;
15
29
  events: {};
@@ -30,6 +44,7 @@ export interface ISafeMock extends BaseContract {
30
44
  once: OnEvent<this>;
31
45
  removeListener: OnEvent<this>;
32
46
  functions: {
47
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
33
48
  multiSend(transactions: BytesLike, overrides?: Overrides & {
34
49
  from?: string | Promise<string>;
35
50
  }): Promise<ContractTransaction>;
@@ -37,6 +52,7 @@ export interface ISafeMock extends BaseContract {
37
52
  from?: string | Promise<string>;
38
53
  }): Promise<ContractTransaction>;
39
54
  };
55
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<string>;
40
56
  multiSend(transactions: BytesLike, overrides?: Overrides & {
41
57
  from?: string | Promise<string>;
42
58
  }): Promise<ContractTransaction>;
@@ -44,11 +60,13 @@ export interface ISafeMock extends BaseContract {
44
60
  from?: string | Promise<string>;
45
61
  }): Promise<ContractTransaction>;
46
62
  callStatic: {
63
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<string>;
47
64
  multiSend(transactions: BytesLike, overrides?: CallOverrides): Promise<void>;
48
65
  transferProxyAdminOwnership(proxyAdmin: string, newOwner: string, overrides?: CallOverrides): Promise<void>;
49
66
  };
50
67
  filters: {};
51
68
  estimateGas: {
69
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
52
70
  multiSend(transactions: BytesLike, overrides?: Overrides & {
53
71
  from?: string | Promise<string>;
54
72
  }): Promise<BigNumber>;
@@ -57,6 +75,7 @@ export interface ISafeMock extends BaseContract {
57
75
  }): Promise<BigNumber>;
58
76
  };
59
77
  populateTransaction: {
78
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
60
79
  multiSend(transactions: BytesLike, overrides?: Overrides & {
61
80
  from?: string | Promise<string>;
62
81
  }): Promise<PopulatedTransaction>;
@@ -0,0 +1,40 @@
1
+ import { BaseContract, Signer, utils } from "ethers";
2
+ import { EventFragment } from "@ethersproject/abi";
3
+ import { Listener, Provider } from "@ethersproject/providers";
4
+ import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
5
+ export interface InitializableInterface extends utils.Interface {
6
+ contractName: "Initializable";
7
+ functions: {};
8
+ events: {
9
+ "Initialized(uint8)": EventFragment;
10
+ };
11
+ getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
12
+ }
13
+ export declare type InitializedEvent = TypedEvent<[number], {
14
+ version: number;
15
+ }>;
16
+ export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
17
+ export interface Initializable extends BaseContract {
18
+ contractName: "Initializable";
19
+ connect(signerOrProvider: Signer | Provider | string): this;
20
+ attach(addressOrName: string): this;
21
+ deployed(): Promise<this>;
22
+ interface: InitializableInterface;
23
+ queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
24
+ listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
25
+ listeners(eventName?: string): Array<Listener>;
26
+ removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
27
+ removeAllListeners(eventName?: string): this;
28
+ off: OnEvent<this>;
29
+ on: OnEvent<this>;
30
+ once: OnEvent<this>;
31
+ removeListener: OnEvent<this>;
32
+ functions: {};
33
+ callStatic: {};
34
+ filters: {
35
+ "Initialized(uint8)"(version?: null): InitializedEventFilter;
36
+ Initialized(version?: null): InitializedEventFilter;
37
+ };
38
+ estimateGas: {};
39
+ populateTransaction: {};
40
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -16,10 +16,16 @@ export interface OwnableUpgradeableInterface extends utils.Interface {
16
16
  decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
17
17
  decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
18
18
  events: {
19
+ "Initialized(uint8)": EventFragment;
19
20
  "OwnershipTransferred(address,address)": EventFragment;
20
21
  };
22
+ getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
21
23
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
22
24
  }
25
+ export declare type InitializedEvent = TypedEvent<[number], {
26
+ version: number;
27
+ }>;
28
+ export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
23
29
  export declare type OwnershipTransferredEvent = TypedEvent<[
24
30
  string,
25
31
  string
@@ -65,6 +71,8 @@ export interface OwnableUpgradeable extends BaseContract {
65
71
  transferOwnership(newOwner: string, overrides?: CallOverrides): Promise<void>;
66
72
  };
67
73
  filters: {
74
+ "Initialized(uint8)"(version?: null): InitializedEventFilter;
75
+ Initialized(version?: null): InitializedEventFilter;
68
76
  "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
69
77
  OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
70
78
  };
@@ -1,34 +1,60 @@
1
- import { BaseContract, BigNumber, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
1
+ import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
2
2
  import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
3
3
  import { Listener, Provider } from "@ethersproject/providers";
4
4
  import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
5
5
  export interface SafeMockInterface extends utils.Interface {
6
6
  contractName: "SafeMock";
7
7
  functions: {
8
+ "DOMAIN_SEPARATOR_TYPE_HASH()": FunctionFragment;
8
9
  "IS_SAFE_MOCK()": FunctionFragment;
10
+ "SAFE_TX_TYPE_HASH()": FunctionFragment;
11
+ "getTransactionHash(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,uint256)": FunctionFragment;
9
12
  "multiSend(bytes)": FunctionFragment;
10
13
  "owner()": FunctionFragment;
11
14
  "renounceOwnership()": FunctionFragment;
12
15
  "transferOwnership(address)": FunctionFragment;
13
16
  "transferProxyAdminOwnership(address,address)": FunctionFragment;
14
17
  };
18
+ encodeFunctionData(functionFragment: "DOMAIN_SEPARATOR_TYPE_HASH", values?: undefined): string;
15
19
  encodeFunctionData(functionFragment: "IS_SAFE_MOCK", values?: undefined): string;
20
+ encodeFunctionData(functionFragment: "SAFE_TX_TYPE_HASH", values?: undefined): string;
21
+ encodeFunctionData(functionFragment: "getTransactionHash", values: [
22
+ string,
23
+ BigNumberish,
24
+ BytesLike,
25
+ BigNumberish,
26
+ BigNumberish,
27
+ BigNumberish,
28
+ BigNumberish,
29
+ string,
30
+ string,
31
+ BigNumberish
32
+ ]): string;
16
33
  encodeFunctionData(functionFragment: "multiSend", values: [BytesLike]): string;
17
34
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
18
35
  encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
19
36
  encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string;
20
37
  encodeFunctionData(functionFragment: "transferProxyAdminOwnership", values: [string, string]): string;
38
+ decodeFunctionResult(functionFragment: "DOMAIN_SEPARATOR_TYPE_HASH", data: BytesLike): Result;
21
39
  decodeFunctionResult(functionFragment: "IS_SAFE_MOCK", data: BytesLike): Result;
40
+ decodeFunctionResult(functionFragment: "SAFE_TX_TYPE_HASH", data: BytesLike): Result;
41
+ decodeFunctionResult(functionFragment: "getTransactionHash", data: BytesLike): Result;
22
42
  decodeFunctionResult(functionFragment: "multiSend", data: BytesLike): Result;
23
43
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
24
44
  decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
25
45
  decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
26
46
  decodeFunctionResult(functionFragment: "transferProxyAdminOwnership", data: BytesLike): Result;
27
47
  events: {
48
+ "Initialized(uint8)": EventFragment;
28
49
  "OwnershipTransferred(address,address)": EventFragment;
29
50
  };
51
+ getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
30
52
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
31
53
  }
54
+ export declare type InitializedEvent = TypedEvent<[number], {
55
+ version: number;
56
+ }>;
57
+ export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
32
58
  export declare type OwnershipTransferredEvent = TypedEvent<[
33
59
  string,
34
60
  string
@@ -53,7 +79,10 @@ export interface SafeMock extends BaseContract {
53
79
  once: OnEvent<this>;
54
80
  removeListener: OnEvent<this>;
55
81
  functions: {
82
+ DOMAIN_SEPARATOR_TYPE_HASH(overrides?: CallOverrides): Promise<[string]>;
56
83
  IS_SAFE_MOCK(overrides?: CallOverrides): Promise<[boolean]>;
84
+ SAFE_TX_TYPE_HASH(overrides?: CallOverrides): Promise<[string]>;
85
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
57
86
  multiSend(transactions: BytesLike, overrides?: Overrides & {
58
87
  from?: string | Promise<string>;
59
88
  }): Promise<ContractTransaction>;
@@ -68,7 +97,10 @@ export interface SafeMock extends BaseContract {
68
97
  from?: string | Promise<string>;
69
98
  }): Promise<ContractTransaction>;
70
99
  };
100
+ DOMAIN_SEPARATOR_TYPE_HASH(overrides?: CallOverrides): Promise<string>;
71
101
  IS_SAFE_MOCK(overrides?: CallOverrides): Promise<boolean>;
102
+ SAFE_TX_TYPE_HASH(overrides?: CallOverrides): Promise<string>;
103
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<string>;
72
104
  multiSend(transactions: BytesLike, overrides?: Overrides & {
73
105
  from?: string | Promise<string>;
74
106
  }): Promise<ContractTransaction>;
@@ -83,7 +115,10 @@ export interface SafeMock extends BaseContract {
83
115
  from?: string | Promise<string>;
84
116
  }): Promise<ContractTransaction>;
85
117
  callStatic: {
118
+ DOMAIN_SEPARATOR_TYPE_HASH(overrides?: CallOverrides): Promise<string>;
86
119
  IS_SAFE_MOCK(overrides?: CallOverrides): Promise<boolean>;
120
+ SAFE_TX_TYPE_HASH(overrides?: CallOverrides): Promise<string>;
121
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<string>;
87
122
  multiSend(transactions: BytesLike, overrides?: CallOverrides): Promise<void>;
88
123
  owner(overrides?: CallOverrides): Promise<string>;
89
124
  renounceOwnership(overrides?: CallOverrides): Promise<void>;
@@ -91,11 +126,16 @@ export interface SafeMock extends BaseContract {
91
126
  transferProxyAdminOwnership(proxyAdmin: string, newOwner: string, overrides?: CallOverrides): Promise<void>;
92
127
  };
93
128
  filters: {
129
+ "Initialized(uint8)"(version?: null): InitializedEventFilter;
130
+ Initialized(version?: null): InitializedEventFilter;
94
131
  "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
95
132
  OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter;
96
133
  };
97
134
  estimateGas: {
135
+ DOMAIN_SEPARATOR_TYPE_HASH(overrides?: CallOverrides): Promise<BigNumber>;
98
136
  IS_SAFE_MOCK(overrides?: CallOverrides): Promise<BigNumber>;
137
+ SAFE_TX_TYPE_HASH(overrides?: CallOverrides): Promise<BigNumber>;
138
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
99
139
  multiSend(transactions: BytesLike, overrides?: Overrides & {
100
140
  from?: string | Promise<string>;
101
141
  }): Promise<BigNumber>;
@@ -111,7 +151,10 @@ export interface SafeMock extends BaseContract {
111
151
  }): Promise<BigNumber>;
112
152
  };
113
153
  populateTransaction: {
154
+ DOMAIN_SEPARATOR_TYPE_HASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
114
155
  IS_SAFE_MOCK(overrides?: CallOverrides): Promise<PopulatedTransaction>;
156
+ SAFE_TX_TYPE_HASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
157
+ getTransactionHash(to: string, value: BigNumberish, data: BytesLike, operation: BigNumberish, safeTxGas: BigNumberish, baseGas: BigNumberish, gasPrice: BigNumberish, gasToken: string, refundReceiver: string, nonce: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
115
158
  multiSend(transactions: BytesLike, overrides?: Overrides & {
116
159
  from?: string | Promise<string>;
117
160
  }): Promise<PopulatedTransaction>;
@@ -6,6 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AccessControlEnumerableUpgradeable__factory = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint8",
15
+ name: "version",
16
+ type: "uint8",
17
+ },
18
+ ],
19
+ name: "Initialized",
20
+ type: "event",
21
+ },
9
22
  {
10
23
  anonymous: false,
11
24
  inputs: [
@@ -6,6 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AccessControlUpgradeable__factory = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint8",
15
+ name: "version",
16
+ type: "uint8",
17
+ },
18
+ ],
19
+ name: "Initialized",
20
+ type: "event",
21
+ },
9
22
  {
10
23
  anonymous: false,
11
24
  inputs: [
@@ -0,0 +1,18 @@
1
+ import { Signer } from "ethers";
2
+ import { Provider } from "@ethersproject/providers";
3
+ import type { ContextUpgradeable, ContextUpgradeableInterface } from "../ContextUpgradeable";
4
+ export declare class ContextUpgradeable__factory {
5
+ static readonly abi: {
6
+ anonymous: boolean;
7
+ inputs: {
8
+ indexed: boolean;
9
+ internalType: string;
10
+ name: string;
11
+ type: string;
12
+ }[];
13
+ name: string;
14
+ type: string;
15
+ }[];
16
+ static createInterface(): ContextUpgradeableInterface;
17
+ static connect(address: string, signerOrProvider: Signer | Provider): ContextUpgradeable;
18
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ContextUpgradeable__factory = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint8",
15
+ name: "version",
16
+ type: "uint8",
17
+ },
18
+ ],
19
+ name: "Initialized",
20
+ type: "event",
21
+ },
22
+ ];
23
+ class ContextUpgradeable__factory {
24
+ static createInterface() {
25
+ return new ethers_1.utils.Interface(_abi);
26
+ }
27
+ static connect(address, signerOrProvider) {
28
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
29
+ }
30
+ }
31
+ exports.ContextUpgradeable__factory = ContextUpgradeable__factory;
32
+ ContextUpgradeable__factory.abi = _abi;
@@ -2,7 +2,19 @@ import { Signer } from "ethers";
2
2
  import { Provider } from "@ethersproject/providers";
3
3
  import type { ERC165Upgradeable, ERC165UpgradeableInterface } from "../ERC165Upgradeable";
4
4
  export declare class ERC165Upgradeable__factory {
5
- static readonly abi: {
5
+ static readonly abi: ({
6
+ anonymous: boolean;
7
+ inputs: {
8
+ indexed: boolean;
9
+ internalType: string;
10
+ name: string;
11
+ type: string;
12
+ }[];
13
+ name: string;
14
+ type: string;
15
+ outputs?: undefined;
16
+ stateMutability?: undefined;
17
+ } | {
6
18
  inputs: {
7
19
  internalType: string;
8
20
  name: string;
@@ -16,7 +28,8 @@ export declare class ERC165Upgradeable__factory {
16
28
  }[];
17
29
  stateMutability: string;
18
30
  type: string;
19
- }[];
31
+ anonymous?: undefined;
32
+ })[];
20
33
  static createInterface(): ERC165UpgradeableInterface;
21
34
  static connect(address: string, signerOrProvider: Signer | Provider): ERC165Upgradeable;
22
35
  }
@@ -6,6 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ERC165Upgradeable__factory = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint8",
15
+ name: "version",
16
+ type: "uint8",
17
+ },
18
+ ],
19
+ name: "Initialized",
20
+ type: "event",
21
+ },
9
22
  {
10
23
  inputs: [
11
24
  {
@@ -9,7 +9,11 @@ export declare class ISafeMock__factory {
9
9
  type: string;
10
10
  }[];
11
11
  name: string;
12
- outputs: never[];
12
+ outputs: {
13
+ internalType: string;
14
+ name: string;
15
+ type: string;
16
+ }[];
13
17
  stateMutability: string;
14
18
  type: string;
15
19
  }[];
@@ -6,6 +6,70 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ISafeMock__factory = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "address",
13
+ name: "to",
14
+ type: "address",
15
+ },
16
+ {
17
+ internalType: "uint256",
18
+ name: "value",
19
+ type: "uint256",
20
+ },
21
+ {
22
+ internalType: "bytes",
23
+ name: "data",
24
+ type: "bytes",
25
+ },
26
+ {
27
+ internalType: "enum ISafeMock.Operation",
28
+ name: "operation",
29
+ type: "uint8",
30
+ },
31
+ {
32
+ internalType: "uint256",
33
+ name: "safeTxGas",
34
+ type: "uint256",
35
+ },
36
+ {
37
+ internalType: "uint256",
38
+ name: "baseGas",
39
+ type: "uint256",
40
+ },
41
+ {
42
+ internalType: "uint256",
43
+ name: "gasPrice",
44
+ type: "uint256",
45
+ },
46
+ {
47
+ internalType: "address",
48
+ name: "gasToken",
49
+ type: "address",
50
+ },
51
+ {
52
+ internalType: "address",
53
+ name: "refundReceiver",
54
+ type: "address",
55
+ },
56
+ {
57
+ internalType: "uint256",
58
+ name: "nonce",
59
+ type: "uint256",
60
+ },
61
+ ],
62
+ name: "getTransactionHash",
63
+ outputs: [
64
+ {
65
+ internalType: "bytes32",
66
+ name: "",
67
+ type: "bytes32",
68
+ },
69
+ ],
70
+ stateMutability: "view",
71
+ type: "function",
72
+ },
9
73
  {
10
74
  inputs: [
11
75
  {
@@ -0,0 +1,18 @@
1
+ import { Signer } from "ethers";
2
+ import { Provider } from "@ethersproject/providers";
3
+ import type { Initializable, InitializableInterface } from "../Initializable";
4
+ export declare class Initializable__factory {
5
+ static readonly abi: {
6
+ anonymous: boolean;
7
+ inputs: {
8
+ indexed: boolean;
9
+ internalType: string;
10
+ name: string;
11
+ type: string;
12
+ }[];
13
+ name: string;
14
+ type: string;
15
+ }[];
16
+ static createInterface(): InitializableInterface;
17
+ static connect(address: string, signerOrProvider: Signer | Provider): Initializable;
18
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Initializable__factory = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint8",
15
+ name: "version",
16
+ type: "uint8",
17
+ },
18
+ ],
19
+ name: "Initialized",
20
+ type: "event",
21
+ },
22
+ ];
23
+ class Initializable__factory {
24
+ static createInterface() {
25
+ return new ethers_1.utils.Interface(_abi);
26
+ }
27
+ static connect(address, signerOrProvider) {
28
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
29
+ }
30
+ }
31
+ exports.Initializable__factory = Initializable__factory;
32
+ Initializable__factory.abi = _abi;
@@ -6,6 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.OwnableUpgradeable__factory = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint8",
15
+ name: "version",
16
+ type: "uint8",
17
+ },
18
+ ],
19
+ name: "Initialized",
20
+ type: "event",
21
+ },
9
22
  {
10
23
  anonymous: false,
11
24
  inputs: [
@@ -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 = "0x608060405234801561001057600080fd5b50600054610100900460ff1661002c5760005460ff1615610034565b610034610100565b61009c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156100be576000805461ffff19166101011790555b6100d061011b60201b6102cd1760201c565b6040805160208101909152600081526100e890610186565b80156100fa576000805461ff00191690555b5061031c565b60006101153061020e60201b6103041760201c565b15905090565b600054610100900460ff166101745760405162461bcd60e51b815260206004820152602b60248201526000805160206108cd83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401610093565b61017c610214565b61018461026d565b565b805160205b81811015610209578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101d057600181146101e0576101eb565b6000808585888a5af191506101eb565b6000808585895af491505b50806101f657600080fd5b505080605501850194505050505061018b565b505050565b3b151590565b600054610100900460ff166101845760405162461bcd60e51b815260206004820152602b60248201526000805160206108cd83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401610093565b600054610100900460ff166102c65760405162461bcd60e51b815260206004820152602b60248201526000805160206108cd83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401610093565b61018433603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6105a28061032b6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806312cc533f14610067578063715018a61461007c57806388f8bae1146100845780638d80ff0a146100a15780638da5cb5b146100b4578063f2fde38b146100cf575b600080fd5b61007a6100753660046103c8565b6100e2565b005b61007a610174565b61008c600181565b60405190151581526020015b60405180910390f35b61007a6100af366004610417565b6101aa565b6033546040516001600160a01b039091168152602001610098565b61007a6100dd3660046104c8565b610232565b6033546001600160a01b031633146101155760405162461bcd60e51b815260040161010c906104ec565b60405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b15801561015857600080fd5b505af115801561016c573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461019e5760405162461bcd60e51b815260040161010c906104ec565b6101a8600061030a565b565b805160205b8181101561022d578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101f457600181146102045761020f565b6000808585888a5af1915061020f565b6000808585895af491505b508061021a57600080fd5b50508060550185019450505050506101af565b505050565b6033546001600160a01b0316331461025c5760405162461bcd60e51b815260040161010c906104ec565b6001600160a01b0381166102c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161010c565b6102ca8161030a565b50565b600054610100900460ff166102f45760405162461bcd60e51b815260040161010c90610521565b6102fc61035c565b6101a8610383565b3b151590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166101a85760405162461bcd60e51b815260040161010c90610521565b600054610100900460ff166103aa5760405162461bcd60e51b815260040161010c90610521565b6101a83361030a565b6001600160a01b03811681146102ca57600080fd5b600080604083850312156103db57600080fd5b82356103e6816103b3565b915060208301356103f6816103b3565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561042957600080fd5b813567ffffffffffffffff8082111561044157600080fd5b818401915084601f83011261045557600080fd5b81358181111561046757610467610401565b604051601f8201601f19908116603f0116810190838211818310171561048f5761048f610401565b816040528281528760208487010111156104a857600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156104da57600080fd5b81356104e5816103b3565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220c9256b47239ae527b6dd7e31befec9077aa19a94d39ff4f970aca9da687f11f764736f6c634300080b0033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
17
+ static readonly bytecode = "0x60806040523480156200001157600080fd5b506000620000206001620000b6565b9050801562000039576000805461ff0019166101001790555b6200004e620001c860201b6200039a1760201c565b604080516020810190915260008152620000689062000230565b8015620000af576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000381565b60008054610100900460ff16156200014f578160ff166001148015620000ef5750620000ed30620002bf60201b620003c91760201c565b155b620001475760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60005460ff808416911610620001ae5760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200013e565b506000805460ff191660ff92909216919091179055600190565b600054610100900460ff16620002245760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e620002ce565b565b805160205b81811015620002ba578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146200027e57600181146200028f576200029a565b6000808585888a5af191506200029a565b6000808585895af491505b5080620002a657600080fd5b505080605501850194505050505062000235565b505050565b6001600160a01b03163b151590565b600054610100900460ff166200032a5760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e33603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61092180620003916000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638d80ff0a116100665780638d80ff0a146101075780638da5cb5b1461011a578063d8d11f7814610135578063f2fde38b14610148578063f5dcb7bb1461015b57600080fd5b806312cc533f146100985780632bf613a5146100ad578063715018a6146100e757806388f8bae1146100ef575b600080fd5b6100ab6100a63660046105a9565b610182565b005b6100d47fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d881565b6040519081526020015b60405180910390f35b6100ab610214565b6100f7600181565b60405190151581526020016100de565b6100ab6101153660046105f8565b61024a565b6033546040516001600160a01b0390911681526020016100de565b6100d46101433660046106b8565b6102d2565b6100ab6101563660046107a2565b6102ff565b6100d47f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921881565b6033546001600160a01b031633146101b55760405162461bcd60e51b81526004016101ac906107c6565b60405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156101f857600080fd5b505af115801561020c573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461023e5760405162461bcd60e51b81526004016101ac906107c6565b61024860006103d8565b565b805160205b818110156102cd578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461029457600181146102a4576102af565b6000808585888a5af191506102af565b6000808585895af491505b50806102ba57600080fd5b505080605501850194505050505061024f565b505050565b60006102e78c8c8c8c8c8c8c8c8c8c8c61042a565b8051906020012090509b9a5050505050505050505050565b6033546001600160a01b031633146103295760405162461bcd60e51b81526004016101ac906107c6565b6001600160a01b03811661038e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ac565b610397816103d8565b50565b600054610100900460ff166103c15760405162461bcd60e51b81526004016101ac906107fb565b610248610554565b6001600160a01b03163b151590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d88d8d8d8d604051610461929190610846565b604051908190038120610487949392918e908e908e908e908e908e908e90602001610856565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b610507604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b600054610100900460ff1661057b5760405162461bcd60e51b81526004016101ac906107fb565b610248336103d8565b6001600160a01b038116811461039757600080fd5b80356105a481610584565b919050565b600080604083850312156105bc57600080fd5b82356105c781610584565b915060208301356105d781610584565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561060a57600080fd5b813567ffffffffffffffff8082111561062257600080fd5b818401915084601f83011261063657600080fd5b813581811115610648576106486105e2565b604051601f8201601f19908116603f01168101908382118183101715610670576106706105e2565b8160405282815287602084870101111561068957600080fd5b826020860160208301376000928101602001929092525095945050505050565b8035600281106105a457600080fd5b60008060008060008060008060008060006101408c8e0312156106da57600080fd5b8b356106e581610584565b9a5060208c0135995060408c013567ffffffffffffffff8082111561070957600080fd5b818e0191508e601f83011261071d57600080fd5b81358181111561072c57600080fd5b8f602082850101111561073e57600080fd5b602083019b50809a5050505061075660608d016106a9565b965060808c0135955060a08c0135945060c08c0135935061077960e08d01610599565b92506107886101008d01610599565b91506101208c013590509295989b509295989b9093969950565b6000602082840312156107b457600080fd5b81356107bf81610584565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8183823760009101908152919050565b8b81526001600160a01b038b166020820152604081018a90526060810189905261016081016002891061089957634e487b7160e01b600052602160045260246000fd5b8860808301528760a08301528660c08301528560e08301526108c76101008301866001600160a01b03169052565b6001600160a01b03939093166101208201526101400152999850505050505050505056fea264697066735822122009f92f3f8147620e576fa16549dc3b015ae4033d658fbf1ed5e761406ba193ec64736f6c634300080b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
18
18
  static readonly abi: ({
19
19
  inputs: never[];
20
20
  stateMutability: string;
@@ -35,24 +35,17 @@ export declare class SafeMock__factory extends ContractFactory {
35
35
  stateMutability?: undefined;
36
36
  outputs?: undefined;
37
37
  } | {
38
- inputs: never[];
39
- name: string;
40
- outputs: {
38
+ inputs: {
41
39
  internalType: string;
42
40
  name: string;
43
41
  type: string;
44
42
  }[];
45
- stateMutability: string;
46
- type: string;
47
- anonymous?: undefined;
48
- } | {
49
- inputs: {
43
+ name: string;
44
+ outputs: {
50
45
  internalType: string;
51
46
  name: string;
52
47
  type: string;
53
48
  }[];
54
- name: string;
55
- outputs: never[];
56
49
  stateMutability: string;
57
50
  type: string;
58
51
  anonymous?: undefined;
@@ -11,6 +11,19 @@ const _abi = [
11
11
  stateMutability: "nonpayable",
12
12
  type: "constructor",
13
13
  },
14
+ {
15
+ anonymous: false,
16
+ inputs: [
17
+ {
18
+ indexed: false,
19
+ internalType: "uint8",
20
+ name: "version",
21
+ type: "uint8",
22
+ },
23
+ ],
24
+ name: "Initialized",
25
+ type: "event",
26
+ },
14
27
  {
15
28
  anonymous: false,
16
29
  inputs: [
@@ -30,6 +43,19 @@ const _abi = [
30
43
  name: "OwnershipTransferred",
31
44
  type: "event",
32
45
  },
46
+ {
47
+ inputs: [],
48
+ name: "DOMAIN_SEPARATOR_TYPE_HASH",
49
+ outputs: [
50
+ {
51
+ internalType: "bytes32",
52
+ name: "",
53
+ type: "bytes32",
54
+ },
55
+ ],
56
+ stateMutability: "view",
57
+ type: "function",
58
+ },
33
59
  {
34
60
  inputs: [],
35
61
  name: "IS_SAFE_MOCK",
@@ -43,6 +69,83 @@ const _abi = [
43
69
  stateMutability: "view",
44
70
  type: "function",
45
71
  },
72
+ {
73
+ inputs: [],
74
+ name: "SAFE_TX_TYPE_HASH",
75
+ outputs: [
76
+ {
77
+ internalType: "bytes32",
78
+ name: "",
79
+ type: "bytes32",
80
+ },
81
+ ],
82
+ stateMutability: "view",
83
+ type: "function",
84
+ },
85
+ {
86
+ inputs: [
87
+ {
88
+ internalType: "address",
89
+ name: "to",
90
+ type: "address",
91
+ },
92
+ {
93
+ internalType: "uint256",
94
+ name: "value",
95
+ type: "uint256",
96
+ },
97
+ {
98
+ internalType: "bytes",
99
+ name: "data",
100
+ type: "bytes",
101
+ },
102
+ {
103
+ internalType: "enum ISafeMock.Operation",
104
+ name: "operation",
105
+ type: "uint8",
106
+ },
107
+ {
108
+ internalType: "uint256",
109
+ name: "safeTxGas",
110
+ type: "uint256",
111
+ },
112
+ {
113
+ internalType: "uint256",
114
+ name: "baseGas",
115
+ type: "uint256",
116
+ },
117
+ {
118
+ internalType: "uint256",
119
+ name: "gasPrice",
120
+ type: "uint256",
121
+ },
122
+ {
123
+ internalType: "address",
124
+ name: "gasToken",
125
+ type: "address",
126
+ },
127
+ {
128
+ internalType: "address",
129
+ name: "refundReceiver",
130
+ type: "address",
131
+ },
132
+ {
133
+ internalType: "uint256",
134
+ name: "nonce",
135
+ type: "uint256",
136
+ },
137
+ ],
138
+ name: "getTransactionHash",
139
+ outputs: [
140
+ {
141
+ internalType: "bytes32",
142
+ name: "",
143
+ type: "bytes32",
144
+ },
145
+ ],
146
+ stateMutability: "view",
147
+ type: "function",
148
+ },
46
149
  {
47
150
  inputs: [
48
151
  {
@@ -108,7 +211,7 @@ const _abi = [
108
211
  type: "function",
109
212
  },
110
213
  ];
111
- const _bytecode = "0x608060405234801561001057600080fd5b50600054610100900460ff1661002c5760005460ff1615610034565b610034610100565b61009c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156100be576000805461ffff19166101011790555b6100d061011b60201b6102cd1760201c565b6040805160208101909152600081526100e890610186565b80156100fa576000805461ff00191690555b5061031c565b60006101153061020e60201b6103041760201c565b15905090565b600054610100900460ff166101745760405162461bcd60e51b815260206004820152602b60248201526000805160206108cd83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401610093565b61017c610214565b61018461026d565b565b805160205b81811015610209578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101d057600181146101e0576101eb565b6000808585888a5af191506101eb565b6000808585895af491505b50806101f657600080fd5b505080605501850194505050505061018b565b505050565b3b151590565b600054610100900460ff166101845760405162461bcd60e51b815260206004820152602b60248201526000805160206108cd83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401610093565b600054610100900460ff166102c65760405162461bcd60e51b815260206004820152602b60248201526000805160206108cd83398151915260448201526a6e697469616c697a696e6760a81b6064820152608401610093565b61018433603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6105a28061032b6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806312cc533f14610067578063715018a61461007c57806388f8bae1146100845780638d80ff0a146100a15780638da5cb5b146100b4578063f2fde38b146100cf575b600080fd5b61007a6100753660046103c8565b6100e2565b005b61007a610174565b61008c600181565b60405190151581526020015b60405180910390f35b61007a6100af366004610417565b6101aa565b6033546040516001600160a01b039091168152602001610098565b61007a6100dd3660046104c8565b610232565b6033546001600160a01b031633146101155760405162461bcd60e51b815260040161010c906104ec565b60405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b15801561015857600080fd5b505af115801561016c573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461019e5760405162461bcd60e51b815260040161010c906104ec565b6101a8600061030a565b565b805160205b8181101561022d578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146101f457600181146102045761020f565b6000808585888a5af1915061020f565b6000808585895af491505b508061021a57600080fd5b50508060550185019450505050506101af565b505050565b6033546001600160a01b0316331461025c5760405162461bcd60e51b815260040161010c906104ec565b6001600160a01b0381166102c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161010c565b6102ca8161030a565b50565b600054610100900460ff166102f45760405162461bcd60e51b815260040161010c90610521565b6102fc61035c565b6101a8610383565b3b151590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166101a85760405162461bcd60e51b815260040161010c90610521565b600054610100900460ff166103aa5760405162461bcd60e51b815260040161010c90610521565b6101a83361030a565b6001600160a01b03811681146102ca57600080fd5b600080604083850312156103db57600080fd5b82356103e6816103b3565b915060208301356103f6816103b3565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561042957600080fd5b813567ffffffffffffffff8082111561044157600080fd5b818401915084601f83011261045557600080fd5b81358181111561046757610467610401565b604051601f8201601f19908116603f0116810190838211818310171561048f5761048f610401565b816040528281528760208487010111156104a857600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156104da57600080fd5b81356104e5816103b3565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220c9256b47239ae527b6dd7e31befec9077aa19a94d39ff4f970aca9da687f11f764736f6c634300080b0033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
214
+ const _bytecode = "0x60806040523480156200001157600080fd5b506000620000206001620000b6565b9050801562000039576000805461ff0019166101001790555b6200004e620001c860201b6200039a1760201c565b604080516020810190915260008152620000689062000230565b8015620000af576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000381565b60008054610100900460ff16156200014f578160ff166001148015620000ef5750620000ed30620002bf60201b620003c91760201c565b155b620001475760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60005460ff808416911610620001ae5760405162461bcd60e51b815260206004820152602e602482015260008051602062000cb283398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200013e565b506000805460ff191660ff92909216919091179055600190565b600054610100900460ff16620002245760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e620002ce565b565b805160205b81811015620002ba578083015160f81c6001820184015160601c6015830185015160358401860151605585018701600085600081146200027e57600181146200028f576200029a565b6000808585888a5af191506200029a565b6000808585895af491505b5080620002a657600080fd5b505080605501850194505050505062000235565b505050565b6001600160a01b03163b151590565b600054610100900460ff166200032a5760405162461bcd60e51b815260206004820152602b602482015260008051602062000cd283398151915260448201526a6e697469616c697a696e6760a81b60648201526084016200013e565b6200022e33603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61092180620003916000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638d80ff0a116100665780638d80ff0a146101075780638da5cb5b1461011a578063d8d11f7814610135578063f2fde38b14610148578063f5dcb7bb1461015b57600080fd5b806312cc533f146100985780632bf613a5146100ad578063715018a6146100e757806388f8bae1146100ef575b600080fd5b6100ab6100a63660046105a9565b610182565b005b6100d47fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d881565b6040519081526020015b60405180910390f35b6100ab610214565b6100f7600181565b60405190151581526020016100de565b6100ab6101153660046105f8565b61024a565b6033546040516001600160a01b0390911681526020016100de565b6100d46101433660046106b8565b6102d2565b6100ab6101563660046107a2565b6102ff565b6100d47f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921881565b6033546001600160a01b031633146101b55760405162461bcd60e51b81526004016101ac906107c6565b60405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03828116600483015283169063f2fde38b90602401600060405180830381600087803b1580156101f857600080fd5b505af115801561020c573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461023e5760405162461bcd60e51b81526004016101ac906107c6565b61024860006103d8565b565b805160205b818110156102cd578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461029457600181146102a4576102af565b6000808585888a5af191506102af565b6000808585895af491505b50806102ba57600080fd5b505080605501850194505050505061024f565b505050565b60006102e78c8c8c8c8c8c8c8c8c8c8c61042a565b8051906020012090509b9a5050505050505050505050565b6033546001600160a01b031633146103295760405162461bcd60e51b81526004016101ac906107c6565b6001600160a01b03811661038e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ac565b610397816103d8565b50565b600054610100900460ff166103c15760405162461bcd60e51b81526004016101ac906107fb565b610248610554565b6001600160a01b03163b151590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d88d8d8d8d604051610461929190610846565b604051908190038120610487949392918e908e908e908e908e908e908e90602001610856565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b610507604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692186020820152469181019190915230606082015260009060800160405160208183030381529060405280519060200120905090565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b600054610100900460ff1661057b5760405162461bcd60e51b81526004016101ac906107fb565b610248336103d8565b6001600160a01b038116811461039757600080fd5b80356105a481610584565b919050565b600080604083850312156105bc57600080fd5b82356105c781610584565b915060208301356105d781610584565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561060a57600080fd5b813567ffffffffffffffff8082111561062257600080fd5b818401915084601f83011261063657600080fd5b813581811115610648576106486105e2565b604051601f8201601f19908116603f01168101908382118183101715610670576106706105e2565b8160405282815287602084870101111561068957600080fd5b826020860160208301376000928101602001929092525095945050505050565b8035600281106105a457600080fd5b60008060008060008060008060008060006101408c8e0312156106da57600080fd5b8b356106e581610584565b9a5060208c0135995060408c013567ffffffffffffffff8082111561070957600080fd5b818e0191508e601f83011261071d57600080fd5b81358181111561072c57600080fd5b8f602082850101111561073e57600080fd5b602083019b50809a5050505061075660608d016106a9565b965060808c0135955060a08c0135945060c08c0135935061077960e08d01610599565b92506107886101008d01610599565b91506101208c013590509295989b509295989b9093969950565b6000602082840312156107b457600080fd5b81356107bf81610584565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8183823760009101908152919050565b8b81526001600160a01b038b166020820152604081018a90526060810189905261016081016002891061089957634e487b7160e01b600052602160045260246000fd5b8860808301528760a08301528660c08301528560e08301526108c76101008301866001600160a01b03169052565b6001600160a01b03939093166101208201526101400152999850505050505050505056fea264697066735822122009f92f3f8147620e576fa16549dc3b015ae4033d658fbf1ed5e761406ba193ec64736f6c634300080b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069";
112
215
  const isSuperArgs = (xs) => xs.length > 1;
113
216
  class SafeMock__factory extends ethers_1.ContractFactory {
114
217
  constructor(...args) {
@@ -3,6 +3,8 @@ export type { AccessControlUpgradeable } from "./AccessControlUpgradeable";
3
3
  export type { IAccessControlEnumerableUpgradeable } from "./IAccessControlEnumerableUpgradeable";
4
4
  export type { IAccessControlUpgradeable } from "./IAccessControlUpgradeable";
5
5
  export type { OwnableUpgradeable } from "./OwnableUpgradeable";
6
+ export type { Initializable } from "./Initializable";
7
+ export type { ContextUpgradeable } from "./ContextUpgradeable";
6
8
  export type { ERC165Upgradeable } from "./ERC165Upgradeable";
7
9
  export type { IERC165Upgradeable } from "./IERC165Upgradeable";
8
10
  export type { ISafeMock } from "./ISafeMock";
@@ -14,6 +16,8 @@ export { AccessControlUpgradeable__factory } from "./factories/AccessControlUpgr
14
16
  export { IAccessControlEnumerableUpgradeable__factory } from "./factories/IAccessControlEnumerableUpgradeable__factory";
15
17
  export { IAccessControlUpgradeable__factory } from "./factories/IAccessControlUpgradeable__factory";
16
18
  export { OwnableUpgradeable__factory } from "./factories/OwnableUpgradeable__factory";
19
+ export { Initializable__factory } from "./factories/Initializable__factory";
20
+ export { ContextUpgradeable__factory } from "./factories/ContextUpgradeable__factory";
17
21
  export { ERC165Upgradeable__factory } from "./factories/ERC165Upgradeable__factory";
18
22
  export { IERC165Upgradeable__factory } from "./factories/IERC165Upgradeable__factory";
19
23
  export { ISafeMock__factory } from "./factories/ISafeMock__factory";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProxyAdmin__factory = exports.AdminUpgradeabilityProxy__factory = exports.SafeMock__factory = exports.ISafeMock__factory = exports.IERC165Upgradeable__factory = exports.ERC165Upgradeable__factory = exports.OwnableUpgradeable__factory = exports.IAccessControlUpgradeable__factory = exports.IAccessControlEnumerableUpgradeable__factory = exports.AccessControlUpgradeable__factory = exports.AccessControlEnumerableUpgradeable__factory = void 0;
3
+ exports.ProxyAdmin__factory = exports.AdminUpgradeabilityProxy__factory = exports.SafeMock__factory = exports.ISafeMock__factory = exports.IERC165Upgradeable__factory = exports.ERC165Upgradeable__factory = exports.ContextUpgradeable__factory = exports.Initializable__factory = exports.OwnableUpgradeable__factory = exports.IAccessControlUpgradeable__factory = exports.IAccessControlEnumerableUpgradeable__factory = exports.AccessControlUpgradeable__factory = exports.AccessControlEnumerableUpgradeable__factory = void 0;
4
4
  var AccessControlEnumerableUpgradeable__factory_1 = require("./factories/AccessControlEnumerableUpgradeable__factory");
5
5
  Object.defineProperty(exports, "AccessControlEnumerableUpgradeable__factory", { enumerable: true, get: function () { return AccessControlEnumerableUpgradeable__factory_1.AccessControlEnumerableUpgradeable__factory; } });
6
6
  var AccessControlUpgradeable__factory_1 = require("./factories/AccessControlUpgradeable__factory");
@@ -11,6 +11,10 @@ var IAccessControlUpgradeable__factory_1 = require("./factories/IAccessControlUp
11
11
  Object.defineProperty(exports, "IAccessControlUpgradeable__factory", { enumerable: true, get: function () { return IAccessControlUpgradeable__factory_1.IAccessControlUpgradeable__factory; } });
12
12
  var OwnableUpgradeable__factory_1 = require("./factories/OwnableUpgradeable__factory");
13
13
  Object.defineProperty(exports, "OwnableUpgradeable__factory", { enumerable: true, get: function () { return OwnableUpgradeable__factory_1.OwnableUpgradeable__factory; } });
14
+ var Initializable__factory_1 = require("./factories/Initializable__factory");
15
+ Object.defineProperty(exports, "Initializable__factory", { enumerable: true, get: function () { return Initializable__factory_1.Initializable__factory; } });
16
+ var ContextUpgradeable__factory_1 = require("./factories/ContextUpgradeable__factory");
17
+ Object.defineProperty(exports, "ContextUpgradeable__factory", { enumerable: true, get: function () { return ContextUpgradeable__factory_1.ContextUpgradeable__factory; } });
14
18
  var ERC165Upgradeable__factory_1 = require("./factories/ERC165Upgradeable__factory");
15
19
  Object.defineProperty(exports, "ERC165Upgradeable__factory", { enumerable: true, get: function () { return ERC165Upgradeable__factory_1.ERC165Upgradeable__factory; } });
16
20
  var IERC165Upgradeable__factory_1 = require("./factories/IERC165Upgradeable__factory");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skalenetwork/upgrade-tools",
3
- "version": "0.0.1-custom.9",
3
+ "version": "0.0.1-develop.2",
4
4
  "description": "Scripts to support upgrades of smart contracts",
5
5
  "files": [
6
6
  "dist/**/*"
@@ -12,25 +12,36 @@
12
12
  "license": "AGPL-3.0",
13
13
  "private": false,
14
14
  "scripts": {
15
- "compile": "tsc",
16
- "prepare": "yarn compile",
17
- "prepublish": "yarn compile",
18
- "postinstall": "install-peers"
15
+ "prepare": "yarn hooks",
16
+ "compile": "npx hardhat typechain && tsc",
17
+ "prepublishOnly": "yarn compile",
18
+ "install-peers": "install-peers -f",
19
+ "hooks": "git config core.hooksPath .githooks || true",
20
+ "no-hooks": "git config core.hooksPath .git/hooks",
21
+ "fullCheck": "yarn compile && yarn lint && yarn eslint && yarn cspell && yarn slither",
22
+ "lint": "npx solhint \"contracts/**/*.sol\"",
23
+ "slither": "slither .",
24
+ "eslint": "npx eslint --cache --ext .js,.jsx,.ts,.tsx .",
25
+ "cspell": "npx cspell \"**/*\""
19
26
  },
20
27
  "devDependencies": {
21
28
  "@tsconfig/recommended": "^1.0.1",
22
29
  "@typechain/ethers-v5": "^9.0.0",
23
30
  "@typechain/hardhat": "^4.0.0",
31
+ "@typescript-eslint/eslint-plugin": "^5.23.0",
32
+ "@typescript-eslint/parser": "^5.23.0",
33
+ "cspell": "^5.20.0",
34
+ "eslint": "^8.15.0",
24
35
  "install-peers-cli": "^2.2.0",
36
+ "solhint": "^3.3.7",
25
37
  "ts-node": "^10.5.0",
26
38
  "typechain": "^7.0.0",
27
39
  "typescript": "^4.5.5"
28
40
  },
29
41
  "dependencies": {
30
42
  "@openzeppelin/contracts-upgradeable": "^4.4.2",
31
- "axios": "^0.25.0",
32
- "ethereumjs-util": "^7.1.4",
33
- "ethers-eip712": "^0.2.0"
43
+ "axios": "^0.27.2",
44
+ "ethereumjs-util": "^7.1.4"
34
45
  },
35
46
  "peerDependencies": {
36
47
  "@nomiclabs/hardhat-ethers": "^2.0.4",