@safe-global/safe-deployments 1.37.8 → 1.37.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,6 +13,20 @@ The addresses on the different networks and the abi files are available for each
13
13
  2. Verify that the addresses match the expected address for each contract. You can find them under the "addresses" mapping in the respective JSON file in the [assets folder](./src/assets/).
14
14
  3. Create a PR adding the new deployment. Example PR can be found [here](https://github.com/safe-global/safe-deployments/pull/676).
15
15
 
16
+ ## Deployments overview
17
+
18
+ > ContractScan is a 3rd party tool that is not maintained by the Safe team
19
+
20
+ - [1.0.0](https://contractscan.xyz/bundle?name=Safe+1.0.0&addresses=0xb6029ea3b2c51d09a50b53ca8012feeb05bda35a,0x12302fe9c02ff50939baaaaf415fc226c078613c)
21
+ - [1.1.1](https://contractscan.xyz/bundle?name=Safe+1.1.1&addresses=0xf61a721642b0c0c8b334ba3763ba1326f53798c0,0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a,0xd5d82b6addc9027b22dca772aa68d5d74cdbdf44,0x34cfac646f301356faa8b21e94227e3583fe3f5f,0x8d29be29923b68abfdd21e541b9374737b49cdad,0x76e2cfc1f5fa8f6a5b3fc4c8f4788f0116861f9b)
22
+ - [1.2.0](https://contractscan.xyz/bundle?name=Safe+1.2.0&addresses=0x6851d6fdfafd08c0295c392436245e5bc78b0185)
23
+ - 1.3.0
24
+ - [Canonical](https://contractscan.xyz/bundle?name=Safe+1.3.0&addresses=0xf48f2b2d2a534e402487b3ee7c18c33aec0fe5e4,0x7cbb62eaa69f79e6873cd1ecb2392971036cfaa4,0xd9db270c1b5e3bd161e8c8503c55ceabee709552,0x3e5c63644e683549055b9be8653de26e0b4cd36e,0xa238cbeb142c10ef7ad8442c6d1f9e89e07e7761,0x40a2accbd92bca938b02010e17a5b8929b49130d,0xa6b71e26c5e0845f74c812102ca7114b6a896ab2,0xa65387f16b013cf2af4605ad8aa5ec25a2cba3a2,0x59ad6735bcd8152b84860cb256dd9e96b85f69da)
25
+ - [EIP155](https://contractscan.xyz/bundle?name=Safe+1.3.0+EIP155&addresses=0x017062a1de2fe6b99be3d9d37841fed19f573804,0xb19d6ffc2182150f8eb585b79d4abcd7c5640a9d,0x69f4d1788e39c87893c980c06edf4b7f686e2938,0xfb1bffc9d739b8d520daf37df666da4c687191ea,0x998739bfdaadde7c933b942a68053933098f9eda,0xa1dabef33b3b82c7814b6d82a79e50f4ac44102b,0xc22834581ebc8527d974f8a1c97e1bea4ef910bc,0x98ffbbf51bb33a056b08ddf711f289936aaff717,0x727a77a074d1e6c4530e814f89e618a3298fc044)
26
+ - [ZKsync](https://contractscan.xyz/bundle?name=Safe+1.3.0+ZKsync&addresses=0x2f870a80647bbc554f3a0ebd093f11b4d2a7492a,0xcb8e5e438c5c2b45fbe17b02ca9af91509a8ad56,0xb00ce5cccdef57e539ddced01df43a13855d9910,0x1727c2c531cf966f902e5927b98490fdfb3b2b70,0x0dfcccb95225ffb03c6fbb2559b530c2b7c8a912,0xf220d3b4dfb23c4ade8c88e526c1353abacbc38f,0xdaec33641865e4651fb43181c6db6f7232ee91c2,0x357147caf9c0cca67dfa0cf5369318d8193c8407,0x4191e2e12e8bc5002424ce0c51f9947b02675a44)
27
+ - [1.4.1](https://contractscan.xyz/bundle?name=Safe+1.4.1&addresses=0xfd0732dc9e303f09fcef3a7388ad10a83459ec99,0x9b35af71d77eaf8d7e40252370304687390a1a52,0x38869bf66a61cf6bdb996a6ae40d5853fd43b526,0x9641d764fc13c8b624c04430c7356c1c7c8102e2,0x41675c099f32341bf84bfc5382af534df5c7461a,0x29fcb43b46531bca003ddc8fcb67ffe91900c762,0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67,0xd53cd0ab83d845ac265be939c57f53ad838012c9,0x3d4ba2e0884aa488718476ca2fb8efc291a46199)
28
+
29
+
16
30
  ## Install
17
31
 
18
32
  - npm - `npm i @safe-global/safe-deployments`
@@ -0,0 +1,148 @@
1
+ {
2
+ "released": true,
3
+ "contractName": "SafeMigration",
4
+ "version": "1.4.1",
5
+ "deployments": {
6
+ "canonical": {
7
+ "address": "0x526643F69b81B008F46d95CD5ced5eC0edFFDaC6",
8
+ "codeHash": "0xc00d7921460cd5a05393e7772e634bd7d212f356356aa3a77f0120a9b8e25e99"
9
+ }
10
+ },
11
+ "networkAddresses": {
12
+ "1": "canonical",
13
+ "10": "canonical",
14
+ "56": "canonical",
15
+ "100": "canonical",
16
+ "137": "canonical",
17
+ "196": "canonical",
18
+ "1101": "canonical",
19
+ "1337": "canonical",
20
+ "5000": "canonical",
21
+ "8453": "canonical",
22
+ "42161": "canonical",
23
+ "42220": "canonical",
24
+ "43114": "canonical",
25
+ "59144": "canonical",
26
+ "81457": "canonical",
27
+ "84532": "canonical",
28
+ "534352": "canonical",
29
+ "11155111": "canonical",
30
+ "1313161554": "canonical"
31
+ },
32
+ "abi": [
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "safeSingleton",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "internalType": "address",
42
+ "name": "safeL2Singleton",
43
+ "type": "address"
44
+ },
45
+ {
46
+ "internalType": "address",
47
+ "name": "fallbackHandler",
48
+ "type": "address"
49
+ }
50
+ ],
51
+ "stateMutability": "nonpayable",
52
+ "type": "constructor"
53
+ },
54
+ {
55
+ "anonymous": false,
56
+ "inputs": [
57
+ {
58
+ "indexed": false,
59
+ "internalType": "address",
60
+ "name": "singleton",
61
+ "type": "address"
62
+ }
63
+ ],
64
+ "name": "ChangedMasterCopy",
65
+ "type": "event"
66
+ },
67
+ {
68
+ "inputs": [],
69
+ "name": "MIGRATION_SINGLETON",
70
+ "outputs": [
71
+ {
72
+ "internalType": "address",
73
+ "name": "",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "stateMutability": "view",
78
+ "type": "function"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "SAFE_FALLBACK_HANDLER",
83
+ "outputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "stateMutability": "view",
91
+ "type": "function"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "SAFE_L2_SINGLETON",
96
+ "outputs": [
97
+ {
98
+ "internalType": "address",
99
+ "name": "",
100
+ "type": "address"
101
+ }
102
+ ],
103
+ "stateMutability": "view",
104
+ "type": "function"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "SAFE_SINGLETON",
109
+ "outputs": [
110
+ {
111
+ "internalType": "address",
112
+ "name": "",
113
+ "type": "address"
114
+ }
115
+ ],
116
+ "stateMutability": "view",
117
+ "type": "function"
118
+ },
119
+ {
120
+ "inputs": [],
121
+ "name": "migrateL2Singleton",
122
+ "outputs": [],
123
+ "stateMutability": "nonpayable",
124
+ "type": "function"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "migrateL2WithFallbackHandler",
129
+ "outputs": [],
130
+ "stateMutability": "nonpayable",
131
+ "type": "function"
132
+ },
133
+ {
134
+ "inputs": [],
135
+ "name": "migrateSingleton",
136
+ "outputs": [],
137
+ "stateMutability": "nonpayable",
138
+ "type": "function"
139
+ },
140
+ {
141
+ "inputs": [],
142
+ "name": "migrateWithFallbackHandler",
143
+ "outputs": [],
144
+ "stateMutability": "nonpayable",
145
+ "type": "function"
146
+ }
147
+ ]
148
+ }
@@ -0,0 +1,206 @@
1
+ {
2
+ "released": true,
3
+ "contractName": "SafeToL2Migration",
4
+ "version": "1.4.1",
5
+ "deployments": {
6
+ "canonical": {
7
+ "address": "0xfF83F6335d8930cBad1c0D439A841f01888D9f69",
8
+ "codeHash": "0xa83e7be2fa20c96dc9575e3937239d552f3831ea437d7c96397eec8736f0cba0"
9
+ }
10
+ },
11
+ "networkAddresses": {
12
+ "1": "canonical",
13
+ "10": "canonical",
14
+ "56": "canonical",
15
+ "100": "canonical",
16
+ "137": "canonical",
17
+ "196": "canonical",
18
+ "1101": "canonical",
19
+ "1337": "canonical",
20
+ "5000": "canonical",
21
+ "8453": "canonical",
22
+ "42161": "canonical",
23
+ "42220": "canonical",
24
+ "43114": "canonical",
25
+ "59144": "canonical",
26
+ "81457": "canonical",
27
+ "84532": "canonical",
28
+ "534352": "canonical",
29
+ "11155111": "canonical",
30
+ "1313161554": "canonical"
31
+ },
32
+ "abi": [
33
+ {
34
+ "inputs": [],
35
+ "stateMutability": "nonpayable",
36
+ "type": "constructor"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "address",
44
+ "name": "singleton",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "ChangedMasterCopy",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "anonymous": false,
53
+ "inputs": [
54
+ {
55
+ "indexed": false,
56
+ "internalType": "address",
57
+ "name": "to",
58
+ "type": "address"
59
+ },
60
+ {
61
+ "indexed": false,
62
+ "internalType": "uint256",
63
+ "name": "value",
64
+ "type": "uint256"
65
+ },
66
+ {
67
+ "indexed": false,
68
+ "internalType": "bytes",
69
+ "name": "data",
70
+ "type": "bytes"
71
+ },
72
+ {
73
+ "indexed": false,
74
+ "internalType": "enum Enum.Operation",
75
+ "name": "operation",
76
+ "type": "uint8"
77
+ },
78
+ {
79
+ "indexed": false,
80
+ "internalType": "uint256",
81
+ "name": "safeTxGas",
82
+ "type": "uint256"
83
+ },
84
+ {
85
+ "indexed": false,
86
+ "internalType": "uint256",
87
+ "name": "baseGas",
88
+ "type": "uint256"
89
+ },
90
+ {
91
+ "indexed": false,
92
+ "internalType": "uint256",
93
+ "name": "gasPrice",
94
+ "type": "uint256"
95
+ },
96
+ {
97
+ "indexed": false,
98
+ "internalType": "address",
99
+ "name": "gasToken",
100
+ "type": "address"
101
+ },
102
+ {
103
+ "indexed": false,
104
+ "internalType": "address payable",
105
+ "name": "refundReceiver",
106
+ "type": "address"
107
+ },
108
+ {
109
+ "indexed": false,
110
+ "internalType": "bytes",
111
+ "name": "signatures",
112
+ "type": "bytes"
113
+ },
114
+ {
115
+ "indexed": false,
116
+ "internalType": "bytes",
117
+ "name": "additionalInfo",
118
+ "type": "bytes"
119
+ }
120
+ ],
121
+ "name": "SafeMultiSigTransaction",
122
+ "type": "event"
123
+ },
124
+ {
125
+ "anonymous": false,
126
+ "inputs": [
127
+ {
128
+ "indexed": true,
129
+ "internalType": "address",
130
+ "name": "initiator",
131
+ "type": "address"
132
+ },
133
+ {
134
+ "indexed": false,
135
+ "internalType": "address[]",
136
+ "name": "owners",
137
+ "type": "address[]"
138
+ },
139
+ {
140
+ "indexed": false,
141
+ "internalType": "uint256",
142
+ "name": "threshold",
143
+ "type": "uint256"
144
+ },
145
+ {
146
+ "indexed": false,
147
+ "internalType": "address",
148
+ "name": "initializer",
149
+ "type": "address"
150
+ },
151
+ {
152
+ "indexed": false,
153
+ "internalType": "address",
154
+ "name": "fallbackHandler",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "SafeSetup",
159
+ "type": "event"
160
+ },
161
+ {
162
+ "inputs": [],
163
+ "name": "MIGRATION_SINGLETON",
164
+ "outputs": [
165
+ {
166
+ "internalType": "address",
167
+ "name": "",
168
+ "type": "address"
169
+ }
170
+ ],
171
+ "stateMutability": "view",
172
+ "type": "function"
173
+ },
174
+ {
175
+ "inputs": [
176
+ {
177
+ "internalType": "address",
178
+ "name": "l2Singleton",
179
+ "type": "address"
180
+ },
181
+ {
182
+ "internalType": "address",
183
+ "name": "fallbackHandler",
184
+ "type": "address"
185
+ }
186
+ ],
187
+ "name": "migrateFromV111",
188
+ "outputs": [],
189
+ "stateMutability": "nonpayable",
190
+ "type": "function"
191
+ },
192
+ {
193
+ "inputs": [
194
+ {
195
+ "internalType": "address",
196
+ "name": "l2Singleton",
197
+ "type": "address"
198
+ }
199
+ ],
200
+ "name": "migrateToL2",
201
+ "outputs": [],
202
+ "stateMutability": "nonpayable",
203
+ "type": "function"
204
+ }
205
+ ]
206
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "released": true,
3
+ "contractName": "SafeToL2Setup",
4
+ "version": "1.4.1",
5
+ "deployments": {
6
+ "canonical": {
7
+ "address": "0xBD89A1CE4DDe368FFAB0eC35506eEcE0b1fFdc54",
8
+ "codeHash": "0x2f25df28caf984366ee584e13241707e85dcd5a6ea0c14267928dafc1fd6274b"
9
+ }
10
+ },
11
+ "networkAddresses": {
12
+ "1": "canonical",
13
+ "10": "canonical",
14
+ "56": "canonical",
15
+ "100": "canonical",
16
+ "137": "canonical",
17
+ "196": "canonical",
18
+ "1101": "canonical",
19
+ "1337": "canonical",
20
+ "5000": "canonical",
21
+ "8453": "canonical",
22
+ "42161": "canonical",
23
+ "42220": "canonical",
24
+ "43114": "canonical",
25
+ "59144": "canonical",
26
+ "81457": "canonical",
27
+ "84532": "canonical",
28
+ "534352": "canonical",
29
+ "11155111": "canonical",
30
+ "1313161554": "canonical"
31
+ },
32
+ "abi": [
33
+ {
34
+ "inputs": [],
35
+ "stateMutability": "nonpayable",
36
+ "type": "constructor"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "address",
44
+ "name": "singleton",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "ChangedMasterCopy",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "inputs": [
53
+ {
54
+ "internalType": "address",
55
+ "name": "l2Singleton",
56
+ "type": "address"
57
+ }
58
+ ],
59
+ "name": "setupToL2",
60
+ "outputs": [],
61
+ "stateMutability": "nonpayable",
62
+ "type": "function"
63
+ }
64
+ ]
65
+ }
@@ -9,4 +9,7 @@ declare const _MULTI_SEND_DEPLOYMENTS: SingletonDeploymentJSON[];
9
9
  declare const _MULTI_SEND_CALL_ONLY_DEPLOYMENTS: SingletonDeploymentJSON[];
10
10
  declare const _CREATE_CALL_DEPLOYMENTS: SingletonDeploymentJSON[];
11
11
  declare const _SIGN_MESSAGE_LIB_DEPLOYMENTS: SingletonDeploymentJSON[];
12
- export { _ACCESSOR_DEPLOYMENTS, _FACTORY_DEPLOYMENTS, _DEFAULT_CALLBACK_HANDLER_DEPLOYMENTS, _COMPAT_FALLBACK_HANDLER_DEPLOYMENTS, _SAFE_DEPLOYMENTS, _SAFE_L2_DEPLOYMENTS, _MULTI_SEND_DEPLOYMENTS, _MULTI_SEND_CALL_ONLY_DEPLOYMENTS, _CREATE_CALL_DEPLOYMENTS, _SIGN_MESSAGE_LIB_DEPLOYMENTS, };
12
+ declare const _SAFE_MIGRATION_DEPLOYMENTS: SingletonDeploymentJSON[];
13
+ declare const _SAFE_TO_L2_MIGRATION_DEPLOYMENTS: SingletonDeploymentJSON[];
14
+ declare const _SAFE_TO_L2_SETUP_DEPLOYMENTS: SingletonDeploymentJSON[];
15
+ export { _ACCESSOR_DEPLOYMENTS, _FACTORY_DEPLOYMENTS, _DEFAULT_CALLBACK_HANDLER_DEPLOYMENTS, _COMPAT_FALLBACK_HANDLER_DEPLOYMENTS, _SAFE_DEPLOYMENTS, _SAFE_L2_DEPLOYMENTS, _MULTI_SEND_DEPLOYMENTS, _MULTI_SEND_CALL_ONLY_DEPLOYMENTS, _CREATE_CALL_DEPLOYMENTS, _SIGN_MESSAGE_LIB_DEPLOYMENTS, _SAFE_MIGRATION_DEPLOYMENTS, _SAFE_TO_L2_MIGRATION_DEPLOYMENTS, _SAFE_TO_L2_SETUP_DEPLOYMENTS, };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports._SIGN_MESSAGE_LIB_DEPLOYMENTS = exports._CREATE_CALL_DEPLOYMENTS = exports._MULTI_SEND_CALL_ONLY_DEPLOYMENTS = exports._MULTI_SEND_DEPLOYMENTS = exports._SAFE_L2_DEPLOYMENTS = exports._SAFE_DEPLOYMENTS = exports._COMPAT_FALLBACK_HANDLER_DEPLOYMENTS = exports._DEFAULT_CALLBACK_HANDLER_DEPLOYMENTS = exports._FACTORY_DEPLOYMENTS = exports._ACCESSOR_DEPLOYMENTS = void 0;
6
+ exports._SAFE_TO_L2_SETUP_DEPLOYMENTS = exports._SAFE_TO_L2_MIGRATION_DEPLOYMENTS = exports._SAFE_MIGRATION_DEPLOYMENTS = exports._SIGN_MESSAGE_LIB_DEPLOYMENTS = exports._CREATE_CALL_DEPLOYMENTS = exports._MULTI_SEND_CALL_ONLY_DEPLOYMENTS = exports._MULTI_SEND_DEPLOYMENTS = exports._SAFE_L2_DEPLOYMENTS = exports._SAFE_DEPLOYMENTS = exports._COMPAT_FALLBACK_HANDLER_DEPLOYMENTS = exports._DEFAULT_CALLBACK_HANDLER_DEPLOYMENTS = exports._FACTORY_DEPLOYMENTS = exports._ACCESSOR_DEPLOYMENTS = void 0;
7
7
  // This is a file where all the deployments are consolidated
8
8
  // We do it in a separate file so we don't have to repeat comments about the array order and the type casting.
9
9
  // We use some specific types (like `AddressType`) in the `SingletonDeploymentJSON` type, but the TypeScript cannot infer that from the JSON files.
@@ -69,3 +69,12 @@ const sign_message_lib_json_1 = __importDefault(require("./assets/v1.3.0/sign_me
69
69
  const sign_message_lib_json_2 = __importDefault(require("./assets/v1.4.1/sign_message_lib.json"));
70
70
  const _SIGN_MESSAGE_LIB_DEPLOYMENTS = [sign_message_lib_json_2.default, sign_message_lib_json_1.default];
71
71
  exports._SIGN_MESSAGE_LIB_DEPLOYMENTS = _SIGN_MESSAGE_LIB_DEPLOYMENTS;
72
+ const safe_migration_json_1 = __importDefault(require("./assets/v1.4.1/safe_migration.json"));
73
+ const _SAFE_MIGRATION_DEPLOYMENTS = [safe_migration_json_1.default];
74
+ exports._SAFE_MIGRATION_DEPLOYMENTS = _SAFE_MIGRATION_DEPLOYMENTS;
75
+ const safe_to_l2_migration_json_1 = __importDefault(require("./assets/v1.4.1/safe_to_l2_migration.json"));
76
+ const _SAFE_TO_L2_MIGRATION_DEPLOYMENTS = [safe_to_l2_migration_json_1.default];
77
+ exports._SAFE_TO_L2_MIGRATION_DEPLOYMENTS = _SAFE_TO_L2_MIGRATION_DEPLOYMENTS;
78
+ const safe_to_l2_setup_json_1 = __importDefault(require("./assets/v1.4.1/safe_to_l2_setup.json"));
79
+ const _SAFE_TO_L2_SETUP_DEPLOYMENTS = [safe_to_l2_setup_json_1.default];
80
+ exports._SAFE_TO_L2_SETUP_DEPLOYMENTS = _SAFE_TO_L2_SETUP_DEPLOYMENTS;
package/dist/libs.d.ts CHANGED
@@ -47,3 +47,39 @@ export declare const getSignMessageLibDeployment: (filter?: DeploymentFilter) =>
47
47
  * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
48
48
  */
49
49
  export declare const getSignMessageLibDeployments: (filter?: DeploymentFilter) => SingletonDeploymentV2 | undefined;
50
+ /**
51
+ * Get the SafeMigration deployment based on the provided filter.
52
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
53
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
54
+ */
55
+ export declare const getSafeMigrationDeployment: (filter?: DeploymentFilter) => SingletonDeployment | undefined;
56
+ /**
57
+ * Get all SafeMigration deployments based on the provided filter.
58
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
59
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
60
+ */
61
+ export declare const getSafeMigrationDeployments: (filter?: DeploymentFilter) => SingletonDeploymentV2 | undefined;
62
+ /**
63
+ * Get the SafeToL2Migration deployment based on the provided filter.
64
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
65
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
66
+ */
67
+ export declare const getSafeToL2MigrationDeployment: (filter?: DeploymentFilter) => SingletonDeployment | undefined;
68
+ /**
69
+ * Get all SafeToL2Migration deployments based on the provided filter.
70
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
71
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
72
+ */
73
+ export declare const getSafeToL2MigrationDeployments: (filter?: DeploymentFilter) => SingletonDeploymentV2 | undefined;
74
+ /**
75
+ * Get the SafeToL2Setup deployment based on the provided filter.
76
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
77
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
78
+ */
79
+ export declare const getSafeToL2SetupDeployment: (filter?: DeploymentFilter) => SingletonDeployment | undefined;
80
+ /**
81
+ * Get all SafeToL2Setup deployments based on the provided filter.
82
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
83
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
84
+ */
85
+ export declare const getSafeToL2SetupDeployments: (filter?: DeploymentFilter) => SingletonDeploymentV2 | undefined;
package/dist/libs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSignMessageLibDeployments = exports.getSignMessageLibDeployment = exports.getCreateCallDeployments = exports.getCreateCallDeployment = exports.getMultiSendCallOnlyDeployments = exports.getMultiSendCallOnlyDeployment = exports.getMultiSendDeployments = exports.getMultiSendDeployment = void 0;
3
+ exports.getSafeToL2SetupDeployments = exports.getSafeToL2SetupDeployment = exports.getSafeToL2MigrationDeployments = exports.getSafeToL2MigrationDeployment = exports.getSafeMigrationDeployments = exports.getSafeMigrationDeployment = exports.getSignMessageLibDeployments = exports.getSignMessageLibDeployment = exports.getCreateCallDeployments = exports.getCreateCallDeployment = exports.getMultiSendCallOnlyDeployments = exports.getMultiSendCallOnlyDeployment = exports.getMultiSendDeployments = exports.getMultiSendDeployment = void 0;
4
4
  const deployments_1 = require("./deployments");
5
5
  const utils_1 = require("./utils");
6
6
  /**
@@ -75,3 +75,57 @@ const getSignMessageLibDeployments = (filter) => {
75
75
  return (0, utils_1.findDeployment)(filter, deployments_1._SIGN_MESSAGE_LIB_DEPLOYMENTS, "multiple" /* DeploymentFormats.MULTIPLE */);
76
76
  };
77
77
  exports.getSignMessageLibDeployments = getSignMessageLibDeployments;
78
+ /**
79
+ * Get the SafeMigration deployment based on the provided filter.
80
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
81
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
82
+ */
83
+ const getSafeMigrationDeployment = (filter) => {
84
+ return (0, utils_1.findDeployment)(filter, deployments_1._SAFE_MIGRATION_DEPLOYMENTS);
85
+ };
86
+ exports.getSafeMigrationDeployment = getSafeMigrationDeployment;
87
+ /**
88
+ * Get all SafeMigration deployments based on the provided filter.
89
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
90
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
91
+ */
92
+ const getSafeMigrationDeployments = (filter) => {
93
+ return (0, utils_1.findDeployment)(filter, deployments_1._SAFE_MIGRATION_DEPLOYMENTS, "multiple" /* DeploymentFormats.MULTIPLE */);
94
+ };
95
+ exports.getSafeMigrationDeployments = getSafeMigrationDeployments;
96
+ /**
97
+ * Get the SafeToL2Migration deployment based on the provided filter.
98
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
99
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
100
+ */
101
+ const getSafeToL2MigrationDeployment = (filter) => {
102
+ return (0, utils_1.findDeployment)(filter, deployments_1._SAFE_TO_L2_MIGRATION_DEPLOYMENTS);
103
+ };
104
+ exports.getSafeToL2MigrationDeployment = getSafeToL2MigrationDeployment;
105
+ /**
106
+ * Get all SafeToL2Migration deployments based on the provided filter.
107
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
108
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
109
+ */
110
+ const getSafeToL2MigrationDeployments = (filter) => {
111
+ return (0, utils_1.findDeployment)(filter, deployments_1._SAFE_TO_L2_MIGRATION_DEPLOYMENTS, "multiple" /* DeploymentFormats.MULTIPLE */);
112
+ };
113
+ exports.getSafeToL2MigrationDeployments = getSafeToL2MigrationDeployments;
114
+ /**
115
+ * Get the SafeToL2Setup deployment based on the provided filter.
116
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
117
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
118
+ */
119
+ const getSafeToL2SetupDeployment = (filter) => {
120
+ return (0, utils_1.findDeployment)(filter, deployments_1._SAFE_TO_L2_SETUP_DEPLOYMENTS);
121
+ };
122
+ exports.getSafeToL2SetupDeployment = getSafeToL2SetupDeployment;
123
+ /**
124
+ * Get all SafeToL2Setup deployments based on the provided filter.
125
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
126
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
127
+ */
128
+ const getSafeToL2SetupDeployments = (filter) => {
129
+ return (0, utils_1.findDeployment)(filter, deployments_1._SAFE_TO_L2_SETUP_DEPLOYMENTS, "multiple" /* DeploymentFormats.MULTIPLE */);
130
+ };
131
+ exports.getSafeToL2SetupDeployments = getSafeToL2SetupDeployments;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safe-global/safe-deployments",
3
- "version": "1.37.8",
3
+ "version": "1.37.10",
4
4
  "description": "Collection of Safe singleton deployments",
5
5
  "homepage": "https://github.com/safe-global/safe-deployments/",
6
6
  "license": "MIT",
@@ -97,8 +97,11 @@ describe('assets/', () => {
97
97
  }
98
98
 
99
99
  describe('networkAddresses', () => {
100
- it('should contain the same networks in all files', async () => {
101
- const files = versionFiles(version);
100
+ it('should contain the same networks in all files (exception for v1.4.1 migration contracts)', async () => {
101
+ const filesWithMigration = versionFiles(version);
102
+ const migrationContracts =
103
+ version === 'v1.4.1' ? ['safe_migration.json', 'safe_to_l2_migration.json', 'safe_to_l2_setup.json'] : [];
104
+ const files = filesWithMigration.filter((item) => !migrationContracts.includes(item));
102
105
  const networkCounts: Record<string, number> = {};
103
106
  for (const file of files) {
104
107
  const deploymentJson = await readAssetJSON(version, file);
@@ -115,6 +118,41 @@ describe('assets/', () => {
115
118
  }
116
119
  });
117
120
 
121
+ it('should contain the migration contracts networks in all other files', async () => {
122
+ const files = versionFiles(version);
123
+ const filesWithMigration =
124
+ version === 'v1.4.1' ? ['safe_migration.json', 'safe_to_l2_migration.json', 'safe_to_l2_setup.json'] : [];
125
+ const filesWithoutMigration = files.filter((item) => !filesWithMigration.includes(item));
126
+ const networkCountsWithMigration: Record<string, number> = {};
127
+ for (const file of filesWithMigration) {
128
+ const deploymentJson = await readAssetJSON(version, file);
129
+ if (!deploymentJson) {
130
+ throw new Error(`Failed to read asset ${version}/${file}`);
131
+ }
132
+ const { networkAddresses } = deploymentJson;
133
+ for (const network of Object.keys(networkAddresses)) {
134
+ networkCountsWithMigration[network] = (networkCountsWithMigration[network] ?? 0) + 1;
135
+ }
136
+ }
137
+ const networkCountsWithoutMigration: Record<string, number> = {};
138
+ for (const file of filesWithoutMigration) {
139
+ const deploymentJson = await readAssetJSON(version, file);
140
+ if (!deploymentJson) {
141
+ throw new Error(`Failed to read asset ${version}/${file}`);
142
+ }
143
+ const { networkAddresses } = deploymentJson;
144
+ for (const network of Object.keys(networkAddresses)) {
145
+ networkCountsWithoutMigration[network] = (networkCountsWithoutMigration[network] ?? 0) + 1;
146
+ }
147
+ }
148
+ for (const [network, count] of Object.entries(networkCountsWithMigration)) {
149
+ expect([network, count + networkCountsWithoutMigration[network]]).toEqual([
150
+ network,
151
+ filesWithMigration.length + filesWithoutMigration.length,
152
+ ]);
153
+ }
154
+ });
155
+
118
156
  it('the address types for a network should be the same in all files', async () => {
119
157
  const files = versionFiles(version);
120
158
  const networkAddressMap: Record<string, string | string[]> = {};
@@ -0,0 +1,148 @@
1
+ {
2
+ "released": true,
3
+ "contractName": "SafeMigration",
4
+ "version": "1.4.1",
5
+ "deployments": {
6
+ "canonical": {
7
+ "address": "0x526643F69b81B008F46d95CD5ced5eC0edFFDaC6",
8
+ "codeHash": "0xc00d7921460cd5a05393e7772e634bd7d212f356356aa3a77f0120a9b8e25e99"
9
+ }
10
+ },
11
+ "networkAddresses": {
12
+ "1": "canonical",
13
+ "10": "canonical",
14
+ "56": "canonical",
15
+ "100": "canonical",
16
+ "137": "canonical",
17
+ "196": "canonical",
18
+ "1101": "canonical",
19
+ "1337": "canonical",
20
+ "5000": "canonical",
21
+ "8453": "canonical",
22
+ "42161": "canonical",
23
+ "42220": "canonical",
24
+ "43114": "canonical",
25
+ "59144": "canonical",
26
+ "81457": "canonical",
27
+ "84532": "canonical",
28
+ "534352": "canonical",
29
+ "11155111": "canonical",
30
+ "1313161554": "canonical"
31
+ },
32
+ "abi": [
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "safeSingleton",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "internalType": "address",
42
+ "name": "safeL2Singleton",
43
+ "type": "address"
44
+ },
45
+ {
46
+ "internalType": "address",
47
+ "name": "fallbackHandler",
48
+ "type": "address"
49
+ }
50
+ ],
51
+ "stateMutability": "nonpayable",
52
+ "type": "constructor"
53
+ },
54
+ {
55
+ "anonymous": false,
56
+ "inputs": [
57
+ {
58
+ "indexed": false,
59
+ "internalType": "address",
60
+ "name": "singleton",
61
+ "type": "address"
62
+ }
63
+ ],
64
+ "name": "ChangedMasterCopy",
65
+ "type": "event"
66
+ },
67
+ {
68
+ "inputs": [],
69
+ "name": "MIGRATION_SINGLETON",
70
+ "outputs": [
71
+ {
72
+ "internalType": "address",
73
+ "name": "",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "stateMutability": "view",
78
+ "type": "function"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "SAFE_FALLBACK_HANDLER",
83
+ "outputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "stateMutability": "view",
91
+ "type": "function"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "SAFE_L2_SINGLETON",
96
+ "outputs": [
97
+ {
98
+ "internalType": "address",
99
+ "name": "",
100
+ "type": "address"
101
+ }
102
+ ],
103
+ "stateMutability": "view",
104
+ "type": "function"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "SAFE_SINGLETON",
109
+ "outputs": [
110
+ {
111
+ "internalType": "address",
112
+ "name": "",
113
+ "type": "address"
114
+ }
115
+ ],
116
+ "stateMutability": "view",
117
+ "type": "function"
118
+ },
119
+ {
120
+ "inputs": [],
121
+ "name": "migrateL2Singleton",
122
+ "outputs": [],
123
+ "stateMutability": "nonpayable",
124
+ "type": "function"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "migrateL2WithFallbackHandler",
129
+ "outputs": [],
130
+ "stateMutability": "nonpayable",
131
+ "type": "function"
132
+ },
133
+ {
134
+ "inputs": [],
135
+ "name": "migrateSingleton",
136
+ "outputs": [],
137
+ "stateMutability": "nonpayable",
138
+ "type": "function"
139
+ },
140
+ {
141
+ "inputs": [],
142
+ "name": "migrateWithFallbackHandler",
143
+ "outputs": [],
144
+ "stateMutability": "nonpayable",
145
+ "type": "function"
146
+ }
147
+ ]
148
+ }
@@ -0,0 +1,206 @@
1
+ {
2
+ "released": true,
3
+ "contractName": "SafeToL2Migration",
4
+ "version": "1.4.1",
5
+ "deployments": {
6
+ "canonical": {
7
+ "address": "0xfF83F6335d8930cBad1c0D439A841f01888D9f69",
8
+ "codeHash": "0xa83e7be2fa20c96dc9575e3937239d552f3831ea437d7c96397eec8736f0cba0"
9
+ }
10
+ },
11
+ "networkAddresses": {
12
+ "1": "canonical",
13
+ "10": "canonical",
14
+ "56": "canonical",
15
+ "100": "canonical",
16
+ "137": "canonical",
17
+ "196": "canonical",
18
+ "1101": "canonical",
19
+ "1337": "canonical",
20
+ "5000": "canonical",
21
+ "8453": "canonical",
22
+ "42161": "canonical",
23
+ "42220": "canonical",
24
+ "43114": "canonical",
25
+ "59144": "canonical",
26
+ "81457": "canonical",
27
+ "84532": "canonical",
28
+ "534352": "canonical",
29
+ "11155111": "canonical",
30
+ "1313161554": "canonical"
31
+ },
32
+ "abi": [
33
+ {
34
+ "inputs": [],
35
+ "stateMutability": "nonpayable",
36
+ "type": "constructor"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "address",
44
+ "name": "singleton",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "ChangedMasterCopy",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "anonymous": false,
53
+ "inputs": [
54
+ {
55
+ "indexed": false,
56
+ "internalType": "address",
57
+ "name": "to",
58
+ "type": "address"
59
+ },
60
+ {
61
+ "indexed": false,
62
+ "internalType": "uint256",
63
+ "name": "value",
64
+ "type": "uint256"
65
+ },
66
+ {
67
+ "indexed": false,
68
+ "internalType": "bytes",
69
+ "name": "data",
70
+ "type": "bytes"
71
+ },
72
+ {
73
+ "indexed": false,
74
+ "internalType": "enum Enum.Operation",
75
+ "name": "operation",
76
+ "type": "uint8"
77
+ },
78
+ {
79
+ "indexed": false,
80
+ "internalType": "uint256",
81
+ "name": "safeTxGas",
82
+ "type": "uint256"
83
+ },
84
+ {
85
+ "indexed": false,
86
+ "internalType": "uint256",
87
+ "name": "baseGas",
88
+ "type": "uint256"
89
+ },
90
+ {
91
+ "indexed": false,
92
+ "internalType": "uint256",
93
+ "name": "gasPrice",
94
+ "type": "uint256"
95
+ },
96
+ {
97
+ "indexed": false,
98
+ "internalType": "address",
99
+ "name": "gasToken",
100
+ "type": "address"
101
+ },
102
+ {
103
+ "indexed": false,
104
+ "internalType": "address payable",
105
+ "name": "refundReceiver",
106
+ "type": "address"
107
+ },
108
+ {
109
+ "indexed": false,
110
+ "internalType": "bytes",
111
+ "name": "signatures",
112
+ "type": "bytes"
113
+ },
114
+ {
115
+ "indexed": false,
116
+ "internalType": "bytes",
117
+ "name": "additionalInfo",
118
+ "type": "bytes"
119
+ }
120
+ ],
121
+ "name": "SafeMultiSigTransaction",
122
+ "type": "event"
123
+ },
124
+ {
125
+ "anonymous": false,
126
+ "inputs": [
127
+ {
128
+ "indexed": true,
129
+ "internalType": "address",
130
+ "name": "initiator",
131
+ "type": "address"
132
+ },
133
+ {
134
+ "indexed": false,
135
+ "internalType": "address[]",
136
+ "name": "owners",
137
+ "type": "address[]"
138
+ },
139
+ {
140
+ "indexed": false,
141
+ "internalType": "uint256",
142
+ "name": "threshold",
143
+ "type": "uint256"
144
+ },
145
+ {
146
+ "indexed": false,
147
+ "internalType": "address",
148
+ "name": "initializer",
149
+ "type": "address"
150
+ },
151
+ {
152
+ "indexed": false,
153
+ "internalType": "address",
154
+ "name": "fallbackHandler",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "SafeSetup",
159
+ "type": "event"
160
+ },
161
+ {
162
+ "inputs": [],
163
+ "name": "MIGRATION_SINGLETON",
164
+ "outputs": [
165
+ {
166
+ "internalType": "address",
167
+ "name": "",
168
+ "type": "address"
169
+ }
170
+ ],
171
+ "stateMutability": "view",
172
+ "type": "function"
173
+ },
174
+ {
175
+ "inputs": [
176
+ {
177
+ "internalType": "address",
178
+ "name": "l2Singleton",
179
+ "type": "address"
180
+ },
181
+ {
182
+ "internalType": "address",
183
+ "name": "fallbackHandler",
184
+ "type": "address"
185
+ }
186
+ ],
187
+ "name": "migrateFromV111",
188
+ "outputs": [],
189
+ "stateMutability": "nonpayable",
190
+ "type": "function"
191
+ },
192
+ {
193
+ "inputs": [
194
+ {
195
+ "internalType": "address",
196
+ "name": "l2Singleton",
197
+ "type": "address"
198
+ }
199
+ ],
200
+ "name": "migrateToL2",
201
+ "outputs": [],
202
+ "stateMutability": "nonpayable",
203
+ "type": "function"
204
+ }
205
+ ]
206
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "released": true,
3
+ "contractName": "SafeToL2Setup",
4
+ "version": "1.4.1",
5
+ "deployments": {
6
+ "canonical": {
7
+ "address": "0xBD89A1CE4DDe368FFAB0eC35506eEcE0b1fFdc54",
8
+ "codeHash": "0x2f25df28caf984366ee584e13241707e85dcd5a6ea0c14267928dafc1fd6274b"
9
+ }
10
+ },
11
+ "networkAddresses": {
12
+ "1": "canonical",
13
+ "10": "canonical",
14
+ "56": "canonical",
15
+ "100": "canonical",
16
+ "137": "canonical",
17
+ "196": "canonical",
18
+ "1101": "canonical",
19
+ "1337": "canonical",
20
+ "5000": "canonical",
21
+ "8453": "canonical",
22
+ "42161": "canonical",
23
+ "42220": "canonical",
24
+ "43114": "canonical",
25
+ "59144": "canonical",
26
+ "81457": "canonical",
27
+ "84532": "canonical",
28
+ "534352": "canonical",
29
+ "11155111": "canonical",
30
+ "1313161554": "canonical"
31
+ },
32
+ "abi": [
33
+ {
34
+ "inputs": [],
35
+ "stateMutability": "nonpayable",
36
+ "type": "constructor"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "address",
44
+ "name": "singleton",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "ChangedMasterCopy",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "inputs": [
53
+ {
54
+ "internalType": "address",
55
+ "name": "l2Singleton",
56
+ "type": "address"
57
+ }
58
+ ],
59
+ "name": "setupToL2",
60
+ "outputs": [],
61
+ "stateMutability": "nonpayable",
62
+ "type": "function"
63
+ }
64
+ ]
65
+ }
@@ -76,6 +76,18 @@ import SignMessageLib141 from './assets/v1.4.1/sign_message_lib.json';
76
76
 
77
77
  const _SIGN_MESSAGE_LIB_DEPLOYMENTS = [SignMessageLib141, SignMessageLib130] as SingletonDeploymentJSON[];
78
78
 
79
+ import SafeMigration141 from './assets/v1.4.1/safe_migration.json';
80
+
81
+ const _SAFE_MIGRATION_DEPLOYMENTS = [SafeMigration141] as SingletonDeploymentJSON[];
82
+
83
+ import SafeToL2Migration141 from './assets/v1.4.1/safe_to_l2_migration.json';
84
+
85
+ const _SAFE_TO_L2_MIGRATION_DEPLOYMENTS = [SafeToL2Migration141] as SingletonDeploymentJSON[];
86
+
87
+ import SafeToL2Setup141 from './assets/v1.4.1/safe_to_l2_setup.json';
88
+
89
+ const _SAFE_TO_L2_SETUP_DEPLOYMENTS = [SafeToL2Setup141] as SingletonDeploymentJSON[];
90
+
79
91
  export {
80
92
  _ACCESSOR_DEPLOYMENTS,
81
93
  _FACTORY_DEPLOYMENTS,
@@ -87,4 +99,7 @@ export {
87
99
  _MULTI_SEND_CALL_ONLY_DEPLOYMENTS,
88
100
  _CREATE_CALL_DEPLOYMENTS,
89
101
  _SIGN_MESSAGE_LIB_DEPLOYMENTS,
102
+ _SAFE_MIGRATION_DEPLOYMENTS,
103
+ _SAFE_TO_L2_MIGRATION_DEPLOYMENTS,
104
+ _SAFE_TO_L2_SETUP_DEPLOYMENTS,
90
105
  };
package/src/libs.ts CHANGED
@@ -3,6 +3,9 @@ import {
3
3
  _MULTI_SEND_CALL_ONLY_DEPLOYMENTS,
4
4
  _MULTI_SEND_DEPLOYMENTS,
5
5
  _SIGN_MESSAGE_LIB_DEPLOYMENTS,
6
+ _SAFE_MIGRATION_DEPLOYMENTS,
7
+ _SAFE_TO_L2_MIGRATION_DEPLOYMENTS,
8
+ _SAFE_TO_L2_SETUP_DEPLOYMENTS,
6
9
  } from './deployments';
7
10
  import { DeploymentFilter, DeploymentFormats, SingletonDeployment, SingletonDeploymentV2 } from './types';
8
11
  import { findDeployment } from './utils';
@@ -78,3 +81,57 @@ export const getSignMessageLibDeployment = (filter?: DeploymentFilter): Singleto
78
81
  export const getSignMessageLibDeployments = (filter?: DeploymentFilter): SingletonDeploymentV2 | undefined => {
79
82
  return findDeployment(filter, _SIGN_MESSAGE_LIB_DEPLOYMENTS, DeploymentFormats.MULTIPLE);
80
83
  };
84
+
85
+ /**
86
+ * Get the SafeMigration deployment based on the provided filter.
87
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
88
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
89
+ */
90
+ export const getSafeMigrationDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => {
91
+ return findDeployment(filter, _SAFE_MIGRATION_DEPLOYMENTS);
92
+ };
93
+
94
+ /**
95
+ * Get all SafeMigration deployments based on the provided filter.
96
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
97
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
98
+ */
99
+ export const getSafeMigrationDeployments = (filter?: DeploymentFilter): SingletonDeploymentV2 | undefined => {
100
+ return findDeployment(filter, _SAFE_MIGRATION_DEPLOYMENTS, DeploymentFormats.MULTIPLE);
101
+ };
102
+
103
+ /**
104
+ * Get the SafeToL2Migration deployment based on the provided filter.
105
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
106
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
107
+ */
108
+ export const getSafeToL2MigrationDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => {
109
+ return findDeployment(filter, _SAFE_TO_L2_MIGRATION_DEPLOYMENTS);
110
+ };
111
+
112
+ /**
113
+ * Get all SafeToL2Migration deployments based on the provided filter.
114
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
115
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
116
+ */
117
+ export const getSafeToL2MigrationDeployments = (filter?: DeploymentFilter): SingletonDeploymentV2 | undefined => {
118
+ return findDeployment(filter, _SAFE_TO_L2_MIGRATION_DEPLOYMENTS, DeploymentFormats.MULTIPLE);
119
+ };
120
+
121
+ /**
122
+ * Get the SafeToL2Setup deployment based on the provided filter.
123
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployment.
124
+ * @returns {SingletonDeployment | undefined} - The matched deployment or undefined if not found.
125
+ */
126
+ export const getSafeToL2SetupDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => {
127
+ return findDeployment(filter, _SAFE_TO_L2_SETUP_DEPLOYMENTS);
128
+ };
129
+
130
+ /**
131
+ * Get all SafeToL2Setup deployments based on the provided filter.
132
+ * @param {DeploymentFilter} [filter] - The filter criteria for the deployments.
133
+ * @returns {SingletonDeploymentV2 | undefined} - The matched deployments or undefined if not found.
134
+ */
135
+ export const getSafeToL2SetupDeployments = (filter?: DeploymentFilter): SingletonDeploymentV2 | undefined => {
136
+ return findDeployment(filter, _SAFE_TO_L2_SETUP_DEPLOYMENTS, DeploymentFormats.MULTIPLE);
137
+ };