Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
767be39673 | ||
|
|
714d966d48 | ||
|
|
11d66e5bc2 | ||
|
|
9d5f6d0b06 | ||
|
|
48c83ef759 | ||
|
|
c84fc71bf1 | ||
|
|
550602db12 | ||
|
|
5932f7dc99 | ||
|
|
b89dce3c2a | ||
|
|
8aba451be8 | ||
|
|
82dd805755 | ||
|
|
6e30d9faa8 | ||
|
|
070869b705 | ||
|
|
9dfa1069e5 | ||
|
|
99dd374c87 | ||
|
|
bac5ace90a | ||
|
|
34cb7d19e2 | ||
|
|
a98bbf6a71 | ||
|
|
8116f7a7b1 | ||
|
|
b3fbed1a1b | ||
|
|
4826bedba4 | ||
|
|
b81ac07636 | ||
|
|
2da2dfdad7 | ||
|
|
1036bff41b | ||
|
|
e15b9a224c | ||
|
|
82ab32c028 | ||
|
|
3541485338 | ||
|
|
8c82a84aee | ||
|
|
447945f46e | ||
|
|
16b2c90040 | ||
|
|
a210d59c4f | ||
|
|
fe0c5c2da7 | ||
|
|
8c91fbdd49 | ||
|
|
93e0c1fc5e | ||
|
|
9c7d215217 | ||
|
|
4668d6a285 | ||
|
|
6c9c92efc7 | ||
|
|
eff252c7c0 | ||
|
|
ab12c8a17d | ||
|
|
8b21d6ab53 | ||
|
|
36fa4bdb62 | ||
|
|
ed10ed70f7 | ||
|
|
8c089bb334 | ||
|
|
45b09603d2 | ||
|
|
857cb47ceb | ||
|
|
4782b3eb2a | ||
|
|
1a5008bcda | ||
|
|
c5c7f2eb27 | ||
|
|
25072cff9f | ||
|
|
e38cb0dee6 | ||
|
|
ba4a8b7d81 | ||
|
|
882e40d99f | ||
|
|
c304b1b623 | ||
|
|
1da39e064d | ||
|
|
3899368aa0 | ||
|
|
5ff1c8f1e4 | ||
|
|
7289940653 | ||
|
|
a253f8cedb | ||
|
|
daf52102ce | ||
|
|
fa20d4d9c3 | ||
|
|
dd26fcf42c | ||
|
|
8ac9cc08e1 | ||
|
|
c1230319e1 | ||
|
|
1e48442d67 | ||
|
|
94fbbbcb3c | ||
|
|
4dfd616583 | ||
|
|
85d00e47af | ||
|
|
438fd7a512 | ||
|
|
ee5f73f5ee | ||
|
|
b49c0ae58a | ||
|
|
f474edf67d | ||
|
|
dfd90617bf | ||
|
|
9782ba2ac3 | ||
|
|
f0e0c95fe0 | ||
|
|
ef7d977299 | ||
|
|
70a5ed255f | ||
|
|
be1347346c | ||
|
|
803e83ae02 | ||
|
|
64748c939b | ||
|
|
64fb344197 | ||
|
|
f27b402205 | ||
|
|
b22744f81e | ||
|
|
174e44c77d | ||
|
|
35c5d5ae6a | ||
|
|
ae00ecb3e0 | ||
|
|
8687282d63 | ||
|
|
04a97faa43 | ||
|
|
91d3cd8da8 | ||
|
|
e1a7146f4c | ||
|
|
5dc1bfe03b | ||
|
|
2d8ba41d89 | ||
|
|
457ed15e0b | ||
|
|
c11cf22bbb | ||
|
|
6ffdaa4e25 | ||
|
|
f56bd54fd3 | ||
|
|
394648b377 | ||
|
|
22a606cbab | ||
|
|
1b30b3be80 | ||
|
|
10434b53e0 | ||
|
|
0472523a7f | ||
|
|
770963447a | ||
|
|
874aa9866d | ||
|
|
32a3f85694 | ||
|
|
b88bbda3c5 | ||
|
|
fad5119ceb | ||
|
|
3697f63ab0 | ||
|
|
ba8cf8e863 | ||
|
|
ce1d2c4ed8 | ||
|
|
813c60f9e1 | ||
|
|
28a81f2dd8 | ||
|
|
826410b687 | ||
|
|
1aa7594c41 | ||
|
|
5ff1d70357 | ||
|
|
2a95f7cfac | ||
|
|
4654c4a543 | ||
|
|
baf3b8c9ed | ||
|
|
c6ff90954f | ||
|
|
c37498a6b2 | ||
|
|
c1b0f3ae98 | ||
|
|
5007dc757f | ||
|
|
b09f3fa6da | ||
|
|
b11c817392 | ||
|
|
247674b280 | ||
|
|
07ea097bb4 | ||
|
|
23d3a2db2a | ||
|
|
a85ca5bd3d | ||
|
|
0f036ca9c4 | ||
|
|
c19128e8b1 | ||
|
|
8d615801d1 | ||
|
|
4f6e1897fe | ||
|
|
93b5f8d180 | ||
|
|
0e607dc293 | ||
|
|
9ced0e4131 | ||
|
|
55ee800e18 | ||
|
|
676998b83b | ||
|
|
755ef19315 | ||
|
|
bc9b0f8c87 | ||
|
|
c8b063493b | ||
|
|
949e78a17e | ||
|
|
a821ec5a14 | ||
|
|
4648066ec7 | ||
|
|
e85bc539d3 | ||
|
|
c26d298573 | ||
|
|
cdde36ca28 | ||
|
|
3c3ef20769 | ||
|
|
2150f6db48 | ||
|
|
10101a23e6 | ||
|
|
f75fff9dd8 | ||
|
|
9aa31ddf02 | ||
|
|
9a61b30c50 | ||
|
|
f1652ee2c4 | ||
|
|
e1d2b9b1c1 | ||
|
|
e60c20bc10 | ||
|
|
1391c48e39 | ||
|
|
2343d9be1e | ||
|
|
7b85bfbd53 | ||
|
|
27bfbea6bd | ||
|
|
caaff74efe | ||
|
|
6ce58db7b9 | ||
|
|
fe788c3c26 | ||
|
|
1faa2e8f88 | ||
|
|
2b7430e008 | ||
|
|
62c8e73409 | ||
|
|
e0e9ab9adb | ||
|
|
b618f73063 | ||
|
|
8a88aac34d | ||
|
|
32ccca0912 | ||
|
|
2be78041e2 | ||
|
|
d941029661 | ||
|
|
f7c930964c | ||
|
|
0c25b77e54 | ||
|
|
d0deb94bf3 | ||
|
|
3a444f40f3 | ||
|
|
7537c6b033 | ||
|
|
e67f6c1cd3 | ||
|
|
1d7eb49c57 | ||
|
|
f6dfc64567 | ||
|
|
f08ac94596 | ||
|
|
52a8f8fc22 | ||
|
|
6859fb8f8e | ||
|
|
f45f96975e | ||
|
|
53d5ac4ea2 | ||
|
|
874f07bd77 | ||
|
|
4efb3c111a | ||
|
|
de2b5fb935 | ||
|
|
5f8d5fd57e | ||
|
|
763b291629 | ||
|
|
9f50686042 | ||
|
|
1652601a82 | ||
|
|
7a44db36fe | ||
|
|
338b241c8e | ||
|
|
91761a92c7 | ||
|
|
4b2a1db12f | ||
|
|
05d4b4b068 | ||
|
|
9c9b55fe3e | ||
|
|
6ec307a8bb | ||
|
|
86553eff14 | ||
|
|
60911a1dd1 | ||
|
|
21c2a525cf | ||
|
|
26ae330476 | ||
|
|
5442a8567c | ||
|
|
fa0777e25e | ||
|
|
c6c3e089ca | ||
|
|
6a30ce3de3 | ||
|
|
ac0a115f1d | ||
|
|
58476a43da | ||
|
|
92e6a1862b | ||
|
|
45cd66f908 | ||
|
|
a1e3bb3bd6 | ||
|
|
e6f290c06a | ||
|
|
65c872c6ec | ||
|
|
7acaff6167 | ||
|
|
08c97b078a | ||
|
|
e59b782b86 | ||
|
|
87483b1ef4 | ||
|
|
eb3ae3c928 | ||
|
|
3f12c04684 | ||
|
|
cf0fba7891 | ||
|
|
9f0fb41713 | ||
|
|
2a7da758aa | ||
|
|
0f00f8439f | ||
|
|
76d6825dd5 | ||
|
|
028f959bc3 | ||
|
|
bc6de0722f | ||
|
|
3e67a0f163 | ||
|
|
3787ac5b94 | ||
|
|
a60e39cfd5 | ||
|
|
a7d330ecb3 | ||
|
|
ca22b67d0e | ||
|
|
03ec410862 | ||
|
|
e43a328c6f | ||
|
|
cf72bcbe42 | ||
|
|
077b885617 | ||
|
|
2e42da5996 | ||
|
|
f6dc9d1ad3 | ||
|
|
9f1eb60e21 | ||
|
|
8e7d5233df | ||
|
|
4f40fda6a3 | ||
|
|
f0079961f4 | ||
|
|
9862abb7eb | ||
|
|
6d7697870d | ||
|
|
4f53a2b11e | ||
|
|
fd9e8273e1 | ||
|
|
6afaba23b5 | ||
|
|
4aef76281c | ||
|
|
c62d7d501e | ||
|
|
65cdb0dfe7 | ||
|
|
ea18966f33 | ||
|
|
e1abe5c6e2 | ||
|
|
cac96b589f | ||
|
|
f8d4f56d2d | ||
|
|
0957fb6e0a | ||
|
|
5118a5095d | ||
|
|
01c5cf2498 | ||
|
|
fae4b34863 | ||
|
|
020d5cc1c1 | ||
|
|
7e5df7689b | ||
|
|
ff7ec97de4 | ||
|
|
dd0ba49bea | ||
|
|
6105435207 | ||
|
|
711fd19967 | ||
|
|
d58553f67a | ||
|
|
76882690d7 | ||
|
|
6a33c4723a | ||
|
|
6a26ebafa3 | ||
|
|
3c55fc1fa2 | ||
|
|
15a1a15c08 | ||
|
|
9e43aa04c7 | ||
|
|
18f7d05a61 | ||
|
|
70e325fd2b | ||
|
|
fba631c044 | ||
|
|
598617cf2b | ||
|
|
66f177370a | ||
|
|
ad7d58788f | ||
|
|
ad4ea0783f | ||
|
|
5c44cb6399 | ||
|
|
a9e0b3dd6b | ||
|
|
131da5f444 | ||
|
|
874ececc47 | ||
|
|
5f1d74a77a | ||
|
|
00b0d75fc4 | ||
|
|
4b93c8ff43 | ||
|
|
80ad2b8fca | ||
|
|
a8bc93eb17 | ||
|
|
9d3fc4286e | ||
|
|
16fba373c9 | ||
|
|
9c3ff8c88c | ||
|
|
2525620730 | ||
|
|
6dde1d7b74 | ||
|
|
1691e2fe34 | ||
|
|
b536d20713 | ||
|
|
ca3720be0a | ||
|
|
63d0aaca2a | ||
|
|
3a4b58f32f | ||
|
|
d748ccdef9 | ||
|
|
97aff27980 | ||
|
|
0c3e836272 | ||
|
|
60fc4f1b9a | ||
|
|
b97e2df2fb | ||
|
|
f539bb5ca2 | ||
|
|
c166c7c314 | ||
|
|
24f482014b | ||
|
|
9c73d9d03c | ||
|
|
0cbb6819b4 | ||
|
|
7bbd476cf6 | ||
|
|
93f00c442e | ||
|
|
e0c9800751 | ||
|
|
fdc814cdb0 | ||
|
|
59c2b79df2 | ||
|
|
27d1a5f3f4 | ||
|
|
5df1e6caf6 | ||
|
|
b11d3bed78 | ||
|
|
9258f2a513 | ||
|
|
604ee33c52 | ||
|
|
f94be17b11 | ||
|
|
4bf8aaf2e0 | ||
|
|
0f20f07363 | ||
|
|
a1404385d1 | ||
|
|
1ee16da0c7 | ||
|
|
17950e0ac0 | ||
|
|
1190fc8069 | ||
|
|
92456612b1 | ||
|
|
9912136ac9 | ||
|
|
0eb065bbb7 | ||
|
|
2e61f94d84 | ||
|
|
f606dc065b | ||
|
|
6464ef96b6 | ||
|
|
9068801e4f | ||
|
|
2f3d3fc7f9 | ||
|
|
69664322b8 | ||
|
|
a1662752bc | ||
|
|
3363152160 | ||
|
|
7cad13c3c7 | ||
|
|
699986c0b2 | ||
|
|
85b5445296 | ||
|
|
cdb2370cf3 | ||
|
|
5d6b46a914 | ||
|
|
77ff5b473b | ||
|
|
ac8b06b6bf | ||
|
|
dc12a0ff97 | ||
|
|
c329d5e69f | ||
|
|
009ac7eec2 | ||
|
|
2bf3e6ce13 | ||
|
|
babcd96fb6 | ||
|
|
bf6c89e263 | ||
|
|
72a02df646 | ||
|
|
462101dbf5 | ||
|
|
00f1463e94 | ||
|
|
9135e915ab | ||
|
|
d7242f1c70 | ||
|
|
fa4ea0640d | ||
|
|
8f94332d59 | ||
|
|
337ec963b7 | ||
|
|
cf5a395b29 | ||
|
|
e2d597401c | ||
|
|
3ae500ff68 | ||
|
|
779eadd787 | ||
|
|
110475a973 | ||
|
|
74469c2b61 | ||
|
|
d5238ac82f | ||
|
|
c861d95d69 | ||
|
|
40f98f8238 | ||
|
|
2161c2e433 | ||
|
|
2983af67d6 | ||
|
|
4a8bb704bf | ||
|
|
e61702c8bb | ||
|
|
5b75e1dca6 | ||
|
|
97d4edcf30 | ||
|
|
1663848b7e | ||
|
|
113f9aaa81 | ||
|
|
6db24a4a6c | ||
|
|
8cac0e46b1 | ||
|
|
b38d2c1836 | ||
|
|
8948904a9b | ||
|
|
8111758ef7 | ||
|
|
bf7b86ccd5 | ||
|
|
96b88a427d | ||
|
|
cc6dcc3636 | ||
|
|
9d6b8609be | ||
|
|
16ab8f9357 | ||
|
|
ac186e27de | ||
|
|
917f10955a | ||
|
|
8638a2266d | ||
|
|
baab56946e | ||
|
|
d10a026908 | ||
|
|
2cb50fcbf6 | ||
|
|
449b2808e6 | ||
|
|
6bf1aecb6d | ||
|
|
4d26934949 | ||
|
|
0f6aa8d401 | ||
|
|
32ddf81a5e | ||
|
|
7b34a4fb1b | ||
|
|
215e516b2b | ||
|
|
eecd1d50e4 | ||
|
|
5a9279b232 | ||
|
|
6a5e718cd3 | ||
|
|
70009f80ab | ||
|
|
8e3031f106 | ||
|
|
3e0c31af9a | ||
|
|
e1bbefa60b | ||
|
|
4575f83f49 | ||
|
|
37232eee7e | ||
|
|
373ca6ec2d | ||
|
|
fe28f44d4b | ||
|
|
cd81519e9a | ||
|
|
d4a58ac2fb | ||
|
|
75280c4db6 | ||
|
|
9a52339ea7 | ||
|
|
d53bef385a | ||
|
|
35e71289dc | ||
|
|
0dfc8384e6 | ||
|
|
605e3a727d | ||
|
|
41e18993be | ||
|
|
ce3f2b5895 | ||
|
|
3b4cbfa4bc | ||
|
|
9a3cdc4f8b | ||
|
|
1d84c30de3 | ||
|
|
8133c4c5f0 | ||
|
|
e21ece0f8d | ||
|
|
89828ba7fd | ||
|
|
8215498ddb | ||
|
|
ae6205c874 | ||
|
|
328f9686c9 | ||
|
|
9f412577d7 | ||
|
|
11bd340a94 | ||
|
|
3c102b9797 | ||
|
|
bd4b7fc49d | ||
|
|
29252336cc | ||
|
|
4b5b4f9099 | ||
|
|
28da6f8bfc | ||
|
|
e0fe0d2dbd | ||
|
|
07cf34ad60 | ||
|
|
7c4c9a9fc0 | ||
|
|
59ceddbaad | ||
|
|
99ccbc3383 | ||
|
|
8c2d5398b0 | ||
|
|
67c83b13e3 | ||
|
|
11a84ba145 | ||
|
|
1f5bb579c9 | ||
|
|
4586f8007c | ||
|
|
55c620e59d | ||
|
|
525609f0af | ||
|
|
90653955a6 | ||
|
|
d27ab756d0 | ||
|
|
c6a1db6334 | ||
|
|
73777e052e | ||
|
|
a6d3fc3742 | ||
|
|
a671c70838 | ||
|
|
a45991b6dc | ||
|
|
2e9fa22e4f | ||
|
|
737d8c4d53 | ||
|
|
3aa7e103f7 | ||
|
|
c1d2d44da4 | ||
|
|
0fed8113d1 | ||
|
|
53c35cb554 | ||
|
|
be82365542 | ||
|
|
eae8a65597 | ||
|
|
fe54a25a3a | ||
|
|
15a4219ef4 | ||
|
|
2ffbdac89e | ||
|
|
402eb8397d | ||
|
|
ff88049a08 | ||
|
|
cee21241d4 | ||
|
|
60ad7c8a29 | ||
|
|
4989c92780 | ||
|
|
c6a63e30b2 | ||
|
|
07005f8ad5 | ||
|
|
3ab345563c | ||
|
|
cef1308b3a | ||
|
|
4b8a612df4 | ||
|
|
e4639c153f | ||
|
|
8597b899bd | ||
|
|
a5c8182461 | ||
|
|
89bb3ea5c3 | ||
|
|
3bb7c308e3 | ||
|
|
1a4987478c | ||
|
|
540094c229 | ||
|
|
08b65cbcb7 | ||
|
|
d623cc8444 | ||
|
|
4b7c906df2 | ||
|
|
3b446963ef | ||
|
|
cec46f985a | ||
|
|
06b2996167 | ||
|
|
02e24208db | ||
|
|
84b8943fd4 | ||
|
|
c52b3e457e | ||
|
|
21cc8a199a | ||
|
|
59374543ef | ||
|
|
9f84a7b912 | ||
|
|
2b0847ef76 | ||
|
|
97b19c5440 | ||
|
|
b3e88508ac | ||
|
|
7b09402fcb | ||
|
|
a912125ba9 | ||
|
|
2d0437dd5e | ||
|
|
43651ef0d0 | ||
|
|
13232dc7b7 | ||
|
|
93b5f7a918 | ||
|
|
4898d32243 | ||
|
|
588692e0eb | ||
|
|
bd9e440839 | ||
|
|
940edc2e53 | ||
|
|
5a93cd755e | ||
|
|
942c130d23 | ||
|
|
bb8aad3be8 | ||
|
|
ba76b9fd51 | ||
|
|
5f085e9cea | ||
|
|
12b8dcf1e7 | ||
|
|
0e6d59b312 | ||
|
|
087fcb1010 | ||
|
|
0de4c8cabb | ||
|
|
6553d5ca44 | ||
|
|
20b256b0d0 | ||
|
|
1c85b292f8 | ||
|
|
d2e975f6d9 | ||
|
|
721aa51d8d | ||
|
|
23c25d7715 | ||
|
|
54e4b597ed | ||
|
|
0b5dac0ad0 | ||
|
|
180065129f | ||
|
|
866b854ee0 | ||
|
|
072370b0d6 | ||
|
|
d74edff9b9 | ||
|
|
0a0591f67a | ||
|
|
7a8db689f4 | ||
|
|
311fde9409 | ||
|
|
f89b66f562 | ||
|
|
d179cbf59b | ||
|
|
7ff7e78691 | ||
|
|
6c352397ab | ||
|
|
3521421098 | ||
|
|
f70a743a8c | ||
|
|
a2178951d7 | ||
|
|
7774c4eac1 | ||
|
|
4c4a8b65d4 | ||
|
|
de6d9a6c3b | ||
|
|
da16d1f69e | ||
|
|
a13975f3f6 | ||
|
|
c473b8c9b1 | ||
|
|
1f333cc937 | ||
|
|
460aaedbca | ||
|
|
66639fc3ed | ||
|
|
2cc689a896 | ||
|
|
b4866ff728 | ||
|
|
eaa5016094 | ||
|
|
66f77e1467 | ||
|
|
d16c1a3c85 | ||
|
|
a049fd341e | ||
|
|
140fa3115c | ||
|
|
147676ae8c | ||
|
|
1e40d49369 | ||
|
|
b17f2892c7 | ||
|
|
b28a8e153e | ||
|
|
35a1905396 | ||
|
|
2e8776d0a6 | ||
|
|
99506c810d | ||
|
|
e83f6ff445 | ||
|
|
f51f52ec27 | ||
|
|
e58e2209bb | ||
|
|
8aa1cadc66 | ||
|
|
91c22df498 | ||
|
|
e221e23255 | ||
|
|
e8e05e58e0 | ||
|
|
ac4ffd83db | ||
|
|
b021b1e20a | ||
|
|
b650591e58 | ||
|
|
0581fc2f9d | ||
|
|
ef9cc55501 | ||
|
|
3b3a39e37b | ||
|
|
b255874e95 | ||
|
|
1c83916fc3 | ||
|
|
31acf51b1e | ||
|
|
424d2d4b5c | ||
|
|
0d9bedf11c | ||
|
|
3e268936f6 | ||
|
|
e92da6d24b | ||
|
|
34c95c42d1 | ||
|
|
1ee44259c4 | ||
|
|
112b69c1d6 | ||
|
|
3ce6a86e9b | ||
|
|
b005eb8181 | ||
|
|
4bd7abaace | ||
|
|
e2e8afb7b1 | ||
|
|
256f3f8f24 | ||
|
|
6931fd0052 | ||
|
|
136c3c0032 | ||
|
|
a92b50afea | ||
|
|
fd3a21a320 | ||
|
|
f93e372d18 | ||
|
|
0ed39a42ef | ||
|
|
ead51b7e7c | ||
|
|
9481890624 | ||
|
|
419e84db08 | ||
|
|
66785d01ec | ||
|
|
1cc4807336 | ||
|
|
141252e5a0 | ||
|
|
9d825ee04e | ||
|
|
fb84f105db | ||
|
|
f509d132f3 | ||
|
|
5ee5d70567 | ||
|
|
b5a09a334a | ||
|
|
1e703cdc81 | ||
|
|
fbc9b59a5e | ||
|
|
4e8f4698a6 | ||
|
|
68b3bb3089 | ||
|
|
f192648518 | ||
|
|
e9f98fcf85 | ||
|
|
f133cd3d5d | ||
|
|
f761d87b2a | ||
|
|
24b77811d8 | ||
|
|
d2f67ef46c | ||
|
|
88b97d1151 | ||
|
|
6a3794f380 | ||
|
|
686f6bdf5e | ||
|
|
8b424b0669 | ||
|
|
24068dad5c | ||
|
|
96d98c62ed | ||
|
|
435bf3dbd5 | ||
|
|
26c4a736ad | ||
|
|
aff4eb89cd | ||
|
|
60b3d01ceb | ||
|
|
dc335cc333 | ||
|
|
e0c7ecc6df | ||
|
|
d33648917a | ||
|
|
5f7d7254e7 | ||
|
|
df939bf85f | ||
|
|
874906b11f | ||
|
|
799bd1d4dc | ||
|
|
256c9f7b10 | ||
|
|
60e1783b36 | ||
|
|
3208ec1b28 | ||
|
|
8f75761ae9 | ||
|
|
af07205f20 | ||
|
|
672358fbce | ||
|
|
255ba9a862 | ||
|
|
4942238cae | ||
|
|
6a32006e6a | ||
|
|
b119860b81 | ||
|
|
6a7f04a5a8 | ||
|
|
f226f0db18 | ||
|
|
48f00f17a9 | ||
|
|
9f245ceb30 | ||
|
|
94e728bdf3 | ||
|
|
402e67d199 | ||
|
|
0d2869bfe0 | ||
|
|
3634edab42 | ||
|
|
712e67a62e | ||
|
|
d223151b93 | ||
|
|
9c7cb0fe93 | ||
|
|
a3e713bbf0 | ||
|
|
cedd4900d5 | ||
|
|
d43e8881ef | ||
|
|
75c8437cc5 | ||
|
|
f1310c7e6c | ||
|
|
d7530dfbee | ||
|
|
0d6bd9c15d | ||
|
|
2da6d9dffb | ||
|
|
879a4067e5 | ||
|
|
e1317f503f | ||
|
|
ec00ddf10e | ||
|
|
c0e10b7c6f | ||
|
|
da449bcd17 | ||
|
|
ab93088d93 | ||
|
|
b4a0e74a4a | ||
|
|
379ba87c16 | ||
|
|
901dddc603 | ||
|
|
9300377c6c | ||
|
|
9445363467 | ||
|
|
5bad8de886 | ||
|
|
577dc16188 | ||
|
|
00d288fb94 | ||
|
|
6ea39b5096 | ||
|
|
d7c66319aa | ||
|
|
5193f981f8 | ||
|
|
615ad2f02b | ||
|
|
0d6c553f3f | ||
|
|
55ec84a5c3 | ||
|
|
2c6ab52a1a | ||
|
|
93e2c31a8f | ||
|
|
541b2e0909 | ||
|
|
81cb058e29 | ||
|
|
24194fb34e | ||
|
|
039ad8d162 | ||
|
|
abc0da1f00 | ||
|
|
4ff73a8a6a | ||
|
|
86bbe2e8c7 | ||
|
|
aa159f53ef | ||
|
|
e04c7f449f | ||
|
|
dafab10582 | ||
|
|
c37a2a5d6f | ||
|
|
630be6685d | ||
|
|
36be518174 | ||
|
|
0e76e88a81 | ||
|
|
cb4ce20c98 | ||
|
|
c03d91bcb0 | ||
|
|
2ebe8fd4c9 | ||
|
|
382c810199 | ||
|
|
aa1a306294 | ||
|
|
2e61b56214 | ||
|
|
19be1382db | ||
|
|
5559599381 | ||
|
|
841a6140e3 | ||
|
|
7613de74ae | ||
|
|
139bd8feea | ||
|
|
c7088a7472 | ||
|
|
14181a23ee | ||
|
|
7d542cefb8 | ||
|
|
5c3f25e617 | ||
|
|
c3dc78648a | ||
|
|
76a61bc56c | ||
|
|
a63ea3290e | ||
|
|
47f6bda563 | ||
|
|
158ed083da | ||
|
|
cec4611507 | ||
|
|
2ceef5ced3 | ||
|
|
964d2b9478 | ||
|
|
8d1898ccc0 | ||
|
|
3d1c0c61f8 | ||
|
|
2fc5bed094 | ||
|
|
f7ea17b001 | ||
|
|
ca81bfebcd | ||
|
|
59f2eca75a | ||
|
|
de71df811b | ||
|
|
711bcb2507 | ||
|
|
52aaee0bd1 | ||
|
|
7e4f55450b | ||
|
|
3f3a8e22ba | ||
|
|
00a9555633 | ||
|
|
366fb7b174 | ||
|
|
bcd8f3ad16 | ||
|
|
777b2bb8da | ||
|
|
f17484f61b | ||
|
|
49a41f4787 | ||
|
|
f65c10502b | ||
|
|
e30ca97372 | ||
|
|
178d62bd27 | ||
|
|
4262d0e8ab | ||
|
|
6f3aa19a04 | ||
|
|
c398c85b0f | ||
|
|
3a728fb112 | ||
|
|
d2fb6c7ee0 | ||
|
|
2ffdeb1fa2 | ||
|
|
a0d9134f7b | ||
|
|
81977475c5 | ||
|
|
813e4ee730 | ||
|
|
5eba373c3c | ||
|
|
c19f170239 | ||
|
|
60ef4fab4b | ||
|
|
47b4ab923b | ||
|
|
05a09d1fa1 | ||
|
|
8bd1c8de95 | ||
|
|
e5ab94f1b2 | ||
|
|
ff82d9c39e | ||
|
|
e1210e90c0 | ||
|
|
ed88170c5d | ||
|
|
32123d2f69 | ||
|
|
a480df4ef5 | ||
|
|
b3361b7d89 | ||
|
|
f7163c748b | ||
|
|
34cf65bfc9 | ||
|
|
88afa09baf | ||
|
|
b358c06a31 | ||
|
|
389a730eff | ||
|
|
4cdbfb6cc6 | ||
|
|
8fe59a0998 | ||
|
|
d4e7e4cd52 | ||
|
|
3de86b09bd | ||
|
|
dc551031fe | ||
|
|
29b02a544c | ||
|
|
3e4cbfeb69 | ||
|
|
8038fc5ceb | ||
|
|
eb1db20161 | ||
|
|
d558c565b0 | ||
|
|
ea58e52dc1 | ||
|
|
624593ec35 | ||
|
|
9d302d8192 | ||
|
|
47428368fd | ||
|
|
4c84dd4a1b | ||
|
|
cfe9d6e539 | ||
|
|
afd92d2df1 | ||
|
|
ba3d4dd4ce | ||
|
|
d7f3946c06 | ||
|
|
e1408f2a5f | ||
|
|
b76395282d | ||
|
|
c70a2c9e9e | ||
|
|
649a316361 | ||
|
|
c05be0f2c2 | ||
|
|
db26a878c3 | ||
|
|
219ae0ccbe | ||
|
|
3e33ccb9ca | ||
|
|
d73c38a00c | ||
|
|
deb7bfe23c | ||
|
|
bd5fb0d407 | ||
|
|
22d63002b2 | ||
|
|
1817a86ffd | ||
|
|
052813e30e | ||
|
|
30715a69e1 | ||
|
|
05f381044c | ||
|
|
634dd74768 | ||
|
|
0145429852 | ||
|
|
8f0840e913 | ||
|
|
5ab97db795 | ||
|
|
f7505db6fd | ||
|
|
91c347f6f5 | ||
|
|
c87e981902 | ||
|
|
9421b12412 | ||
|
|
04eaf41889 | ||
|
|
8d4f1f9b38 | ||
|
|
5a6a0f7e3d | ||
|
|
e72e25c342 | ||
|
|
d658fcf3db | ||
|
|
16398dfd55 | ||
|
|
88df60958c | ||
|
|
947e2369d3 | ||
|
|
a6cd97482c | ||
|
|
112768d13a | ||
|
|
2a03282dd6 | ||
|
|
6be1adb40e | ||
|
|
006824e0ed | ||
|
|
33da4bfabc | ||
|
|
2618a55dbc | ||
|
|
439edc39a6 | ||
|
|
12515a4904 | ||
|
|
f50ca4606f | ||
|
|
22392464e0 | ||
|
|
225e3b1c2f | ||
|
|
037e71bc03 | ||
|
|
cb9a620f40 | ||
|
|
a481a44c72 | ||
|
|
a68b2f357d | ||
|
|
4f0a49f7bf | ||
|
|
c40853456b | ||
|
|
52a6f5c17d | ||
|
|
14aa9e1c20 | ||
|
|
2c5cc6cd08 | ||
|
|
8ad58bb364 | ||
|
|
ab191407ed | ||
|
|
3e5d758e92 | ||
|
|
7f40f410e7 | ||
|
|
497c95fd26 | ||
|
|
604eaccbbf | ||
|
|
842dbbbd8d | ||
|
|
10f5f9ec7d | ||
|
|
07fb3610d1 | ||
|
|
43951b9dfd | ||
|
|
834bf612ac | ||
|
|
161ba2713f | ||
|
|
245b3fcf57 | ||
|
|
90e5774dd6 | ||
|
|
be59785a1f | ||
|
|
45129b8244 | ||
|
|
0c6bb61ebe | ||
|
|
7ec77db666 | ||
|
|
b907881d59 | ||
|
|
0d7c2684ee | ||
|
|
5802097f5f | ||
|
|
5fc9722992 | ||
|
|
4eaf832b43 | ||
|
|
a9b4d86b00 | ||
|
|
8a24185ad6 | ||
|
|
355e144ef7 | ||
|
|
d8d1e030e4 | ||
|
|
9187ec25c1 | ||
|
|
de29c6f7d9 | ||
|
|
e6ee2714d7 | ||
|
|
25e3a56dba | ||
|
|
7b9f4983cb | ||
|
|
94ab27bcbb | ||
|
|
041ceda95e | ||
|
|
86c1dbd25d | ||
|
|
a094d218d5 | ||
|
|
3951b8a39c | ||
|
|
1757dc5d53 | ||
|
|
f942092a5e | ||
|
|
d4be3a6976 | ||
|
|
6037fe80c4 | ||
|
|
6a1fdc5b08 | ||
|
|
17f6a72590 | ||
|
|
aaf5b72675 | ||
|
|
a1490d414c | ||
|
|
8c26125e52 | ||
|
|
86fefc2e32 | ||
|
|
d8e3934a05 | ||
|
|
65b0d1cd17 | ||
|
|
b65ac2ab14 | ||
|
|
c00eb0d539 | ||
|
|
42e407fbcf | ||
|
|
e9c2d24cc3 | ||
|
|
d9aa885eb2 | ||
|
|
bd192b0f7d | ||
|
|
e8008d0aa9 | ||
|
|
2ec6a3ed06 | ||
|
|
8fc6f4776b | ||
|
|
cd54aa9b92 | ||
|
|
8aa586fe6e | ||
|
|
1e55827c4b | ||
|
|
03f813c957 | ||
|
|
6d6766dce1 | ||
|
|
ce3d32dc0a | ||
|
|
56ff84f475 | ||
|
|
cdb39452d7 |
@@ -1,185 +0,0 @@
|
|||||||
legacy.status-im.utils.build/warning-handler
|
|
||||||
legacy.status-im.utils.build/get-current-sha
|
|
||||||
status-im.constants/spacing-char
|
|
||||||
status-im.constants/arg-wrapping-char
|
|
||||||
legacy.status-im.ios.core/init
|
|
||||||
legacy.status-im.ui.components.camera/aspects
|
|
||||||
legacy.status-im.ui.components.camera/capture-targets
|
|
||||||
legacy.status-im.ui.components.camera/set-torch
|
|
||||||
legacy.status-im.ui.components.camera/request-access-ios
|
|
||||||
legacy.status-im.chat.models.message-content/stylings
|
|
||||||
legacy.status-im.chat.models.message-content/actions
|
|
||||||
legacy.status-im.chat.models.message-content/blank-string
|
|
||||||
legacy.status-im.chat.models.message-content/sorted-ranges
|
|
||||||
legacy.status-im.ethereum.mnemonic/words->passphrase
|
|
||||||
native-module.core/listener
|
|
||||||
native-module.core/multiaccount-reset
|
|
||||||
native-module.core/extract-group-membership-signatures
|
|
||||||
native-module.core/sign-group-membership
|
|
||||||
native-module.core/update-mailservers
|
|
||||||
legacy.status-im.ethereum.abi-spec/bytes-to-hex
|
|
||||||
legacy.status-im.android.core/init
|
|
||||||
legacy.status-im.chat.models.message/transport-keys
|
|
||||||
legacy.status-im.utils.datetime/week
|
|
||||||
legacy.status-im.utils.datetime/time-ago
|
|
||||||
legacy.status-im.utils.datetime/format-date
|
|
||||||
legacy.status-im.utils.datetime/get-ordinal-date
|
|
||||||
reagent.dom/render
|
|
||||||
reagent.dom/unmount-component-at-node
|
|
||||||
reagent.dom/dom-node
|
|
||||||
reagent.dom/force-update-all
|
|
||||||
legacy.status-im.multiaccounts.create.core/get-new-key-code
|
|
||||||
legacy.status-im.ethereum.decode/string
|
|
||||||
legacy.status-im.ui.screens.network.views/mainnet?
|
|
||||||
legacy.status-im.data-store.chats/event->string
|
|
||||||
legacy.status-im.mailserver.constants/seven-days
|
|
||||||
legacy.status-im.mailserver.constants/connection-timeout
|
|
||||||
legacy.status-im.hardwallet.card/install-applet
|
|
||||||
legacy.status-im.hardwallet.card/install-cash-applet
|
|
||||||
legacy.status-im.multiaccount.login.data-test/all-contacts
|
|
||||||
legacy.status-im.multiaccount.login.data-test/multiaccounts
|
|
||||||
legacy.status-im.multiaccount.login.data-test/get-chats
|
|
||||||
legacy.status-im.multiaccount.login.data-test/transport
|
|
||||||
legacy.status-im.multiaccount.login.data-test/topics
|
|
||||||
legacy.status-im.utils.utils/clear-timeout
|
|
||||||
legacy.status-im.utils.handlers/logged-in
|
|
||||||
legacy.status-im.multiaccounts.model/credentials
|
|
||||||
legacy.status-im.multiaccounts.login.core/contract-fleet?
|
|
||||||
legacy.status-im.multiaccounts.login.core/fetch-nodes
|
|
||||||
status-im.config/rpc-networks-only?
|
|
||||||
status-im.config/waku-enabled?
|
|
||||||
legacy.status-im.utils.pairing/has-paired-installations?
|
|
||||||
legacy.status-im.tribute-to-talk.core-test/user-cofx
|
|
||||||
mocks.js-dependencies/action-button
|
|
||||||
mocks.js-dependencies/camera
|
|
||||||
mocks.js-dependencies/dismiss-keyboard
|
|
||||||
mocks.js-dependencies/emoji-picker
|
|
||||||
mocks.js-dependencies/i18n
|
|
||||||
mocks.js-dependencies/qr-code
|
|
||||||
mocks.js-dependencies/svg
|
|
||||||
mocks.js-dependencies/icons
|
|
||||||
mocks.js-dependencies/webview
|
|
||||||
mocks.js-dependencies/desktop-linking
|
|
||||||
mocks.js-dependencies/desktop-shortcuts
|
|
||||||
mocks.js-dependencies/snoopy
|
|
||||||
mocks.js-dependencies/snoopy-filter
|
|
||||||
mocks.js-dependencies/snoopy-bars
|
|
||||||
mocks.js-dependencies/snoopy-buffer
|
|
||||||
mocks.js-dependencies/desktop-menu
|
|
||||||
mocks.js-dependencies/desktop-config
|
|
||||||
mocks.js-dependencies/react-native-navigation-twopane
|
|
||||||
mocks.js-dependencies/react-native-screens
|
|
||||||
mocks.js-dependencies/react-native-shake
|
|
||||||
mocks.js-dependencies/back-handler
|
|
||||||
mocks.js-dependencies/react
|
|
||||||
mocks.js-dependencies/react-navigation-native
|
|
||||||
mocks.js-dependencies/react-navigation-stack
|
|
||||||
mocks.js-dependencies/react-navigation-bottom-tabs
|
|
||||||
mocks.js-dependencies/react-native-haptic-feedback
|
|
||||||
mocks.js-dependencies/mock
|
|
||||||
quo.previews.main/init
|
|
||||||
legacy.status-im.chat.models.message-list-test/descending-range
|
|
||||||
legacy.status-im.chat.models.message-list-test/random-range
|
|
||||||
legacy.status-im.ethereum.eip165/supports?
|
|
||||||
legacy.status-im.utils.hex/valid-hex?
|
|
||||||
legacy.status-im.multiaccounts.core/chat-send?
|
|
||||||
legacy.status-im.hardwallet.simulated-keycard/install-cash-applet
|
|
||||||
legacy.status-im.hardwallet.simulated-keycard/sign-typed-data
|
|
||||||
legacy.status-im.utils.core/safe-read-message-content
|
|
||||||
legacy.status-im.ui.components.react/native-modules
|
|
||||||
legacy.status-im.ui.components.react/progress-bar
|
|
||||||
react-native.fs/move-file
|
|
||||||
react-native.fs/read-dir
|
|
||||||
react-native.fs/mkdir
|
|
||||||
react-native.fs/unlink
|
|
||||||
react-native.fs/file-exists?
|
|
||||||
legacy.status-im.ui.components.colors/white
|
|
||||||
legacy.status-im.ui.components.colors/black
|
|
||||||
legacy.status-im.ui.components.core/animated-header
|
|
||||||
legacy.status-im.ui.components.core/safe-area-provider
|
|
||||||
legacy.status-im.ui.components.core/safe-area-consumer
|
|
||||||
legacy.status-im.ui.components.core/safe-area-view
|
|
||||||
legacy.status-im.utils.universal-links.core/open!
|
|
||||||
legacy.status-im.transport.filters.core-test/member-2
|
|
||||||
legacy.status-im.ui.screens.chat.ttt/one-to-one-chat-description-container
|
|
||||||
legacy.status-im.ethereum.ens/ttl
|
|
||||||
legacy.status-im.ethereum.ens/addr-hash
|
|
||||||
legacy.status-im.ethereum.ens/name-hash
|
|
||||||
legacy.status-im.ethereum.ens/ABI-hash
|
|
||||||
legacy.status-im.ethereum.ens/pubkey-hash
|
|
||||||
legacy.status-im.network.core/get-network
|
|
||||||
status-im.constants/desktop-content-types
|
|
||||||
status-im.constants/blocks-per-hour
|
|
||||||
status-im.constants/one-earth-day
|
|
||||||
status-im.constants/left-pane-min-width
|
|
||||||
status-im.constants/system
|
|
||||||
status-im.constants/contact-discovery
|
|
||||||
status-im.constants/send-transaction-failed-parse-response
|
|
||||||
status-im.constants/send-transaction-failed-parse-params
|
|
||||||
status-im.constants/send-transaction-no-account-selected
|
|
||||||
status-im.constants/send-transaction-invalid-tx-sender
|
|
||||||
status-im.constants/web3-get-logs
|
|
||||||
status-im.constants/web3-transaction-receipt
|
|
||||||
status-im.constants/web3-new-filter
|
|
||||||
status-im.constants/web3-new-pending-transaction-filter
|
|
||||||
status-im.constants/web3-new-block-filter
|
|
||||||
status-im.constants/web3-uninstall-filter
|
|
||||||
status-im.constants/web3-get-filter-changes
|
|
||||||
status-im.constants/web3-shh-post
|
|
||||||
status-im.constants/web3-shh-new-identity
|
|
||||||
status-im.constants/web3-shh-has-identity
|
|
||||||
status-im.constants/web3-shh-new-group
|
|
||||||
status-im.constants/web3-shh-add-to-group
|
|
||||||
status-im.constants/web3-shh-new-filter
|
|
||||||
status-im.constants/web3-shh-uninstall-filter
|
|
||||||
status-im.constants/web3-shh-get-filter-changes
|
|
||||||
status-im.constants/web3-shh-get-messages
|
|
||||||
status-im.constants/status-create-address
|
|
||||||
status-im.constants/event-transfer-hash
|
|
||||||
status-im.constants/regx-rtl-characters
|
|
||||||
status-im.constants/desktop-msg-chars-hard-limit
|
|
||||||
status-im.constants/debug-metrics
|
|
||||||
status-im.constants/scan-qr-code
|
|
||||||
status-im.constants/ipfs-proto-code
|
|
||||||
status-im.constants/swarm-proto-code
|
|
||||||
legacy.status-im.multiaccounts.update.publisher/publish-update!
|
|
||||||
legacy.status-im.utils.async/task-queue
|
|
||||||
legacy.status-im.utils.async/async-periodic-run!
|
|
||||||
legacy.status-im.desktop.core/app-root
|
|
||||||
legacy.status-im.desktop.core/init
|
|
||||||
legacy.status-im.chat.models-test/test-db
|
|
||||||
legacy.status-im.ui.components.spacing/padding-vertical
|
|
||||||
legacy.status-im.utils.money/percent-change
|
|
||||||
utils.debounce/clear-all
|
|
||||||
legacy.status-im.transport.db/create-chat
|
|
||||||
legacy.status-im.utils.priority-map/priority-map
|
|
||||||
legacy.status-im.utils.priority-map/priority-map-by
|
|
||||||
legacy.status-im.utils.priority-map/priority-map-keyfn
|
|
||||||
legacy.status-im.utils.priority-map/empty-message-map
|
|
||||||
legacy.status-im.wallet.choose-recipient.core/use-default-eth-gas
|
|
||||||
legacy.status-im.ui.components.animation/decay
|
|
||||||
legacy.status-im.ui.components.animation/remove-all-listeners
|
|
||||||
legacy.status-im.ui.components.animation/stop-animation
|
|
||||||
legacy.status-im.ui.components.animation/animated
|
|
||||||
legacy.status-im.ui.components.animation/add
|
|
||||||
legacy.status-im.ui.components.animation/subtract
|
|
||||||
legacy.status-im.ui.components.animation/get-layout
|
|
||||||
legacy.status-im.wallet.transactions-test/uri-query-data
|
|
||||||
legacy.status-im.utils.name/shortened-name
|
|
||||||
legacy.status-im.ui.components.button.haptic/trigger
|
|
||||||
legacy.status-im.contact.db/filter-dapps
|
|
||||||
legacy.status-im.contact.db/filter-group-contacts
|
|
||||||
legacy.status-im.contact.db/legacy-pending?
|
|
||||||
legacy.status-im.utils.transducers-test/preview-call-1
|
|
||||||
legacy.status-im.utils.transducers-test/preview-call-2
|
|
||||||
legacy.status-im.utils.types/to-string
|
|
||||||
legacy.status-im.chat.db/datemark?
|
|
||||||
legacy.status-im.chat.db/gap?
|
|
||||||
legacy.status-im.chat.db/map->sorted-seq
|
|
||||||
legacy.status-im.utils.snoopy/status-module-filter
|
|
||||||
legacy.status-im.utils.snoopy/websocket-filter
|
|
||||||
legacy.status-im.utils.snoopy/touches-filter
|
|
||||||
legacy.status-im.utils.snoopy/native-animation-filter
|
|
||||||
legacy.status-im.utils.snoopy/keyboard-observer-filter
|
|
||||||
legacy.status-im.utils.multihash/hex
|
|
||||||
legacy.status-im.utils.multihash/decode-array
|
|
||||||
@@ -1,20 +1,47 @@
|
|||||||
{:config-paths ["status-im"]
|
{:config-paths ["status-im"]
|
||||||
|
:output {:exclude-files ["src/user.cljs" "src/dev/user.cljs"]}
|
||||||
:lint-as {legacy.status-im.utils.views/defview clojure.core/defn
|
:lint-as {legacy.status-im.utils.views/defview clojure.core/defn
|
||||||
legacy.status-im.utils.views/letsubs clojure.core/let
|
legacy.status-im.utils.views/letsubs clojure.core/let
|
||||||
reagent.core/with-let clojure.core/let
|
reagent.core/with-let clojure.core/let
|
||||||
legacy.status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all
|
legacy.status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all
|
||||||
utils.re-frame/defn clj-kondo.lint-as/def-catch-all
|
utils.re-frame/defn clojure.core/defn
|
||||||
quo.react/with-deps-check clojure.core/fn
|
quo.react/with-deps-check clojure.core/fn
|
||||||
quo.previews.preview/list-comp clojure.core/for
|
quo.previews.preview/list-comp clojure.core/for
|
||||||
legacy.status-im.utils.styles/def clojure.core/def
|
legacy.status-im.utils.styles/def clojure.core/def
|
||||||
legacy.status-im.utils.styles/defn clojure.core/defn
|
legacy.status-im.utils.styles/defn clojure.core/defn
|
||||||
test-helpers.unit/deftest-sub clojure.core/defn
|
test-helpers.unit/deftest-sub clojure.core/defn
|
||||||
|
test-helpers.unit/deftest-event clojure.core/defn
|
||||||
|
|
||||||
taoensso.tufte/defnp clojure.core/defn}
|
taoensso.tufte/defnp clojure.core/defn}
|
||||||
:linters {:case-duplicate-test {:level :error}
|
:linters {:clojure-lsp/unused-public-var {:exclude-when-defined-by #{utils.re-frame/defn}
|
||||||
|
:exclude #{
|
||||||
|
;; even if we are not
|
||||||
|
;; using color now, we
|
||||||
|
;; will need it later
|
||||||
|
quo.foundations.colors
|
||||||
|
|
||||||
|
;; same for funcs from
|
||||||
|
;; native-module
|
||||||
|
native-module.core
|
||||||
|
|
||||||
|
;; some funcs used
|
||||||
|
;; temporarily during
|
||||||
|
;; development
|
||||||
|
test-helpers.component
|
||||||
|
test-helpers.unit
|
||||||
|
|
||||||
|
;; not sure if unused
|
||||||
|
;; functions here should
|
||||||
|
;; be removed:
|
||||||
|
keycard.keycard
|
||||||
|
react-native.fs}}
|
||||||
|
:case-duplicate-test {:level :error}
|
||||||
:case-quoted-test {:level :error}
|
:case-quoted-test {:level :error}
|
||||||
:case-symbol-test {:level :error}
|
:case-symbol-test {:level :error}
|
||||||
:clj-kondo-config {:level :error}
|
:clj-kondo-config {:level :error}
|
||||||
:cond-else {:level :error}
|
:cond-else {:level :error}
|
||||||
|
:condition-always-true {:level :error}
|
||||||
|
:conflicting-alias {:level :error}
|
||||||
:consistent-alias {:level :error
|
:consistent-alias {:level :error
|
||||||
:aliases {clojure.set set
|
:aliases {clojure.set set
|
||||||
clojure.string string
|
clojure.string string
|
||||||
@@ -35,18 +62,23 @@
|
|||||||
:equals-true {:level :error}
|
:equals-true {:level :error}
|
||||||
:inline-def {:level :error}
|
:inline-def {:level :error}
|
||||||
:invalid-arity {:skip-args [legacy.status-im.utils.fx/defn
|
:invalid-arity {:skip-args [legacy.status-im.utils.fx/defn
|
||||||
utils.re-frame/defn]}
|
utils.re-frame/defn
|
||||||
|
utils.re-frame/merge]}
|
||||||
:loop-without-recur {:level :error}
|
:loop-without-recur {:level :error}
|
||||||
:minus-one {:level :error}
|
:minus-one {:level :error}
|
||||||
:misplaced-docstring {:level :error}
|
:misplaced-docstring {:level :error}
|
||||||
:missing-body-in-when {:level :error}
|
:missing-body-in-when {:level :error}
|
||||||
:missing-clause-in-try {:level :error}
|
:missing-clause-in-try {:level :error}
|
||||||
:missing-else-branch {:level :error}
|
:missing-else-branch {:level :error}
|
||||||
|
:multiple-async-in-deftest {:level :error}
|
||||||
:not-empty? {:level :error}
|
:not-empty? {:level :error}
|
||||||
:plus-one {:level :error}
|
:plus-one {:level :error}
|
||||||
:redundant-do {:level :error}
|
:redundant-do {:level :error}
|
||||||
:redundant-let {:level :error}
|
:redundant-let {:level :error}
|
||||||
:refer-all {:level :error}
|
:refer-all {:level :error}
|
||||||
|
;; ignore error in config itself saying that `:shadowed-fn-param` is unknown
|
||||||
|
#_{:clj-kondo/ignore [:clj-kondo-config]}
|
||||||
|
:shadowed-fn-param {:level :error}
|
||||||
:shadowed-var {:level :error
|
:shadowed-var {:level :error
|
||||||
;; We temporarily use :include to define an
|
;; We temporarily use :include to define an
|
||||||
;; allowlist of core Clojure vars. In the
|
;; allowlist of core Clojure vars. In the
|
||||||
@@ -54,9 +86,11 @@
|
|||||||
;; vars, we should be able to delete this
|
;; vars, we should be able to delete this
|
||||||
;; option and lint all vars.
|
;; option and lint all vars.
|
||||||
:exclude [type name]}
|
:exclude [type name]}
|
||||||
|
:self-requiring-namespace {:level :error}
|
||||||
:single-operand-comparison {:level :error}
|
:single-operand-comparison {:level :error}
|
||||||
:syntax {:level :error}
|
:syntax {:level :error}
|
||||||
:unbound-destructuring-default {:level :error}
|
:unbound-destructuring-default {:level :error}
|
||||||
|
:underscore-in-namespace {:level :error}
|
||||||
:uninitialized-var {:level :error}
|
:uninitialized-var {:level :error}
|
||||||
:unknown-require-option {:level :error}
|
:unknown-require-option {:level :error}
|
||||||
:unreachable-code {:level :error}
|
:unreachable-code {:level :error}
|
||||||
@@ -65,7 +99,8 @@
|
|||||||
;; https://github.com/borkdude/clj-kondo/issues/867
|
;; https://github.com/borkdude/clj-kondo/issues/867
|
||||||
:unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY
|
:unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY
|
||||||
number
|
number
|
||||||
legacy.status-im.test-helpers/restore-app-db]}
|
legacy.status-im.test-helpers/restore-app-db
|
||||||
|
(cljs.test/is [match-strict?])]}
|
||||||
:unresolved-var {:level :error}
|
:unresolved-var {:level :error}
|
||||||
:unsorted-required-namespaces {:level :error}
|
:unsorted-required-namespaces {:level :error}
|
||||||
:unused-alias {:level :warning}
|
:unused-alias {:level :warning}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
(ns cljs.test
|
||||||
|
(:require [clj-kondo.hooks-api :as hooks]))
|
||||||
|
|
||||||
|
(defn deftest
|
||||||
|
"Verify test name passed to `cljs.test/deftest` is suffixed with -test and not
|
||||||
|
prefixed with test-."
|
||||||
|
[{:keys [node]}]
|
||||||
|
(let [[_ test-name-node & _] (:children node)
|
||||||
|
test-name (str (hooks/sexpr test-name-node))]
|
||||||
|
(when (and (hooks/token-node? test-name-node)
|
||||||
|
(or (not (re-find #"^.*-test$" test-name))
|
||||||
|
(re-find #"^test-.*$" test-name)))
|
||||||
|
(hooks/reg-finding! (assoc (meta test-name-node)
|
||||||
|
:message "Test name should be suffixed with -test"
|
||||||
|
:type :status-im.linter/inconsistent-test-name)))))
|
||||||
|
|
||||||
|
(comment
|
||||||
|
;; Invalid
|
||||||
|
(deftest {:node (hooks/parse-string "(deftest foo-tes (println :hello))")})
|
||||||
|
(deftest {:node (hooks/parse-string "(deftest test-foo-test (println :hello))")})
|
||||||
|
)
|
||||||
@@ -4,5 +4,8 @@
|
|||||||
test-helpers.component/get-all-by-translation-text utils.i18n/label
|
test-helpers.component/get-all-by-translation-text utils.i18n/label
|
||||||
test-helpers.component/get-by-translation-text utils.i18n/label
|
test-helpers.component/get-by-translation-text utils.i18n/label
|
||||||
test-helpers.component/query-all-by-translation-text utils.i18n/label
|
test-helpers.component/query-all-by-translation-text utils.i18n/label
|
||||||
test-helpers.component/query-by-translation-text utils.i18n/label}}
|
test-helpers.component/query-by-translation-text utils.i18n/label
|
||||||
:linters {:status-im.linter/invalid-translation-keyword {:level :error}}}
|
|
||||||
|
cljs.test/deftest cljs.test/deftest}}
|
||||||
|
:linters {:status-im.linter/invalid-translation-keyword {:level :error}
|
||||||
|
:status-im.linter/inconsistent-test-name {:level :error}}}
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
CACHED_WEBVIEWS_ENABLED=1
|
CACHED_WEBVIEWS_ENABLED=1
|
||||||
DEBUG_WEBVIEW=1
|
DEBUG_WEBVIEW=1
|
||||||
DEFAULT_NETWORK=mainnet_rpc
|
|
||||||
DEV_BUILD=1
|
DEV_BUILD=1
|
||||||
ETHEREUM_DEV_CLUSTER=1
|
ETHEREUM_DEV_CLUSTER=1
|
||||||
EXTENSIONS=0
|
EXTENSIONS=0
|
||||||
FLEET=status.prod
|
|
||||||
GROUP_CHATS_ENABLED=1
|
GROUP_CHATS_ENABLED=1
|
||||||
LOG_LEVEL=info
|
LOG_LEVEL=info
|
||||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||||
@@ -26,7 +24,6 @@ APN_TOPIC=im.status.ethereum.pr
|
|||||||
COMMUNITIES_ENABLED=1
|
COMMUNITIES_ENABLED=1
|
||||||
DATABASE_MANAGEMENT_ENABLED=1
|
DATABASE_MANAGEMENT_ENABLED=1
|
||||||
DELETE_MESSAGE_ENABLED=1
|
DELETE_MESSAGE_ENABLED=1
|
||||||
COLLECTIBLES_ENABLED=1
|
|
||||||
COMMANDS_ENABLED=1
|
COMMANDS_ENABLED=1
|
||||||
TWO_MINUTES_SYNCING=1
|
TWO_MINUTES_SYNCING=1
|
||||||
SWAP_ENABLED=1
|
SWAP_ENABLED=1
|
||||||
@@ -36,3 +33,8 @@ TEST_STATEOFUS=1
|
|||||||
FAST_CREATE_COMMUNITY_ENABLED=1
|
FAST_CREATE_COMMUNITY_ENABLED=1
|
||||||
TEST_NETWORKS_ENABLED=1
|
TEST_NETWORKS_ENABLED=1
|
||||||
SHOW_NOT_IMPLEMENTED_FEATURES=0
|
SHOW_NOT_IMPLEMENTED_FEATURES=0
|
||||||
|
ENABLE_ALERT_BANNER=0
|
||||||
|
FLAG_WALLET_CONNECT_ENABLED=1
|
||||||
|
API_LOGGING_ENABLED=1
|
||||||
|
SENTRY_ENABLED=0
|
||||||
|
SENTRY_ENVIRONMENT=ci-main
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
DEBUG_WEBVIEW=1
|
DEBUG_WEBVIEW=1
|
||||||
DEFAULT_NETWORK=goerli_rpc
|
|
||||||
ETHEREUM_DEV_CLUSTER=1
|
ETHEREUM_DEV_CLUSTER=1
|
||||||
EXTENSIONS=0
|
EXTENSIONS=0
|
||||||
FLEET=status.prod
|
FLEET=status.staging
|
||||||
GROUP_CHATS_ENABLED=1
|
GROUP_CHATS_ENABLED=1
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
MAILSERVER_CONFIRMATIONS_ENABLED=0
|
MAILSERVER_CONFIRMATIONS_ENABLED=0
|
||||||
@@ -22,8 +21,8 @@ KEYCARD_TEST_MENU=1
|
|||||||
QR_READ_TEST_MENU=1
|
QR_READ_TEST_MENU=1
|
||||||
ENABLE_ROOT_ALERT=0
|
ENABLE_ROOT_ALERT=0
|
||||||
APN_TOPIC=im.status.ethereum.pr
|
APN_TOPIC=im.status.ethereum.pr
|
||||||
VERIFY_TRANSACTION_CHAIN_ID=5
|
VERIFY_TRANSACTION_CHAIN_ID=11155111
|
||||||
VERIFY_ENS_CHAIN_ID=5
|
VERIFY_ENS_CHAIN_ID=11155111
|
||||||
TEST_STATEOFUS=1
|
TEST_STATEOFUS=1
|
||||||
DATABASE_MANAGEMENT_ENABLED=1
|
DATABASE_MANAGEMENT_ENABLED=1
|
||||||
COMMUNITIES_ENABLED=1
|
COMMUNITIES_ENABLED=1
|
||||||
@@ -37,3 +36,9 @@ TEST_NETWORKS_ENABLED=1
|
|||||||
SHOW_NOT_IMPLEMENTED_FEATURES=1
|
SHOW_NOT_IMPLEMENTED_FEATURES=1
|
||||||
DELETE_MESSAGE_FOR_ME_UNDO_TIME_LIMIT=10000
|
DELETE_MESSAGE_FOR_ME_UNDO_TIME_LIMIT=10000
|
||||||
DELETE_MESSAGE_UNDO_TIME_LIMIT=10000
|
DELETE_MESSAGE_UNDO_TIME_LIMIT=10000
|
||||||
|
ENABLE_ALERT_BANNER=0
|
||||||
|
FLAG_WALLET_CONNECT_ENABLED=1
|
||||||
|
MOBILE_DATA_SYNCING_TOGGLE_ENABLE=0
|
||||||
|
API_LOGGING_ENABLED=1
|
||||||
|
SENTRY_ENABLED=0
|
||||||
|
SENTRY_ENVIRONMENT=ci-main
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
CACHED_WEBVIEWS_ENABLED=1
|
CACHED_WEBVIEWS_ENABLED=1
|
||||||
DEBUG_WEBVIEW=1
|
DEBUG_WEBVIEW=1
|
||||||
DEFAULT_NETWORK=goerli_rpc
|
|
||||||
ETHEREUM_DEV_CLUSTER=1
|
ETHEREUM_DEV_CLUSTER=1
|
||||||
EXTENSIONS=0
|
EXTENSIONS=0
|
||||||
FLEET=status.prod
|
|
||||||
GROUP_CHATS_ENABLED=1
|
GROUP_CHATS_ENABLED=1
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||||
@@ -22,8 +20,8 @@ KEYCARD_TEST_MENU=0
|
|||||||
ENABLE_ROOT_ALERT=1
|
ENABLE_ROOT_ALERT=1
|
||||||
DISABLE_WALLET_ON_MOBILE_NETWORK=1
|
DISABLE_WALLET_ON_MOBILE_NETWORK=1
|
||||||
APN_TOPIC=im.status.ethereum.pr
|
APN_TOPIC=im.status.ethereum.pr
|
||||||
VERIFY_TRANSACTION_CHAIN_ID=5
|
VERIFY_TRANSACTION_CHAIN_ID=11155111
|
||||||
VERIFY_ENS_CHAIN_ID=5
|
VERIFY_ENS_CHAIN_ID=11155111
|
||||||
TEST_STATEOFUS=1
|
TEST_STATEOFUS=1
|
||||||
BLANK_PREVIEW=0
|
BLANK_PREVIEW=0
|
||||||
DATABASE_MANAGEMENT_ENABLED=1
|
DATABASE_MANAGEMENT_ENABLED=1
|
||||||
@@ -36,4 +34,8 @@ STICKERS_TEST_ENABLED=1
|
|||||||
LOCAL_PAIRING_ENABLED=1
|
LOCAL_PAIRING_ENABLED=1
|
||||||
FAST_CREATE_COMMUNITY_ENABLED=1
|
FAST_CREATE_COMMUNITY_ENABLED=1
|
||||||
TEST_NETWORKS_ENABLED=1
|
TEST_NETWORKS_ENABLED=1
|
||||||
SHOW_NOT_IMPLEMENTED_FEATURES=1
|
ENABLE_ALERT_BANNER=1
|
||||||
|
FLAG_WALLET_CONNECT_ENABLED=1
|
||||||
|
API_LOGGING_ENABLED=1
|
||||||
|
SENTRY_ENABLED=0
|
||||||
|
SENTRY_ENVIRONMENT=ci-main
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
DEBUG_WEBVIEW=1
|
DEBUG_WEBVIEW=1
|
||||||
DEFAULT_NETWORK=mainnet_rpc
|
|
||||||
ETHEREUM_DEV_CLUSTER=1
|
ETHEREUM_DEV_CLUSTER=1
|
||||||
EXTENSIONS=0
|
EXTENSIONS=0
|
||||||
FLEET=status.prod
|
|
||||||
GROUP_CHATS_ENABLED=1
|
GROUP_CHATS_ENABLED=1
|
||||||
LOG_LEVEL=info
|
LOG_LEVEL=debug
|
||||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||||
MAINNET_WARNING_ENABLED=1
|
MAINNET_WARNING_ENABLED=1
|
||||||
PFS_ENCRYPTION_ENABLED=1
|
PFS_ENCRYPTION_ENABLED=1
|
||||||
@@ -23,3 +21,8 @@ DATABASE_MANAGEMENT_ENABLED=1
|
|||||||
DELETE_MESSAGE_ENABLED=1
|
DELETE_MESSAGE_ENABLED=1
|
||||||
FAST_CREATE_COMMUNITY_ENABLED=0
|
FAST_CREATE_COMMUNITY_ENABLED=0
|
||||||
TEST_NETWORKS_ENABLED=0
|
TEST_NETWORKS_ENABLED=0
|
||||||
|
ENABLE_ALERT_BANNER=1
|
||||||
|
FLAG_WALLET_CONNECT_ENABLED=1
|
||||||
|
API_LOGGING_ENABLED=1
|
||||||
|
SENTRY_ENABLED=1
|
||||||
|
SENTRY_ENVIRONMENT=ci-nightly
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
DEBUG_WEBVIEW=0
|
DEBUG_WEBVIEW=0
|
||||||
DEFAULT_NETWORK=mainnet_rpc
|
|
||||||
ETHEREUM_DEV_CLUSTER=0
|
ETHEREUM_DEV_CLUSTER=0
|
||||||
EXTENSIONS=0
|
EXTENSIONS=0
|
||||||
FLEET=status.prod
|
|
||||||
GROUP_CHATS_ENABLED=1
|
GROUP_CHATS_ENABLED=1
|
||||||
LOG_LEVEL=
|
LOG_LEVEL=error
|
||||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||||
MAINNET_WARNING_ENABLED=1
|
MAINNET_WARNING_ENABLED=1
|
||||||
PFS_ENCRYPTION_ENABLED=1
|
PFS_ENCRYPTION_ENABLED=1
|
||||||
@@ -18,6 +16,10 @@ PARTITIONED_TOPIC=0
|
|||||||
ENABLE_ROOT_ALERT=1
|
ENABLE_ROOT_ALERT=1
|
||||||
MAX_IMAGES_BATCH=1
|
MAX_IMAGES_BATCH=1
|
||||||
DELETE_MESSAGE_ENABLED=1
|
DELETE_MESSAGE_ENABLED=1
|
||||||
COLLECTIBLES_ENABLED=1
|
|
||||||
FAST_CREATE_COMMUNITY_ENABLED=0
|
FAST_CREATE_COMMUNITY_ENABLED=0
|
||||||
TEST_NETWORKS_ENABLED=0
|
TEST_NETWORKS_ENABLED=0
|
||||||
|
STATUS_PROXY_STAGE_NAME=prod
|
||||||
|
FLAG_WALLET_CONNECT_ENABLED=1
|
||||||
|
API_LOGGING_ENABLED=0
|
||||||
|
SENTRY_ENABLED=1
|
||||||
|
SENTRY_ENVIRONMENT=production
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
name: MVPBug Report
|
name: Bug Report
|
||||||
about: MVPBug Report
|
about: Bug Report
|
||||||
title: ''
|
title: ''
|
||||||
labels: 'E:Mobile Bug MVP'
|
type: 'Bug'
|
||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,39 +1,26 @@
|
|||||||
[comment]: # (Please replace ... with your information. Remove < and >)
|
|
||||||
[comment]: # (To auto-close issue on merge, please insert the related issue number after # i.e fixes #566)
|
[comment]: # (To auto-close issue on merge, please insert the related issue number after # i.e fixes #566)
|
||||||
|
|
||||||
If you submit PR for issue with bounty then write here Fixes #NN where NN is issue number
|
|
||||||
|
|
||||||
*otherwise*
|
|
||||||
|
|
||||||
fixes #...
|
fixes #...
|
||||||
|
|
||||||
### Summary
|
## Summary
|
||||||
|
|
||||||
[comment]: # (Summarise the problem and how the pull request solves it)
|
[comment]: # (Summarise the problem and how the pull request solves it)
|
||||||
...
|
...
|
||||||
|
|
||||||
<!-- (Optional, remove if no changes to documentation) -->
|
## Review notes
|
||||||
Documentation change PR (review please): https://github.com/status-im/status.im/pull/xxx
|
[comment]: # (Optional. Specify if something in particular should be looked at, or ignored, during review)
|
||||||
|
|
||||||
### Review notes
|
## Testing notes
|
||||||
<!-- (Optional. Specify if something in particular should be looked at, or ignored, during review) -->
|
[comment]: # (Optional)
|
||||||
|
|
||||||
### Testing notes
|
### Platforms
|
||||||
<!-- (Optional) -->
|
[comment]: # (Optional. Specify which platforms should be tested)
|
||||||
|
|
||||||
#### Platforms
|
|
||||||
<!-- (Optional. Specify which platforms should be tested) -->
|
|
||||||
|
|
||||||
- Android
|
- Android
|
||||||
- iOS
|
- iOS
|
||||||
- macOS
|
|
||||||
- Linux
|
|
||||||
- Windows
|
|
||||||
|
|
||||||
#### Areas that maybe impacted
|
### Areas that may be impacted
|
||||||
<!-- (Optional. Specify if some specific areas has to be tested, for example 1-1 chats) -->
|
[comment]: # (Optional. Specify if some specific areas need to be tested, such as 1-1 chats)
|
||||||
|
|
||||||
##### Functional
|
#### Functional
|
||||||
|
|
||||||
- 1-1 chats
|
- 1-1 chats
|
||||||
- public chats
|
- public chats
|
||||||
@@ -48,25 +35,36 @@ Documentation change PR (review please): https://github.com/status-im/status.im/
|
|||||||
- fleet
|
- fleet
|
||||||
- bootnodes
|
- bootnodes
|
||||||
|
|
||||||
##### Non-functional
|
#### Non-functional
|
||||||
|
|
||||||
- battery performance
|
- battery performance
|
||||||
- CPU performance / speed of the app
|
- CPU performance / speed of the app
|
||||||
- network consumption
|
- network consumption
|
||||||
|
|
||||||
### Steps to test
|
## Steps to test
|
||||||
<!-- (Specify exact steps to test if there are such) -->
|
[comment]: # (Specify exact steps to test if there are such)
|
||||||
|
|
||||||
- Open Status
|
- Open Status
|
||||||
- ...
|
- ...
|
||||||
- Step 3, etc.
|
- Step 3, etc.
|
||||||
|
|
||||||
<!-- (PRs will only be accepted if squashed into single commit.) -->
|
|
||||||
|
|
||||||
### Before and after screenshots comparison
|
[comment]: # (Can be ready or wip)
|
||||||
|
status: ready
|
||||||
|
|
||||||
| Figma (if available) | iOS (if available) | Android (if available)
|
|
||||||
| --- | --- | --- |
|
|
||||||
| Please embed Image/Video here of the before and after. | Please embed Image/Video here of the before and after. | Please embed Image/Video here of the before and after. |
|
|
||||||
|
|
||||||
status: ready <!-- Can be ready or wip -->
|
<!-- Uncomment this section for status-go upgrade/dogfooding pull requests
|
||||||
|
|
||||||
|
- Specify potentially impacted user flows in _Areas that may be impacted*.
|
||||||
|
- Ensure that _Steps to test_ is filled in.
|
||||||
|
|
||||||
|
### Risk
|
||||||
|
|
||||||
|
Described potential risks and worst case scenarios.
|
||||||
|
|
||||||
|
Tick **one**:
|
||||||
|
- [ ] Low risk: 2 devs MUST perform testing as specified above and attach their results as comments to this PR **before** merging.
|
||||||
|
- [ ] High risk: QA team MUST perform additional testing in the specified affected areas **before** merging.
|
||||||
|
|
||||||
|
|
||||||
|
-->
|
||||||
|
|||||||
@@ -83,6 +83,9 @@ shim.js
|
|||||||
figwheel_server.log
|
figwheel_server.log
|
||||||
.nrepl-port
|
.nrepl-port
|
||||||
|
|
||||||
|
# FlowStorm (Clojure debugger)
|
||||||
|
repl-client-debug
|
||||||
|
|
||||||
# Lein
|
# Lein
|
||||||
#
|
#
|
||||||
.lein-failures
|
.lein-failures
|
||||||
@@ -127,6 +130,8 @@ fastlane/README.md
|
|||||||
# Clj
|
# Clj
|
||||||
|
|
||||||
.cpcache/
|
.cpcache/
|
||||||
|
src/user.cljs
|
||||||
|
src/dev/user.cljs
|
||||||
|
|
||||||
# emacs
|
# emacs
|
||||||
.dir-locals.el
|
.dir-locals.el
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "legal-docs"]
|
||||||
|
path = legal-docs
|
||||||
|
url = https://github.com/status-im/status-software-legal-documents.git
|
||||||
@@ -1,10 +1,15 @@
|
|||||||
*
|
/*
|
||||||
|
|
||||||
|
# Format top-level js files.
|
||||||
!*.js
|
!*.js
|
||||||
!*/
|
|
||||||
*.clj-kondo
|
# Ignore all except src/js/**/*.js
|
||||||
*.shadow-cljs
|
!/src/
|
||||||
modules
|
/src/*
|
||||||
result
|
!/src/js
|
||||||
target
|
!/src/js/**/*.js
|
||||||
component-spec
|
|
||||||
/app
|
# Ignore all except translations/en.json
|
||||||
|
!/translations/
|
||||||
|
/translations/*
|
||||||
|
!/translations/en.json
|
||||||
|
|||||||
@@ -6,4 +6,8 @@ module.exports = {
|
|||||||
tabWidth: 2,
|
tabWidth: 2,
|
||||||
trailingComma: 'all',
|
trailingComma: 'all',
|
||||||
useTabs: false,
|
useTabs: false,
|
||||||
|
|
||||||
|
// JSON sorting
|
||||||
|
jsonSortOrder: '{ "/.*/": "caseInsensitiveLexical" } ',
|
||||||
|
plugins: ['prettier-plugin-sort-json'],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"ignore_dirs": [
|
"ignore_dirs": [
|
||||||
"android/build",
|
"android/build",
|
||||||
"target"
|
"target",
|
||||||
|
".clj-kondo",
|
||||||
|
".shadow-cljs"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -41,6 +41,7 @@
|
|||||||
"reg-fx" :arg1-pair
|
"reg-fx" :arg1-pair
|
||||||
"testing" :arg1-body
|
"testing" :arg1-body
|
||||||
"deftest-sub" :arg1-body
|
"deftest-sub" :arg1-body
|
||||||
|
"deftest-event" :arg1-body
|
||||||
"test-async" :arg1-body
|
"test-async" :arg1-body
|
||||||
"wait-for" :arg1-body
|
"wait-for" :arg1-body
|
||||||
"with-deps-check" :arg1-body
|
"with-deps-check" :arg1-body
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ ifndef BUILD_TAG
|
|||||||
export BUILD_TAG := $(shell git rev-parse --short HEAD)
|
export BUILD_TAG := $(shell git rev-parse --short HEAD)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# We don't want to use /run/user/$UID because it runs out of space too easilly.
|
# We don't want to use /run/user/$UID because it runs out of space too easily.
|
||||||
export TMPDIR = /tmp/tmp-status-mobile-$(BUILD_TAG)
|
export TMPDIR = /tmp/tmp-status-mobile-$(BUILD_TAG)
|
||||||
# This has to be specified for both the Node.JS server process and the Qt process.
|
# This has to be specified for both the Node.JS server process and the Qt process.
|
||||||
export REACT_SERVER_PORT ?= 5001
|
export REACT_SERVER_PORT ?= 5001
|
||||||
@@ -43,8 +43,6 @@ export NODE_OPTIONS += --openssl-legacy-provider
|
|||||||
# The path can be anything, but home is usually safest.
|
# The path can be anything, but home is usually safest.
|
||||||
export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
||||||
|
|
||||||
# Our custom config is located in nix/nix.conf
|
|
||||||
export NIX_USER_CONF_FILES = $(PWD)/nix/nix.conf
|
|
||||||
# Location of symlinks to derivations that should not be garbage collected
|
# Location of symlinks to derivations that should not be garbage collected
|
||||||
export _NIX_GCROOTS = ./.nix-gcroots
|
export _NIX_GCROOTS = ./.nix-gcroots
|
||||||
# Defines which variables will be kept for Nix pure shell, use semicolon as divider
|
# Defines which variables will be kept for Nix pure shell, use semicolon as divider
|
||||||
@@ -97,6 +95,8 @@ nix-purge: ##@nix Completely remove Nix setup, including /nix directory
|
|||||||
nix/scripts/purge.sh
|
nix/scripts/purge.sh
|
||||||
|
|
||||||
nix-update-gradle: export TARGET := gradle
|
nix-update-gradle: export TARGET := gradle
|
||||||
|
nix-update-gradle: export ORG_GRADLE_PROJECT_hermesEnabled := false
|
||||||
|
nix-update-gradle: export ORG_GRADLE_PROJECT_universalApk := false
|
||||||
nix-update-gradle: ##@nix Update maven nix expressions based on current gradle setup
|
nix-update-gradle: ##@nix Update maven nix expressions based on current gradle setup
|
||||||
nix/deps/gradle/generate.sh
|
nix/deps/gradle/generate.sh
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ _install-hooks: ##@prepare Create prepare-commit-msg git hook symlink
|
|||||||
|
|
||||||
# Remove directories and ignored files
|
# Remove directories and ignored files
|
||||||
clean: SHELL := /bin/sh
|
clean: SHELL := /bin/sh
|
||||||
clean: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
|
clean: _fix-node-perms _tmpdir-rm ios-clean android-clean ##@prepare Remove all output folders
|
||||||
git clean -dXf
|
git clean -dXf
|
||||||
|
|
||||||
# Remove directories, ignored and non-ignored files
|
# Remove directories, ignored and non-ignored files
|
||||||
@@ -196,6 +196,10 @@ xcode-clean: XCODE_HOME := $(HOME)/Library/Developer/Xcode
|
|||||||
xcode-clean: ##@prepare Clean XCode derived data and archives
|
xcode-clean: ##@prepare Clean XCode derived data and archives
|
||||||
rm -fr $(XCODE_HOME)/DerivedData/StatusIm-* $(XCODE_HOME)/Archives/*/StatusIm*
|
rm -fr $(XCODE_HOME)/DerivedData/StatusIm-* $(XCODE_HOME)/Archives/*/StatusIm*
|
||||||
|
|
||||||
|
ios-simulator-cache-clean: SHELL := /bin/sh
|
||||||
|
ios-simulator-cache-clean: ##@prepare Clean iOS Simulator Caches
|
||||||
|
rm -rf ~/Library/Developer/CoreSimulator/Cache
|
||||||
|
|
||||||
#----------------
|
#----------------
|
||||||
# Release builds
|
# Release builds
|
||||||
#----------------
|
#----------------
|
||||||
@@ -211,15 +215,13 @@ build-fdroid: ##@build Build release for F-Droid
|
|||||||
build-android: export BUILD_ENV ?= prod
|
build-android: export BUILD_ENV ?= prod
|
||||||
build-android: export BUILD_TYPE ?= nightly
|
build-android: export BUILD_TYPE ?= nightly
|
||||||
build-android: export ORG_GRADLE_PROJECT_versionCode ?= $(TMP_BUILD_NUMBER)
|
build-android: export ORG_GRADLE_PROJECT_versionCode ?= $(TMP_BUILD_NUMBER)
|
||||||
build-android: export ANDROID_ABI_SPLIT ?= false
|
|
||||||
build-android: export ANDROID_ABI_INCLUDE ?= armeabi-v7a;arm64-v8a;x86
|
|
||||||
build-android: ##@build Build unsigned Android APK
|
build-android: ##@build Build unsigned Android APK
|
||||||
@scripts/build-android.sh
|
@scripts/build-android.sh
|
||||||
|
|
||||||
release-android: export TARGET := keytool
|
release-android: export TARGET := keytool
|
||||||
release-android: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
release-android: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
||||||
release-android: keystore build-android ##@build Build signed Android APK
|
release-android: keystore build-android ##@build Build signed Android APK
|
||||||
@scripts/sign-android.sh result/app-release-unsigned.apk
|
@scripts/sign-android.sh result/app-arm64-v8a-release-unsigned.apk
|
||||||
|
|
||||||
release-ios: export TARGET := ios
|
release-ios: export TARGET := ios
|
||||||
release-ios: export IOS_STATUS_GO_TARGETS := ios/arm64
|
release-ios: export IOS_STATUS_GO_TARGETS := ios/arm64
|
||||||
@@ -265,15 +267,18 @@ run-metro: export TARGET := clojure
|
|||||||
run-metro: ##@run Start Metro to build React Native changes
|
run-metro: ##@run Start Metro to build React Native changes
|
||||||
@scripts/run-metro.sh
|
@scripts/run-metro.sh
|
||||||
|
|
||||||
|
export RE_FRISK_PORT ?= 4567
|
||||||
|
|
||||||
run-re-frisk: export TARGET := clojure
|
run-re-frisk: export TARGET := clojure
|
||||||
run-re-frisk: ##@run Start re-frisk server
|
run-re-frisk: ##@run Start re-frisk server
|
||||||
yarn shadow-cljs run re-frisk-remote.core/start
|
yarn shadow-cljs run re-frisk-remote.core/start ${RE_FRISK_PORT}
|
||||||
|
|
||||||
# TODO: Migrate this to a Nix recipe, much the same way as nix/mobile/android/targets/release-android.nix
|
# TODO: Migrate this to a Nix recipe, much the same way as nix/mobile/android/targets/release-android.nix
|
||||||
run-android: export TARGET := android
|
run-android: export TARGET := android
|
||||||
# Disabled for debug builds to avoid 'maximum call stack exceeded' errors.
|
# Disabled for debug builds to avoid 'maximum call stack exceeded' errors.
|
||||||
# https://github.com/status-im/status-mobile/issues/18493
|
# https://github.com/status-im/status-mobile/issues/18493
|
||||||
run-android: export ORG_GRADLE_PROJECT_hermesEnabled := false
|
run-android: export ORG_GRADLE_PROJECT_hermesEnabled := false
|
||||||
|
run-android: export ORG_GRADLE_PROJECT_universalApk := false
|
||||||
run-android: ##@run Build Android APK and start it on the device
|
run-android: ##@run Build Android APK and start it on the device
|
||||||
@scripts/run-android.sh
|
@scripts/run-android.sh
|
||||||
|
|
||||||
@@ -313,7 +318,7 @@ lint: ##@test Run code style checks
|
|||||||
scripts/lint/translations.clj && \
|
scripts/lint/translations.clj && \
|
||||||
zprint '{:search-config? true}' -sfc $$ALL_CLOJURE_FILES && \
|
zprint '{:search-config? true}' -sfc $$ALL_CLOJURE_FILES && \
|
||||||
sh scripts/lint/trailing-newline.sh && \
|
sh scripts/lint/trailing-newline.sh && \
|
||||||
node_modules/.bin/prettier --write .
|
node_modules/.bin/prettier --check .
|
||||||
|
|
||||||
# NOTE: We run the linter twice because of https://github.com/kkinnear/zprint/issues/271
|
# NOTE: We run the linter twice because of https://github.com/kkinnear/zprint/issues/271
|
||||||
lint-fix: export TARGET := clojure
|
lint-fix: export TARGET := clojure
|
||||||
@@ -349,15 +354,17 @@ test: export SHADOW_NS_REGEXP := .*-test$$
|
|||||||
test: ##@test Run all Clojure tests
|
test: ##@test Run all Clojure tests
|
||||||
test: _test-clojure
|
test: _test-clojure
|
||||||
|
|
||||||
|
# Note: we need to override the :output-to and :ns-regexp options because
|
||||||
|
# shadow-cljs has a bug where it will not read from the env vars to expand the
|
||||||
|
# configuration when the shadow-cljs mobile target is already running.
|
||||||
|
test-watch-for-repl: export TARGET := default
|
||||||
test-watch-for-repl: export SHADOW_OUTPUT_TO := target/test/test.js
|
test-watch-for-repl: export SHADOW_OUTPUT_TO := target/test/test.js
|
||||||
test-watch-for-repl: export SHADOW_NS_REGEXP := .*-test$$
|
test-watch-for-repl: export SHADOW_NS_REGEXP := .*-test$$
|
||||||
test-watch-for-repl: status-go-library
|
|
||||||
test-watch-for-repl: ##@test Watch all Clojure tests and support REPL connections
|
test-watch-for-repl: ##@test Watch all Clojure tests and support REPL connections
|
||||||
yarn node-pre-gyp rebuild
|
rm -f "$$SHADOW_OUTPUT_TO" && \
|
||||||
rm -f target/test/test.js
|
yarn install && shadow-cljs compile mocks && \
|
||||||
yarn shadow-cljs compile mocks && \
|
|
||||||
concurrently --kill-others --prefix-colors 'auto' --names 'build,repl' \
|
concurrently --kill-others --prefix-colors 'auto' --names 'build,repl' \
|
||||||
'yarn shadow-cljs watch test --verbose' \
|
"yarn shadow-cljs watch test --verbose --config-merge '{:output-to \"$(SHADOW_OUTPUT_TO)\" :ns-regexp \"$(SHADOW_NS_REGEXP)\"}'" \
|
||||||
"until [ -f $$SHADOW_OUTPUT_TO ] ; do sleep 1 ; done ; node --require ./test-resources/override.js $$SHADOW_OUTPUT_TO --repl"
|
"until [ -f $$SHADOW_OUTPUT_TO ] ; do sleep 1 ; done ; node --require ./test-resources/override.js $$SHADOW_OUTPUT_TO --repl"
|
||||||
|
|
||||||
test-unit: export SHADOW_OUTPUT_TO := target/unit_test/test.js
|
test-unit: export SHADOW_OUTPUT_TO := target/unit_test/test.js
|
||||||
@@ -399,6 +406,17 @@ test-component: ##@test Run component tests once in NodeJS
|
|||||||
yarn shadow-cljs compile component-test && \
|
yarn shadow-cljs compile component-test && \
|
||||||
jest --clearCache && jest --config=test/jest/jest.config.js --testEnvironment node
|
jest --clearCache && jest --config=test/jest/jest.config.js --testEnvironment node
|
||||||
|
|
||||||
|
# Reference: https://flow-storm.github.io/flow-storm-debugger/user_guide.html#_debugging_react_native_applications
|
||||||
|
run-flow-storm: export SHADOW_CLJS_BUILD_ID := :mobile
|
||||||
|
run-flow-storm: export TARGET := clojure
|
||||||
|
run-flow-storm: export GDK_DPI_SCALE := 1.0
|
||||||
|
run-flow-storm: ##@run Start FlowStorm debugger
|
||||||
|
clj -Sforce -Sdeps '{:deps {com.github.jpmonettas/flow-storm-dbg {:mvn/version "3.7.5"}}}' \
|
||||||
|
-X flow-storm.debugger.main/start-debugger \
|
||||||
|
:port 7888 \
|
||||||
|
:repl-type :shadow \
|
||||||
|
:build-id $(SHADOW_CLJS_BUILD_ID)
|
||||||
|
|
||||||
#--------------
|
#--------------
|
||||||
# Other
|
# Other
|
||||||
#--------------
|
#--------------
|
||||||
@@ -409,25 +427,48 @@ geth-connect: ##@other Connect to Geth on the device
|
|||||||
build/bin/geth attach http://localhost:8545
|
build/bin/geth attach http://localhost:8545
|
||||||
|
|
||||||
ios-clean: SHELL := /bin/sh
|
ios-clean: SHELL := /bin/sh
|
||||||
|
ios-clean: ios-simulator-cache-clean
|
||||||
ios-clean: ##@prepare Clean iOS build artifacts
|
ios-clean: ##@prepare Clean iOS build artifacts
|
||||||
git clean -dxf -f target/ios
|
git clean -dxf -f target/ios
|
||||||
|
|
||||||
android-clean: export TARGET := gradle
|
android-clean: SHELL := /bin/sh
|
||||||
android-clean: ##@prepare Clean Gradle state
|
android-clean: ##@prepare Clean Gradle state
|
||||||
git clean -dxf -f ./android/app/build; \
|
git clean -dxf -f ./android/app/build; \
|
||||||
[[ -d android/.gradle ]] && cd android && ./gradlew clean
|
rm -rf android/.gradle \
|
||||||
|
rm -rf android/build \
|
||||||
|
rm -rf ~/.gradle
|
||||||
|
|
||||||
|
|
||||||
|
android-ports: export FLOWSTORM_PORT ?= 7722
|
||||||
android-ports: export TARGET := android-sdk
|
android-ports: export TARGET := android-sdk
|
||||||
|
android-ports: export RCT_METRO_PORT ?= 8081
|
||||||
android-ports: ##@other Add proxies to Android Device/Simulator
|
android-ports: ##@other Add proxies to Android Device/Simulator
|
||||||
adb reverse tcp:8081 tcp:8081 && \
|
adb reverse tcp:$(RCT_METRO_PORT) tcp:$(RCT_METRO_PORT) && \
|
||||||
adb reverse tcp:3449 tcp:3449 && \
|
adb reverse tcp:3449 tcp:3449 && \
|
||||||
adb reverse tcp:4567 tcp:4567 && \
|
adb reverse tcp:$(RE_FRISK_PORT) tcp:$(RE_FRISK_PORT) && \
|
||||||
|
adb reverse tcp:$(FLOWSTORM_PORT) tcp:$(FLOWSTORM_PORT) && \
|
||||||
adb forward tcp:5561 tcp:5561
|
adb forward tcp:5561 tcp:5561
|
||||||
|
|
||||||
android-devices: export TARGET := android-sdk
|
android-devices: export TARGET := android-sdk
|
||||||
android-devices: ##@other Invoke adb devices
|
android-devices: ##@other Invoke adb devices
|
||||||
adb devices
|
adb devices
|
||||||
|
|
||||||
|
android-pull-geth: export TARGET := android-sdk
|
||||||
|
android-pull-geth: export VERSION ?= debug
|
||||||
|
android-pull-geth:
|
||||||
|
adb pull "/storage/emulated/0/Android/data/im.status.ethereum$$( [ "$(VERSION)" = "release" ] || echo ".$(VERSION)" )/files/Download/geth.log"
|
||||||
|
|
||||||
|
android-tail-geth: export TARGET := android-sdk
|
||||||
|
android-tail-geth: export VERSION ?= debug
|
||||||
|
android-tail-geth:
|
||||||
|
adb shell 'while true; do cat; sleep 1; done < /storage/emulated/0/Android/data/im.status.ethereum$$( [ "$(VERSION)" = "release" ] || echo ".$(VERSION)" )/files/Download/geth.log'
|
||||||
|
|
||||||
|
android-clean-geth: export TARGET := android-sdk
|
||||||
|
android-clean-geth: export VERSION ?= debug
|
||||||
|
android-clean-geth:
|
||||||
|
adb shell 'rm /storage/emulated/0/Android/data/im.status.ethereum$$( [ "$(VERSION)" = "release" ] || echo ".$(VERSION)" )/files/Download/geth.log'
|
||||||
|
|
||||||
|
|
||||||
android-logcat: export TARGET := android-sdk
|
android-logcat: export TARGET := android-sdk
|
||||||
android-logcat: ##@other Read status-mobile logs from Android phone using adb
|
android-logcat: ##@other Read status-mobile logs from Android phone using adb
|
||||||
adb logcat | grep -e RNBootstrap -e ReactNativeJS -e ReactNative -e StatusModule -e StatusNativeLogs -e 'F DEBUG :' -e 'Go :' -e 'GoLog :' -e 'libc :'
|
adb logcat | grep -e RNBootstrap -e ReactNativeJS -e ReactNative -e StatusModule -e StatusNativeLogs -e 'F DEBUG :' -e 'Go :' -e 'GoLog :' -e 'libc :'
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ react {
|
|||||||
/**
|
/**
|
||||||
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
|
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
|
||||||
*/
|
*/
|
||||||
def enableProguardInReleaseBuilds = false
|
def enableProguardInReleaseBuilds = true
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The preferred build flavor of JavaScriptCore (JSC)
|
* The preferred build flavor of JavaScriptCore (JSC)
|
||||||
@@ -83,7 +83,6 @@ def jscFlavor = 'org.webkit:android-jsc:+'
|
|||||||
*/
|
*/
|
||||||
def enableHermes = hermesEnabled.toBoolean();
|
def enableHermes = hermesEnabled.toBoolean();
|
||||||
|
|
||||||
|
|
||||||
def getCommitHash = { ->
|
def getCommitHash = { ->
|
||||||
if (project.hasProperty("commitHash")) {
|
if (project.hasProperty("commitHash")) {
|
||||||
return project.commitHash
|
return project.commitHash
|
||||||
@@ -144,6 +143,18 @@ android {
|
|||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = JavaVersion.VERSION_17
|
jvmTarget = JavaVersion.VERSION_17
|
||||||
}
|
}
|
||||||
|
// Disable default lint checks to remove redundant lintVitalReportRelease task
|
||||||
|
lintOptions {
|
||||||
|
checkReleaseBuilds false
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://developer.android.com/studio/projects/install-ndk#vanilla_cmake
|
||||||
|
externalNativeBuild {
|
||||||
|
cmake {
|
||||||
|
// This version must match cmakeVersions inside nix/pkgs/android-sdk/compose.nix
|
||||||
|
version "3.22.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_17
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
@@ -204,7 +215,7 @@ android {
|
|||||||
reset()
|
reset()
|
||||||
enable getEnvOrConfig('ANDROID_ABI_SPLIT').toBoolean()
|
enable getEnvOrConfig('ANDROID_ABI_SPLIT').toBoolean()
|
||||||
include getEnvOrConfig('ANDROID_ABI_INCLUDE').split(";")
|
include getEnvOrConfig('ANDROID_ABI_INCLUDE').split(";")
|
||||||
universalApk true
|
universalApk getEnvOrConfig('ORG_GRADLE_PROJECT_universalApk').toBoolean()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
@@ -225,6 +236,7 @@ android {
|
|||||||
}
|
}
|
||||||
release {
|
release {
|
||||||
minifyEnabled enableProguardInReleaseBuilds
|
minifyEnabled enableProguardInReleaseBuilds
|
||||||
|
shrinkResources enableProguardInReleaseBuilds
|
||||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||||
signingConfig null
|
signingConfig null
|
||||||
}
|
}
|
||||||
@@ -232,10 +244,10 @@ android {
|
|||||||
initWith release
|
initWith release
|
||||||
applicationIdSuffix ".pr"
|
applicationIdSuffix ".pr"
|
||||||
versionNameSuffix ".pr"
|
versionNameSuffix ".pr"
|
||||||
debuggable false
|
debuggable false
|
||||||
matchingFallbacks = ["release"]
|
matchingFallbacks = ["release"]
|
||||||
// necessary to make react-native-config's code generation work
|
// necessary to make react-native-config's code generation work
|
||||||
resValue "string", "build_config_package", "im.status.ethereum"
|
resValue "string", "build_config_package", "im.status.ethereum"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,11 +281,14 @@ dependencies {
|
|||||||
// The version of react-native is set by the React Native Gradle Plugin
|
// The version of react-native is set by the React Native Gradle Plugin
|
||||||
implementation("com.facebook.react:react-android")
|
implementation("com.facebook.react:react-android")
|
||||||
implementation("androidx.core:core-splashscreen:1.0.0")
|
implementation("androidx.core:core-splashscreen:1.0.0")
|
||||||
// we don't use hermes for debug but we need its pom file for release builds
|
|
||||||
// https://github.com/status-im/status-mobile/pull/18675
|
if (enableHermes) {
|
||||||
implementation("com.facebook.react:hermes-android")
|
implementation("com.facebook.react:hermes-android")
|
||||||
// FIXME: implementing both hermes & JSC increases bundle size by ~ 2MB
|
} else {
|
||||||
implementation(jscFlavor)
|
// https://github.com/status-im/status-mobile/issues/18493
|
||||||
|
// we don't use hermes for debug builds because it crashes too often
|
||||||
|
implementation(jscFlavor)
|
||||||
|
}
|
||||||
|
|
||||||
// react-native-screens
|
// react-native-screens
|
||||||
implementation("androidx.appcompat:appcompat:1.1.0-rc01")
|
implementation("androidx.appcompat:appcompat:1.1.0-rc01")
|
||||||
@@ -285,7 +300,7 @@ dependencies {
|
|||||||
implementation("com.github.status-im:function:0.0.1")
|
implementation("com.github.status-im:function:0.0.1")
|
||||||
implementation("com.facebook.fresco:fresco:2.5.0")
|
implementation("com.facebook.fresco:fresco:2.5.0")
|
||||||
implementation("com.facebook.fresco:animated-gif:2.5.0")
|
implementation("com.facebook.fresco:animated-gif:2.5.0")
|
||||||
implementation("com.squareup.okhttp3:okhttp-tls:4.9.2")
|
implementation("com.squareup.okhttp3:okhttp-tls:4.11.0")
|
||||||
implementation("com.google.prefab:cli:2.0.0")
|
implementation("com.google.prefab:cli:2.0.0")
|
||||||
implementation("com.android.tools.build:aapt2:8.1.1-10154469")
|
implementation("com.android.tools.build:aapt2:8.1.1-10154469")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,9 @@
|
|||||||
-keep interface okhttp3.** { *; }
|
-keep interface okhttp3.** { *; }
|
||||||
-dontwarn okhttp3.**
|
-dontwarn okhttp3.**
|
||||||
|
|
||||||
|
# to fix : java.security.KeyStoreException: BKS not found
|
||||||
|
-keep class org.bouncycastle.** { *; }
|
||||||
|
|
||||||
# okio
|
# okio
|
||||||
|
|
||||||
-keep class sun.misc.Unsafe { *; }
|
-keep class sun.misc.Unsafe { *; }
|
||||||
@@ -76,3 +79,12 @@
|
|||||||
**[] $VALUES;
|
**[] $VALUES;
|
||||||
public *;
|
public *;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# react-native-config
|
||||||
|
# https://github.com/lugg/react-native-config?tab=readme-ov-file#problems-with-proguard
|
||||||
|
-keep class im.status.ethereum.BuildConfig {*;}
|
||||||
|
|
||||||
|
# react-native-navigation
|
||||||
|
# to fix : java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
|
||||||
|
# at com.reactnativenavigation.views.element.animators.PropertyAnimatorCreator.getChildClass(Unknown Source:13)
|
||||||
|
-keep class com.reactnativenavigation.** {*;}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<!-- These are added by React Native for debug mode, but actually aren't needed in release mode -->
|
<!-- These are added by React Native for debug mode, but actually aren't needed in release mode -->
|
||||||
<uses-permission tools:node="remove" android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||||
<!-- Remove licensing permission since we don't license our app and it blocks F-Droid submissions. -->
|
<!-- Remove licensing permission since we don't license our app and it blocks F-Droid submissions. -->
|
||||||
<uses-permission tools:node="remove" android:name="com.android.vending.CHECK_LICENSE"/>
|
<uses-permission tools:node="remove" android:name="com.android.vending.CHECK_LICENSE"/>
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:theme="@style/Theme.AppSplash"
|
android:theme="@style/Theme.AppSplash"
|
||||||
android:name=".MainApplication"
|
android:name=".MainApplication"
|
||||||
android:largeHeap="true"
|
android:largeHeap="true"
|
||||||
@@ -70,8 +71,30 @@
|
|||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<!-- Handles http and https URLs for status.app -->
|
||||||
<data android:scheme="http" android:host="status.app" />
|
<data android:scheme="http" android:host="status.app" />
|
||||||
<data android:scheme="https" android:host="status.app" />
|
<data android:scheme="https" android:host="status.app" />
|
||||||
|
<!-- Community paths -->
|
||||||
|
<data android:pathPattern="/c/.*" android:host="status.app" android:scheme="http" />
|
||||||
|
<data android:pathPattern="/c/.*" android:host="status.app" android:scheme="https" />
|
||||||
|
<!-- Community channel paths -->
|
||||||
|
<data android:pathPattern="/cc/.*" android:host="status.app" android:scheme="http" />
|
||||||
|
<data android:pathPattern="/cc/.*" android:host="status.app" android:scheme="https" />
|
||||||
|
<!-- User paths -->
|
||||||
|
<data android:pathPattern="/u/.*" android:host="status.app" android:scheme="http" />
|
||||||
|
<data android:pathPattern="/u/.*" android:host="status.app" android:scheme="https" />
|
||||||
|
<!-- Private chat paths -->
|
||||||
|
<data android:pathPattern="/p/.*" android:host="status.app" android:scheme="http" />
|
||||||
|
<data android:pathPattern="/p/.*" android:host="status.app" android:scheme="https" />
|
||||||
|
<!-- Community request paths -->
|
||||||
|
<data android:pathPattern="/cr/.*" android:host="status.app" android:scheme="http" />
|
||||||
|
<data android:pathPattern="/cr/.*" android:host="status.app" android:scheme="https" />
|
||||||
|
<!-- Group chat paths -->
|
||||||
|
<data android:pathPattern="/g/.*" android:host="status.app" android:scheme="http" />
|
||||||
|
<data android:pathPattern="/g/.*" android:host="status.app" android:scheme="https" />
|
||||||
|
<!-- Wallet paths -->
|
||||||
|
<data android:pathPattern="/wallet/.*" android:host="status.app" android:scheme="http" />
|
||||||
|
<data android:pathPattern="/wallet/.*" android:host="status.app" android:scheme="https" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<intent-filter android:autoVerify="true">
|
<intent-filter android:autoVerify="true">
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
package im.status.ethereum;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
|
|
||||||
/** @author Kevin Kowalewski */
|
|
||||||
public class RootUtil {
|
|
||||||
|
|
||||||
public static boolean isDeviceRooted() {
|
|
||||||
return checkRootMethod1() || checkRootMethod2() || checkRootMethod3();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean checkRootMethod1() {
|
|
||||||
String buildTags = android.os.Build.TAGS;
|
|
||||||
return buildTags != null && buildTags.contains("test-keys");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean checkRootMethod2() {
|
|
||||||
String[] paths = { "/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su",
|
|
||||||
"/system/bin/failsafe/su", "/data/local/su" };
|
|
||||||
for (String path : paths) {
|
|
||||||
if (new File(path).exists()) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean checkRootMethod3() {
|
|
||||||
Process process = null;
|
|
||||||
try {
|
|
||||||
process = Runtime.getRuntime().exec(new String[] { "/system/xbin/which", "su" });
|
|
||||||
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
|
||||||
return in.readLine() != null;
|
|
||||||
} catch (Throwable t) {
|
|
||||||
return false;
|
|
||||||
} finally {
|
|
||||||
if (process != null) process.destroy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package im.status.ethereum
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
|
import java.io.BufferedReader
|
||||||
|
import java.io.File
|
||||||
|
import java.io.InputStreamReader
|
||||||
|
|
||||||
|
object RootUtil {
|
||||||
|
|
||||||
|
fun isDeviceRooted(): Boolean =
|
||||||
|
checkRootMethod1() || checkRootMethod2() || checkRootMethod3()
|
||||||
|
|
||||||
|
private fun checkRootMethod1(): Boolean =
|
||||||
|
Build.TAGS?.contains("test-keys") ?: false
|
||||||
|
|
||||||
|
private fun checkRootMethod2(): Boolean {
|
||||||
|
val paths = arrayOf(
|
||||||
|
"/system/app/Superuser.apk",
|
||||||
|
"/sbin/su",
|
||||||
|
"/system/bin/su",
|
||||||
|
"/system/xbin/su",
|
||||||
|
"/data/local/xbin/su",
|
||||||
|
"/data/local/bin/su",
|
||||||
|
"/system/sd/xbin/su",
|
||||||
|
"/system/bin/failsafe/su",
|
||||||
|
"/data/local/su"
|
||||||
|
)
|
||||||
|
return paths.any { File(it).exists() }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun checkRootMethod3(): Boolean {
|
||||||
|
var process: Process? = null
|
||||||
|
return try {
|
||||||
|
process = Runtime.getRuntime().exec(arrayOf("/system/xbin/which", "su"))
|
||||||
|
BufferedReader(InputStreamReader(process.inputStream)).readLine() != null
|
||||||
|
} catch (t: Throwable) {
|
||||||
|
false
|
||||||
|
} finally {
|
||||||
|
process?.destroy()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 92 B After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 940 B |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 266 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 972 B After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 495 B After Width: | Height: | Size: 452 B |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 826 B After Width: | Height: | Size: 824 B |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 826 B After Width: | Height: | Size: 825 B |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 123 KiB |
@@ -2,4 +2,5 @@
|
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@mipmap/ic_background"/>
|
<background android:drawable="@mipmap/ic_background"/>
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/>
|
<foreground android:drawable="@mipmap/ic_foreground"/>
|
||||||
|
<monochrome android:drawable="@mipmap/ic_launcher_monochrome" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
@@ -2,4 +2,5 @@
|
|||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@mipmap/ic_background"/>
|
<background android:drawable="@mipmap/ic_background"/>
|
||||||
<foreground android:drawable="@mipmap/ic_foreground"/>
|
<foreground android:drawable="@mipmap/ic_foreground"/>
|
||||||
|
<monochrome android:drawable="@mipmap/ic_launcher_monochrome" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
|
Before Width: | Height: | Size: 374 B After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 737 B |
|
Before Width: | Height: | Size: 970 B After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 517 B After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 905 B After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 25 KiB |
@@ -38,10 +38,10 @@ KEYSTORE_PASSWORD=password
|
|||||||
KEYSTORE_ALIAS=status
|
KEYSTORE_ALIAS=status
|
||||||
KEYSTORE_KEY_PASSWORD=password
|
KEYSTORE_KEY_PASSWORD=password
|
||||||
|
|
||||||
# By default we build a mostly universal APK
|
# Splitting by CPU Architecture produces smaller APKs.
|
||||||
ANDROID_ABI_SPLIT=false
|
ANDROID_ABI_SPLIT=true
|
||||||
# Some platforms are excluded though
|
# By default its better to only build apk for most recent devices.
|
||||||
ANDROID_ABI_INCLUDE=armeabi-v7a;arm64-v8a;x86;x86_64
|
ANDROID_ABI_INCLUDE=arm64-v8a
|
||||||
|
|
||||||
org.gradle.jvmargs=-Xmx8704M -XX:+UseParallelGC
|
org.gradle.jvmargs=-Xmx8704M -XX:+UseParallelGC
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
initscript {
|
||||||
|
repositories {
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath "org.gradle:github-dependency-graph-gradle-plugin:+"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
apply plugin: org.gradle.dependencygraph.simple.SimpleDependencyGraphPlugin
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
pluginManagement {
|
pluginManagement {
|
||||||
include ':react-native-share'
|
includeBuild('../node_modules/@react-native/gradle-plugin')
|
||||||
project(':react-native-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share/android')
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal() // Let's prioritize local Maven repos so that Nix can provide them offline
|
mavenLocal() // Let's prioritize local Maven repos so that Nix can provide them offline
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
include ':react-native-share'
|
||||||
|
project(':react-native-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share/android')
|
||||||
rootProject.name = 'StatusIm'
|
rootProject.name = 'StatusIm'
|
||||||
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
|
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
|
||||||
include ':react-native-nfc-manager'
|
include ':react-native-nfc-manager'
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
/* Options section can't access functions in objects. */
|
/* Options section can't access functions in objects. */
|
||||||
def isPRBuild = utils.isPRBuild()
|
def isPRBuild = utils.isPRBuild()
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'linux && x86_64 && nix-2.19' }
|
agent { label 'linux && x86_64 && nix-2.24' }
|
||||||
|
|
||||||
options {
|
options {
|
||||||
timestamps()
|
timestamps()
|
||||||
@@ -41,6 +41,7 @@ pipeline {
|
|||||||
BUILD_ENV = 'prod'
|
BUILD_ENV = 'prod'
|
||||||
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
|
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
|
||||||
FASTLANE_DISABLE_COLORS = 1
|
FASTLANE_DISABLE_COLORS = 1
|
||||||
|
SENTRY_PRODUCTION = "${utils.isReleaseBuild() ? 'true' : 'false'}"
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
@@ -71,12 +72,8 @@ pipeline {
|
|||||||
}
|
}
|
||||||
stage('Upload') {
|
stage('Upload') {
|
||||||
steps { script {
|
steps { script {
|
||||||
def urls = apks.collect { s3.uploadArtifact(it) }
|
def urls = apks.collect { s5cmd.upload(it) }
|
||||||
if (urls.size() > 1) { /* Return only the universal APK. */
|
env.PKG_URL = urls.first()
|
||||||
env.PKG_URL = urls.find { it.contains('universal') }
|
|
||||||
} else { /* If no universal is available pick first. */
|
|
||||||
env.PKG_URL = urls.first()
|
|
||||||
}
|
|
||||||
jenkins.setBuildDesc(APK: env.PKG_URL)
|
jenkins.setBuildDesc(APK: env.PKG_URL)
|
||||||
} }
|
} }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
|
import groovy.json.JsonBuilder
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'linux' }
|
agent { label 'linux' }
|
||||||
@@ -72,7 +74,7 @@ pipeline {
|
|||||||
iOS: utils.pkgUrl(ios),
|
iOS: utils.pkgUrl(ios),
|
||||||
Diawi: utils.getEnv(ios, 'DIAWI_URL'),
|
Diawi: utils.getEnv(ios, 'DIAWI_URL'),
|
||||||
/* upload the sha256 checksums file too */
|
/* upload the sha256 checksums file too */
|
||||||
SHA: s3.uploadArtifact(sha),
|
SHA: s5cmd.upload(sha),
|
||||||
]
|
]
|
||||||
/* add URLs to the build description */
|
/* add URLs to the build description */
|
||||||
jenkins.setBuildDesc(urls)
|
jenkins.setBuildDesc(urls)
|
||||||
@@ -83,7 +85,7 @@ pipeline {
|
|||||||
steps { script {
|
steps { script {
|
||||||
switch (utils.getBuildType()) {
|
switch (utils.getBuildType()) {
|
||||||
case 'nightly': /* Create JSON file with newest build URLs */
|
case 'nightly': /* Create JSON file with newest build URLs */
|
||||||
s3.updateBucketJSON(urls, 'latest.json');
|
updateBucketJSON(urls, 'latest.json');
|
||||||
break;
|
break;
|
||||||
case 'release':
|
case 'release':
|
||||||
github.publishReleaseFiles(repo: 'status-mobile');
|
github.publishReleaseFiles(repo: 'status-mobile');
|
||||||
@@ -114,3 +116,21 @@ def Boolean getPublishDefault(Boolean previousValue) {
|
|||||||
if (previousValue != null) { return previousValue }
|
if (previousValue != null) { return previousValue }
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Helper for updating JSON with newest builds. */
|
||||||
|
def updateBucketJSON(urls, fileName) {
|
||||||
|
/* latest.json has slightly different key names */
|
||||||
|
def content = [
|
||||||
|
DIAWI: urls.Diawi,
|
||||||
|
APK: urls.Apk, IOS: urls.iOS,
|
||||||
|
APP: urls.App, MAC: urls.Mac,
|
||||||
|
WIN: urls.Win, SHA: urls.SHA
|
||||||
|
]
|
||||||
|
def filePath = "${pwd()}/pkg/${fileName}"
|
||||||
|
/* it might not exist */
|
||||||
|
sh "mkdir -p ${pwd()}/pkg"
|
||||||
|
def contentJson = new JsonBuilder(content).toPrettyString()
|
||||||
|
println "${filePath}:\n${contentJson}"
|
||||||
|
writeFile(file: filePath, text: contentJson)
|
||||||
|
return s5cmd.upload(filePath)
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'linux' }
|
agent { label 'linux' }
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
/* Options section can't access functions in objects. */
|
/* Options section can't access functions in objects. */
|
||||||
def isPRBuild = utils.isPRBuild()
|
def isPRBuild = utils.isPRBuild()
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'macos && arm64 && nix-2.19 && xcode-15.1' }
|
agent { label 'macos && arm64 && nix-2.24 && xcode-16.2' }
|
||||||
|
|
||||||
parameters {
|
parameters {
|
||||||
string(
|
string(
|
||||||
@@ -41,6 +41,7 @@ pipeline {
|
|||||||
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
|
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
|
||||||
FASTLANE_DISABLE_COLORS = 1
|
FASTLANE_DISABLE_COLORS = 1
|
||||||
BUNDLE_PATH = "${HOME}/.bundle"
|
BUNDLE_PATH = "${HOME}/.bundle"
|
||||||
|
SENTRY_PRODUCTION = "${utils.isReleaseBuild() ? 'true' : 'false'}"
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
/* Options section can't access functions in objects. */
|
/* Options section can't access functions in objects. */
|
||||||
def isPRBuild = utils.isPRBuild()
|
def isPRBuild = utils.isPRBuild()
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'linux && x86_64 && nix-2.19' }
|
agent { label 'linux && x86_64 && nix-2.24' }
|
||||||
|
|
||||||
options {
|
options {
|
||||||
timestamps()
|
timestamps()
|
||||||
@@ -75,7 +75,7 @@ pipeline {
|
|||||||
stage('Upload') {
|
stage('Upload') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
env.PKG_URL = s3.uploadArtifact(LOG_FILE)
|
env.PKG_URL = s5cmd.upload(LOG_FILE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
|
|
||||||
@@ -73,9 +73,9 @@ pipeline {
|
|||||||
passwordVariable: 'TESTRAIL_PASS'
|
passwordVariable: 'TESTRAIL_PASS'
|
||||||
),
|
),
|
||||||
usernamePassword(
|
usernamePassword(
|
||||||
credentialsId: 'sauce-labs-api',
|
credentialsId: 'lambda-test-api',
|
||||||
usernameVariable: 'SAUCE_USERNAME',
|
usernameVariable: 'LAMBDA_TEST_USERNAME',
|
||||||
passwordVariable: 'SAUCE_ACCESS_KEY'
|
passwordVariable: 'LAMBDA_TEST_ACCESS_KEY'
|
||||||
),
|
),
|
||||||
string(
|
string(
|
||||||
credentialsId: 'etherscan-api-key',
|
credentialsId: 'etherscan-api-key',
|
||||||
@@ -95,11 +95,10 @@ pipeline {
|
|||||||
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
||||||
sh """
|
sh """
|
||||||
python3 -m pytest \
|
python3 -m pytest \
|
||||||
--numprocesses 8 \
|
--numprocesses 9 \
|
||||||
--rerun_count=2 \
|
|
||||||
--testrail_report=True \
|
--testrail_report=True \
|
||||||
-m testrail_id \
|
-m testrail_id \
|
||||||
-m \"new_ui_critical or new_ui_medium\" \
|
-m \"nightly\" \
|
||||||
-k \"${params.KEYWORD_EXPRESSION}\" \
|
-k \"${params.KEYWORD_EXPRESSION}\" \
|
||||||
--apk=${params.APK_URL ?: apk_path}
|
--apk=${params.APK_URL ?: apk_path}
|
||||||
"""
|
"""
|
||||||
@@ -110,21 +109,6 @@ pipeline {
|
|||||||
}
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
always {
|
|
||||||
script {
|
|
||||||
sauce('sauce-labs-cred') {
|
|
||||||
saucePublisher()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
success {
|
|
||||||
script {
|
|
||||||
junit(
|
|
||||||
testDataPublishers: [[$class: 'SauceOnDemandReportPublisher', jobVisibility: 'public']],
|
|
||||||
testResults: 'test/appium/tests/*.xml'
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cleanup {
|
cleanup {
|
||||||
sh 'make purge'
|
sh 'make purge'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
|
|
||||||
@@ -35,13 +35,11 @@ pipeline {
|
|||||||
description: 'OBSOLETE ARGUMENT TO BE REMOVED',
|
description: 'OBSOLETE ARGUMENT TO BE REMOVED',
|
||||||
defaultValue: 'DUMMY',
|
defaultValue: 'DUMMY',
|
||||||
)
|
)
|
||||||
/* Commented to use TEST_MARKERS values from job params
|
|
||||||
string(
|
string(
|
||||||
name: 'TEST_MARKERS',
|
name: 'TEST_MARKERS',
|
||||||
description: 'Marker expression for matching tests to run.',
|
description: 'Marker expression for matching tests to run.',
|
||||||
defaultValue: 'new_ui_critical',
|
defaultValue: 'smoke',
|
||||||
)
|
)
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
options {
|
options {
|
||||||
@@ -113,9 +111,9 @@ pipeline {
|
|||||||
passwordVariable: 'TESTRAIL_PASS'
|
passwordVariable: 'TESTRAIL_PASS'
|
||||||
),
|
),
|
||||||
usernamePassword(
|
usernamePassword(
|
||||||
credentialsId: 'sauce-labs-api',
|
credentialsId: 'lambda-test-api',
|
||||||
usernameVariable: 'SAUCE_USERNAME',
|
usernameVariable: 'LAMBDA_TEST_USERNAME',
|
||||||
passwordVariable: 'SAUCE_ACCESS_KEY'
|
passwordVariable: 'LAMBDA_TEST_ACCESS_KEY'
|
||||||
),
|
),
|
||||||
string(
|
string(
|
||||||
credentialsId: 'etherscan-api-key',
|
credentialsId: 'etherscan-api-key',
|
||||||
@@ -135,8 +133,7 @@ pipeline {
|
|||||||
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
||||||
sh """
|
sh """
|
||||||
python3 -m pytest \
|
python3 -m pytest \
|
||||||
--numprocesses 8 \
|
--numprocesses 9 \
|
||||||
--rerun_count=2 \
|
|
||||||
--testrail_report=True \
|
--testrail_report=True \
|
||||||
-k \"${params.KEYWORD_EXPRESSION}\" \
|
-k \"${params.KEYWORD_EXPRESSION}\" \
|
||||||
--apk=${params.APK_URL ?: apk_path} \
|
--apk=${params.APK_URL ?: apk_path} \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'macos' }
|
agent { label 'macos' }
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label params.AGENT_LABEL }
|
agent { label params.AGENT_LABEL }
|
||||||
@@ -109,10 +109,19 @@ pipeline {
|
|||||||
stage('Upload') {
|
stage('Upload') {
|
||||||
steps { script {
|
steps { script {
|
||||||
sshagent(credentials: ['nix-cache-ssh']) {
|
sshagent(credentials: ['nix-cache-ssh']) {
|
||||||
nix.shell("""
|
nix.shell(
|
||||||
|
"""
|
||||||
find /nix/store/ -mindepth 1 -maxdepth 1 -type d \
|
find /nix/store/ -mindepth 1 -maxdepth 1 -type d \
|
||||||
-not -name '*.links' -and -not -name '*-status-mobile-*' \
|
-not -name "*.links" -and -not -name "*-status-mobile-*" \
|
||||||
| xargs nix copy --to ${NIX_SSH_REMOTE}
|
-and -not -name "tmp-*" \
|
||||||
|
-print0 | xargs -0 nix-store -qR | sort -u > "${WORKSPACE_TMP}"/store-paths.txt
|
||||||
|
""",
|
||||||
|
pure: false
|
||||||
|
)
|
||||||
|
nix.shell(
|
||||||
|
"""
|
||||||
|
nix-store --export < "${WORKSPACE_TMP}"/store-paths.txt | \\
|
||||||
|
ssh ${env.NIX_SSHOPTS} ${params.NIX_CACHE_USER}@${params.NIX_CACHE_HOST} ${env.NIX_STORE_CMD} --import
|
||||||
""",
|
""",
|
||||||
pure: false
|
pure: false
|
||||||
)
|
)
|
||||||
@@ -123,7 +132,6 @@ pipeline {
|
|||||||
post {
|
post {
|
||||||
always { script {
|
always { script {
|
||||||
nix.shell('nix-store --optimize', pure: false)
|
nix.shell('nix-store --optimize', pure: false)
|
||||||
nix.shell('nix/scripts/clean.sh', pure: false)
|
|
||||||
} }
|
} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'linux' }
|
agent { label 'linux' }
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env groovy
|
#!/usr/bin/env groovy
|
||||||
library 'status-jenkins-lib@v1.8.12'
|
library 'status-jenkins-lib@v1.9.20'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent {
|
agent {
|
||||||
|
|||||||
@@ -1,67 +1,44 @@
|
|||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
[Starting Guide](starting-guide.md)
|
- [Starting Guide](starting-guide.md)
|
||||||
|
- [IDE Setup](ide-setup.md)
|
||||||
[IDE Setup](ide-setup.md)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Development Process
|
## Development Process
|
||||||
|
|
||||||
[Coding guidelines](new-guidelines.md)
|
- [Coding guidelines](new-guidelines.md)
|
||||||
|
- [UI components coding guidelines](ui-guidelines.md)
|
||||||
[UI components coding guidelines](ui-guidelines.md)
|
- [Release Checklist](release-checklist.md)
|
||||||
|
- [Release Guide](release-guide.md)
|
||||||
[Release Checklist](release-checklist.md)
|
- [Merging PR process](merging-pr-process.md)
|
||||||
|
- [PR Review Policy](pr-review-policy.md)
|
||||||
[Release Guide](release-guide.md)
|
- [Working on PR together with QA team](pipeline_process.md)
|
||||||
|
- [Debugging](debugging.md)
|
||||||
[Merging PR process](merging-pr-process.md)
|
- [Patching](patching.md)
|
||||||
|
- [Creating a pixel perfect UI](pixel-perfection.md)
|
||||||
[PR Review Policy](pr-review-policy.md)
|
- [Contributing to status-go](status-go-changes.md)
|
||||||
|
- [Status Backend Server](use-status-backend-server.md)
|
||||||
[Working on PR together with QA team](pipeline_process.md)
|
- [Malli schemas (recorded demo)](https://www.youtube.com/watch?v=SlRio70aYVI) ([slides](files/forging-code-with-schemas-sep-2023-slides.pdf))
|
||||||
|
|
||||||
[Debugging](debugging.md)
|
|
||||||
|
|
||||||
[Patching](patching.md)
|
|
||||||
|
|
||||||
[Creating a pixel perfect UI](pixel-perfection.md)
|
|
||||||
|
|
||||||
[Contributing to status-go](status-go-changes.md)
|
|
||||||
|
|
||||||
[Malli schemas (recorded demo)](https://www.youtube.com/watch?v=SlRio70aYVI) ([slides](files/forging-code-with-schemas-sep-2023-slides.pdf))
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
[How to run local tests](testing.md)
|
- [Overview](tests/tests-overview.md)
|
||||||
|
- [How to run local tests](tests/how-to-run-local-tests.md)
|
||||||
[End-to-end tests (e2e) overview](how-to-launch-e2e.md)
|
- [End-to-end tests (e2e) overview](tests/how-to-launch-e2e.md)
|
||||||
|
- [Component tests (jest) overview](tests/component-tests-overview.md)
|
||||||
[Component tests (jest) overview](component-tests-overview.md)
|
|
||||||
|
|
||||||
|
|
||||||
## Project details
|
## Project details
|
||||||
|
|
||||||
[status-go introduction (recorded meeting)](https://drive.google.com/file/d/1B7TljmTZ8fHkqJH8ChU1Cp4FGDFM03gq/view)
|
- [status-go introduction (recorded meeting)](https://drive.google.com/file/d/1B7TljmTZ8fHkqJH8ChU1Cp4FGDFM03gq/view)
|
||||||
|
- [re-frame usage (recorded meeting)](https://drive.google.com/file/d/1qv_E0CEGzQpu_zGXD0gCTU5EvhC2k8Jy/view)
|
||||||
[re-frame usage (recorded meeting)](https://drive.google.com/file/d/1qv_E0CEGzQpu_zGXD0gCTU5EvhC2k8Jy/view)
|
- [status app functionality demo](https://drive.google.com/file/u/0/d/1PmwsMLTLDNNIdv5_6wvMOwoj2PfT50c6/view)
|
||||||
|
|
||||||
[status app functionality demo](https://drive.google.com/file/u/0/d/1PmwsMLTLDNNIdv5_6wvMOwoj2PfT50c6/view)
|
|
||||||
|
|
||||||
## Misc
|
## Misc
|
||||||
|
|
||||||
[Importing icons from Figma into project](export-icons.md)
|
- [Importing assets from Figma into project](import-assets.md)
|
||||||
|
- [Updating Status APK builds for the F-Droid Android application catalogue](fdroid.md)
|
||||||
[Updating Status APK builds for the F-Droid Android application catalogue](fdroid.md)
|
- [Troubleshooting for known errors](troubleshooting.md)
|
||||||
|
|
||||||
[Troubleshooting for known errors](troubleshooting.md)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Outdated:
|
## Outdated:
|
||||||
|
|
||||||
[Old guidelines](codebase-structure-and-guidelines.md)
|
- [Old guidelines](codebase-structure-and-guidelines.md)
|
||||||
|
- [Post mortem analysis](post-mortem.md)
|
||||||
[Post mortem analysis](post-mortem.md)
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,39 @@ A server will be started at http://localhost:4567. It might show "not connected"
|
|||||||
|
|
||||||
More details about re-frisk are on the [project page](https://github.com/flexsurfer/re-frisk).
|
More details about re-frisk are on the [project page](https://github.com/flexsurfer/re-frisk).
|
||||||
|
|
||||||
|
## Debugging with FlowStorm
|
||||||
|
|
||||||
|
[FlowStorm](http://www.flow-storm.org/) is a free and open-source time-travel
|
||||||
|
debugger for Clojure and ClojureScript. It is capable of recording almost any
|
||||||
|
code execution path in the Status' mobile app.
|
||||||
|
|
||||||
|
FlowStorm is independent of editor/IDE, but a tighter [integration with
|
||||||
|
Emacs](https://github.com/jpmonettas/cider-storm) is available.
|
||||||
|
|
||||||
|
If you are developing with Android, run `make android-ports` first. If you are
|
||||||
|
behind a firewall, allow TCP traffic on port `7722`, then:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make run-flow-storm
|
||||||
|
```
|
||||||
|
|
||||||
|
You will know FlowStorm is correctly running if you see the status bar with
|
||||||
|
green `REPL` and `RUNTIME` indicators.
|
||||||
|
|
||||||
|
With FlowStorm running, you can now add `#trace` on any top-level form, reload
|
||||||
|
the code, or evaluate the traced form in the REPL, and FlowStorm will start
|
||||||
|
recording data. Avoid `#rtrace` (with `r`) because it can cause massive spikes
|
||||||
|
in CPU which will make the app hang and you might need to forcefully kill
|
||||||
|
processes.
|
||||||
|
|
||||||
|
```clojure
|
||||||
|
#trace ; => Add this line to tell FlowStorm to instrument the function.
|
||||||
|
(defn say-hello []
|
||||||
|
(str "Hello world"))
|
||||||
|
```
|
||||||
|
|
||||||
|
There are other ways to debug, but this is a good start.
|
||||||
|
|
||||||
## Enabling debug logs
|
## Enabling debug logs
|
||||||
Calls to `log/debug` will not be printed to the console by default. It can be enabled under "Advanced settings" in the app:
|
Calls to `log/debug` will not be printed to the console by default. It can be enabled under "Advanced settings" in the app:
|
||||||
|
|
||||||
@@ -117,7 +150,7 @@ This one is straightforward, just evaluate a navigation dispatch form from anywh
|
|||||||
|
|
||||||
#### REPL-ing a component
|
#### REPL-ing a component
|
||||||
|
|
||||||
This is also straighforward, but there are some small differences. Just like above, we only have to evaluate a dispatch form, as follows:
|
This is also straightforward, but there are some small differences. Just like above, we only have to evaluate a dispatch form, as follows:
|
||||||
|
|
||||||
```cljs
|
```cljs
|
||||||
;; example debugging a quo component, although it could be any other component e.g. from the `status-im2` ns.
|
;; example debugging a quo component, although it could be any other component e.g. from the `status-im2` ns.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# new icons
|
# Importing assets from Figma into project
|
||||||
|
|
||||||
## Export icons
|
## Icons
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -13,3 +13,11 @@
|
|||||||
```
|
```
|
||||||
2x@2x
|
2x@2x
|
||||||
4. If you want platform specific icon use `.android` or `.ios` suffixes. Example `icon_name@2x.android.png`.:w
|
4. If you want platform specific icon use `.android` or `.ios` suffixes. Example `icon_name@2x.android.png`.:w
|
||||||
|
|
||||||
|
## Images
|
||||||
|
|
||||||
|
Make sure to compress images before using into project.
|
||||||
|
```
|
||||||
|
make shell
|
||||||
|
./scripts/compress_image.sh image_path
|
||||||
|
```
|
||||||