@safe-global/safe-deployments 1.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +91 -0
  3. package/dist/assets/v1.0.0/gnosis_safe.json +419 -0
  4. package/dist/assets/v1.0.0/proxy_factory.json +105 -0
  5. package/dist/assets/v1.1.1/default_callback_handler.json +206 -0
  6. package/dist/assets/v1.1.1/gnosis_safe.json +995 -0
  7. package/dist/assets/v1.1.1/multi_send.json +39 -0
  8. package/dist/assets/v1.1.1/proxy_factory.json +185 -0
  9. package/dist/assets/v1.2.0/gnosis_safe.json +1016 -0
  10. package/dist/assets/v1.3.0/compatibility_fallback_handler.json +436 -0
  11. package/dist/assets/v1.3.0/create_call.json +179 -0
  12. package/dist/assets/v1.3.0/gnosis_safe.json +1144 -0
  13. package/dist/assets/v1.3.0/gnosis_safe_l2.json +1249 -0
  14. package/dist/assets/v1.3.0/multi_send.json +130 -0
  15. package/dist/assets/v1.3.0/multi_send_call_only.json +126 -0
  16. package/dist/assets/v1.3.0/proxy_factory.json +274 -0
  17. package/dist/assets/v1.3.0/sign_message_lib.json +157 -0
  18. package/dist/factories.d.ts +2 -0
  19. package/dist/factories.js +18 -0
  20. package/dist/handler.d.ts +4 -0
  21. package/dist/handler.js +33 -0
  22. package/dist/index.d.ts +5 -0
  23. package/dist/index.js +17 -0
  24. package/dist/libs.d.ts +5 -0
  25. package/dist/libs.js +43 -0
  26. package/dist/safes.d.ts +5 -0
  27. package/dist/safes.js +28 -0
  28. package/dist/types.d.ts +13 -0
  29. package/dist/types.js +2 -0
  30. package/dist/utils.d.ts +2 -0
  31. package/dist/utils.js +18 -0
  32. package/package.json +56 -0
  33. package/src/__tests__/factories.test.ts +13 -0
  34. package/src/__tests__/handler.test.ts +31 -0
  35. package/src/__tests__/libs.test.ts +39 -0
  36. package/src/__tests__/safes.test.ts +27 -0
  37. package/src/__tests__/utilts.test.ts +339 -0
  38. package/src/assets/v1.0.0/gnosis_safe.json +419 -0
  39. package/src/assets/v1.0.0/proxy_factory.json +105 -0
  40. package/src/assets/v1.1.1/create_and_add_modules.json +49 -0
  41. package/src/assets/v1.1.1/create_call.json +84 -0
  42. package/src/assets/v1.1.1/default_callback_handler.json +206 -0
  43. package/src/assets/v1.1.1/gnosis_safe.json +995 -0
  44. package/src/assets/v1.1.1/multi_send.json +39 -0
  45. package/src/assets/v1.1.1/proxy_factory.json +185 -0
  46. package/src/assets/v1.2.0/gnosis_safe.json +1016 -0
  47. package/src/assets/v1.3.0/compatibility_fallback_handler.json +436 -0
  48. package/src/assets/v1.3.0/create_call.json +179 -0
  49. package/src/assets/v1.3.0/gnosis_safe.json +1144 -0
  50. package/src/assets/v1.3.0/gnosis_safe_l2.json +1249 -0
  51. package/src/assets/v1.3.0/multi_send.json +130 -0
  52. package/src/assets/v1.3.0/multi_send_call_only.json +126 -0
  53. package/src/assets/v1.3.0/proxy_factory.json +274 -0
  54. package/src/assets/v1.3.0/sign_message_lib.json +157 -0
  55. package/src/assets/v1.3.0/simulate_tx_accessor.json +162 -0
  56. package/src/factories.ts +14 -0
  57. package/src/handler.ts +31 -0
  58. package/src/index.ts +5 -0
  59. package/src/libs.ts +42 -0
  60. package/src/safes.ts +25 -0
  61. package/src/types.ts +14 -0
  62. package/src/utils.ts +12 -0
@@ -0,0 +1,339 @@
1
+ import GnosisSafeL2130 from '../assets/v1.3.0/gnosis_safe_l2.json';
2
+ import GnosisSafe130 from '../assets/v1.3.0/gnosis_safe.json';
3
+ import GnosisSafe120 from '../assets/v1.2.0/gnosis_safe.json';
4
+ import GnosisSafe111 from '../assets/v1.1.1/gnosis_safe.json';
5
+ import GnosisSafe100 from '../assets/v1.0.0/gnosis_safe.json';
6
+ import { findDeployment } from '../utils';
7
+ import { _safeDeployments, _safeL2Deployments } from '../safes';
8
+ import { SingletonDeployment } from '../types';
9
+
10
+ const _safeDeploymentsReverse = [..._safeDeployments].reverse();
11
+
12
+ describe('utils.ts', () => {
13
+ describe('findDeployment', () => {
14
+ it('should filter by released by default', () => {
15
+ const testUnreleasedDeployment: SingletonDeployment = {
16
+ defaultAddress: '',
17
+ version: '',
18
+ abi: [],
19
+ networkAddresses: {},
20
+ contractName: '',
21
+ released: false,
22
+ };
23
+ const testReleasedDeployment: SingletonDeployment = {
24
+ defaultAddress: '',
25
+ version: '',
26
+ abi: [],
27
+ networkAddresses: {},
28
+ contractName: '',
29
+ released: true, // Default filter value
30
+ };
31
+
32
+ const testDeployments = [
33
+ testUnreleasedDeployment,
34
+ testUnreleasedDeployment,
35
+ testReleasedDeployment,
36
+ ];
37
+
38
+ expect(findDeployment(undefined, testDeployments)).toBe(
39
+ testReleasedDeployment
40
+ );
41
+ });
42
+ it('should return the correct deployment (filtered by version)', () => {
43
+ // Chronological deployments
44
+ expect(findDeployment({ version: '1.3.0' }, _safeDeployments)).toBe(
45
+ GnosisSafe130
46
+ );
47
+ expect(findDeployment({ version: '1.2.0' }, _safeDeployments)).toBe(
48
+ GnosisSafe120
49
+ );
50
+ expect(findDeployment({ version: '1.1.1' }, _safeDeployments)).toBe(
51
+ GnosisSafe111
52
+ );
53
+ expect(findDeployment({ version: '1.0.0' }, _safeDeployments)).toBe(
54
+ GnosisSafe100
55
+ );
56
+ // Incorrect filter:
57
+ expect(
58
+ findDeployment({ version: '2.0.0' }, _safeDeployments)
59
+ ).toBeUndefined();
60
+
61
+ // L2 deployments
62
+ expect(findDeployment({ version: '1.3.0+L2' }, _safeL2Deployments)).toBe(
63
+ GnosisSafeL2130
64
+ );
65
+ // Incorrect filter:
66
+ expect(
67
+ findDeployment({ version: '2.0.0+L2' }, _safeL2Deployments)
68
+ ).toBeUndefined();
69
+ });
70
+ it('should return the correct deployment (filtered by release)', () => {
71
+ // Chronological deployments
72
+ expect(findDeployment({ released: true }, _safeDeployments)).toBe(
73
+ GnosisSafe130
74
+ );
75
+ // Incorrect filter:
76
+ expect(
77
+ findDeployment({ released: false }, _safeDeployments)
78
+ ).toBeUndefined();
79
+
80
+ // Reverse chronological deployments
81
+ expect(findDeployment({ released: true }, _safeDeploymentsReverse)).toBe(
82
+ GnosisSafe100
83
+ );
84
+ // Incorrect filter:
85
+ expect(
86
+ findDeployment({ released: false }, _safeDeploymentsReverse)
87
+ ).toBeUndefined();
88
+
89
+ // L2 deployments
90
+ expect(findDeployment({ released: true }, _safeL2Deployments)).toBe(
91
+ GnosisSafeL2130
92
+ );
93
+ // Incorrect filter:
94
+ expect(
95
+ findDeployment({ released: false }, _safeL2Deployments)
96
+ ).toBeUndefined();
97
+ });
98
+
99
+ it('should return the correct deployment (filtered by network)', () => {
100
+ // Reverse chronological deployments
101
+ expect(findDeployment({ network: '1' }, _safeDeploymentsReverse)).toBe(
102
+ GnosisSafe100
103
+ );
104
+ expect(
105
+ findDeployment({ network: '73799' }, _safeDeploymentsReverse)
106
+ ).toBe(GnosisSafe111);
107
+ expect(
108
+ findDeployment({ network: '11297108109' }, _safeDeploymentsReverse)
109
+ ).toBe(GnosisSafe130);
110
+ // Incorrect filter:
111
+ expect(
112
+ findDeployment({ network: '0' }, _safeDeploymentsReverse)
113
+ ).toBeUndefined();
114
+
115
+ // L2 deployments
116
+ expect(findDeployment({ network: '100' }, _safeL2Deployments)).toBe(
117
+ GnosisSafeL2130
118
+ );
119
+ // Incorrect filter:
120
+ expect(
121
+ findDeployment({ network: '0' }, _safeL2Deployments)
122
+ ).toBeUndefined();
123
+ });
124
+ it('should return the correct deployment (filtered by version and released)', () => {
125
+ // Chronological deployments
126
+ expect(
127
+ findDeployment({ version: '1.3.0', released: true }, _safeDeployments)
128
+ ).toBe(GnosisSafe130);
129
+ expect(
130
+ findDeployment({ version: '1.2.0', released: true }, _safeDeployments)
131
+ ).toBe(GnosisSafe120);
132
+ expect(
133
+ findDeployment({ version: '1.1.1', released: true }, _safeDeployments)
134
+ ).toBe(GnosisSafe111);
135
+ expect(
136
+ findDeployment({ version: '1.0.0', released: true }, _safeDeployments)
137
+ ).toBe(GnosisSafe100);
138
+ // Incorrect filter:
139
+ expect(
140
+ findDeployment({ version: '1.0.0', released: false }, _safeDeployments)
141
+ ).toBeUndefined();
142
+
143
+ // L2 deployments
144
+ expect(
145
+ findDeployment({ version: '1.3.0', released: true }, _safeL2Deployments)
146
+ ).toBe(GnosisSafeL2130);
147
+ expect(
148
+ findDeployment(
149
+ { version: '1.3.0+L2', released: true },
150
+ _safeL2Deployments
151
+ )
152
+ ).toBe(GnosisSafeL2130);
153
+ // Incorrect filter:
154
+ expect(
155
+ findDeployment(
156
+ { version: '1.3.0+L2', released: false },
157
+ _safeL2Deployments
158
+ )
159
+ ).toBeUndefined();
160
+ });
161
+ it('should return the correct deployment (filtered by version and network)', () => {
162
+ // Reverse chronological deployments
163
+ expect(
164
+ findDeployment(
165
+ { version: '1.0.0', network: '1' },
166
+ _safeDeploymentsReverse
167
+ )
168
+ ).toBe(GnosisSafe100);
169
+ expect(
170
+ findDeployment(
171
+ { version: '1.1.1', network: '1' },
172
+ _safeDeploymentsReverse
173
+ )
174
+ ).toBe(GnosisSafe111);
175
+ expect(
176
+ findDeployment(
177
+ { version: '1.2.0', network: '1' },
178
+ _safeDeploymentsReverse
179
+ )
180
+ ).toBe(GnosisSafe120);
181
+ expect(
182
+ findDeployment(
183
+ { version: '1.3.0', network: '1' },
184
+ _safeDeploymentsReverse
185
+ )
186
+ ).toBe(GnosisSafe130);
187
+ // Incorrect filter:
188
+ expect(
189
+ findDeployment(
190
+ { version: '1.3.0', network: '0' },
191
+ _safeDeploymentsReverse
192
+ )
193
+ ).toBeUndefined();
194
+
195
+ // L2 deployments
196
+ expect(
197
+ findDeployment({ version: '1.3.0', network: '100' }, _safeL2Deployments)
198
+ ).toBe(GnosisSafeL2130);
199
+ expect(
200
+ findDeployment(
201
+ { version: '1.3.0+L2', network: '100' },
202
+ _safeL2Deployments
203
+ )
204
+ ).toBe(GnosisSafeL2130);
205
+ // Incorrect filter:
206
+ expect(
207
+ findDeployment(
208
+ { version: '1.3.0+L2', network: '0' },
209
+ _safeL2Deployments
210
+ )
211
+ ).toBeUndefined();
212
+ });
213
+ it('should return the correct deployment (filtered by released and network)', () => {
214
+ // Reverse chronological deployments
215
+ expect(
216
+ findDeployment(
217
+ { released: true, network: '1' },
218
+ _safeDeploymentsReverse
219
+ )
220
+ ).toBe(GnosisSafe100);
221
+ expect(
222
+ findDeployment(
223
+ { released: true, network: '246' },
224
+ _safeDeploymentsReverse
225
+ )
226
+ ).toBe(GnosisSafe111);
227
+ expect(
228
+ findDeployment(
229
+ { released: true, network: '11297108109' },
230
+ _safeDeploymentsReverse
231
+ )
232
+ ).toBe(GnosisSafe130);
233
+ // Incorrect filter:
234
+ expect(
235
+ findDeployment(
236
+ { released: true, network: '0' },
237
+ _safeDeploymentsReverse
238
+ )
239
+ ).toBeUndefined();
240
+ expect(
241
+ findDeployment(
242
+ { released: false, network: '1' },
243
+ _safeDeploymentsReverse
244
+ )
245
+ ).toBeUndefined();
246
+
247
+ // L2 deployments
248
+ expect(
249
+ findDeployment({ released: true, network: '100' }, _safeL2Deployments)
250
+ ).toBe(GnosisSafeL2130);
251
+ // Incorrect filter:
252
+ expect(
253
+ findDeployment({ released: true, network: '0' }, _safeL2Deployments)
254
+ ).toBeUndefined();
255
+ expect(
256
+ findDeployment({ released: false, network: '100' }, _safeL2Deployments)
257
+ ).toBeUndefined();
258
+ });
259
+ it('should return the correct deployment (filtered by version, released and network)', () => {
260
+ // Reverse chronological deployments
261
+ expect(
262
+ findDeployment(
263
+ { version: '1.0.0', released: true, network: '1' },
264
+ _safeDeploymentsReverse
265
+ )
266
+ ).toBe(GnosisSafe100);
267
+ expect(
268
+ findDeployment(
269
+ { version: '1.1.1', released: true, network: '246' },
270
+ _safeDeploymentsReverse
271
+ )
272
+ ).toBe(GnosisSafe111);
273
+ expect(
274
+ findDeployment(
275
+ { version: '1.2.0', released: true, network: '73799' },
276
+ _safeDeploymentsReverse
277
+ )
278
+ ).toBe(GnosisSafe120);
279
+ expect(
280
+ findDeployment(
281
+ { version: '1.3.0', released: true, network: '11297108109' },
282
+ _safeDeploymentsReverse
283
+ )
284
+ ).toBe(GnosisSafe130);
285
+ // Incorrect filter:
286
+ expect(
287
+ findDeployment(
288
+ { version: '1.3.0', released: false, network: '11297108109' },
289
+ _safeDeploymentsReverse
290
+ )
291
+ ).toBeUndefined();
292
+ expect(
293
+ findDeployment(
294
+ { version: '1.3.0', released: true, network: '0' },
295
+ _safeDeploymentsReverse
296
+ )
297
+ ).toBeUndefined();
298
+ expect(
299
+ findDeployment(
300
+ { version: '2.0.0', released: true, network: '11297108109' },
301
+ _safeDeploymentsReverse
302
+ )
303
+ ).toBeUndefined();
304
+
305
+ // L2 deployments
306
+ expect(
307
+ findDeployment(
308
+ { version: '1.3.0', released: true, network: '100' },
309
+ _safeL2Deployments
310
+ )
311
+ ).toBe(GnosisSafeL2130);
312
+ expect(
313
+ findDeployment(
314
+ { version: '1.3.0+L2', released: true, network: '100' },
315
+ _safeL2Deployments
316
+ )
317
+ ).toBe(GnosisSafeL2130);
318
+ // Incorrect filter:
319
+ expect(
320
+ findDeployment(
321
+ { version: '1.3.0+L2', released: false, network: '100' },
322
+ _safeL2Deployments
323
+ )
324
+ ).toBeUndefined();
325
+ expect(
326
+ findDeployment(
327
+ { version: '1.3.0+L2', released: true, network: '0' },
328
+ _safeL2Deployments
329
+ )
330
+ ).toBeUndefined();
331
+ expect(
332
+ findDeployment(
333
+ { version: '2.0.0+L2', released: true, network: '100' },
334
+ _safeL2Deployments
335
+ )
336
+ ).toBeUndefined();
337
+ });
338
+ });
339
+ });