@safe-global/safe-deployments 1.37.35 → 1.37.37
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 +18 -10
- package/dist/assets/v1.3.0/compatibility_fallback_handler.json +21 -9
- package/dist/assets/v1.3.0/create_call.json +21 -9
- package/dist/assets/v1.3.0/gnosis_safe.json +21 -9
- package/dist/assets/v1.3.0/gnosis_safe_l2.json +22 -10
- package/dist/assets/v1.3.0/multi_send.json +21 -9
- package/dist/assets/v1.3.0/multi_send_call_only.json +21 -9
- package/dist/assets/v1.3.0/proxy_factory.json +21 -9
- package/dist/assets/v1.3.0/sign_message_lib.json +21 -9
- package/dist/assets/v1.3.0/simulate_tx_accessor.json +21 -9
- package/dist/assets/v1.4.1/compatibility_fallback_handler.json +14 -3
- package/dist/assets/v1.4.1/create_call.json +14 -3
- package/dist/assets/v1.4.1/multi_send.json +14 -3
- package/dist/assets/v1.4.1/multi_send_call_only.json +14 -3
- package/dist/assets/v1.4.1/safe.json +14 -3
- package/dist/assets/v1.4.1/safe_l2.json +14 -3
- package/dist/assets/v1.4.1/safe_migration.json +15 -3
- package/dist/assets/v1.4.1/safe_proxy_factory.json +14 -3
- package/dist/assets/v1.4.1/safe_to_l2_migration.json +15 -3
- package/dist/assets/v1.4.1/safe_to_l2_setup.json +15 -3
- package/dist/assets/v1.4.1/sign_message_lib.json +14 -3
- package/dist/assets/v1.4.1/simulate_tx_accessor.json +14 -3
- package/dist/assets/v1.5.0/compatibility_fallback_handler.json +380 -0
- package/dist/assets/v1.5.0/create_call.json +85 -0
- package/dist/assets/v1.5.0/extensible_fallback_handler.json +440 -0
- package/dist/assets/v1.5.0/multi_send.json +37 -0
- package/dist/assets/v1.5.0/multi_send_call_only.json +32 -0
- package/dist/assets/v1.5.0/safe.json +1016 -0
- package/dist/assets/v1.5.0/safe_l2.json +1121 -0
- package/dist/assets/v1.5.0/safe_migration.json +133 -0
- package/dist/assets/v1.5.0/safe_proxy_factory.json +248 -0
- package/dist/assets/v1.5.0/safe_to_l2_setup.json +50 -0
- package/dist/assets/v1.5.0/sign_message_lib.json +64 -0
- package/dist/assets/v1.5.0/simulate_tx_accessor.json +68 -0
- package/dist/assets/v1.5.0/token_callback_handler.json +188 -0
- package/dist/deployments.d.ts +3 -2
- package/dist/deployments.js +52 -19
- package/dist/handler.d.ts +26 -0
- package/dist/handler.js +40 -8
- package/package.json +1 -1
- package/src/__tests__/assets.test.ts +0 -16
- package/src/__tests__/factories.test.ts +10 -4
- package/src/__tests__/handler.test.ts +49 -9
- package/src/__tests__/libs.test.ts +43 -10
- package/src/__tests__/safes.test.ts +70 -10
- package/src/__tests__/utils.test.ts +141 -95
- package/src/assets/v1.3.0/compatibility_fallback_handler.json +21 -9
- package/src/assets/v1.3.0/create_call.json +21 -9
- package/src/assets/v1.3.0/gnosis_safe.json +21 -9
- package/src/assets/v1.3.0/gnosis_safe_l2.json +22 -10
- package/src/assets/v1.3.0/multi_send.json +21 -9
- package/src/assets/v1.3.0/multi_send_call_only.json +21 -9
- package/src/assets/v1.3.0/proxy_factory.json +21 -9
- package/src/assets/v1.3.0/sign_message_lib.json +21 -9
- package/src/assets/v1.3.0/simulate_tx_accessor.json +21 -9
- package/src/assets/v1.4.1/compatibility_fallback_handler.json +14 -3
- package/src/assets/v1.4.1/create_call.json +14 -3
- package/src/assets/v1.4.1/multi_send.json +14 -3
- package/src/assets/v1.4.1/multi_send_call_only.json +14 -3
- package/src/assets/v1.4.1/safe.json +14 -3
- package/src/assets/v1.4.1/safe_l2.json +14 -3
- package/src/assets/v1.4.1/safe_migration.json +15 -3
- package/src/assets/v1.4.1/safe_proxy_factory.json +14 -3
- package/src/assets/v1.4.1/safe_to_l2_migration.json +15 -3
- package/src/assets/v1.4.1/safe_to_l2_setup.json +15 -3
- package/src/assets/v1.4.1/sign_message_lib.json +14 -3
- package/src/assets/v1.4.1/simulate_tx_accessor.json +14 -3
- package/src/assets/v1.5.0/compatibility_fallback_handler.json +380 -0
- package/src/assets/v1.5.0/create_call.json +85 -0
- package/src/assets/v1.5.0/extensible_fallback_handler.json +440 -0
- package/src/assets/v1.5.0/multi_send.json +37 -0
- package/src/assets/v1.5.0/multi_send_call_only.json +32 -0
- package/src/assets/v1.5.0/safe.json +1016 -0
- package/src/assets/v1.5.0/safe_l2.json +1121 -0
- package/src/assets/v1.5.0/safe_migration.json +133 -0
- package/src/assets/v1.5.0/safe_proxy_factory.json +248 -0
- package/src/assets/v1.5.0/safe_to_l2_setup.json +50 -0
- package/src/assets/v1.5.0/sign_message_lib.json +64 -0
- package/src/assets/v1.5.0/simulate_tx_accessor.json +68 -0
- package/src/assets/v1.5.0/token_callback_handler.json +188 -0
- package/src/deployments.ts +50 -15
- package/src/handler.ts +46 -6
- package/src/__tests__/assets/v1/v1.0.0/gnosis_safe.json +0 -796
- package/src/__tests__/assets/v1/v1.0.0/proxy_factory.json +0 -111
- package/src/__tests__/assets/v1/v1.1.1/create_and_add_modules.json +0 -59
- package/src/__tests__/assets/v1/v1.1.1/create_call.json +0 -90
- package/src/__tests__/assets/v1/v1.1.1/default_callback_handler.json +0 -212
- package/src/__tests__/assets/v1/v1.1.1/gnosis_safe.json +0 -1001
- package/src/__tests__/assets/v1/v1.1.1/multi_send.json +0 -45
- package/src/__tests__/assets/v1/v1.1.1/proxy_factory.json +0 -191
- package/src/__tests__/assets/v1/v1.2.0/gnosis_safe.json +0 -1022
- package/src/__tests__/assets/v1/v1.3.0/compatibility_fallback_handler.json +0 -588
- package/src/__tests__/assets/v1/v1.3.0/create_call.json +0 -331
- package/src/__tests__/assets/v1/v1.3.0/gnosis_safe.json +0 -1296
- package/src/__tests__/assets/v1/v1.3.0/gnosis_safe_l2.json +0 -1401
- package/src/__tests__/assets/v1/v1.3.0/multi_send.json +0 -283
- package/src/__tests__/assets/v1/v1.3.0/multi_send_call_only.json +0 -278
- package/src/__tests__/assets/v1/v1.3.0/proxy_factory.json +0 -426
- package/src/__tests__/assets/v1/v1.3.0/sign_message_lib.json +0 -310
- package/src/__tests__/assets/v1/v1.3.0/simulate_tx_accessor.json +0 -314
- package/src/__tests__/assets/v1/v1.4.1/compatibility_fallback_handler.json +0 -447
- package/src/__tests__/assets/v1/v1.4.1/create_call.json +0 -192
- package/src/__tests__/assets/v1/v1.4.1/multi_send.json +0 -144
- package/src/__tests__/assets/v1/v1.4.1/multi_send_call_only.json +0 -139
- package/src/__tests__/assets/v1/v1.4.1/safe.json +0 -1123
- package/src/__tests__/assets/v1/v1.4.1/safe_l2.json +0 -1228
- package/src/__tests__/assets/v1/v1.4.1/safe_proxy_factory.json +0 -263
- package/src/__tests__/assets/v1/v1.4.1/sign_message_lib.json +0 -171
- package/src/__tests__/assets/v1/v1.4.1/simulate_tx_accessor.json +0 -175
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import SignMessageLib141 from './assets/v1/v1.4.1/sign_message_lib.json';
|
|
1
|
+
import CreateCall from '../assets/v1.5.0/create_call.json';
|
|
2
|
+
import MultiSend from '../assets/v1.5.0/multi_send.json';
|
|
3
|
+
import MultiSendCallOnly from '../assets/v1.5.0/multi_send_call_only.json';
|
|
4
|
+
import SignMessageLib from '../assets/v1.5.0/sign_message_lib.json';
|
|
6
5
|
import {
|
|
7
6
|
getMultiSendDeployment,
|
|
8
7
|
getMultiSendCallOnlyDeployment,
|
|
@@ -14,26 +13,60 @@ describe('libs.ts', () => {
|
|
|
14
13
|
describe('getMultiSendDeployment', () => {
|
|
15
14
|
it('should find the preferred deployment first', () => {
|
|
16
15
|
const result = getMultiSendDeployment();
|
|
17
|
-
expect(result).toMatchObject(
|
|
18
|
-
|
|
16
|
+
expect(result).toMatchObject({
|
|
17
|
+
defaultAddress: MultiSend.deployments.canonical.address,
|
|
18
|
+
contractName: 'MultiSend',
|
|
19
|
+
version: '1.5.0',
|
|
20
|
+
networkAddresses: {
|
|
21
|
+
['1']: MultiSend.deployments.canonical.address,
|
|
22
|
+
},
|
|
23
|
+
abi: MultiSend.abi,
|
|
24
|
+
});
|
|
19
25
|
});
|
|
20
26
|
});
|
|
27
|
+
|
|
21
28
|
describe('getMultiSendCallOnlyDeployment', () => {
|
|
22
29
|
it('should find the preferred deployment first', () => {
|
|
23
30
|
const result = getMultiSendCallOnlyDeployment();
|
|
24
|
-
expect(result).toMatchObject(
|
|
31
|
+
expect(result).toMatchObject({
|
|
32
|
+
defaultAddress: MultiSendCallOnly.deployments.canonical.address,
|
|
33
|
+
contractName: 'MultiSendCallOnly',
|
|
34
|
+
version: '1.5.0',
|
|
35
|
+
networkAddresses: {
|
|
36
|
+
['1']: MultiSendCallOnly.deployments.canonical.address,
|
|
37
|
+
},
|
|
38
|
+
abi: MultiSendCallOnly.abi,
|
|
39
|
+
});
|
|
25
40
|
});
|
|
26
41
|
});
|
|
42
|
+
|
|
27
43
|
describe('getCreateCallDeployment', () => {
|
|
28
44
|
it('should find the preferred deployment first', () => {
|
|
29
45
|
const result = getCreateCallDeployment();
|
|
30
|
-
expect(result).toMatchObject(
|
|
46
|
+
expect(result).toMatchObject({
|
|
47
|
+
defaultAddress: CreateCall.deployments.canonical.address,
|
|
48
|
+
contractName: 'CreateCall',
|
|
49
|
+
version: '1.5.0',
|
|
50
|
+
networkAddresses: {
|
|
51
|
+
['1']: CreateCall.deployments.canonical.address,
|
|
52
|
+
},
|
|
53
|
+
abi: CreateCall.abi,
|
|
54
|
+
});
|
|
31
55
|
});
|
|
32
56
|
});
|
|
57
|
+
|
|
33
58
|
describe('getSignMessageLibDeployment', () => {
|
|
34
59
|
it('should find the preferred deployment first', () => {
|
|
35
60
|
const result = getSignMessageLibDeployment();
|
|
36
|
-
expect(result).toMatchObject(
|
|
61
|
+
expect(result).toMatchObject({
|
|
62
|
+
defaultAddress: SignMessageLib.deployments.canonical.address,
|
|
63
|
+
contractName: 'SignMessageLib',
|
|
64
|
+
version: '1.5.0',
|
|
65
|
+
networkAddresses: {
|
|
66
|
+
['1']: SignMessageLib.deployments.canonical.address,
|
|
67
|
+
},
|
|
68
|
+
abi: SignMessageLib.abi,
|
|
69
|
+
});
|
|
37
70
|
});
|
|
38
71
|
});
|
|
39
72
|
});
|
|
@@ -1,25 +1,85 @@
|
|
|
1
|
-
import
|
|
2
|
-
import Safe141 from '
|
|
3
|
-
import GnosisSafe130 from '
|
|
4
|
-
import GnosisSafe120 from '
|
|
5
|
-
import GnosisSafe111 from '
|
|
6
|
-
import GnosisSafe100 from '
|
|
1
|
+
import Safe150 from '../assets/v1.5.0/safe.json';
|
|
2
|
+
import Safe141 from '../assets/v1.4.1/safe.json';
|
|
3
|
+
import GnosisSafe130 from '../assets/v1.3.0/gnosis_safe.json';
|
|
4
|
+
import GnosisSafe120 from '../assets/v1.2.0/gnosis_safe.json';
|
|
5
|
+
import GnosisSafe111 from '../assets/v1.1.1/gnosis_safe.json';
|
|
6
|
+
import GnosisSafe100 from '../assets/v1.0.0/gnosis_safe.json';
|
|
7
|
+
import SafeL2150 from '../assets/v1.5.0/safe_l2.json';
|
|
8
|
+
import SafeL2141 from '../assets/v1.4.1/safe_l2.json';
|
|
9
|
+
import GnosisSafeL2130 from '../assets/v1.3.0/gnosis_safe_l2.json';
|
|
7
10
|
import { getSafeSingletonDeployment, getSafeL2SingletonDeployment } from '../safes';
|
|
8
11
|
|
|
9
12
|
describe('safes.ts', () => {
|
|
10
13
|
describe('getSafeSingletonDeployment', () => {
|
|
11
14
|
it('should find the latest deployment first', () => {
|
|
12
15
|
const result = getSafeSingletonDeployment();
|
|
13
|
-
expect(result).toMatchObject(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
expect(result).toMatchObject({
|
|
17
|
+
defaultAddress: Safe150.deployments.canonical.address,
|
|
18
|
+
contractName: 'Safe',
|
|
19
|
+
version: '1.5.0',
|
|
20
|
+
networkAddresses: {
|
|
21
|
+
['1']: Safe150.deployments.canonical.address,
|
|
22
|
+
},
|
|
23
|
+
abi: Safe150.abi,
|
|
16
24
|
});
|
|
17
25
|
});
|
|
26
|
+
|
|
27
|
+
it('should return the correct deployment filtered by version', () => {
|
|
28
|
+
for (const [version, artifact] of [
|
|
29
|
+
['1.5.0', Safe150],
|
|
30
|
+
['1.4.1', Safe141],
|
|
31
|
+
['1.3.0', GnosisSafe130],
|
|
32
|
+
['1.2.0', GnosisSafe120],
|
|
33
|
+
['1.1.1', GnosisSafe111],
|
|
34
|
+
['1.0.0', GnosisSafe100],
|
|
35
|
+
] as const) {
|
|
36
|
+
expect(getSafeSingletonDeployment({ version })).toMatchObject({
|
|
37
|
+
defaultAddress: artifact.deployments.canonical.address,
|
|
38
|
+
contractName: artifact.contractName,
|
|
39
|
+
version,
|
|
40
|
+
networkAddresses: {
|
|
41
|
+
['1']: artifact.deployments.canonical.address,
|
|
42
|
+
},
|
|
43
|
+
abi: artifact.abi,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
expect(getSafeSingletonDeployment({ version: '99.0.0' })).toBeUndefined();
|
|
48
|
+
});
|
|
18
49
|
});
|
|
50
|
+
|
|
19
51
|
describe('getSafeL2SingletonDeployment', () => {
|
|
20
52
|
it('should find the latest deployment first', () => {
|
|
21
53
|
const result = getSafeL2SingletonDeployment();
|
|
22
|
-
expect(result).toMatchObject(
|
|
54
|
+
expect(result).toMatchObject({
|
|
55
|
+
defaultAddress: SafeL2150.deployments.canonical.address,
|
|
56
|
+
contractName: 'SafeL2',
|
|
57
|
+
version: '1.5.0',
|
|
58
|
+
networkAddresses: {
|
|
59
|
+
['1']: SafeL2150.deployments.canonical.address,
|
|
60
|
+
},
|
|
61
|
+
abi: SafeL2150.abi,
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('should return the correct deployment filtered by version', () => {
|
|
66
|
+
for (const [version, artifact] of [
|
|
67
|
+
['1.5.0', SafeL2150],
|
|
68
|
+
['1.4.1', SafeL2141],
|
|
69
|
+
['1.3.0', GnosisSafeL2130],
|
|
70
|
+
] as const) {
|
|
71
|
+
expect(getSafeL2SingletonDeployment({ version })).toMatchObject({
|
|
72
|
+
defaultAddress: artifact.deployments.canonical.address,
|
|
73
|
+
contractName: artifact.contractName,
|
|
74
|
+
version,
|
|
75
|
+
networkAddresses: {
|
|
76
|
+
['1']: artifact.deployments.canonical.address,
|
|
77
|
+
},
|
|
78
|
+
abi: artifact.abi,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
expect(getSafeL2SingletonDeployment({ version: '99.0.0' })).toBeUndefined();
|
|
23
83
|
});
|
|
24
84
|
});
|
|
25
85
|
});
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
import SafeL2141 from './assets/v1/v1.4.1/safe_l2.json';
|
|
2
|
-
import Safe141 from './assets/v1/v1.4.1/safe.json';
|
|
3
|
-
|
|
4
|
-
import GnosisSafeL2130 from './assets/v1/v1.3.0/gnosis_safe_l2.json';
|
|
5
|
-
import GnosisSafe130 from './assets/v1/v1.3.0/gnosis_safe.json';
|
|
6
|
-
import GnosisSafe120 from './assets/v1/v1.2.0/gnosis_safe.json';
|
|
7
|
-
import GnosisSafe111 from './assets/v1/v1.1.1/gnosis_safe.json';
|
|
8
|
-
import GnosisSafe100 from './assets/v1/v1.0.0/gnosis_safe.json';
|
|
9
1
|
import { findDeployment } from '../utils';
|
|
10
2
|
import { _SAFE_DEPLOYMENTS, _SAFE_L2_DEPLOYMENTS } from '../deployments';
|
|
11
3
|
import { SingletonDeployment, SingletonDeploymentJSON, DeploymentFormats, SingletonDeploymentV2 } from '../types';
|
|
@@ -21,7 +13,7 @@ describe('utils.ts', () => {
|
|
|
21
13
|
abi: [],
|
|
22
14
|
deployments: {
|
|
23
15
|
canonical: {
|
|
24
|
-
address: '
|
|
16
|
+
address: '0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddead',
|
|
25
17
|
codeHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
26
18
|
},
|
|
27
19
|
},
|
|
@@ -69,28 +61,13 @@ describe('utils.ts', () => {
|
|
|
69
61
|
expect(findDeployment({ network: '1' }, testDeployments)).toMatchObject(testReleasedDeployment);
|
|
70
62
|
});
|
|
71
63
|
|
|
72
|
-
it('should return the correct deployment (filtered by version)', () => {
|
|
73
|
-
// Chronological deployments
|
|
74
|
-
expect(findDeployment({ version: '1.3.0' }, _SAFE_DEPLOYMENTS)).toMatchObject(GnosisSafe130);
|
|
75
|
-
expect(findDeployment({ version: '1.2.0' }, _SAFE_DEPLOYMENTS)).toMatchObject(GnosisSafe120);
|
|
76
|
-
expect(findDeployment({ version: '1.1.1' }, _SAFE_DEPLOYMENTS)).toMatchObject(GnosisSafe111);
|
|
77
|
-
expect(findDeployment({ version: '1.0.0' }, _SAFE_DEPLOYMENTS)).toMatchObject(GnosisSafe100);
|
|
78
|
-
// Incorrect filter:
|
|
79
|
-
expect(findDeployment({ version: '2.0.0' }, _SAFE_DEPLOYMENTS)).toBeUndefined();
|
|
80
|
-
|
|
81
|
-
// L2 deployments
|
|
82
|
-
expect(findDeployment({ version: '1.3.0+L2' }, _SAFE_L2_DEPLOYMENTS)).toMatchObject(GnosisSafeL2130);
|
|
83
|
-
// Incorrect filter:
|
|
84
|
-
expect(findDeployment({ version: '2.0.0+L2' }, _SAFE_L2_DEPLOYMENTS)).toBeUndefined();
|
|
85
|
-
});
|
|
86
|
-
|
|
87
64
|
it('should return the correct deployment (filtered by released flag)', () => {
|
|
88
65
|
const testUnreleasedDeploymentJson: SingletonDeploymentJSON = {
|
|
89
66
|
version: '',
|
|
90
67
|
abi: [],
|
|
91
68
|
deployments: {
|
|
92
69
|
canonical: {
|
|
93
|
-
address: '
|
|
70
|
+
address: '0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddead',
|
|
94
71
|
codeHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
95
72
|
},
|
|
96
73
|
},
|
|
@@ -112,6 +89,20 @@ describe('utils.ts', () => {
|
|
|
112
89
|
released: true, // Default filter value
|
|
113
90
|
};
|
|
114
91
|
const testUnreleasedDeployment: SingletonDeployment = {
|
|
92
|
+
defaultAddress: '0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddead',
|
|
93
|
+
deployments: {
|
|
94
|
+
canonical: {
|
|
95
|
+
address: '0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddead',
|
|
96
|
+
codeHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
networkAddresses: { '1': '0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddead' },
|
|
100
|
+
released: false,
|
|
101
|
+
abi: [],
|
|
102
|
+
version: '',
|
|
103
|
+
contractName: '',
|
|
104
|
+
};
|
|
105
|
+
const testReleasedDeployment: SingletonDeployment = {
|
|
115
106
|
defaultAddress: '0xbeefbeefbeefbeefbeefbeefbeefbeefbeefbeef',
|
|
116
107
|
deployments: {
|
|
117
108
|
canonical: {
|
|
@@ -120,64 +111,91 @@ describe('utils.ts', () => {
|
|
|
120
111
|
},
|
|
121
112
|
},
|
|
122
113
|
networkAddresses: { '1': '0xbeefbeefbeefbeefbeefbeefbeefbeefbeefbeef' },
|
|
123
|
-
released:
|
|
114
|
+
released: true,
|
|
124
115
|
abi: [],
|
|
125
116
|
version: '',
|
|
126
117
|
contractName: '',
|
|
127
118
|
};
|
|
128
|
-
|
|
129
119
|
const testDeployments = [testUnreleasedDeploymentJson, testReleasedDeploymentJson];
|
|
130
120
|
|
|
131
|
-
// Chronological deployments
|
|
132
|
-
expect(findDeployment({ released: true }, _SAFE_DEPLOYMENTS)).toMatchObject(Safe141);
|
|
133
|
-
|
|
134
|
-
// Reverse chronological deployments
|
|
135
|
-
expect(findDeployment({ released: true }, _safeDeploymentsReverse)).toMatchObject(GnosisSafe100);
|
|
136
|
-
// Released flag set to false:
|
|
137
121
|
expect(findDeployment({ released: false }, testDeployments)).toMatchObject(testUnreleasedDeployment);
|
|
122
|
+
expect(findDeployment({ released: true }, testDeployments)).toMatchObject(testReleasedDeployment);
|
|
138
123
|
|
|
139
|
-
|
|
140
|
-
|
|
124
|
+
expect(findDeployment({ released: true }, _SAFE_DEPLOYMENTS)).toMatchObject({
|
|
125
|
+
contractName: 'Safe',
|
|
126
|
+
version: '1.5.0',
|
|
127
|
+
});
|
|
128
|
+
expect(findDeployment({ released: true }, _safeDeploymentsReverse)).toMatchObject({
|
|
129
|
+
contractName: 'GnosisSafe',
|
|
130
|
+
version: '1.0.0',
|
|
131
|
+
});
|
|
132
|
+
expect(findDeployment({ released: true }, _SAFE_L2_DEPLOYMENTS)).toMatchObject({
|
|
133
|
+
contractName: 'SafeL2',
|
|
134
|
+
version: '1.5.0',
|
|
135
|
+
});
|
|
141
136
|
});
|
|
142
137
|
|
|
143
138
|
it('should return the correct deployment (filtered by network)', () => {
|
|
144
139
|
// Reverse chronological deployments
|
|
145
|
-
expect(findDeployment({ network: '1' }, _safeDeploymentsReverse)).toMatchObject(
|
|
146
|
-
|
|
147
|
-
|
|
140
|
+
expect(findDeployment({ network: '1' }, _safeDeploymentsReverse)).toMatchObject({
|
|
141
|
+
contractName: 'GnosisSafe',
|
|
142
|
+
version: '1.0.0',
|
|
143
|
+
});
|
|
144
|
+
expect(findDeployment({ network: '73799' }, _safeDeploymentsReverse)).toMatchObject({
|
|
145
|
+
contractName: 'GnosisSafe',
|
|
146
|
+
version: '1.1.1',
|
|
147
|
+
});
|
|
148
|
+
expect(findDeployment({ network: '11297108109' }, _safeDeploymentsReverse)).toMatchObject({
|
|
149
|
+
contractName: 'GnosisSafe',
|
|
150
|
+
version: '1.3.0',
|
|
151
|
+
});
|
|
148
152
|
// Incorrect filter:
|
|
149
153
|
expect(findDeployment({ network: '0' }, _safeDeploymentsReverse)).toBeUndefined();
|
|
150
154
|
|
|
151
155
|
// L2 deployments
|
|
152
|
-
expect(findDeployment({ network: '
|
|
156
|
+
expect(findDeployment({ network: '1' }, _SAFE_L2_DEPLOYMENTS)).toMatchObject({
|
|
157
|
+
contractName: 'SafeL2',
|
|
158
|
+
version: '1.5.0',
|
|
159
|
+
});
|
|
153
160
|
// Incorrect filter:
|
|
154
161
|
expect(findDeployment({ network: '0' }, _SAFE_L2_DEPLOYMENTS)).toBeUndefined();
|
|
155
162
|
});
|
|
163
|
+
|
|
156
164
|
it('should return the correct deployment (filtered by version and released)', () => {
|
|
157
165
|
// Chronological deployments
|
|
158
|
-
expect(findDeployment({ version: '1.3.0', released: true }, _SAFE_DEPLOYMENTS)).toMatchObject(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
166
|
+
expect(findDeployment({ version: '1.3.0', released: true }, _SAFE_DEPLOYMENTS)).toMatchObject({
|
|
167
|
+
contractName: 'GnosisSafe',
|
|
168
|
+
version: '1.3.0',
|
|
169
|
+
released: true,
|
|
170
|
+
});
|
|
171
|
+
expect(findDeployment({ version: '1.2.0', released: true }, _SAFE_DEPLOYMENTS)).toMatchObject({
|
|
172
|
+
contractName: 'GnosisSafe',
|
|
173
|
+
version: '1.2.0',
|
|
174
|
+
released: true,
|
|
175
|
+
});
|
|
176
|
+
expect(findDeployment({ version: '1.1.1', released: true }, _SAFE_DEPLOYMENTS)).toMatchObject({
|
|
177
|
+
contractName: 'GnosisSafe',
|
|
178
|
+
version: '1.1.1',
|
|
179
|
+
released: true,
|
|
180
|
+
});
|
|
181
|
+
expect(findDeployment({ version: '1.0.0', released: true }, _SAFE_DEPLOYMENTS)).toMatchObject({
|
|
182
|
+
contractName: 'GnosisSafe',
|
|
183
|
+
version: '1.0.0',
|
|
184
|
+
released: true,
|
|
185
|
+
});
|
|
162
186
|
// Incorrect filter:
|
|
163
187
|
expect(findDeployment({ version: '1.0.0', released: false }, _SAFE_DEPLOYMENTS)).toBeUndefined();
|
|
164
188
|
|
|
165
189
|
// L2 deployments
|
|
166
|
-
expect(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
},
|
|
172
|
-
_SAFE_L2_DEPLOYMENTS,
|
|
173
|
-
),
|
|
174
|
-
).toMatchObject(GnosisSafeL2130);
|
|
175
|
-
expect(findDeployment({ version: '1.3.0+L2', released: true }, _SAFE_L2_DEPLOYMENTS)).toMatchObject(
|
|
176
|
-
GnosisSafeL2130,
|
|
177
|
-
);
|
|
190
|
+
expect(findDeployment({ version: '1.3.0', released: true }, _SAFE_L2_DEPLOYMENTS)).toMatchObject({
|
|
191
|
+
contractName: 'GnosisSafeL2',
|
|
192
|
+
version: '1.3.0',
|
|
193
|
+
released: true,
|
|
194
|
+
});
|
|
178
195
|
// Incorrect filter:
|
|
179
|
-
expect(findDeployment({ version: '1.3.0
|
|
196
|
+
expect(findDeployment({ version: '1.3.0', released: false }, _SAFE_L2_DEPLOYMENTS)).toBeUndefined();
|
|
180
197
|
});
|
|
198
|
+
|
|
181
199
|
it('should return the correct deployment (filtered by version and network)', () => {
|
|
182
200
|
// Reverse chronological deployments
|
|
183
201
|
expect(
|
|
@@ -188,7 +206,10 @@ describe('utils.ts', () => {
|
|
|
188
206
|
},
|
|
189
207
|
_safeDeploymentsReverse,
|
|
190
208
|
),
|
|
191
|
-
).toMatchObject(
|
|
209
|
+
).toMatchObject({
|
|
210
|
+
contractName: 'GnosisSafe',
|
|
211
|
+
version: '1.0.0',
|
|
212
|
+
});
|
|
192
213
|
expect(
|
|
193
214
|
findDeployment(
|
|
194
215
|
{
|
|
@@ -197,7 +218,10 @@ describe('utils.ts', () => {
|
|
|
197
218
|
},
|
|
198
219
|
_safeDeploymentsReverse,
|
|
199
220
|
),
|
|
200
|
-
).toMatchObject(
|
|
221
|
+
).toMatchObject({
|
|
222
|
+
contractName: 'GnosisSafe',
|
|
223
|
+
version: '1.1.1',
|
|
224
|
+
});
|
|
201
225
|
expect(
|
|
202
226
|
findDeployment(
|
|
203
227
|
{
|
|
@@ -206,7 +230,10 @@ describe('utils.ts', () => {
|
|
|
206
230
|
},
|
|
207
231
|
_safeDeploymentsReverse,
|
|
208
232
|
),
|
|
209
|
-
).toMatchObject(
|
|
233
|
+
).toMatchObject({
|
|
234
|
+
contractName: 'GnosisSafe',
|
|
235
|
+
version: '1.2.0',
|
|
236
|
+
});
|
|
210
237
|
expect(
|
|
211
238
|
findDeployment(
|
|
212
239
|
{
|
|
@@ -215,7 +242,10 @@ describe('utils.ts', () => {
|
|
|
215
242
|
},
|
|
216
243
|
_safeDeploymentsReverse,
|
|
217
244
|
),
|
|
218
|
-
).toMatchObject(
|
|
245
|
+
).toMatchObject({
|
|
246
|
+
contractName: 'GnosisSafe',
|
|
247
|
+
version: '1.3.0',
|
|
248
|
+
});
|
|
219
249
|
// Incorrect filter:
|
|
220
250
|
expect(findDeployment({ version: '1.3.0', network: '0' }, _safeDeploymentsReverse)).toBeUndefined();
|
|
221
251
|
|
|
@@ -228,13 +258,14 @@ describe('utils.ts', () => {
|
|
|
228
258
|
},
|
|
229
259
|
_SAFE_L2_DEPLOYMENTS,
|
|
230
260
|
),
|
|
231
|
-
).toMatchObject(
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
);
|
|
261
|
+
).toMatchObject({
|
|
262
|
+
contractName: 'GnosisSafeL2',
|
|
263
|
+
version: '1.3.0',
|
|
264
|
+
});
|
|
235
265
|
// Incorrect filter:
|
|
236
|
-
expect(findDeployment({ version: '1.3.0
|
|
266
|
+
expect(findDeployment({ version: '1.3.0', network: '0' }, _SAFE_L2_DEPLOYMENTS)).toBeUndefined();
|
|
237
267
|
});
|
|
268
|
+
|
|
238
269
|
it('should return the correct deployment (filtered by released and network)', () => {
|
|
239
270
|
const testUnreleasedDeploymentJson: SingletonDeploymentJSON = {
|
|
240
271
|
version: '',
|
|
@@ -283,6 +314,10 @@ describe('utils.ts', () => {
|
|
|
283
314
|
testReleasedDeploymentJson,
|
|
284
315
|
];
|
|
285
316
|
|
|
317
|
+
expect(findDeployment({ released: false, network: '1' }, testDeployments)).toMatchObject(
|
|
318
|
+
testUnreleasedDeployment,
|
|
319
|
+
);
|
|
320
|
+
|
|
286
321
|
// Reverse chronological deployments
|
|
287
322
|
expect(
|
|
288
323
|
findDeployment(
|
|
@@ -292,39 +327,57 @@ describe('utils.ts', () => {
|
|
|
292
327
|
},
|
|
293
328
|
_safeDeploymentsReverse,
|
|
294
329
|
),
|
|
295
|
-
).toMatchObject(
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
);
|
|
299
|
-
expect(findDeployment({ released: true, network: '
|
|
300
|
-
|
|
301
|
-
|
|
330
|
+
).toMatchObject({
|
|
331
|
+
contractName: 'GnosisSafe',
|
|
332
|
+
version: '1.0.0',
|
|
333
|
+
});
|
|
334
|
+
expect(findDeployment({ released: true, network: '246' }, _safeDeploymentsReverse)).toMatchObject({
|
|
335
|
+
contractName: 'GnosisSafe',
|
|
336
|
+
version: '1.1.1',
|
|
337
|
+
});
|
|
338
|
+
expect(findDeployment({ released: true, network: '11297108109' }, _safeDeploymentsReverse)).toMatchObject({
|
|
339
|
+
contractName: 'GnosisSafe',
|
|
340
|
+
version: '1.3.0',
|
|
341
|
+
});
|
|
302
342
|
// Incorrect filter:
|
|
303
343
|
expect(findDeployment({ released: true, network: '0' }, _safeDeploymentsReverse)).toBeUndefined();
|
|
304
|
-
expect(findDeployment({ released: false, network: '1' }, testDeployments)).toMatchObject(
|
|
305
|
-
testUnreleasedDeployment,
|
|
306
|
-
);
|
|
307
344
|
|
|
308
345
|
// L2 deployments
|
|
309
|
-
expect(findDeployment({ released: true, network: '
|
|
346
|
+
expect(findDeployment({ released: true, network: '1' }, _SAFE_L2_DEPLOYMENTS)).toMatchObject({
|
|
347
|
+
contractName: 'SafeL2',
|
|
348
|
+
version: '1.5.0',
|
|
349
|
+
});
|
|
310
350
|
// Incorrect filter:
|
|
311
351
|
expect(findDeployment({ released: true, network: '0' }, _SAFE_L2_DEPLOYMENTS)).toBeUndefined();
|
|
312
352
|
expect(findDeployment({ released: false, network: '100' }, testDeployments)).toBeUndefined();
|
|
313
353
|
});
|
|
354
|
+
|
|
314
355
|
it('should return the correct deployment (filtered by version, released and network)', () => {
|
|
315
356
|
// Reverse chronological deployments
|
|
316
357
|
expect(
|
|
317
358
|
findDeployment({ version: '1.0.0', released: true, network: '1' }, _safeDeploymentsReverse),
|
|
318
|
-
).toMatchObject(
|
|
359
|
+
).toMatchObject({
|
|
360
|
+
contractName: 'GnosisSafe',
|
|
361
|
+
version: '1.0.0',
|
|
362
|
+
});
|
|
319
363
|
expect(
|
|
320
364
|
findDeployment({ version: '1.1.1', released: true, network: '246' }, _safeDeploymentsReverse),
|
|
321
|
-
).toMatchObject(
|
|
365
|
+
).toMatchObject({
|
|
366
|
+
contractName: 'GnosisSafe',
|
|
367
|
+
version: '1.1.1',
|
|
368
|
+
});
|
|
322
369
|
expect(
|
|
323
370
|
findDeployment({ version: '1.2.0', released: true, network: '73799' }, _safeDeploymentsReverse),
|
|
324
|
-
).toMatchObject(
|
|
371
|
+
).toMatchObject({
|
|
372
|
+
contractName: 'GnosisSafe',
|
|
373
|
+
version: '1.2.0',
|
|
374
|
+
});
|
|
325
375
|
expect(
|
|
326
376
|
findDeployment({ version: '1.3.0', released: true, network: '11297108109' }, _safeDeploymentsReverse),
|
|
327
|
-
).toMatchObject(
|
|
377
|
+
).toMatchObject({
|
|
378
|
+
contractName: 'GnosisSafe',
|
|
379
|
+
version: '1.3.0',
|
|
380
|
+
});
|
|
328
381
|
// Incorrect filter:
|
|
329
382
|
expect(
|
|
330
383
|
findDeployment({ version: '1.3.0', released: false, network: '11297108109' }, _safeDeploymentsReverse),
|
|
@@ -338,27 +391,20 @@ describe('utils.ts', () => {
|
|
|
338
391
|
|
|
339
392
|
// L2 deployments
|
|
340
393
|
expect(
|
|
341
|
-
findDeployment(
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
},
|
|
347
|
-
_SAFE_L2_DEPLOYMENTS,
|
|
348
|
-
),
|
|
349
|
-
).toMatchObject(GnosisSafeL2130);
|
|
350
|
-
expect(
|
|
351
|
-
findDeployment({ version: '1.3.0+L2', released: true, network: '100' }, _SAFE_L2_DEPLOYMENTS),
|
|
352
|
-
).toMatchObject(GnosisSafeL2130);
|
|
394
|
+
findDeployment({ version: '1.3.0', released: true, network: '100' }, _SAFE_L2_DEPLOYMENTS),
|
|
395
|
+
).toMatchObject({
|
|
396
|
+
contractName: 'GnosisSafeL2',
|
|
397
|
+
version: '1.3.0',
|
|
398
|
+
});
|
|
353
399
|
// Incorrect filter:
|
|
354
400
|
expect(
|
|
355
|
-
findDeployment({ version: '1.3.0
|
|
401
|
+
findDeployment({ version: '1.3.0', released: false, network: '100' }, _SAFE_L2_DEPLOYMENTS),
|
|
356
402
|
).toBeUndefined();
|
|
357
403
|
expect(
|
|
358
|
-
findDeployment({ version: '1.3.0
|
|
404
|
+
findDeployment({ version: '1.3.0', released: true, network: '0' }, _SAFE_L2_DEPLOYMENTS),
|
|
359
405
|
).toBeUndefined();
|
|
360
406
|
expect(
|
|
361
|
-
findDeployment({ version: '2.0.0
|
|
407
|
+
findDeployment({ version: '2.0.0', released: true, network: '100' }, _SAFE_L2_DEPLOYMENTS),
|
|
362
408
|
).toBeUndefined();
|
|
363
409
|
});
|
|
364
410
|
});
|