Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afb3b2a0f2 | ||
|
|
2bab1325d8 | ||
|
|
d459f6c318 | ||
|
|
51b3358d91 | ||
|
|
acf7d1a1ad | ||
|
|
f6f80be30a | ||
|
|
fbfab9fd3b | ||
|
|
0c3097abb2 | ||
|
|
fd6b14fccc | ||
|
|
60ce2ea5d7 | ||
|
|
b53b7b331a | ||
|
|
87b87e0d95 | ||
|
|
31c5e708fe | ||
|
|
3447032d59 | ||
|
|
71526e9bd9 | ||
|
|
fec8e00645 | ||
|
|
0311983751 | ||
|
|
da76200433 | ||
|
|
56a1df03f0 | ||
|
|
2ddf4cf924 | ||
|
|
6314038634 | ||
|
|
ef95a59b0a | ||
|
|
cde0abd238 | ||
|
|
c9441b2db7 | ||
|
|
6aae08241d | ||
|
|
4036e21f17 | ||
|
|
ba38f3ec74 | ||
|
|
12e3b74651 | ||
|
|
784cb491ab | ||
|
|
346574a494 | ||
|
|
78864c099f | ||
|
|
fd9b010662 | ||
|
|
092b0ed427 | ||
|
|
7a964fde29 | ||
|
|
c40094f2f9 | ||
|
|
c4036aee09 | ||
|
|
d086b86fd0 | ||
|
|
99c35da72a | ||
|
|
fd89e73e07 | ||
|
|
91e85a28f9 | ||
|
|
d2bec183fd | ||
|
|
79a5dcf61a | ||
|
|
d296da1c34 | ||
|
|
b1dc1d871f | ||
|
|
e4caa8f61a | ||
|
|
21b21bb8ff | ||
|
|
070bdc47ba | ||
|
|
2d259db42d | ||
|
|
97bc388ad6 | ||
|
|
0a18f36623 | ||
|
|
9485fe9ecf | ||
|
|
4b487f81f6 | ||
|
|
cd24bc013f | ||
|
|
aa72ac5747 | ||
|
|
c650fa99d8 | ||
|
|
1b9e139255 | ||
|
|
a7b0764759 | ||
|
|
60cfca1107 | ||
|
|
c69b640810 | ||
|
|
b0cc30d606 | ||
|
|
bd7da02c25 | ||
|
|
ece2605cb9 | ||
|
|
407454859b | ||
|
|
12221ea067 | ||
|
|
2ae875f82a | ||
|
|
8e85d15a86 | ||
|
|
9e126a7399 | ||
|
|
a0254c0fa8 | ||
|
|
72a0df6332 | ||
|
|
08da76c22a | ||
|
|
66482863c1 | ||
|
|
a3f4673177 | ||
|
|
55915a9176 | ||
|
|
891d1e6360 | ||
|
|
1eb956d562 | ||
|
|
cf606b921a | ||
|
|
e6f552e785 | ||
|
|
7f007f204f | ||
|
|
a2497c81e7 | ||
|
|
5fd7e35d99 | ||
|
|
a71ad6e1a8 | ||
|
|
e8e70143d2 | ||
|
|
0769528dcd | ||
|
|
aaf655abe4 | ||
|
|
c59089c7d3 | ||
|
|
37108c8ee3 | ||
|
|
f220e0fed8 | ||
|
|
606c3c05e7 | ||
|
|
6cb48834ae | ||
|
|
7b7a86284b | ||
|
|
cf734032f2 | ||
|
|
36c7d8e4ca | ||
|
|
a8e4363e6b | ||
|
|
bcf20c358c | ||
|
|
d77701537a | ||
|
|
52afbf46ee | ||
|
|
9850dd5160 | ||
|
|
e59a2663f7 | ||
|
|
e1e709220e | ||
|
|
d5c865d092 | ||
|
|
f0302e7cbf | ||
|
|
8f52b9b63c | ||
|
|
82916de15c | ||
|
|
8ed9accbeb | ||
|
|
c1a338c2dd | ||
|
|
3745a8e2fe | ||
|
|
9fb81c3894 | ||
|
|
8e560d313d | ||
|
|
c0e30b459f | ||
|
|
b63117845a | ||
|
|
fd894dc339 | ||
|
|
dc8cbcde56 | ||
|
|
4bf393ec3d | ||
|
|
b1780a7128 | ||
|
|
82f7fbf7e4 | ||
|
|
a6eee856cf | ||
|
|
136a6313cd | ||
|
|
6a8f7a07bf | ||
|
|
c6eb964b7c | ||
|
|
93d4dc8cb5 | ||
|
|
7bbb882ffa | ||
|
|
012b3e396e | ||
|
|
bf92c51ce4 | ||
|
|
eefc2ede81 | ||
|
|
111064f747 | ||
|
|
cfab672f63 | ||
|
|
69221695b3 | ||
|
|
c44e5bbb67 | ||
|
|
826dd32c40 | ||
|
|
04b7357646 | ||
|
|
2c38c74c16 | ||
|
|
eb7a6ce45a | ||
|
|
525577ab17 | ||
|
|
83a7d3fafc | ||
|
|
4318bb6431 | ||
|
|
c466f96326 | ||
|
|
130308fa8a | ||
|
|
a858918b80 | ||
|
|
d5b8cde8e2 | ||
|
|
e5a30eaf1d | ||
|
|
b0fd58e9cb | ||
|
|
eeb8db00f7 | ||
|
|
3499cdc123 | ||
|
|
44b8a4c0f4 | ||
|
|
e45f959c27 | ||
|
|
cd86a1065b | ||
|
|
ffba396e4d | ||
|
|
961692251c | ||
|
|
94fde74b88 | ||
|
|
5402c217df | ||
|
|
4588dafe02 | ||
|
|
edbb06a7c3 | ||
|
|
29a7e4dc1c | ||
|
|
de3c08ba18 | ||
|
|
e5ff46fdd5 | ||
|
|
be79a8e54c | ||
|
|
36d96c6264 | ||
|
|
340213ece5 | ||
|
|
032a8786ff | ||
|
|
15d671275f | ||
|
|
f3533c5f99 | ||
|
|
b18d7b6a2a | ||
|
|
2c23ab4c5d | ||
|
|
646add59b8 | ||
|
|
cd111aeeec | ||
|
|
81b60ce86c | ||
|
|
356dd89147 | ||
|
|
a6102c1133 | ||
|
|
7dfa93f2a2 | ||
|
|
c6271557b1 | ||
|
|
d1f3a33194 | ||
|
|
c6371bf3b3 | ||
|
|
59bc7af00c | ||
|
|
a5737856c0 | ||
|
|
7d0944cfd1 | ||
|
|
099bcf8a17 | ||
|
|
4504f07a2a | ||
|
|
b5d8a641c6 | ||
|
|
11d3bf094a | ||
|
|
32c0f9719c | ||
|
|
b587a8f85e | ||
|
|
53d7d719f0 | ||
|
|
46c023920c | ||
|
|
816f15f976 | ||
|
|
853af40167 | ||
|
|
153204ecb1 | ||
|
|
62162c0f2a | ||
|
|
c7e66fb1aa | ||
|
|
89d42b9ef4 | ||
|
|
d0f76c5412 | ||
|
|
3dc943c89e | ||
|
|
f5589c368c | ||
|
|
469e082de1 | ||
|
|
a0430607d3 | ||
|
|
751b30688d | ||
|
|
b4b39e5088 | ||
|
|
ae26024890 | ||
|
|
8b055cd3c3 | ||
|
|
c9c8263c9e | ||
|
|
4000abfd0a | ||
|
|
995a647a34 | ||
|
|
fdadee6cef | ||
|
|
27f1feeaf6 | ||
|
|
debf3df61c | ||
|
|
ebf2ad206e | ||
|
|
b919df6d6b | ||
|
|
437d58f827 | ||
|
|
d0d9960f8d | ||
|
|
db9d1a1251 | ||
|
|
c16b0860ec | ||
|
|
f448f014f6 | ||
|
|
43da5a60fe | ||
|
|
41496d5ce3 | ||
|
|
4349f2659e | ||
|
|
e125164273 | ||
|
|
179f1d26ae | ||
|
|
bdfb7e296b | ||
|
|
a573ae70e5 | ||
|
|
345ae29ddb | ||
|
|
7359c52af1 | ||
|
|
2c8276f353 | ||
|
|
3ccdee2b9d | ||
|
|
97a106a025 | ||
|
|
7754f0b6a5 | ||
|
|
e16f7161c3 | ||
|
|
9b5cbf8258 | ||
|
|
51bebf1483 | ||
|
|
b758b70733 | ||
|
|
21c9248536 | ||
|
|
9b3fb2ac69 | ||
|
|
dd3ded8656 | ||
|
|
8dc6d8d467 | ||
|
|
adca53f3ec | ||
|
|
9035954f8b | ||
|
|
1034d542db | ||
|
|
ec319974bd | ||
|
|
0469419f9a | ||
|
|
b1daf12486 | ||
|
|
c6f041f0c5 | ||
|
|
9a2987da60 | ||
|
|
3f7b985e1a | ||
|
|
edb3ed4ed2 | ||
|
|
200eb189ea | ||
|
|
ed609674d3 | ||
|
|
40b5c23b54 | ||
|
|
77e593572f | ||
|
|
c4aac1478e | ||
|
|
3a7fecf5ce | ||
|
|
7d6bee9099 | ||
|
|
45c1896717 | ||
|
|
cd30a04626 | ||
|
|
8f5d3df215 | ||
|
|
2ff4f5aba4 | ||
|
|
84ccbbbdf7 | ||
|
|
760b021b8a | ||
|
|
7a7b365a00 | ||
|
|
add5102bbf | ||
|
|
21e4885fc9 | ||
|
|
6591611473 | ||
|
|
b9d5220da6 | ||
|
|
e2767ffce5 | ||
|
|
e1666aa169 | ||
|
|
933e74f1b3 | ||
|
|
f63d73bad8 | ||
|
|
5c52854d11 | ||
|
|
389ce6695a | ||
|
|
84d3b562a4 | ||
|
|
f50dcf53de | ||
|
|
8d0bdf7c7f | ||
|
|
a9333ad52c | ||
|
|
12a99f40d2 | ||
|
|
1f357fd7c6 | ||
|
|
675dd9664a | ||
|
|
e47f839bfb | ||
|
|
0afbe80c36 | ||
|
|
61878376a3 | ||
|
|
fe00971399 | ||
|
|
0b2d0d45ed | ||
|
|
cd35af4e00 | ||
|
|
1f10ad37d1 | ||
|
|
de373d0511 | ||
|
|
fe1cc2dc23 | ||
|
|
eb5711e9bc | ||
|
|
1bbebc9055 | ||
|
|
074a18c18f | ||
|
|
943fc37543 | ||
|
|
d0b3b4e293 | ||
|
|
5108ae7972 | ||
|
|
79be879306 | ||
|
|
8b0ddec8f9 | ||
|
|
0c48f1da88 | ||
|
|
a0acdeca33 | ||
|
|
5c0102c27b | ||
|
|
675515a655 | ||
|
|
70607a13ae | ||
|
|
750ea72043 | ||
|
|
d27f45bad4 | ||
|
|
428236b4bb | ||
|
|
76c5e7ce1e | ||
|
|
2373737684 | ||
|
|
48af425c25 | ||
|
|
23a0ac9522 | ||
|
|
68ffddbb51 | ||
|
|
85348306ce | ||
|
|
e2c18ea151 | ||
|
|
82b640abe1 | ||
|
|
6387bba9f5 | ||
|
|
ca273faadd | ||
|
|
5b72e749e3 | ||
|
|
716e72fb5f | ||
|
|
18606f548b | ||
|
|
c001688db9 | ||
|
|
995db1c332 | ||
|
|
8daf3df6b2 | ||
|
|
a76e4666de | ||
|
|
4f4651baac | ||
|
|
a1ede3528f | ||
|
|
5e9c7da96c | ||
|
|
88dc152e73 | ||
|
|
2095b41eee | ||
|
|
40919b53fb | ||
|
|
af272abcbf | ||
|
|
52647b88a7 | ||
|
|
e2ddf7517f | ||
|
|
5246617c69 | ||
|
|
bcd497a48a | ||
|
|
ee02b90774 | ||
|
|
c036469409 | ||
|
|
0a5abee780 | ||
|
|
1e94a45339 | ||
|
|
2bd4957569 | ||
|
|
08cae71390 | ||
|
|
112c5fde15 | ||
|
|
4de24442eb | ||
|
|
efff6d3997 | ||
|
|
031d44c554 | ||
|
|
1aa0d930fb | ||
|
|
0451b152b3 | ||
|
|
ad29cc7e30 | ||
|
|
aaff386146 | ||
|
|
ff0068c5a7 | ||
|
|
c65af97a52 | ||
|
|
5e812e29bf | ||
|
|
bcaa54017e | ||
|
|
fea2b9a9af | ||
|
|
a818dd4a2a | ||
|
|
e6c416c2c3 | ||
|
|
e21860563a | ||
|
|
eebbfe9346 | ||
|
|
86fcdd47e4 | ||
|
|
86e0da1da8 | ||
|
|
58c86144fc | ||
|
|
bacc3f54ab | ||
|
|
d9f3c49aec | ||
|
|
905a9d8c9a | ||
|
|
5d66abdbd4 | ||
|
|
21410b217f | ||
|
|
5f1f129d59 | ||
|
|
3942528cc1 | ||
|
|
2f0e0af1a1 | ||
|
|
8c493510a4 | ||
|
|
a569687161 | ||
|
|
31e6649cd4 | ||
|
|
e3f471ecf6 | ||
|
|
614f7211d2 | ||
|
|
5cd57254c9 | ||
|
|
2882085d2e | ||
|
|
3409ccab27 | ||
|
|
37d893d5f8 | ||
|
|
428ce7bbdf | ||
|
|
d8fb0e866b | ||
|
|
25a6495d37 | ||
|
|
f940f8dfc8 | ||
|
|
f5f47ae636 | ||
|
|
f76b400a7d | ||
|
|
00adc3448a | ||
|
|
0acca32e78 | ||
|
|
2a6cb978ba | ||
|
|
f031d2b32d | ||
|
|
d1666a42de | ||
|
|
19f3e79ec1 | ||
|
|
02277be602 | ||
|
|
ad9dc9913f | ||
|
|
8ec46a0d78 | ||
|
|
81f081e47d | ||
|
|
d4da8209cd | ||
|
|
1f38423723 | ||
|
|
8298c35db2 | ||
|
|
c96c2b44b4 | ||
|
|
d15860c93e | ||
|
|
f7cf172761 | ||
|
|
8cf87dbbbd | ||
|
|
cc95913dc1 | ||
|
|
d5396f6b18 | ||
|
|
85fcabe249 | ||
|
|
11cfb894a4 | ||
|
|
82cfc642c0 | ||
|
|
d6d4b28e1e | ||
|
|
e5477cd449 | ||
|
|
18e6ceaab1 | ||
|
|
7b714671eb | ||
|
|
deb88cbc71 | ||
|
|
5c29ea38ea | ||
|
|
bbaf55fddd | ||
|
|
969f8f4d8a | ||
|
|
9759add62a | ||
|
|
0cee717602 | ||
|
|
9a61ef3fd7 | ||
|
|
413960682a | ||
|
|
edabec6a12 | ||
|
|
11d9a16e7d | ||
|
|
6d67e93fa3 | ||
|
|
db68c3a1fa | ||
|
|
f2b29b8349 | ||
|
|
398a2e2e40 | ||
|
|
e966f8a54b | ||
|
|
88715131dd | ||
|
|
c43dd2ec20 | ||
|
|
6ee9f6a409 | ||
|
|
944098ad84 | ||
|
|
c50130fd4b | ||
|
|
e1dfaa4a6b | ||
|
|
b292e7ea5a | ||
|
|
d727338e9a | ||
|
|
170ef0a429 | ||
|
|
7d9a2f074e | ||
|
|
ebf951d110 | ||
|
|
40b1a9b8ae | ||
|
|
e8f7ae8f27 | ||
|
|
baa96ed22e | ||
|
|
fe07d52fae | ||
|
|
625866e50b | ||
|
|
1e4c1a5598 | ||
|
|
fe0a67dc65 | ||
|
|
56d29866da | ||
|
|
bc6ed19579 | ||
|
|
306b81ed71 | ||
|
|
382cb6d918 | ||
|
|
0f2bd9c6f1 | ||
|
|
0fce3e60f5 | ||
|
|
4d5857dd01 | ||
|
|
b0457f594b | ||
|
|
dd4c5f778e | ||
|
|
d3c5b9e948 | ||
|
|
06f0ee877b | ||
|
|
5ff854c7c7 | ||
|
|
dea7227c29 | ||
|
|
ab01093a6e | ||
|
|
a35d5f9d15 | ||
|
|
caaba958e3 | ||
|
|
723d99cb40 | ||
|
|
927d67f3ca | ||
|
|
089f42e0e9 | ||
|
|
440e6d2047 | ||
|
|
af9461da74 | ||
|
|
ec54de8f63 | ||
|
|
0d403739f9 | ||
|
|
031626aefc | ||
|
|
b280befe2d | ||
|
|
35845ae3d3 | ||
|
|
d3fefb6238 | ||
|
|
6598ef3466 | ||
|
|
45b9fd4b91 | ||
|
|
9ba0960d71 | ||
|
|
f917782fc1 | ||
|
|
dc86457035 | ||
|
|
a1204d0c80 | ||
|
|
e7887d4fca | ||
|
|
8bab25075b | ||
|
|
706d6a44a4 | ||
|
|
dd5864ff25 | ||
|
|
a1d091ac19 | ||
|
|
e312e3137d | ||
|
|
1def0b7f9e | ||
|
|
7bfd671820 | ||
|
|
afb6109d9f | ||
|
|
a9601ddb86 | ||
|
|
0652d18653 | ||
|
|
f9d697dd2e | ||
|
|
296e28ef1c | ||
|
|
9502229c09 | ||
|
|
5f719ac95b | ||
|
|
0e12360ed8 | ||
|
|
63290fd019 | ||
|
|
ffb5fac6f7 | ||
|
|
c20d6b5782 | ||
|
|
2b52ba2389 | ||
|
|
bc823f9e96 | ||
|
|
3568b20522 | ||
|
|
1900e3038b | ||
|
|
aaf07911c4 | ||
|
|
8448570922 | ||
|
|
e4e9556303 | ||
|
|
3207300e02 | ||
|
|
f0d739291e | ||
|
|
f26c3090c6 | ||
|
|
505b290c6e | ||
|
|
508060f18d | ||
|
|
a3cb837266 | ||
|
|
ae3df0c730 | ||
|
|
d6a999043e | ||
|
|
58d994706f | ||
|
|
213c288cc1 | ||
|
|
114e704b78 | ||
|
|
4cd6ada534 | ||
|
|
1bdbf3e403 | ||
|
|
ef13b4d210 | ||
|
|
8926a7ad4e | ||
|
|
65d76ba9c8 | ||
|
|
399e7d399b | ||
|
|
69a50ff9ab | ||
|
|
152407b903 | ||
|
|
e30ca97184 | ||
|
|
011de1b8ae | ||
|
|
6d43f34cf8 | ||
|
|
e5b7fb13a1 | ||
|
|
b67ecacd8b | ||
|
|
58d358125c | ||
|
|
f5baee5039 | ||
|
|
2b0c498613 | ||
|
|
177b905291 | ||
|
|
4217f558a8 | ||
|
|
a71468f425 | ||
|
|
dd5c30b7a0 | ||
|
|
929925af39 | ||
|
|
880321ccc4 | ||
|
|
1bff966679 | ||
|
|
f770045f89 | ||
|
|
72df44da6c | ||
|
|
273b0064e2 | ||
|
|
9dcf3cde93 | ||
|
|
b6623ae1c3 | ||
|
|
2618201bb3 | ||
|
|
ba3e229d6f | ||
|
|
8cb0ad9285 | ||
|
|
6c7d689a7c | ||
|
|
6a71a1e798 | ||
|
|
3469aca1d8 | ||
|
|
427209c960 | ||
|
|
b71617e490 | ||
|
|
ba8c943046 | ||
|
|
ef042bdc0b | ||
|
|
8628cbbf76 | ||
|
|
0b8509949a | ||
|
|
a7660754fb | ||
|
|
ec528f98cc | ||
|
|
dd0031f68e | ||
|
|
be37b1683e | ||
|
|
710e55002b | ||
|
|
19eda04c90 | ||
|
|
cf9f160de9 | ||
|
|
3dfa7beacd | ||
|
|
4dacc95de6 | ||
|
|
448782b3d3 | ||
|
|
693c41850c | ||
|
|
1bd62f1199 | ||
|
|
2ed25a9f51 | ||
|
|
3b6f3b77cc | ||
|
|
67b646dcca | ||
|
|
d59c9205ea | ||
|
|
c2212af3ff | ||
|
|
da9e6686c6 | ||
|
|
f7ab1ff20c | ||
|
|
956bb813d4 | ||
|
|
807dabf5b2 | ||
|
|
3b652adaf3 | ||
|
|
c22ffb1032 | ||
|
|
2494c61f85 | ||
|
|
073371c4ed | ||
|
|
db848a1f19 | ||
|
|
85a01f5404 | ||
|
|
adaf77ba1b | ||
|
|
7f839f952d | ||
|
|
b29912f7f7 | ||
|
|
fab241f6ac | ||
|
|
594c83013c | ||
|
|
2e94e0e765 | ||
|
|
05ed28b9a2 | ||
|
|
f4530d4d03 | ||
|
|
ed4e227144 | ||
|
|
93ce02b547 | ||
|
|
5bb849f9c1 | ||
|
|
310a1ad5f1 | ||
|
|
a90d8a1439 | ||
|
|
acbd240070 | ||
|
|
c77b350d77 | ||
|
|
2cf0a60977 | ||
|
|
711389365c | ||
|
|
ef5031a4aa | ||
|
|
ab7e9795ce | ||
|
|
7eca3c42d7 | ||
|
|
e307b4faa6 | ||
|
|
4129ca1597 | ||
|
|
31ba933917 | ||
|
|
eea5b4eb0f | ||
|
|
d1016669bb | ||
|
|
4ca7c0b989 | ||
|
|
f6e480344d | ||
|
|
5eed7bd560 | ||
|
|
87f86d3b7b | ||
|
|
8890f25f96 | ||
|
|
651065f0a6 | ||
|
|
b27a53bdee | ||
|
|
2116847fc6 | ||
|
|
965438bc87 | ||
|
|
90ad5f2f77 | ||
|
|
f0827ff624 | ||
|
|
be0ad943ea | ||
|
|
937efc9f4f | ||
|
|
116b4d8812 | ||
|
|
460685212a | ||
|
|
46655dbd48 | ||
|
|
f970834536 | ||
|
|
a4836120e6 | ||
|
|
a364ce1906 | ||
|
|
0c55f1208b | ||
|
|
da6860d693 | ||
|
|
94235aa703 | ||
|
|
5da9efebe3 | ||
|
|
3de7c37d90 | ||
|
|
7c4c520712 | ||
|
|
a8ae933604 | ||
|
|
2abd430e02 | ||
|
|
a99e7f660f | ||
|
|
8268346dfa | ||
|
|
f5df7805ee | ||
|
|
5b08242102 | ||
|
|
f8983ab147 | ||
|
|
067c69cca4 | ||
|
|
77e6f83e2e | ||
|
|
4e0ec35ea5 | ||
|
|
66a4ab5aef | ||
|
|
9d7dcc6ae7 | ||
|
|
46f8d9fdbf | ||
|
|
b22acc3da2 | ||
|
|
e5f9de828d | ||
|
|
3f9817b977 | ||
|
|
503028cb4e | ||
|
|
c7cc9e27a9 | ||
|
|
313181ddb3 | ||
|
|
a07c65d173 | ||
|
|
1431cf80e1 | ||
|
|
1aba1f8000 | ||
|
|
76b1e2a007 | ||
|
|
25d5672355 | ||
|
|
f572f5ef5e | ||
|
|
51178ab1b2 | ||
|
|
a9124d0fd2 | ||
|
|
ee4f6ead12 | ||
|
|
5fecdd7830 | ||
|
|
49b78c0cea | ||
|
|
aee782d468 | ||
|
|
ff02219080 | ||
|
|
9c7c796e02 | ||
|
|
843c015d56 | ||
|
|
174329d098 | ||
|
|
0491038b09 | ||
|
|
ac6a4af207 | ||
|
|
106e9112e0 | ||
|
|
c625e95d5e | ||
|
|
580ecfedc1 | ||
|
|
4cc99c6bb8 | ||
|
|
6a764869a0 | ||
|
|
aff335b305 | ||
|
|
93ed7c15bd | ||
|
|
c57974d9ff | ||
|
|
a7f9a98f48 | ||
|
|
c703e45105 | ||
|
|
8376fedb4b | ||
|
|
d0d8815d4a | ||
|
|
fa9fceb75d | ||
|
|
293fd5fae1 | ||
|
|
9b6b337453 | ||
|
|
37cf8ffe72 | ||
|
|
4f9e38930e | ||
|
|
99e99b0e81 | ||
|
|
83630b28bb | ||
|
|
c7009ff6f7 | ||
|
|
c2f513f67e | ||
|
|
37284051dc | ||
|
|
c1315eca90 | ||
|
|
9f9370f72d | ||
|
|
61da0db9c9 | ||
|
|
325a860916 | ||
|
|
a383cfa39a | ||
|
|
d5e1d3fe65 | ||
|
|
f0d79f3af0 | ||
|
|
09ac3e6a9e | ||
|
|
f3c85c1e7a | ||
|
|
505171cf87 | ||
|
|
f9c3747768 | ||
|
|
9648f741b4 | ||
|
|
e493a2b79c | ||
|
|
8698e13fa1 | ||
|
|
452e54fc19 | ||
|
|
4f094c174d | ||
|
|
7c04bb9076 | ||
|
|
8d3fa3c3d7 | ||
|
|
32393c9091 | ||
|
|
35f152c479 | ||
|
|
37b36d38c7 | ||
|
|
1a77891273 | ||
|
|
63893ff575 | ||
|
|
226aacdeac | ||
|
|
a37dbb57d6 | ||
|
|
4fdfa3e008 | ||
|
|
8d510be72e | ||
|
|
72d592a5a6 | ||
|
|
1075dfcb8b | ||
|
|
49d4b15761 | ||
|
|
a7f9998d6c | ||
|
|
b2be539374 | ||
|
|
3685f6a500 | ||
|
|
9a51a46869 | ||
|
|
0867b972c3 | ||
|
|
d946d473c6 | ||
|
|
7e8a68ec67 | ||
|
|
39b0a6bb44 | ||
|
|
00ad3e9e1f | ||
|
|
781360a1cf | ||
|
|
c76567c20f | ||
|
|
6d38386c11 | ||
|
|
522d03b846 | ||
|
|
b73fcba395 | ||
|
|
741e9e834b | ||
|
|
ad006b018c | ||
|
|
56c4ffc39f | ||
|
|
d31ed933a0 | ||
|
|
6469ff912a | ||
|
|
ff961bbfe8 | ||
|
|
eba6b63258 | ||
|
|
9bf4da1edd | ||
|
|
c2f8f012a8 | ||
|
|
6c4097f521 | ||
|
|
35671226e4 | ||
|
|
08b9cfcf52 | ||
|
|
0087a66df8 | ||
|
|
3042a4b696 | ||
|
|
cb66886aab | ||
|
|
af2b053fa9 | ||
|
|
fa4521d2e7 | ||
|
|
b33c086966 | ||
|
|
4704cef3da | ||
|
|
329182fdbe | ||
|
|
5c3133adb6 | ||
|
|
f28f479256 | ||
|
|
daf7791d86 | ||
|
|
73ca49aad5 | ||
|
|
7cf42b292b | ||
|
|
2687d7ab9a | ||
|
|
abac5247bf | ||
|
|
939ce8bef5 | ||
|
|
eb1f1bf587 | ||
|
|
46d430b69c | ||
|
|
e4d175ef93 | ||
|
|
25c5106284 | ||
|
|
3fd36c6904 | ||
|
|
fe6f75e1b7 | ||
|
|
6410de803e | ||
|
|
9d2e2e26ad | ||
|
|
6c935057c5 | ||
|
|
d68f7679df | ||
|
|
346ff25843 | ||
|
|
2e7875cfef | ||
|
|
d6f2792622 | ||
|
|
2af23bcb2e | ||
|
|
e0b01d2fed | ||
|
|
9889e80bbd | ||
|
|
e0e497d3d0 | ||
|
|
abc63af4a8 | ||
|
|
b5b16f1278 | ||
|
|
767bd46bff | ||
|
|
8e288aea56 | ||
|
|
4f4f6cf29e | ||
|
|
d8235d9e17 | ||
|
|
5d02472f89 | ||
|
|
f306b084da | ||
|
|
6099262c98 | ||
|
|
37ccc6f825 | ||
|
|
33e58dbca9 | ||
|
|
d8f1944b27 | ||
|
|
6342163152 | ||
|
|
8948dcb736 | ||
|
|
52823d7f59 | ||
|
|
eff60c69d5 | ||
|
|
b30149d9f2 | ||
|
|
2ca39daa59 | ||
|
|
35c2c226df | ||
|
|
5b801b95fa | ||
|
|
b5a6f1b78f | ||
|
|
2571e44de0 | ||
|
|
7f22912f1e | ||
|
|
aac7a97e13 | ||
|
|
eaf463395a | ||
|
|
8342972059 | ||
|
|
98a8359db3 | ||
|
|
9fe7ddaf0b | ||
|
|
5643c4d537 | ||
|
|
09822e142b | ||
|
|
86d7b79175 | ||
|
|
4e5ba2c533 | ||
|
|
b197d54e47 | ||
|
|
1b9bd8b017 | ||
|
|
879f441b7d | ||
|
|
8e882dda21 | ||
|
|
905aa26705 | ||
|
|
3241d3273e | ||
|
|
efc4f6c750 | ||
|
|
c33e2be76b | ||
|
|
8748280279 | ||
|
|
1b4dcb7103 | ||
|
|
5259de7423 | ||
|
|
e167773258 | ||
|
|
57c0e835e2 | ||
|
|
7055c46a60 | ||
|
|
2f1e5c819e | ||
|
|
2df5eccff0 | ||
|
|
a70b07e83d | ||
|
|
8a97331779 | ||
|
|
fdf91cff80 | ||
|
|
f04042c643 | ||
|
|
fd5be21207 | ||
|
|
c62abf10c1 | ||
|
|
458ef05740 | ||
|
|
609a7120b6 | ||
|
|
b62ff59f16 | ||
|
|
c381fc2e2f | ||
|
|
d2493c0725 | ||
|
|
b9f896f4e3 | ||
|
|
7e069ed342 | ||
|
|
b2cdc59670 | ||
|
|
a6e08f0d8e | ||
|
|
0e6d191e58 | ||
|
|
852838f777 | ||
|
|
32efcb06a0 | ||
|
|
179e389e37 | ||
|
|
a4716cc494 | ||
|
|
92aaa194a8 | ||
|
|
64840f74a7 | ||
|
|
bd281e6c9f | ||
|
|
e8350414f3 | ||
|
|
ae900a4cd9 | ||
|
|
46cd4aa893 | ||
|
|
f0d9f2ac54 | ||
|
|
f47c816ce0 | ||
|
|
88889930ae | ||
|
|
e2717ade98 | ||
|
|
f9095a492e | ||
|
|
1f7e40cede | ||
|
|
7bfaa9255c | ||
|
|
166bdbf798 | ||
|
|
ecc41bebe0 | ||
|
|
4cb058f1ca | ||
|
|
a55dd51064 | ||
|
|
d260ea9e03 | ||
|
|
36f90fc567 | ||
|
|
22c6635d93 | ||
|
|
ae2d9b996c | ||
|
|
7c9bb5b21c | ||
|
|
80ac4a8dc2 | ||
|
|
e30962ca75 | ||
|
|
2bcc832cca | ||
|
|
0b8c673094 | ||
|
|
dbabcc223e | ||
|
|
9f7ad853f0 | ||
|
|
28d3cf03d9 | ||
|
|
7b46c445a7 | ||
|
|
cf911aa246 | ||
|
|
a91bdfb047 | ||
|
|
61105e15f6 | ||
|
|
13c81a34b3 | ||
|
|
fbb606b859 | ||
|
|
30753f8766 | ||
|
|
6b4f2901ae | ||
|
|
40e2839793 | ||
|
|
d14f232abf | ||
|
|
8310749696 | ||
|
|
fac4f0c871 | ||
|
|
ae3936eff2 | ||
|
|
920000c3e8 | ||
|
|
b3a3a753d2 | ||
|
|
e5ada29ed8 | ||
|
|
35381a55c0 | ||
|
|
473c5135b2 | ||
|
|
4384d979e7 | ||
|
|
b1ea04900e | ||
|
|
627e1d0e14 | ||
|
|
f7d7c282cd | ||
|
|
07e36096cc | ||
|
|
6311077cec | ||
|
|
6d104d60e2 | ||
|
|
72591f576d | ||
|
|
6eb840c8b2 | ||
|
|
f1d070ed82 | ||
|
|
9e466976dc | ||
|
|
ee61244770 | ||
|
|
34c6292af4 | ||
|
|
0d82dab5c5 | ||
|
|
206ce8849f | ||
|
|
7cef533a8a | ||
|
|
e7807202c9 | ||
|
|
d17f7c67b9 | ||
|
|
82aca6bd76 | ||
|
|
c7b3efe6ad | ||
|
|
d8713fe3c7 | ||
|
|
6f86f73ac6 | ||
|
|
b7948b9869 | ||
|
|
d380186051 | ||
|
|
a91fa39547 | ||
|
|
3b780f4ff2 | ||
|
|
d8eb33e330 | ||
|
|
0b5be54fea | ||
|
|
f99b2aa401 | ||
|
|
27ad8f07c3 | ||
|
|
7402718e68 | ||
|
|
3ac8f0c5fd | ||
|
|
cf4bef8268 | ||
|
|
fe5b5ab4bc | ||
|
|
050f20cfae | ||
|
|
10dcee3e05 | ||
|
|
ce20eddb99 | ||
|
|
eae66c967e | ||
|
|
973bdb61b3 | ||
|
|
663f5f41a0 | ||
|
|
ba3ca2c818 | ||
|
|
95aa500119 | ||
|
|
2cf4be4b34 | ||
|
|
5232432ec5 | ||
|
|
dca26b3350 | ||
|
|
466d279e2a | ||
|
|
250b4d4646 | ||
|
|
320d81432f | ||
|
|
70526f9429 | ||
|
|
9691626992 | ||
|
|
e52f6b8753 | ||
|
|
04cd74e57d | ||
|
|
b826a34f27 | ||
|
|
81cfc83ed3 | ||
|
|
ff3f171646 | ||
|
|
3ae85cacd5 | ||
|
|
36f9436e12 | ||
|
|
8c42e717c1 | ||
|
|
cf0cd283a6 | ||
|
|
316c6038d7 | ||
|
|
f5034a4dfa | ||
|
|
cf58a84838 | ||
|
|
dcd2655860 | ||
|
|
9e0b8e76cf | ||
|
|
40a26f4e10 | ||
|
|
094cf61915 | ||
|
|
c238b6bca5 | ||
|
|
908b5f723c | ||
|
|
085ae22be1 | ||
|
|
0368895edf | ||
|
|
905699b686 | ||
|
|
b198084b78 | ||
|
|
2e7c377343 | ||
|
|
9f36bd44b2 | ||
|
|
4e9b1001df | ||
|
|
e602f0493d | ||
|
|
85991d2272 | ||
|
|
f3ed1e370a | ||
|
|
bdbc48764e | ||
|
|
c74a5a5215 | ||
|
|
c4cac2cef7 | ||
|
|
966f6de31a | ||
|
|
93ed3eb7ff | ||
|
|
bc12c90d2e | ||
|
|
00ec94b73c | ||
|
|
5458c7b2db | ||
|
|
92fae99cf7 | ||
|
|
9cd1e08aaa | ||
|
|
6cf3a6a98e | ||
|
|
c866082cde | ||
|
|
22ca98b0f8 | ||
|
|
b5f7a62b14 | ||
|
|
abe6e97728 | ||
|
|
6940adf1cb | ||
|
|
e55cb6b47b | ||
|
|
ccd034e7a6 | ||
|
|
f2da0cbbdb | ||
|
|
1c6da59611 | ||
|
|
d9bac4a493 | ||
|
|
ebf3016644 | ||
|
|
345ae359aa | ||
|
|
b8298dce44 | ||
|
|
1969f9dfe0 | ||
|
|
8eed842c62 | ||
|
|
b32367a9b2 | ||
|
|
7fb243f9f1 | ||
|
|
6b08194a19 | ||
|
|
55278828e6 | ||
|
|
99755d08e9 | ||
|
|
e95025333f | ||
|
|
ff790d4152 | ||
|
|
6454df4734 | ||
|
|
25dbf1fd61 | ||
|
|
0448edb509 | ||
|
|
44e3076022 | ||
|
|
1009b71908 | ||
|
|
80faac0ca7 | ||
|
|
b43f9e0dfd | ||
|
|
20b5ad9ebb | ||
|
|
e2071dc968 | ||
|
|
1b1f3c4c9f | ||
|
|
889d4c16a4 | ||
|
|
ae0504cbfa | ||
|
|
a95520067f | ||
|
|
56aec16793 | ||
|
|
0594548617 | ||
|
|
f7ec945c56 | ||
|
|
13e46c2fb0 | ||
|
|
301f1c8cf2 | ||
|
|
1e5288a016 | ||
|
|
59e226bab2 | ||
|
|
32cb09c9c6 | ||
|
|
16fecc2ac6 | ||
|
|
0675d0d8d7 | ||
|
|
f9df0f367f | ||
|
|
5aa33fc9c0 | ||
|
|
754b826629 | ||
|
|
72daf93a75 | ||
|
|
89ad4f59d0 | ||
|
|
4304a5dd97 | ||
|
|
fea916590a | ||
|
|
1a98219690 | ||
|
|
3181a7dc20 | ||
|
|
fed52fe309 | ||
|
|
eac77f84c2 | ||
|
|
080584dc2e | ||
|
|
be25ecd4ea | ||
|
|
2be70cca9a | ||
|
|
b2a79b3e89 | ||
|
|
fdf8d11913 | ||
|
|
399be0686c | ||
|
|
0cb554f5c6 | ||
|
|
2901f4c7cf | ||
|
|
0ab227eef8 | ||
|
|
17c408bd06 | ||
|
|
716c968a23 | ||
|
|
8adc32a5c9 | ||
|
|
2934de9b8c | ||
|
|
001789f761 | ||
|
|
8d8057036a | ||
|
|
151ef4a952 | ||
|
|
9b0bf60e60 | ||
|
|
6bef1182c6 | ||
|
|
f17b401bbc | ||
|
|
25721688db | ||
|
|
485dd99e52 | ||
|
|
c644ab3501 | ||
|
|
ac4f65be97 | ||
|
|
b737051e3c | ||
|
|
1e7061acc2 | ||
|
|
cc0076048d | ||
|
|
e52f9fa43f | ||
|
|
d5fc93aa55 | ||
|
|
c2277cbbe5 | ||
|
|
d22a87b77c | ||
|
|
4e44bed8d6 | ||
|
|
62fe9f3d6a | ||
|
|
f128c0ceed | ||
|
|
7d19de4e69 | ||
|
|
feb8dfce07 | ||
|
|
9c37eac6f4 | ||
|
|
793579885a | ||
|
|
2d8b0107e3 | ||
|
|
7bb7b48db7 | ||
|
|
eeff44eea7 | ||
|
|
f9fb4d6974 | ||
|
|
68722340c9 | ||
|
|
f904d7b543 | ||
|
|
7a80eca73c | ||
|
|
2161192e76 | ||
|
|
0319854e83 | ||
|
|
dd67533ecd | ||
|
|
2371dcbc60 | ||
|
|
72726e2b0b | ||
|
|
95997530c6 | ||
|
|
7c0488372d | ||
|
|
3419dc3cbe | ||
|
|
d5015e4d25 | ||
|
|
3c42360b30 | ||
|
|
d0ce6f11d8 | ||
|
|
1c308c2d01 | ||
|
|
933c0f8f8c | ||
|
|
8b99e992ad | ||
|
|
e96fc90199 | ||
|
|
8652f899e0 | ||
|
|
56364ea70c | ||
|
|
788d0d5cc5 | ||
|
|
517a1be27c | ||
|
|
8bb99743a7 | ||
|
|
0be5f5d8d0 | ||
|
|
86700f2b5c | ||
|
|
2cc8c9822f | ||
|
|
a968149ecc | ||
|
|
10a814764d | ||
|
|
4254dbcb26 | ||
|
|
6c5daaa1c8 | ||
|
|
ceb09dc0e7 | ||
|
|
5b5096a6d7 | ||
|
|
729a35d830 | ||
|
|
fb9ab82d7b | ||
|
|
f8af5a51be | ||
|
|
f057d527b5 | ||
|
|
3b17a46bf8 | ||
|
|
afb4e9fdb9 | ||
|
|
e8fca7ce68 | ||
|
|
6fcb426a71 | ||
|
|
4f135292a5 | ||
|
|
0f07f3eecb | ||
|
|
4e5848ee6f | ||
|
|
923beb5f26 | ||
|
|
292df1439c | ||
|
|
cd4b2110c6 | ||
|
|
9ce786c9fb | ||
|
|
618b1f81e2 | ||
|
|
b7bc7c4e5d | ||
|
|
fa4968f22c | ||
|
|
0adc047f05 | ||
|
|
5c05174604 | ||
|
|
df9062475c | ||
|
|
f5675b640d | ||
|
|
cd04acde3a | ||
|
|
15cbec07e9 | ||
|
|
67ce4b03aa | ||
|
|
84286782f6 | ||
|
|
ba0ae149ad | ||
|
|
e366587e8f | ||
|
|
eef6815616 | ||
|
|
08cbc76111 | ||
|
|
2334de58d2 | ||
|
|
68a07740d8 | ||
|
|
bda7386747 | ||
|
|
5101d4d6a5 | ||
|
|
79cf87be86 | ||
|
|
920bc7d93e | ||
|
|
e738cd0811 | ||
|
|
7d7462356e | ||
|
|
112132aa94 | ||
|
|
bdb4d7fe35 | ||
|
|
7007b790d5 | ||
|
|
f2fb1739c0 | ||
|
|
3800f3f7da | ||
|
|
4dda20999b | ||
|
|
d134136518 | ||
|
|
497af38a7f | ||
|
|
fad1bd25c0 | ||
|
|
b95056f3ce | ||
|
|
3fe1d6e3eb | ||
|
|
16742baecd | ||
|
|
96adbd6185 | ||
|
|
2110446d29 | ||
|
|
2e7f4212c1 | ||
|
|
1a6851efa0 | ||
|
|
7f1e25a515 | ||
|
|
ca75a7a057 | ||
|
|
24114f7fe8 | ||
|
|
7f4476b253 | ||
|
|
aa3781e5b5 | ||
|
|
6afc313a31 | ||
|
|
b008d215e6 | ||
|
|
9619a0a204 | ||
|
|
dfb8420353 | ||
|
|
804932e654 | ||
|
|
49744d89de | ||
|
|
ac74cf01c5 | ||
|
|
e290881bf8 | ||
|
|
b5fda1234e | ||
|
|
d916751160 | ||
|
|
c943f5f283 | ||
|
|
056dde0190 | ||
|
|
1733d4dc83 | ||
|
|
4541f6d59d | ||
|
|
5362ceb31f | ||
|
|
ddcb1fa54a | ||
|
|
9abf9d3891 | ||
|
|
51198f5b69 | ||
|
|
fd874c14df | ||
|
|
754673faba | ||
|
|
b49160c53b | ||
|
|
c32057d3fd | ||
|
|
3443afc51c | ||
|
|
41e04b9555 | ||
|
|
27ed124e01 | ||
|
|
00ec6efcec | ||
|
|
84e50ffe4e | ||
|
|
98229c46cf | ||
|
|
28ebedbd16 | ||
|
|
c1583249f6 | ||
|
|
55c606e966 | ||
|
|
de7ce0493b | ||
|
|
dbb4b52a70 | ||
|
|
2862f4c772 | ||
|
|
df3dec8863 | ||
|
|
a0bae67a53 | ||
|
|
ea346ffe65 | ||
|
|
1714970e4e | ||
|
|
095e8e0fc2 | ||
|
|
ceaf44b184 | ||
|
|
311fe270f3 | ||
|
|
d26a9e2529 | ||
|
|
6274a1a3af | ||
|
|
333372451e | ||
|
|
98280dc45b | ||
|
|
1815ab49aa | ||
|
|
44c7b7af28 | ||
|
|
cbf125e4b5 | ||
|
|
9ce6fea6d5 | ||
|
|
e986f9e3db | ||
|
|
c8c524b63e | ||
|
|
10237be747 | ||
|
|
ce1ce1c9a6 | ||
|
|
29508c015a | ||
|
|
886ccc765e | ||
|
|
b573fa8a10 | ||
|
|
a1dc0462c7 | ||
|
|
26f1afc560 | ||
|
|
15ddf6d060 | ||
|
|
e59e17e6e7 | ||
|
|
24ef4cbd97 | ||
|
|
376dab37e9 | ||
|
|
aeb0123998 | ||
|
|
2038b99955 | ||
|
|
4941cc9a82 | ||
|
|
880424c07b | ||
|
|
ee2dec5b27 | ||
|
|
b25c1413f4 | ||
|
|
3bc9a63c36 | ||
|
|
db202f03bf | ||
|
|
379384211f | ||
|
|
c40529faee | ||
|
|
b7c065c1b7 | ||
|
|
a76a3acd9f | ||
|
|
64a788c036 | ||
|
|
0603f84ab8 | ||
|
|
197ce2eb60 | ||
|
|
dae891979f | ||
|
|
fd8558421d | ||
|
|
723975d2c9 | ||
|
|
d0256d637a | ||
|
|
dbe3e0a3f9 | ||
|
|
496a1fa288 | ||
|
|
08ff2edb0b | ||
|
|
e743cbacd0 | ||
|
|
2c9ed72ace | ||
|
|
f2c96dcd3b | ||
|
|
b39d26ed4c | ||
|
|
af259dacbf | ||
|
|
254fd229b5 | ||
|
|
f1272f4d49 | ||
|
|
39cc56dd10 | ||
|
|
46ebda8eeb | ||
|
|
0620f4b0df | ||
|
|
d50f6ca21e | ||
|
|
a8fa78dad3 | ||
|
|
22d0fed3fc | ||
|
|
284c26055f | ||
|
|
12aa20f467 | ||
|
|
d3c9175514 | ||
|
|
12e67ad6d2 | ||
|
|
a1027cdfcc | ||
|
|
4021e957ea | ||
|
|
9d7691312b | ||
|
|
f69ae44d50 | ||
|
|
5f7c795567 | ||
|
|
e3815db497 | ||
|
|
5720151484 | ||
|
|
f659cbf242 | ||
|
|
91bcd0c861 | ||
|
|
60d5815bde | ||
|
|
9a114128bc | ||
|
|
3181280bf5 | ||
|
|
6d937511ca | ||
|
|
d28ae1212d | ||
|
|
2f65cedd2d | ||
|
|
335d2434f0 | ||
|
|
e26f5452b9 | ||
|
|
288c28df75 | ||
|
|
e1074c7c01 | ||
|
|
ddbf7bc066 | ||
|
|
34755500d5 | ||
|
|
d0216674da | ||
|
|
54ee386fb8 | ||
|
|
789271f179 | ||
|
|
c68f734b98 | ||
|
|
6344c765d3 | ||
|
|
c9fc00bfd8 | ||
|
|
12e269d496 | ||
|
|
9500cd4543 | ||
|
|
c3d14f1664 | ||
|
|
0ff6579fa3 | ||
|
|
3481ab3c47 | ||
|
|
449cfd05b5 | ||
|
|
3ac5a0ee1a | ||
|
|
883af7b57a | ||
|
|
0bec573eb3 | ||
|
|
d494f3b267 | ||
|
|
7731839693 | ||
|
|
8a1704a064 | ||
|
|
1cd58ceda8 | ||
|
|
e158502819 | ||
|
|
d73cdbe26d | ||
|
|
80c6a516d8 | ||
|
|
6a42969e31 | ||
|
|
84c31fcee0 | ||
|
|
604362958b | ||
|
|
3e20616471 | ||
|
|
2fcf0964f8 | ||
|
|
559a79b3d5 | ||
|
|
2f9593a7d2 | ||
|
|
78a3f5aff5 | ||
|
|
707a9b7095 | ||
|
|
64b8b9f170 | ||
|
|
73a8992db7 | ||
|
|
b8c3518c96 | ||
|
|
dc303fecc9 | ||
|
|
5607540ac1 | ||
|
|
6746b7d932 | ||
|
|
d133f57678 | ||
|
|
e0fa8eb81b | ||
|
|
a20c9e67b9 | ||
|
|
ed4d0a1ed9 | ||
|
|
45f1d58832 | ||
|
|
df25f09159 | ||
|
|
381b2462a4 | ||
|
|
a96b35996f | ||
|
|
54b3507d1a | ||
|
|
0758ad6136 | ||
|
|
461e67a46b | ||
|
|
5d11fb0549 | ||
|
|
abfe0869f3 | ||
|
|
86b89ebb5c | ||
|
|
a482369538 | ||
|
|
ee5d53eba9 | ||
|
|
6cf242a036 | ||
|
|
157d054e33 | ||
|
|
8f15d69567 | ||
|
|
521a4c6b28 | ||
|
|
607facab2a | ||
|
|
c8b5e39dc1 | ||
|
|
a06413b6f7 | ||
|
|
741280a8f8 | ||
|
|
c34df26e19 | ||
|
|
095467ff51 | ||
|
|
41bba3b2c8 | ||
|
|
b8dc69fc85 | ||
|
|
488d59a448 | ||
|
|
a7c8f27b51 | ||
|
|
8fe279b9b0 | ||
|
|
2d1aad6654 | ||
|
|
b011d27c84 | ||
|
|
aad907ce77 | ||
|
|
12a8e2c276 | ||
|
|
f334f59223 | ||
|
|
1bf68094e3 | ||
|
|
8b81c9a63b | ||
|
|
41bde61212 | ||
|
|
2140a9867b | ||
|
|
cd8e953c46 | ||
|
|
fedb7131a9 | ||
|
|
68fcc967a7 | ||
|
|
e6005dd7c8 | ||
|
|
954e677f0c | ||
|
|
3ae5f87be3 | ||
|
|
c6b1217437 | ||
|
|
eb6d14fd27 | ||
|
|
ebb0697c53 | ||
|
|
640dfa7da6 | ||
|
|
631339b314 | ||
|
|
4db9cd38e1 | ||
|
|
4c360f9ea1 | ||
|
|
aa9b7cc848 | ||
|
|
cdad34ed3d | ||
|
|
8ee1e3d643 | ||
|
|
44b77eea89 | ||
|
|
42fb40476c | ||
|
|
3116b04a34 | ||
|
|
d35deefcb5 | ||
|
|
01452794a1 | ||
|
|
a32c94b090 | ||
|
|
d91067bb96 | ||
|
|
d3860508ca | ||
|
|
3744dedf52 | ||
|
|
00501f44b9 | ||
|
|
6aba34b82d | ||
|
|
c74beec17a | ||
|
|
a40d599e55 | ||
|
|
8b1fbe228d | ||
|
|
149b37f75b | ||
|
|
6552669fac | ||
|
|
1bcf884c27 | ||
|
|
e5add7b400 | ||
|
|
7a058594de | ||
|
|
00422cec6f | ||
|
|
bf706e8fd2 | ||
|
|
d5ef218584 | ||
|
|
1150626801 | ||
|
|
e16ed6d802 | ||
|
|
5dc6b77ee8 | ||
|
|
fcf1a91507 | ||
|
|
309987cc89 | ||
|
|
96ed1fdeb9 | ||
|
|
a6729ce8c5 | ||
|
|
7b6b620ceb | ||
|
|
b265034695 | ||
|
|
7ebd9dc899 | ||
|
|
35dd4b015b | ||
|
|
5608d649b0 | ||
|
|
277f65b94d | ||
|
|
b891b1b98b | ||
|
|
f6dde28c1a | ||
|
|
5e1bd9ff48 | ||
|
|
38125173cb | ||
|
|
0a4547e652 | ||
|
|
f73754af34 | ||
|
|
f280d5a90e | ||
|
|
5002b4c7bb | ||
|
|
439643daa4 | ||
|
|
3fce002213 | ||
|
|
e1eda363e6 | ||
|
|
68b9b18cae | ||
|
|
548fe04f54 | ||
|
|
57f1303c5f | ||
|
|
2a4641684f | ||
|
|
c805333bcd | ||
|
|
ed87e350ae | ||
|
|
e5d53e65de | ||
|
|
da038aaa67 | ||
|
|
74f1405829 | ||
|
|
f170512e8f | ||
|
|
c65ca5c92e | ||
|
|
8571b95db3 | ||
|
|
9d59d82869 | ||
|
|
d9862e2cef | ||
|
|
eb194acce6 | ||
|
|
edceafa526 | ||
|
|
34c30e0cb9 | ||
|
|
e0b5bfc7d8 | ||
|
|
918b03d459 | ||
|
|
4670ae7549 | ||
|
|
938f3df843 | ||
|
|
7222b4f016 | ||
|
|
387b9cb37a | ||
|
|
37028c62a2 | ||
|
|
7ad49c3670 | ||
|
|
5380fcd68f |
@@ -0,0 +1,236 @@
|
||||
status-im.utils.build/warning-handler
|
||||
status-im.utils.build/get-current-sha
|
||||
status-im.chat.constants/spacing-char
|
||||
status-im.chat.constants/arg-wrapping-char
|
||||
status-im.ios.core/init
|
||||
status-im.ui.components.camera/aspects
|
||||
status-im.ui.components.camera/capture-targets
|
||||
status-im.ui.components.camera/set-torch
|
||||
status-im.ui.components.camera/request-access-ios
|
||||
status-im.chat.models.message-content/stylings
|
||||
status-im.chat.models.message-content/actions
|
||||
status-im.chat.models.message-content/blank-string
|
||||
status-im.chat.models.message-content/sorted-ranges
|
||||
status-im.ethereum.mnemonic/words->passphrase
|
||||
status-im.native-module.core/listener
|
||||
status-im.native-module.core/multiaccount-reset
|
||||
status-im.native-module.core/extract-group-membership-signatures
|
||||
status-im.native-module.core/sign-group-membership
|
||||
status-im.native-module.core/update-mailservers
|
||||
status-im.ethereum.abi-spec/bytes-to-hex
|
||||
status-im.android.core/init
|
||||
status-im.chat.models.message/transport-keys
|
||||
status-im.utils.datetime/week
|
||||
status-im.utils.datetime/time-ago
|
||||
status-im.utils.datetime/format-date
|
||||
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
|
||||
status-im.multiaccounts.create.core/get-new-key-code
|
||||
status-im.ethereum.decode/string
|
||||
status-im.ui.screens.network.views/mainnet?
|
||||
status-im.data-store.chats/event->string
|
||||
status-im.mailserver.constants/seven-days
|
||||
status-im.mailserver.constants/connection-timeout
|
||||
status-im.hardwallet.card/install-applet
|
||||
status-im.hardwallet.card/install-cash-applet
|
||||
status-im.multiaccount.login.data-test/all-contacts
|
||||
status-im.multiaccount.login.data-test/multiaccounts
|
||||
status-im.multiaccount.login.data-test/get-chats
|
||||
status-im.multiaccount.login.data-test/transport
|
||||
status-im.multiaccount.login.data-test/topics
|
||||
status-im.utils.utils/clear-timeout
|
||||
status-im.utils.handlers/logged-in
|
||||
status-im.multiaccounts.model/credentials
|
||||
status-im.multiaccounts.login.core/contract-fleet?
|
||||
status-im.multiaccounts.login.core/fetch-nodes
|
||||
status-im.utils.config/rpc-networks-only?
|
||||
status-im.utils.config/waku-enabled?
|
||||
status-im.utils.pairing/has-paired-installations?
|
||||
status-im.tribute-to-talk.core-test/user-cofx
|
||||
quo.gesture-handler/tap-gesture-handler
|
||||
quo.gesture-handler/pan-gesture-handler
|
||||
quo.gesture-handler/long-press-gesture-handler
|
||||
quo.gesture-handler/pure-native-button
|
||||
quo.gesture-handler/createNativeWrapper
|
||||
quo.gesture-handler/animated-raw-button
|
||||
quo.gesture-handler/states
|
||||
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
|
||||
status-im.chat.models.message-list-test/descending-range
|
||||
status-im.chat.models.message-list-test/random-range
|
||||
status-im.ethereum.eip165/supports?
|
||||
status-im.utils.hex/valid-hex?
|
||||
status-im.multiaccounts.core/chat-send?
|
||||
status-im.hardwallet.simulated-keycard/install-cash-applet
|
||||
status-im.hardwallet.simulated-keycard/sign-typed-data
|
||||
status-im.utils.core/safe-read-message-content
|
||||
status-im.ui.components.react/native-modules
|
||||
status-im.ui.components.react/progress-bar
|
||||
status-im.utils.fs/move-file
|
||||
status-im.utils.fs/read-dir
|
||||
status-im.utils.fs/mkdir
|
||||
status-im.utils.fs/unlink
|
||||
status-im.utils.fs/file-exists?
|
||||
quo.animated/code
|
||||
quo.animated/eq
|
||||
quo.animated/neq
|
||||
quo.animated/greater-or-eq
|
||||
quo.animated/not*
|
||||
quo.animated/or*
|
||||
quo.animated/and*
|
||||
quo.animated/add
|
||||
quo.animated/sub
|
||||
quo.animated/multiply
|
||||
quo.animated/abs
|
||||
quo.animated/min*
|
||||
quo.animated/max*
|
||||
quo.animated/set
|
||||
quo.animated/start-clock
|
||||
quo.animated/stop-clock
|
||||
quo.animated/bezier
|
||||
quo.animated/linear
|
||||
quo.animated/set-value
|
||||
quo.animated/clock
|
||||
quo.animated/debug
|
||||
quo.animated/log
|
||||
quo.animated/event
|
||||
quo.animated/on-change
|
||||
quo.animated/cond*
|
||||
quo.animated/block
|
||||
quo.animated/call*
|
||||
quo.animated/timing
|
||||
quo.animated/spring
|
||||
quo.animated/clamp
|
||||
quo.animated/with-spring
|
||||
quo.animated/with-timing
|
||||
quo.animated/re-timing
|
||||
quo.design-system.colors/white
|
||||
quo.design-system.colors/black
|
||||
status-im.transport.core-test/messages
|
||||
status-im.ethereum.core/sidechain?
|
||||
status-im.ethereum.core/network-with-upstream-rpc?
|
||||
status-im.ethereum.core/current-address
|
||||
status-im.ethereum.core/network->network-name
|
||||
status-im.ethereum.core/estimate-gas
|
||||
quo.core/animated-header
|
||||
quo.core/safe-area-provider
|
||||
quo.core/safe-area-consumer
|
||||
quo.core/safe-area-view
|
||||
status-im.utils.universal-links.core/open!
|
||||
status-im.transport.filters.core-test/member-2
|
||||
status-im.ui.screens.chat.ttt/one-to-one-chat-description-container
|
||||
status-im.ethereum.ens/ttl
|
||||
status-im.ethereum.ens/addr-hash
|
||||
status-im.ethereum.ens/name-hash
|
||||
status-im.ethereum.ens/ABI-hash
|
||||
status-im.ethereum.ens/pubkey-hash
|
||||
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
|
||||
status-im.multiaccounts.update.publisher/publish-update!
|
||||
status-im.utils.async/task-queue
|
||||
status-im.utils.async/async-periodic-run!
|
||||
status-im.desktop.core/app-root
|
||||
status-im.desktop.core/init
|
||||
status-im.chat.models-test/test-db
|
||||
quo.design-system.spacing/padding-vertical
|
||||
status-im.utils.money/percent-change
|
||||
status-im.utils.platform/isMacOs?
|
||||
status-im.utils.platform/isNix?
|
||||
status-im.utils.platform/isWin?
|
||||
status-im.utils.platform/android-version>=
|
||||
status-im.utils.debounce/clear-all
|
||||
status-im.transport.db/create-chat
|
||||
status-im.utils.priority-map/priority-map
|
||||
status-im.utils.priority-map/priority-map-by
|
||||
status-im.utils.priority-map/priority-map-keyfn
|
||||
status-im.utils.priority-map/empty-message-map
|
||||
status-im.wallet.choose-recipient.core/use-default-eth-gas
|
||||
status-im.ui.components.animation/decay
|
||||
status-im.ui.components.animation/remove-all-listeners
|
||||
status-im.ui.components.animation/stop-animation
|
||||
status-im.ui.components.animation/animated
|
||||
status-im.ui.components.animation/add
|
||||
status-im.ui.components.animation/subtract
|
||||
status-im.ui.components.animation/get-layout
|
||||
status-im.wallet.transactions-test/uri-query-data
|
||||
quo.react-native/touchable-highlight
|
||||
status-im.utils.name/shortened-name
|
||||
status-im.ui.components.button.haptic/trigger
|
||||
status-im.contact.db/filter-dapps
|
||||
status-im.contact.db/filter-group-contacts
|
||||
status-im.contact.db/legacy-pending?
|
||||
status-im.utils.transducers-test/preview-call-1
|
||||
status-im.utils.transducers-test/preview-call-2
|
||||
status-im.utils.types/to-string
|
||||
status-im.chat.db/datemark?
|
||||
status-im.chat.db/gap?
|
||||
status-im.chat.db/map->sorted-seq
|
||||
status-im.utils.snoopy/status-module-filter
|
||||
status-im.utils.snoopy/websocket-filter
|
||||
status-im.utils.snoopy/touches-filter
|
||||
status-im.utils.snoopy/native-animation-filter
|
||||
status-im.utils.snoopy/keyboard-observer-filter
|
||||
status-im.utils.multihash/hex
|
||||
status-im.utils.multihash/decode-array
|
||||
@@ -1,6 +1,13 @@
|
||||
{:lint-as {status-im.utils.views/defview clojure.core/defn
|
||||
status-im.utils.views/letsubs clojure.core/let
|
||||
status-im.utils.fx/defn clojure.core/defn
|
||||
status-im.utils.styles/def clojure.core/def
|
||||
status-im.utils.styles/defn clojure.core/defn}
|
||||
:linters {:invalid-arity {:skip-args [status-im.utils.fx/defn]}}}
|
||||
{:lint-as {status-im.utils.views/defview clojure.core/defn
|
||||
status-im.utils.views/letsubs clojure.core/let
|
||||
reagent.core/with-let clojkure.core/let
|
||||
status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all
|
||||
quo.react/with-deps-check clojure.core/fn
|
||||
quo.previews.preview/list-comp clojure.core/for
|
||||
status-im.utils.styles/def clojure.core/def
|
||||
status-im.utils.styles/defn clojure.core/defn
|
||||
taoensso.tufte/defnp clojure.core/defn}
|
||||
:linters {:invalid-arity {:skip-args [status-im.utils.fx/defn]}
|
||||
;;TODO remove number when this is fixed
|
||||
;;https://github.com/borkdude/clj-kondo/issues/867
|
||||
:unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY number]}}}
|
||||
|
||||
@@ -13,7 +13,7 @@ update_configs:
|
||||
update_type: "security"
|
||||
# Keep /mobile/js_files/yarn.lock up to date, batching pull requests weekly
|
||||
- package_manager: "javascript"
|
||||
directory: "/mobile/js_files"
|
||||
directory: "/"
|
||||
update_schedule: "weekly"
|
||||
allowed_updates:
|
||||
- match:
|
||||
|
||||
@@ -7,9 +7,7 @@ ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
FLEET=eth.prod
|
||||
GROUP_CHATS_ENABLED=1
|
||||
HARDWALLET_ENABLED=1
|
||||
LOG_LEVEL_STATUS_GO=info
|
||||
LOG_LEVEL=debug
|
||||
LOG_LEVEL=info
|
||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||
PFS_ENCRYPTION_ENABLED=1
|
||||
PFS_TOGGLE_VISIBLE=1
|
||||
@@ -19,8 +17,20 @@ SNOOPY=0
|
||||
RPC_NETWORKS_ONLY=0
|
||||
PARTITIONED_TOPIC=0
|
||||
CONTRACT_NODES=1
|
||||
MOBILE_UI_FOR_DESKTOP=1
|
||||
STATUS_GO_PROTOCOL=0
|
||||
STATUS_GO_ENABLE_NIMBUS=0
|
||||
KEYCARD_TEST_MENU=0
|
||||
QR_READ_TEST_MENU=1
|
||||
QR_READ_TEST_MENU=1
|
||||
ENABLE_ROOT_ALERT=1
|
||||
ENABLE_REFERRAL_INVITE=1
|
||||
ENABLE_QUO_PREVIEW=1
|
||||
MAX_IMAGES_BATCH=5
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
COLLECTIBLES_ENABLED=1
|
||||
COMMANDS_ENABLED=1
|
||||
TWO_MINUTES_SYNCING=1
|
||||
SWAP_ENABLED=1
|
||||
|
||||
@@ -3,11 +3,9 @@ DEFAULT_NETWORK=testnet_rpc
|
||||
ERC20_CONTRACT_WARNINGS=1
|
||||
ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
FLEET=eth.prod
|
||||
FLEET=eth.staging
|
||||
GROUP_CHATS_ENABLED=1
|
||||
HARDWALLET_ENABLED=1
|
||||
LOG_LEVEL_STATUS_GO=info
|
||||
LOG_LEVEL=debug
|
||||
LOG_LEVEL=info
|
||||
MAILSERVER_CONFIRMATIONS_ENABLED=0
|
||||
PAIRING_POPUP_DISABLED=1
|
||||
PFS_ENCRYPTION_ENABLED=1
|
||||
@@ -18,9 +16,21 @@ SNOOPY=0
|
||||
STICKERS_ENABLED=1
|
||||
PARTITIONED_TOPIC=0
|
||||
CONTRACT_NODES=1
|
||||
MOBILE_UI_FOR_DESKTOP=1
|
||||
BLANK_PREVIEW=0
|
||||
TOOLTIP_EVENTS=1
|
||||
COMMANDS_ENABLED=1
|
||||
KEYCARD_TEST_MENU=1
|
||||
QR_READ_TEST_MENU=1
|
||||
QR_READ_TEST_MENU=1
|
||||
ENABLE_ROOT_ALERT=0
|
||||
ENABLE_REFERRAL_INVITE=1
|
||||
MAX_IMAGES_BATCH=5
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
VERIFY_TRANSACTION_CHAIN_ID=3
|
||||
VERIFY_ENS_CHAIN_ID=3
|
||||
TEST_STATEOFUS=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
TWO_MINUTES_SYNCING=1
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
CACHED_WEBVIEWS_ENABLED=1
|
||||
DEBUG_WEBVIEW=1
|
||||
DEFAULT_NETWORK=mainnet_rpc
|
||||
DEFAULT_NETWORK=testnet_rpc
|
||||
ERC20_CONTRACT_WARNINGS=0
|
||||
ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
FLEET=eth.prod
|
||||
GROUP_CHATS_ENABLED=1
|
||||
HARDWALLET_ENABLED=1
|
||||
LOG_LEVEL_STATUS_GO=info
|
||||
LOG_LEVEL=debug
|
||||
LOG_LEVEL=info
|
||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||
MAINNET_WARNING_ENABLED=1
|
||||
PFS_ENCRYPTION_ENABLED=1
|
||||
@@ -19,5 +17,23 @@ SNOOPY=0
|
||||
RPC_NETWORKS_ONLY=0
|
||||
PARTITIONED_TOPIC=0
|
||||
CONTRACT_NODES=1
|
||||
MOBILE_UI_FOR_DESKTOP=1
|
||||
STATUS_GO_ENABLE_NIMBUS=0
|
||||
COMMANDS_ENABLED=1
|
||||
KEYCARD_TEST_MENU=0
|
||||
ENABLE_ROOT_ALERT=1
|
||||
ENABLE_REFERRAL_INVITE=1
|
||||
DISABLE_WALLET_ON_MOBILE_NETWORK=1
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
VERIFY_TRANSACTION_CHAIN_ID=3
|
||||
VERIFY_ENS_CHAIN_ID=3
|
||||
TEST_STATEOFUS=1
|
||||
BLANK_PREVIEW=0
|
||||
MAX_IMAGES_BATCH=5
|
||||
GOOGLE_FREE=0
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
TWO_MINUTES_SYNCING=1
|
||||
ENABLE_QUO_PREVIEW=1
|
||||
|
||||
@@ -5,8 +5,7 @@ ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
FLEET=eth.prod
|
||||
GROUP_CHATS_ENABLED=1
|
||||
LOG_LEVEL_STATUS_GO=info
|
||||
LOG_LEVEL=debug
|
||||
LOG_LEVEL=info
|
||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||
MAINNET_WARNING_ENABLED=1
|
||||
PFS_ENCRYPTION_ENABLED=1
|
||||
@@ -17,5 +16,11 @@ SNOOPY=0
|
||||
RPC_NETWORKS_ONLY=0
|
||||
PARTITIONED_TOPIC=0
|
||||
CONTRACT_NODES=1
|
||||
MOBILE_UI_FOR_DESKTOP=1
|
||||
HARDWALLET_ENABLED=1
|
||||
ENABLE_ROOT_ALERT=1
|
||||
ENABLE_REFERRAL_INVITE=0
|
||||
MAX_IMAGES_BATCH=5
|
||||
BLANK_PREVIEW=0
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
|
||||
@@ -4,9 +4,8 @@ ERC20_CONTRACT_WARNINGS=0
|
||||
ETHEREUM_DEV_CLUSTER=0
|
||||
EXTENSIONS=0
|
||||
FLEET=eth.prod
|
||||
GROUP_CHATS_ENABLED=0
|
||||
LOG_LEVEL_STATUS_GO=
|
||||
LOG_LEVEL=info
|
||||
GROUP_CHATS_ENABLED=1
|
||||
LOG_LEVEL=
|
||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||
MAINNET_WARNING_ENABLED=1
|
||||
PFS_ENCRYPTION_ENABLED=1
|
||||
@@ -16,5 +15,9 @@ POW_TIME=1
|
||||
SNOOPY=0
|
||||
RPC_NETWORKS_ONLY=1
|
||||
PARTITIONED_TOPIC=0
|
||||
MOBILE_UI_FOR_DESKTOP=1
|
||||
LOCAL_NOTIFICATIONS=0
|
||||
ENABLE_ROOT_ALERT=1
|
||||
MAX_IMAGES_BATCH=1
|
||||
ENABLE_REFERRAL_INVITE=0
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
COLLECTIBLES_ENABLED=1
|
||||
|
||||
@@ -94,4 +94,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||
|
||||
[version]
|
||||
^0.105.0
|
||||
^0.122.0
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
# the repo. Unless a later match takes precedence,
|
||||
# @global-owner1 and @global-owner2 will be requested for
|
||||
# review when someone opens a pull request.
|
||||
* @status-im/status-core
|
||||
|
||||
/ci @jakubgs
|
||||
/fastlane @jakubgs
|
||||
/scripts @jakubgs
|
||||
@@ -24,12 +22,4 @@
|
||||
|
||||
/components @status-im/status-core-ui
|
||||
|
||||
desktop/ @vkjr
|
||||
modules/react-native-desktop*/ @vkjr
|
||||
modules/react-native-desktop*/ @vkjr
|
||||
|
||||
/doc @oskarth @yenda @jeluard
|
||||
|
||||
/deployment @vkjr
|
||||
|
||||
/test/appium/ @antdanchenko @churik
|
||||
/test/appium/ @churik
|
||||
|
||||
@@ -8,10 +8,9 @@ These are just guidelines, not rules. Use your best judgment, and feel free to p
|
||||
|
||||
#### What should I know before I get started?
|
||||
|
||||
* [Mission and Core Values](https://status.im/contribute)
|
||||
* [Principles](https://status.im/contribute/our_principles.html)
|
||||
* [Mission and Principles](https://status.im/about)
|
||||
* [Read our FAQ](https://status.im/docs/FAQs.html)
|
||||
* [Join our Chat](http://join.status.im/chat/public/status-core-dev)
|
||||
* [Developer Introduction](https://status.im/developer_tools/)
|
||||
* [Build Status Yourself](https://status.im/build_status)
|
||||
* [Build Status Yourself](https://status.im/technical/build_status)
|
||||
* [Find issues to work on](https://github.com/status-im/)
|
||||
|
||||
@@ -9,46 +9,27 @@ assignees: ''
|
||||
|
||||
# Bug Report
|
||||
|
||||
## Problem
|
||||
|
||||
An overview of the background required to understand the problem.
|
||||
A problem description.
|
||||
## Problem
|
||||
[comment]: # (A problem description)
|
||||
|
||||
|
||||
#### Expected behavior
|
||||
|
||||
[comment]: # (Describe what you expected to happen. Please include designs if possible.)
|
||||
|
||||
#### Actual behavior
|
||||
|
||||
[comment]: # (Describe what actually happened. Please include screenshots if possible.)
|
||||
|
||||
#### Notes
|
||||
|
||||
For the developer who will be investigating. Is it related to another PR? Tips on where to start?
|
||||
|
||||
#### Acceptance Criteria
|
||||
|
||||
Rules for the future PR to be accepted.
|
||||
|
||||
### Reproduction
|
||||
|
||||
[comment]: # (Describe how we can replicate the bug step by step.)
|
||||
|
||||
- Open Status
|
||||
- ...
|
||||
- Step 3, etc.
|
||||
1) Open Status
|
||||
2)
|
||||
|
||||
### Additional Information
|
||||
|
||||
[comment]: # (Please do your best to fill this out.)
|
||||
- Status version: ...
|
||||
[comment]: # (Android or iOS.)
|
||||
- Operating System: <Android|iOS>
|
||||
- Status version: nightly
|
||||
- Operating System: Android, iOS
|
||||
|
||||
#### Logs
|
||||
|
||||
[comment]: # (if on Android please replicate bug whilst running adb logcat)
|
||||
[comment]: # (Please, add logs/notes if necessary)
|
||||
|
||||
```
|
||||
...
|
||||
```
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
name: Release umbrella issue
|
||||
about: Release Issue
|
||||
title: 'Mobile release '
|
||||
labels: release
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
Issue to manage mobile release <version>
|
||||
|
||||
### Scope
|
||||
[comment]: # (Add milestone from github)
|
||||
https://github.com/status-im/status-react/milestone/
|
||||
|
||||
- release notes:
|
||||
- release branch:
|
||||
|
||||
|
||||
### Testing info
|
||||
[comment]: # (TestRail info, added by QA)
|
||||
Main test suite:
|
||||
Upgrade (e2e):
|
||||
|
||||
### Builds in TestFlight and PlayStore to push as a release
|
||||
[comment]: # (Will be added by QA after testing approving of build)
|
||||
|
||||
### Process
|
||||
#### 1) Kick-off
|
||||
- [ ] 1. Translation PRs is merged before cutting branch (Jinho)
|
||||
- [ ] 2. Prepare scope of visible changes based on commits history, started from previous release branch cut ([guide](https://notes.status.im/how-to-prepare-release-notes))
|
||||
- [ ] 3. Update [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) with release notes (make PR based on previous step)
|
||||
- [ ] 4. Create release branch using this [guide](https://github.com/status-im/status-react/blob/develop/doc/RELEASE_GUIDE.md), bump VERSION (merge created PR ([example](https://github.com/status-im/status-react/pull/12504) ) to develop) and get successful release builds (so, testing can be started)
|
||||
- [ ] 5. Based on release scope, ask for comms (Jonny)
|
||||
- [ ] 6. Make sure that assets (screenshots, video) in stores are up-to-date, more info [here](https://notes.status.im/how-to-update-assets)
|
||||
|
||||
#### 2) Testing
|
||||
[comment]: # (Section will be maintained by QA)
|
||||
- [ ] Dogfooding (add notes, if it was held)
|
||||
- [ ] Regression testing for release candidate build
|
||||
- [ ] Upgrade tests
|
||||
- [ ] Fix known blocker(s) found during regression testing
|
||||
|
||||
##### Blockers
|
||||
[comment]: # (Section for blocker issues; should be fixed and merged by release-manager. Remove if no blockers found)
|
||||
- [ ] 1 blocker:
|
||||
|
||||
=============================================================================================
|
||||
|
||||
- [ ] Cherry-pick fix(es) to the release branch
|
||||
- [ ] Verify fix(es) on new release candidate build
|
||||
- [ ] Retest
|
||||
- [ ] Keep release build forever (button in Jenkins)
|
||||
|
||||
#### 3) Submission
|
||||
|
||||
- [ ] 1. Prepare PR for F-droid build ([instruction]( https://github.com/status-im/status-react/blob/develop/doc/FDROID.md))
|
||||
- [ ] 2. Release notes written and added (500 character limit for updates (Android) and PR for [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) is ready to be merged (from 1.3 step)
|
||||
- [ ] 3. Submit beta version for Android (Open Testing in Play Store)
|
||||
- [ ] 4. Submit iOS build to Apple review ([instruction](https://drive.google.com/file/d/10Cl7PBB7TFPkZiVbfzdFGpfMRP9bxXuq/view?usp=sharing), be careful - low quality of audio)
|
||||
- [ ] 5. Play store content reviewed and updated
|
||||
- [ ] 6. Privacy policy reviewed and updated (ask in channel)
|
||||
- [ ] 7. Countries to be excluded (ask in channel)
|
||||
- [ ] 8. Changes to our FAQ made (should be checked and if any changes needed, ask Jakub to made them)
|
||||
|
||||
|
||||
#### 4) Before publishing
|
||||
- [ ] 1. Translations for comms available (marketing, ask in the channel)
|
||||
- [ ] 2. Promotional content ready (marketing, ask in channel)
|
||||
- [ ] 3. Upload builds for DO store, https://dev.status.im/ (Jakub)
|
||||
|
||||
#### 5) At time of publishing
|
||||
- [ ] 1. Notify marketing to push comms and blog post (Jonny + get review on blog from QA team)
|
||||
- [ ] 2. Publish release to app store and playstore
|
||||
- [ ] 3. Final push to update prod site https://status.im/, [instructions](https://github.com/status-im/infra-docs/blob/master/articles/status_release_upload.md) (Jakub - requires credentials to upload)
|
||||
- [ ] 4. Add the link to the post about the release and publish the release: https://github.com/status-im/status-react/releases (Jakub)
|
||||
- [ ] 5. Merge PR for updating [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) (from 1.3 step)
|
||||
|
||||
@@ -10,20 +10,8 @@ project-board:
|
||||
|
||||
automated-tests:
|
||||
repo-full-name: 'status-im/status-react'
|
||||
job-full-name: 'end-to-end-tests/status-app-prs'
|
||||
job-full-name: 'status-react/e2e/status-app-prs'
|
||||
kickoff-column-name: 'E2E Tests'
|
||||
|
||||
github-team:
|
||||
slug: 'clojure'
|
||||
|
||||
prchecklist:
|
||||
title: Pull Request Checklist
|
||||
checklist:
|
||||
- '**Docs**: Updated the [documentation](https://status.im/build_status/), if affected'
|
||||
- '**Docs**: Added or updated inline comments explaining intention of the code'
|
||||
- '**Tests**: Ensured that all new UI elements have been assigned accessibility IDs'
|
||||
- '**Tests**: Signaled need for E2E tests with label, if applicable'
|
||||
- '**Tests**: Briefly described what was tested and what platforms were used'
|
||||
- '**UI**: In case of UI changes, ensured that UI matches [Figma](https://www.figma.com/)'
|
||||
- '**UI**: In case of UI changes, requested review from a Core UI designer'
|
||||
- '**UI**: In case of UI changes, included screenshots of implementation'
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
name: Zenhub integration assigned
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- assigned
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: status-im/zenhub-automations@master
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
|
||||
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
|
||||
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
|
||||
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
|
||||
@@ -0,0 +1,15 @@
|
||||
name: Zenhub integration branch
|
||||
on:
|
||||
create:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: status-im/zenhub-automations@master
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
|
||||
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
|
||||
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
|
||||
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
|
||||
@@ -0,0 +1,17 @@
|
||||
name: Zenhub integration milestoned
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- milestoned
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: status-im/zenhub-automations@master
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
|
||||
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
|
||||
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
|
||||
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
|
||||
@@ -0,0 +1,20 @@
|
||||
name: Zenhub integration PR
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ develop ]
|
||||
types:
|
||||
- ready_for_review
|
||||
- opened
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: status-im/zenhub-automations@master
|
||||
if: github.event.pull_request.draft == false
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
ZENHUB_API_KEY: ${{ secrets.ZENHUB_TOKEN }}
|
||||
INPROG_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyODI1Mg
|
||||
NEXT_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzMyNzk2MQ
|
||||
REVIEW_COLUMN: Z2lkOi8vcmFwdG9yL1BpcGVsaW5lLzIyNjk0MTA
|
||||
@@ -25,7 +25,6 @@ DerivedData
|
||||
*.ipa
|
||||
*.xcuserstate
|
||||
project.xcworkspace
|
||||
xcshareddata
|
||||
|
||||
# Android/IJ
|
||||
#
|
||||
@@ -68,9 +67,6 @@ env/dev/env/config.cljs
|
||||
externs/
|
||||
shim.js
|
||||
|
||||
# Desktop build
|
||||
index.desktop.js
|
||||
|
||||
# Generated by lein voom
|
||||
#
|
||||
/pom.xml
|
||||
@@ -86,6 +82,9 @@ figwheel_server.log
|
||||
.lein-failures
|
||||
.lein-repl-history
|
||||
|
||||
# Shadow
|
||||
.shadow-cljs
|
||||
|
||||
## Doo
|
||||
#
|
||||
out
|
||||
@@ -100,6 +99,8 @@ Statusgo.framework
|
||||
#ios
|
||||
/ios/Pods/
|
||||
/ios/StatusIm.xcworkspace
|
||||
/ios/react-native-xcode.log
|
||||
/ios/set_xcode_version.log
|
||||
.ruby-version
|
||||
status-e2e/
|
||||
|
||||
@@ -124,11 +125,8 @@ fastlane/README.md
|
||||
# emacs
|
||||
.dir-locals.el
|
||||
|
||||
#ignore platform-specific files in the root since they are only symlinks to files in folders 'desktop/js_files' and 'mobile/js_files'
|
||||
# We don't use NPM
|
||||
/package-lock.json
|
||||
/package.json
|
||||
/metro.config.js
|
||||
/yarn.lock
|
||||
/.re-natal
|
||||
/re-natal
|
||||
|
||||
@@ -136,27 +134,6 @@ fastlane/README.md
|
||||
pkg
|
||||
/BUILD_NUMBER
|
||||
|
||||
# Status Desktop
|
||||
cmake_install.cmake
|
||||
CMakeCache.txt
|
||||
**/CMakeFiles/
|
||||
/StatusImPackage/*
|
||||
*.AppImage
|
||||
Status-Windows-x86_64.exe
|
||||
/desktop/bin/*
|
||||
/desktop/lib/*
|
||||
/desktop/modules/*
|
||||
/desktop/Makefile
|
||||
/desktop/graph_info.json
|
||||
/desktop/run-app.bat
|
||||
/desktop/run-app.sh
|
||||
/desktop/CMakeFiles/
|
||||
/desktop/reportApp/Makefile
|
||||
/deployment/windows/Status.rc
|
||||
*_autogen/
|
||||
CompleteBundleWin.cmake
|
||||
logger_settings.ini
|
||||
|
||||
# Conan
|
||||
conan*.txt
|
||||
conanbuildinfo.*
|
||||
@@ -184,4 +161,12 @@ status-modules/resources
|
||||
/fiddle/target/
|
||||
/fiddle/resources/public/images/
|
||||
|
||||
trace.edn
|
||||
trace.edn
|
||||
|
||||
/app/
|
||||
project.clj
|
||||
|
||||
##appium
|
||||
test/appium/report/
|
||||
result.xml
|
||||
test/appium/tests/users.py
|
||||
@@ -1,28 +0,0 @@
|
||||
# new icons
|
||||
|
||||
## Export icons
|
||||
|
||||

|
||||
|
||||
## android
|
||||
1. copy files to corresponding directories at `/Users/romanvolosovskyi/clj/status-react/android/app/src/main/res` (one of `drawable-hdpi`, `drawable-mdpi`, `drawable-xhdpi`, `drawable-xxhdpi`, `drawable-xxxhdpi` for corresponding resolution)
|
||||
If you only have 3 pngs 1x, 2x and 3x put them in mdpi, xhdpi and xxhdpi
|
||||
3. if necessary, rename file so that filename contains only lower case chars, and dashes instead of hyphens, e.g. `"Icon-Name.png"` should be renamed to `"icon_name.png"`.
|
||||
4. In the app `icon_name.png` still can be accessed as `icon-name`, so in order to use can add the next code:
|
||||
```clojure
|
||||
;; icon_name.png
|
||||
[vector-icons/icon :icon-name {:color ...}]
|
||||
```
|
||||
|
||||
## ios
|
||||
1. open xcode (on macos run `open ios/StatusIm.xcworkspace` from project's root dir)
|
||||
2. go to `StatusIm/StatusIm/Images.xcassets` in xcode
|
||||

|
||||
3. add images there
|
||||
4. if necessary, rename file so that filename contains only lower case chars, e.g. `"Icon-Name.png"` should be renamed to `"icon-name"`.
|
||||
5. **IMPORTANT** there is no need to replace hyphens with dashes, and if you do so you will need to use names with dashes in both android and ios versions. So use dashes for android resources names and hyphens for ios.
|
||||
6. And now `"icon-name"` can be added in app the same way as it was added for android version
|
||||
```clojure
|
||||
;; icon-name
|
||||
[vector-icons/icon :icon-name {:color ...}]
|
||||
```
|
||||
@@ -1,4 +1,4 @@
|
||||
.PHONY: nix-add-gcroots clean nix-clean disable-githooks react-native-android react-native-ios react-native-desktop test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm
|
||||
.PHONY: nix-add-gcroots clean nix-clean run-metro test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm _install-hooks
|
||||
|
||||
help: SHELL := /bin/sh
|
||||
help: ##@other Show this help
|
||||
@@ -39,16 +39,10 @@ export REACT_SERVER_PORT ?= 5001
|
||||
|
||||
# Our custom config is located in nix/nix.conf
|
||||
export NIX_CONF_DIR = $(PWD)/nix
|
||||
# Location of symlinks to derivations that should not be garbage collected
|
||||
export _NIX_GCROOTS = /nix/var/nix/gcroots/per-user/$(USER)/status-react
|
||||
# Defines which variables will be kept for Nix pure shell, use semicolon as divider
|
||||
export _NIX_KEEP ?= TMPDIR,BUILD_ENV,STATUS_GO_SRC_OVERRIDE,NIMBUS_SRC_OVERRIDE
|
||||
export _NIX_ROOT = /nix
|
||||
# legacy TARGET_OS variable support
|
||||
ifdef TARGET_OS
|
||||
export TARGET ?= $(TARGET_OS)
|
||||
endif
|
||||
|
||||
# Useful for checking if we are on NixOS
|
||||
OS_NAME := $(shell [ -f /etc/os-release ] && awk -F= '/^NAME/{print $2}' /etc/os-release)
|
||||
export _NIX_KEEP ?= TMPDIR,BUILD_ENV,STATUS_GO_SRC_OVERRIDE
|
||||
|
||||
# Useful for Andoird release builds
|
||||
TMP_BUILD_NUMBER := $(shell ./scripts/version/gen_build_no.sh | cut -c1-10)
|
||||
@@ -57,20 +51,16 @@ TMP_BUILD_NUMBER := $(shell ./scripts/version/gen_build_no.sh | cut -c1-10)
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
export NIX_IGNORE_SYMLINK_STORE=1
|
||||
export _NIX_ROOT = /opt/nix
|
||||
endif
|
||||
|
||||
#----------------
|
||||
# Nix targets
|
||||
#----------------
|
||||
|
||||
# WARNING: This has to be located right before the targets
|
||||
ifdef IN_NIX_SHELL
|
||||
SHELL := env bash
|
||||
else
|
||||
# WARNING: This has to be located right before all the targets.
|
||||
SHELL := ./nix/scripts/shell.sh
|
||||
endif
|
||||
|
||||
shell: export TARGET ?= default
|
||||
shell: ##@prepare Enter into a pre-configured shell
|
||||
ifndef IN_NIX_SHELL
|
||||
@ENTER_NIX_SHELL
|
||||
@@ -78,32 +68,36 @@ else
|
||||
@echo "${YELLOW}Nix shell is already active$(RESET)"
|
||||
endif
|
||||
|
||||
nix-gc: ##@nix Garbage collect all packages older than 20 days from /nix/store
|
||||
nix-collect-garbage --delete-old --delete-older-than 20d
|
||||
nix-repl: SHELL := /bin/sh
|
||||
nix-repl: ##@nix Start an interactive Nix REPL
|
||||
nix repl default.nix
|
||||
|
||||
nix-gc-protected: SHELL := /bin/sh
|
||||
nix-gc-protected:
|
||||
@echo -e "$(YELLOW)The following paths are protected:$(RESET)" && \
|
||||
ls -1 $(_NIX_GCROOTS) | sed 's/^/ - /'
|
||||
|
||||
nix-gc: export TARGET := nix
|
||||
nix-gc: nix-gc-protected ##@nix Garbage collect all packages older than 20 days from /nix/store
|
||||
nix-store --gc
|
||||
|
||||
nix-clean: export TARGET := default
|
||||
nix-clean: ##@nix Remove all status-react build artifacts from /nix/store
|
||||
nix/scripts/clean.sh
|
||||
|
||||
nix-purge: SHELL := /bin/sh
|
||||
nix-purge: ##@nix Completely remove the complete Nix setup
|
||||
ifeq ($(OS_NAME), NixOS)
|
||||
$(error $(RED)You should not purge Nix files on NixOS!$(RESET))
|
||||
else
|
||||
sudo rm -rf $(_NIX_ROOT)/* ~/.nix-profile ~/.nix-defexpr ~/.nix-channels ~/.cache/nix ~/.status .nix-gcroots
|
||||
endif
|
||||
|
||||
nix-add-gcroots: export TARGET := default
|
||||
nix-add-gcroots: ##@nix Add Nix GC roots to avoid status-react expressions being garbage collected
|
||||
nix/scripts/gcroots.sh
|
||||
nix-purge: ##@nix Completely remove Nix setup, including /nix directory
|
||||
nix/scripts/purge.sh
|
||||
|
||||
nix-update-gradle: export TARGET := gradle
|
||||
nix-update-gradle: ##@nix Update maven nix expressions based on current gradle setup
|
||||
nix/mobile/android/maven-and-npm-deps/maven/generate-nix.sh
|
||||
nix/deps/gradle/generate.sh
|
||||
|
||||
nix-update-lein: export TARGET := lein
|
||||
nix-update-lein: ##@nix Update maven nix expressions based on current lein setup
|
||||
nix/tools/lein/generate-nix.sh nix/lein
|
||||
nix-update-clojure: export TARGET := clojure
|
||||
nix-update-clojure: ##@nix Update maven Nix expressions based on current clojure setup
|
||||
nix/deps/clojure/generate.sh
|
||||
|
||||
nix-update-gems: export TARGET := lein
|
||||
nix-update-gems: export TARGET := default
|
||||
nix-update-gems: ##@nix Update Ruby gems in fastlane/Gemfile.lock and fastlane/gemset.nix
|
||||
fastlane/update.sh
|
||||
|
||||
@@ -130,22 +124,26 @@ _tmpdir-rm: SHELL := /bin/sh
|
||||
_tmpdir-rm: ##@prepare Remove TMPDIR
|
||||
rm -fr "$(TMPDIR)"
|
||||
|
||||
_install-hooks: SHELL := /bin/sh
|
||||
_install-hooks: ##@prepare Create prepare-commit-msg git hook symlink
|
||||
@ln -s -f ../../scripts/hooks/prepare-commit-msg .git/hooks
|
||||
-include _install-hooks
|
||||
|
||||
# Remove directories and ignored files
|
||||
clean: SHELL := /bin/sh
|
||||
clean: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
|
||||
git clean -dXf
|
||||
|
||||
# Remove directories, ignored and non-ignored files
|
||||
purge: SHELL := /bin/sh
|
||||
purge: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
|
||||
git clean -dxf
|
||||
|
||||
|
||||
watchman-clean: export TARGET := watchman
|
||||
watchman-clean: ##@prepare Delete repo directory from watchman
|
||||
watchman watch-del $${STATUS_REACT_HOME}
|
||||
|
||||
disable-githooks: SHELL := /bin/sh
|
||||
disable-githooks: ##@prepare Disables lein githooks
|
||||
@rm -f ${env.WORKSPACE}/.git/hooks/pre-commit && \
|
||||
sed -i'~' -e 's|\[rasom/lein-githooks|;; [rasom/lein-githooks|' \
|
||||
-e 's|:githooks|;; :githooks|' \
|
||||
-e 's|:pre-commit|;; :pre-commit|' project.clj; \
|
||||
rm project.clj~
|
||||
|
||||
pod-install: export TARGET := ios
|
||||
pod-install: ##@prepare Run 'pod install' to install podfiles and update Podfile.lock
|
||||
cd ios && pod install; cd --
|
||||
@@ -160,118 +158,111 @@ keystore: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
||||
keystore: ##@prepare Generate a Keystore for signing Android APKs
|
||||
@./scripts/generate-keystore.sh
|
||||
|
||||
fdroid-max-watches: SHELL := /bin/sh
|
||||
fdroid-max-watches: ##@prepare Bump max_user_watches to avoid ENOSPC errors
|
||||
sysctl fs.inotify.max_user_watches=524288
|
||||
|
||||
fdroid-nix-dir: SHELL := /bin/sh
|
||||
fdroid-nix-dir: ##@prepare Create /nix directory for F-Droid Vagrant builders
|
||||
mkdir -m 0755 /nix
|
||||
chown vagrant /nix
|
||||
|
||||
fdroid-fix-tmp: SHELL := /bin/sh
|
||||
fdroid-fix-tmp: ##@prepare Fix TMPDIR permissions so Vagrant user is the owner
|
||||
chown -R vagrant "$(TMPDIR)"
|
||||
|
||||
fdroid-build-env: fdroid-max-watches fdroid-nix-dir fdroid-fix-tmp ##@prepare Setup build environment for F-Droud build
|
||||
|
||||
fdroid-pr: export TARGET := android
|
||||
fdroid-pr: ##@prepare Create F-Droid release PR
|
||||
ifndef APK
|
||||
$(error APK env var not defined)
|
||||
endif
|
||||
scripts/fdroid-pr.sh "$(APK)"
|
||||
|
||||
xcode-clean: SHELL := /bin/sh
|
||||
xcode-clean: XCODE_HOME := $(HOME)/Library/Developer/Xcode
|
||||
xcode-clean: ##@prepare Clean XCode derived data and archives
|
||||
rm -fr $(XCODE_HOME)/DerivedData/StatusIm-* $(XCODE_HOME)/Archives/*/StatusIm*
|
||||
|
||||
#----------------
|
||||
# Release builds
|
||||
#----------------
|
||||
release: release-android release-ios ##@build build release for Android and iOS
|
||||
release: release-android release-ios ##@build Build release for Android and iOS
|
||||
|
||||
release-android: export TARGET := android
|
||||
release-android: export BUILD_ENV ?= prod
|
||||
release-android: export BUILD_TYPE ?= nightly
|
||||
release-android: export BUILD_NUMBER ?= $(TMP_BUILD_NUMBER)
|
||||
release-android: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
||||
release-android: export ANDROID_APK_SIGNED ?= true
|
||||
release-android: export ANDROID_ABI_SPLIT ?= false
|
||||
release-android: export ANDROID_ABI_INCLUDE ?= armeabi-v7a;arm64-v8a;x86
|
||||
release-android: keystore ##@build build release for Android
|
||||
release-android: keystore ##@build Build release for Android
|
||||
scripts/release-android.sh
|
||||
|
||||
release-ios: export TARGET ?= ios
|
||||
release-fdroid: export BUILD_ENV = prod
|
||||
release-fdroid: export BUILD_TYPE = release
|
||||
release-fdroid: export ANDROID_APK_SIGNED = false
|
||||
release-fdroid: export ANDROID_ABI_SPLIT = false
|
||||
release-fdroid: export ANDROID_ABI_INCLUDE = armeabi-v7a;arm64-v8a;x86;x86_64
|
||||
release-fdroid: export READER_FEATURES = google-free
|
||||
release-fdroid: ##@build Build release for F-Droid
|
||||
scripts/google-free.sh
|
||||
scripts/release-android.sh
|
||||
|
||||
release-ios: export TARGET := ios
|
||||
release-ios: export BUILD_ENV ?= prod
|
||||
release-ios: watchman-clean ##@build build release for iOS release
|
||||
release-ios: watchman-clean ##@build Build release for iOS release
|
||||
@git clean -dxf -f target/ios && \
|
||||
$(MAKE) jsbundle-ios && \
|
||||
scripts/copy-translations.sh && \
|
||||
xcodebuild -workspace ios/StatusIm.xcworkspace -scheme StatusIm -configuration Release -destination 'generic/platform=iOS' -UseModernBuildSystem=N clean archive
|
||||
|
||||
release-desktop: export TARGET ?= $(HOST_OS)
|
||||
release-desktop: ##@build build release for desktop release based on TARGET
|
||||
@$(MAKE) jsbundle-desktop && \
|
||||
scripts/copy-translations.sh && \
|
||||
scripts/build-desktop.sh; \
|
||||
$(MAKE) watchman-clean
|
||||
|
||||
release-windows-desktop: export TARGET ?= windows
|
||||
release-windows-desktop: ##@build build release for windows desktop release
|
||||
@$(MAKE) jsbundle-desktop && \
|
||||
scripts/copy-translations.sh && \
|
||||
scripts/build-desktop.sh; \
|
||||
$(MAKE) watchman-clean
|
||||
|
||||
prod-build-android: jsbundle-android ##@legacy temporary legacy alias for jsbundle-android
|
||||
@echo "${YELLOW}This a deprecated target name, use jsbundle-android.$(RESET)"
|
||||
|
||||
jsbundle-android: SHELL := /bin/sh
|
||||
jsbundle-android: export TARGET ?= android
|
||||
jsbundle-android: export TARGET := android
|
||||
jsbundle-android: export BUILD_ENV ?= prod
|
||||
jsbundle-android: ##@jsbundle Compile JavaScript and Clojure into index.android.js
|
||||
# Call nix-build to build the 'targets.mobile.android.jsbundle' attribute and copy the index.android.js file to the project root
|
||||
@git clean -dxf ./index.$(TARGET).js
|
||||
jsbundle-android: ##@jsbundle Compile JavaScript and Clojurescript into app directory
|
||||
# Call nix-build to build the 'targets.mobile.android.jsbundle' attribute and copy the.js files to the project root
|
||||
nix/scripts/build.sh targets.mobile.android.jsbundle && \
|
||||
mv result/index.$(TARGET).js ./
|
||||
mv result/* ./
|
||||
|
||||
prod-build-ios: jsbundle-ios ##@legacy temporary legacy alias for jsbundle-ios
|
||||
@echo "${YELLOW}This a deprecated target name, use jsbundle-ios.$(RESET)"
|
||||
|
||||
jsbundle-ios: export TARGET ?= ios
|
||||
jsbundle-ios: export TARGET := ios
|
||||
jsbundle-ios: export BUILD_ENV ?= prod
|
||||
jsbundle-ios: ##@jsbundle Compile JavaScript and Clojure into index.ios.js
|
||||
@git clean -dxf -f ./index.$(TARGET).js && \
|
||||
lein jsbundle-ios && \
|
||||
node prepare-modules.js
|
||||
|
||||
prod-build-desktop: jsbundle-desktop ##@legacy temporary legacy alias for jsbundle-desktop
|
||||
@echo "${YELLOW}This a deprecated target name, use jsbundle-desktop.$(RESET)"
|
||||
|
||||
jsbundle-desktop: export TARGET ?= $(HOST_OS)
|
||||
jsbundle-desktop: export BUILD_ENV ?= prod
|
||||
jsbundle-desktop: ##@jsbundle Compile JavaScript and Clojure into index.desktop.js
|
||||
git clean -qdxf -f ./index.desktop.js desktop/ && \
|
||||
lein jsbundle-desktop && \
|
||||
node prepare-modules.js
|
||||
yarn shadow-cljs release mobile
|
||||
|
||||
#--------------
|
||||
# Clojure REPL
|
||||
# -------------
|
||||
# status-go lib
|
||||
#--------------
|
||||
|
||||
_watch-%: ##@watch Start development for device
|
||||
$(eval SYSTEM := $(word 2, $(subst -, , $@)))
|
||||
$(eval DEVICE := $(word 3, $(subst -, , $@)))
|
||||
clj -R:dev build.clj watch --platform $(SYSTEM) --$(SYSTEM)-device $(DEVICE)
|
||||
status-go-android: SHELL := /bin/sh
|
||||
status-go-android: ##@status-go Compile status-go for Android app
|
||||
nix/scripts/build.sh targets.status-go.mobile.android
|
||||
|
||||
watch-ios-real: export TARGET := ios
|
||||
watch-ios-real: _watch-ios-real
|
||||
watch-ios-simulator: export TARGET := ios
|
||||
watch-ios-simulator: _watch-ios-simulator
|
||||
watch-android-real: export TARGET := android
|
||||
watch-android-real: _watch-android-real
|
||||
watch-android-avd: export TARGET := android
|
||||
watch-android-avd: _watch-android-avd
|
||||
watch-android-genymotion: export TARGET ?= android
|
||||
watch-android-genymotion: _watch-android-genymotion
|
||||
|
||||
watch-desktop: export TARGET ?= $(HOST_OS)
|
||||
watch-desktop:
|
||||
clj -R:dev build.clj watch --platform desktop
|
||||
|
||||
desktop-server: export TARGET ?= $(HOST_OS)
|
||||
desktop-server:
|
||||
node ubuntu-server.js
|
||||
status-go-ios: SHELL := /bin/sh
|
||||
status-go-ios: ##@status-go Compile status-go for iOS app
|
||||
nix/scripts/build.sh targets.status-go.mobile.ios
|
||||
|
||||
#--------------
|
||||
# Run React-Native app
|
||||
# Watch, Build & Review changes
|
||||
#--------------
|
||||
_run-%:
|
||||
$(eval SYSTEM := $(word 2, $(subst -, , $@)))
|
||||
npx react-native run-$(SYSTEM)
|
||||
|
||||
run-clojure: export TARGET := clojure
|
||||
run-clojure: ##@run Watch for and build Clojure changes for mobile
|
||||
yarn shadow-cljs watch mobile
|
||||
|
||||
run-metro: export TARGET := clojure
|
||||
run-metro: ##@run Start Metro to build React Native changes
|
||||
@scripts/start-react-native.sh
|
||||
|
||||
run-re-frisk: export TARGET := clojure
|
||||
run-re-frisk: ##@run Start re-frisk server
|
||||
yarn shadow-cljs run re-frisk-remote.core/start
|
||||
|
||||
# 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: ##@run Build Android APK and start it on the device
|
||||
npx react-native run-android --appIdSuffix debug
|
||||
|
||||
run-desktop: export TARGET ?= $(HOST_OS)
|
||||
run-desktop: _run-desktop ##@run Run Desktop build
|
||||
|
||||
SIMULATOR=
|
||||
run-ios: export TARGET := ios
|
||||
run-ios: ##@run Build iOS app and start it in a simulator/device
|
||||
@@ -285,21 +276,21 @@ endif
|
||||
# Tests
|
||||
#--------------
|
||||
|
||||
lint: export TARGET := lein
|
||||
lint: export TARGET := clojure
|
||||
lint: ##@test Run code style checks
|
||||
lein cljfmt check
|
||||
yarn clj-kondo --confg .clj-kondo/config.edn --lint src && \
|
||||
TARGETS=$$(git diff --diff-filter=d --cached --name-only src && echo src) && \
|
||||
clojure -Scp "$$CLASS_PATH" -m cljfmt.main check --indents indentation.edn $$TARGETS
|
||||
|
||||
lint-fix: export TARGET := lein
|
||||
lint-fix: export TARGET := clojure
|
||||
lint-fix: ##@test Run code style checks and fix issues
|
||||
lein cljfmt fix
|
||||
clojure -Scp "$$CLASS_PATH" -m cljfmt.main fix src --indents indentation.edn
|
||||
|
||||
test: export TARGET := lein
|
||||
test: export TARGET := clojure
|
||||
test: ##@test Run tests once in NodeJS
|
||||
lein with-profile test doo node test once
|
||||
|
||||
test-auto: export TARGET := lein
|
||||
test-auto: ##@test Run tests in interactive (auto) mode in NodeJS
|
||||
lein with-profile test doo node test
|
||||
yarn shadow-cljs compile mocks && \
|
||||
yarn shadow-cljs compile test && \
|
||||
node --require ./test-resources/override.js target/test/test.js
|
||||
|
||||
coverage: ##@test Run tests once in NodeJS generating coverage
|
||||
@scripts/run-coverage.sh
|
||||
@@ -307,29 +298,16 @@ coverage: ##@test Run tests once in NodeJS generating coverage
|
||||
#--------------
|
||||
# Other
|
||||
#--------------
|
||||
react-native-desktop: export TARGET ?= $(HOST_OS)
|
||||
react-native-desktop: export _NIX_PURE ?= true
|
||||
react-native-desktop: ##@other Start react native packager
|
||||
@scripts/start-react-native.sh
|
||||
|
||||
react-native-android: export TARGET := android
|
||||
react-native-android: export _NIX_PURE ?= true
|
||||
react-native-android: ##@other Start react native packager for Android client
|
||||
@scripts/start-react-native.sh
|
||||
|
||||
react-native-ios: export TARGET := ios
|
||||
react-native-ios: export _NIX_PURE ?= true
|
||||
react-native-ios: ##@other Start react native packager for Android client
|
||||
@scripts/start-react-native.sh
|
||||
|
||||
geth-connect: export TARGET := android-env
|
||||
geth-connect: ##@other Connect to Geth on the device
|
||||
adb forward tcp:8545 tcp:8545 && \
|
||||
build/bin/geth attach http://localhost:8545
|
||||
|
||||
android-clean: export TARGET := gradle
|
||||
android-clean: ##@prepare Clean Gradle state
|
||||
git clean -dxf -f ./android/app/build
|
||||
[ -d android/.gradle ] && cd android && ./gradlew clean
|
||||
git clean -dxf -f ./android/app/build; \
|
||||
[[ -d android/.gradle ]] && cd android && ./gradlew clean
|
||||
|
||||
android-ports: export TARGET := android-env
|
||||
android-ports: ##@other Add proxies to Android Device/Simulator
|
||||
@@ -348,44 +326,19 @@ android-logcat: ##@other Read status-react logs from Android phone using adb
|
||||
|
||||
android-install: export TARGET := android-env
|
||||
android-install: export BUILD_TYPE ?= release
|
||||
android-install:
|
||||
android-install: ##@other Install APK on device using adb
|
||||
adb install result/app-$(BUILD_TYPE).apk
|
||||
|
||||
_list: SHELL := /bin/sh
|
||||
_list:
|
||||
@$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$'
|
||||
|
||||
_unknown-startdev-target-%: SHELL := /bin/sh
|
||||
_unknown-startdev-target-%:
|
||||
@ echo "Unknown target device '$*'. Supported targets:"; \
|
||||
${MAKE} _list | grep "watch-" | sed s/watch-/startdev-/; \
|
||||
exit 1
|
||||
#--------------
|
||||
# REPLs
|
||||
#--------------
|
||||
|
||||
_startdev-%: SHELL := /bin/sh
|
||||
_startdev-%:
|
||||
$(eval SYSTEM := $(word 2, $(subst -, , $@)))
|
||||
$(eval DEVICE := $(word 3, $(subst -, , $@)))
|
||||
@ if [ -z "$(DEVICE)" ]; then \
|
||||
$(MAKE) watch-$(SYSTEM) || $(MAKE) _unknown-startdev-target-$@; \
|
||||
else \
|
||||
$(MAKE) watch-$(SYSTEM)-$(DEVICE) || $(MAKE) _unknown-startdev-target-$@; \
|
||||
fi
|
||||
repl-clojure: export TARGET := clojure
|
||||
repl-clojure: ##@repl Start Clojure repl for mobile App
|
||||
yarn shadow-cljs cljs-repl mobile
|
||||
|
||||
startdev-android-avd: export TARGET = android
|
||||
startdev-android-avd: _startdev-android-avd
|
||||
startdev-android-avd: ##@startdev Compile Clojure for Android AVD
|
||||
startdev-android-genymotion: export TARGET = android
|
||||
startdev-android-genymotion: _startdev-android-genymotion
|
||||
startdev-android-genymotion: ##@startdev Compile Clojure for Genymotion
|
||||
startdev-android-real: export TARGET = android
|
||||
startdev-android-real: _startdev-android-real
|
||||
startdev-android-real: ##@startdev Compile Clojure for Android real device
|
||||
startdev-ios-real: export TARGET = ios
|
||||
startdev-ios-real: _startdev-ios-real
|
||||
startdev-ios-real: ##@startdev Compile Clojure for iOS device
|
||||
startdev-ios-simulator: export TARGET = ios
|
||||
startdev-ios-simulator: _startdev-ios-simulator
|
||||
startdev-ios-simulator: ##@startdev Compile Clojure for iOS simulator
|
||||
|
||||
startdev-desktop: export TARGET ?= $(HOST_OS)
|
||||
startdev-desktop: _startdev-desktop
|
||||
repl-nix: nix-repl ##@repl Start an interactive Nix REPL
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
|
||||
# Status - a Mobile Ethereum Operating System
|
||||
|
||||
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80"/>](https://play.google.com/store/apps/details?id=im.status.ethereum)
|
||||
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80"/>](https://f-droid.org/packages/im.status.ethereum/)
|
||||
[<img src="doc/github_badge.png" alt="Get it on Github" height="80"/>](https://github.com/status-im/status-react/releases)
|
||||
|
||||
Join us in creating a browser, messenger, and gateway to a decentralized world. Status is a free (libre) open source mobile client targeting Android & iOS built entirely on [Ethereum](https://ethereum.org/) technologies. That's right, no middle men and `go-ethereum` running directly on your device.
|
||||
|
||||
[](https://www.youtube.com/watch?v=oDCSEmS9c3o "Getting started with Status")
|
||||
@@ -21,10 +24,10 @@ Go straight to the [docs](https://status.im/docs) or [join our chat](https://joi
|
||||
|
||||
- **Developer**
|
||||
Developers are the heart of software and to keep Status beating we need all the help we can get! If you're looking to code in ClojureScript or Golang then Status is the project for you! We use React Native and there is even some Java/Objective-C too!
|
||||
Want to learn more about it? Start by reading our [Developer Introduction](https://status.im/developer_tools/) which guides you through the technology stack and start browsing [beginner issues](https://github.com/status-im/status-react/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20). Then you can read how to [Build Status](https://status.im/build_status/), which talks about managing project dependencies, coding guidelines and testing procedures.
|
||||
Want to learn more about it? Start by reading our [Developer Introduction](https://status.im/developer_tools/) which guides you through the technology stack and start browsing [beginner issues](https://github.com/status-im/status-react/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22good%20first%20issue%22%20). Then you can read how to [Build Status](https://status.im/technical/build_status/), which talks about managing project dependencies, coding guidelines and testing procedures.
|
||||
|
||||
- **Community Management**
|
||||
Metcalfe's law states that the value of a network is proportional to the square of the number of connected users of the system - without community Status is meaningless. We're looking to create a positive, fun environment to explore new ideas, experiment and grow the Status community. Building a community takes a lot of work but the people you'll meet and long lasting relationships you form will be well worth it, check out our [Community Principles](https://status.im/contribute/our_principles.html)
|
||||
Metcalfe's law states that the value of a network is proportional to the square of the number of connected users of the system - without community Status is meaningless. We're looking to create a positive, fun environment to explore new ideas, experiment and grow the Status community. Building a community takes a lot of work but the people you'll meet and long lasting relationships you form will be well worth it, check out our [Mission and Community Principles](https://status.im/about)
|
||||
|
||||
- **Specification / Documentation**
|
||||
John Dewey once said "Education is not preparation for life; education is life *itself* ". Developers & Designers need guidance and it all starts from documentation and specifications. Our software is only as good as its documentation, head over to our [docs](https://status.im/docs) and see how you can improve what we have.
|
||||
@@ -33,7 +36,7 @@ John Dewey once said "Education is not preparation for life; education is life *
|
||||
Content is King, keeping our blog up to date and informing the community of news helps keep everyone on the same page. [Jump into our chat](https://join.status.im/chat/public/status) and discuss with the team how you can contribute!
|
||||
|
||||
- **Testers**
|
||||
It's bug hunting season! Status is currently in Alpha and there is sure to be a bunch of learning, [build status from scratch](https://status.im/build_status/) or if an android user check out our [nightly builds](https://status.im/nightly). You can shake your phone to submit bug reports, or start browsing our [Github Issues](https://github.com/status-im/status-react/issues). Every bug you find brings Status closer to stable, usable software for everyone to enjoy!
|
||||
It's bug hunting season! Status is currently under active development and there is sure to be a bunch of learning, [build status from scratch](https://status.im/technical/build_status/) or if an android user check out our [nightly builds](https://status.im/nightly). You can shake your phone to submit bug reports, or start browsing our [Github Issues](https://github.com/status-im/status-react/issues). Every bug you find brings Status closer to stable, usable software for everyone to enjoy!
|
||||
|
||||
- **Security**
|
||||
Status is a visual interface to make permanent changes on the Blockchain, it handles crypto-tokens that have real value and allows 3rd party code execution. Security is paramount to its success. You are given permission to break Status as hard as you can, as long as you share your findings with the community!
|
||||
@@ -46,7 +49,7 @@ View our [API Docs](https://status.im/developer_tools/status_web_api.html) and l
|
||||
|
||||
## Give me Binaries!
|
||||
|
||||
You can get our Beta builds for both Android and iOS on our [website](https://status.im), through our [nightly builds](https://status.im/nightly/) or by [building it yourself](https://status.im/build_status/).
|
||||
You can get our Beta builds for both Android and iOS on our [website](https://status.im), through our [nightly builds](https://status.im/nightly/) or by [building it yourself](https://status.im/technical/build_status/).
|
||||
|
||||
## Core Contributors
|
||||
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
# Description
|
||||
|
||||
This document provides information on how to start developing Status App.
|
||||
|
||||
# Getting Started
|
||||
|
||||
To start developing start a shell for platform you are interested in.
|
||||
```
|
||||
make shell TARGET=android
|
||||
```
|
||||
This step will take a while the first time as it will download all dependencies.
|
||||
|
||||
To build the app, your can simply run on of the following:
|
||||
```
|
||||
make release-android
|
||||
make release-ios
|
||||
```
|
||||
For more `make` targets run `make help`.
|
||||
|
||||
# Development
|
||||
|
||||
There are three steps necessary to start development, in this case for Android:
|
||||
|
||||
1. `make startdev-android-real` - Compiles Clojure into JavaScript for real device
|
||||
2. `make react-native-android` - Watches JavaScript code and updates the App
|
||||
3. `make run-android` - Builds the Android app and starts it on the device
|
||||
|
||||
The first two will continue watching for changes and keep re-building the app.
|
||||
The last one will exit once the app is up and ready.
|
||||
|
||||
# Manual Steps
|
||||
|
||||
There are a few manual steps you might want to do in order to start contributing.
|
||||
|
||||
## Genymotion Virtualization
|
||||
|
||||
Optionally set up Genymotion if you don't want to use Android Virtual Device:
|
||||
|
||||
https://www.genymotion.com
|
||||
|
||||
## Android Development Environment
|
||||
|
||||
You can also setup Android Development Environment + Simulator:
|
||||
|
||||
https://facebook.github.io/react-native/docs/getting-started.html
|
||||
|
||||
## Configure GitHub Account
|
||||
|
||||
The optimal way of pushing to GitHubis using SSH instead of user/pass auth.
|
||||
|
||||
It's recommented that you [add your public SSH key to your GitHub account](https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account).
|
||||
|
||||
## Configure GPG Keys for signing commits
|
||||
|
||||
In order to increase security we require all commits in `status-react` repo to be signed with a GPG key.
|
||||
|
||||
Steps:
|
||||
1. [Generate a new GPG key](https://help.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key)
|
||||
2. [Setup Git to use your GPG key](https://help.github.com/en/github/authenticating-to-github/telling-git-about-your-signing-key)
|
||||
3. [Setup Git to sign commits](https://help.github.com/en/github/authenticating-to-github/signing-commits)
|
||||
4. [Setup GitHub to validate commits](https://help.github.com/en/github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account)
|
||||
@@ -1,53 +0,0 @@
|
||||
import re
|
||||
|
||||
# To learn about Buck see [Docs](https://buckbuild.com/).
|
||||
# To run your application with Buck:
|
||||
# - install Buck
|
||||
# - `npm start` - to start the packager
|
||||
# - `cd android`
|
||||
# - `cp ~/.android/debug.keystore keystores/debug.keystore`
|
||||
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
|
||||
# - `buck install -r android/app` - compile, install and run application
|
||||
#
|
||||
|
||||
lib_deps = []
|
||||
create_aar_targets(glob(["libs/*.aar"]))
|
||||
create_jar_targets(glob(["libs/*.jar"]))
|
||||
|
||||
android_library(
|
||||
name = 'all-libs',
|
||||
exported_deps = lib_deps
|
||||
)
|
||||
|
||||
android_library(
|
||||
name = 'app-code',
|
||||
srcs = glob([
|
||||
'src/main/java/**/*.java',
|
||||
]),
|
||||
deps = [
|
||||
':all-libs',
|
||||
':build_config',
|
||||
':res',
|
||||
],
|
||||
)
|
||||
|
||||
android_build_config(
|
||||
name = 'build_config',
|
||||
package = 'im.status.ethereum',
|
||||
)
|
||||
|
||||
android_resource(
|
||||
name = 'res',
|
||||
res = 'src/main/res',
|
||||
package = 'im.status.ethereum',
|
||||
)
|
||||
|
||||
android_binary(
|
||||
name = 'app',
|
||||
package_type = 'debug',
|
||||
manifest = 'src/main/AndroidManifest.xml',
|
||||
keystore = '//android/keystores:debug',
|
||||
deps = [
|
||||
':app-code',
|
||||
],
|
||||
)
|
||||
@@ -21,7 +21,7 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy
|
||||
* bundleAssetName: "index.android.bundle",
|
||||
*
|
||||
* // the entry file for bundle generation
|
||||
* entryFile: "index.android.js",
|
||||
* entryFile: "index.js",
|
||||
*
|
||||
* // whether to bundle JS and assets in debug mode
|
||||
* bundleInDebug: false,
|
||||
@@ -70,7 +70,7 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy
|
||||
* inputExcludes: ["android/**", "ios/**"],
|
||||
*
|
||||
* // override which node gets called and with what additional arguments
|
||||
* nodeExecutableAndArgs: ["node"],
|
||||
* nodeExecutableAndArgs: ["node", "--max-old-space-size=8192"],
|
||||
*
|
||||
* // supply additional arguments to the packager
|
||||
* extraPackagerArgs: []
|
||||
@@ -78,8 +78,13 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy
|
||||
*/
|
||||
project.ext.react = [
|
||||
nodeExecutableAndArgs: ["node", "--max-old-space-size=16384"],
|
||||
entryFile: "index.android.js",
|
||||
enableHermes: true, // clean and rebuild if changing. NOTE: Hermes engine is required for Android 64-bit builds running on 64 devices, to guard against a hang in the UI thread after invoking status-go
|
||||
entryFile: "index.js",
|
||||
/* NOTE: Hermes engine is required for Android 64-bit builds running on 64 devices,
|
||||
* to guard against a hang in the UI thread after invoking status-go.
|
||||
* Also a clean and rebuild is required when changing this. */
|
||||
enableHermes: true,
|
||||
/* Disable 'The first definition was here.' warnings */
|
||||
hermesFlagsRelease: ["-w"],
|
||||
bundleInPr: true,
|
||||
inputExcludes: ["android/**", "ios/**", "react-native/**", "src/**", "test/**"]
|
||||
]
|
||||
@@ -118,6 +123,18 @@ def jscFlavor = 'org.webkit:android-jsc:+'
|
||||
*/
|
||||
def enableHermes = project.ext.react.get("enableHermes", false);
|
||||
|
||||
/**
|
||||
* Exclude google library so we can publish to external android stores
|
||||
*/
|
||||
def googleFree = project.env.get("GOOGLE_FREE", 0) == '1'
|
||||
|
||||
def getCommitHash = { ->
|
||||
if (project.hasProperty("commitHash")) {
|
||||
return project.commitHash
|
||||
}
|
||||
return "unknown"
|
||||
}
|
||||
|
||||
def getVersionCode = { ->
|
||||
new ByteArrayOutputStream().withStream { stdOut ->
|
||||
if (project.hasProperty("versionCode")) {
|
||||
@@ -174,6 +191,7 @@ android {
|
||||
versionCode getVersionCode()
|
||||
versionName getVersionName()
|
||||
missingDimensionStrategy 'react-native-camera', 'general'
|
||||
manifestPlaceholders = [commitHash: getCommitHash()]
|
||||
/* this needs to be empty if we want APKs split by ABIs */
|
||||
if (!getEnvOrConfig('ANDROID_ABI_SPLIT').toBoolean()) {
|
||||
ndk {
|
||||
@@ -199,6 +217,12 @@ android {
|
||||
exclude '/lib/mips64/**'
|
||||
exclude '/lib/armeabi/**'
|
||||
|
||||
pickFirst '**/armeabi-v7a/libc++_shared.so'
|
||||
pickFirst '**/x86/libc++_shared.so'
|
||||
pickFirst '**/arm64-v8a/libc++_shared.so'
|
||||
pickFirst '**/x86_64/libc++_shared.so'
|
||||
pickFirst '**/x86/libjsc.so'
|
||||
pickFirst '**/armeabi-v7a/libjsc.so'
|
||||
|
||||
/** Fix for: Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForDebug'.
|
||||
* with recent version of ndk (17.0.4754217)
|
||||
@@ -217,6 +241,8 @@ android {
|
||||
keyAlias 'androiddebugkey'
|
||||
keyPassword 'android'
|
||||
}
|
||||
/* Caution! In production, you need to generate your own keystore file.
|
||||
* See: https://facebook.github.io/react-native/docs/signed-apk-android */
|
||||
release {
|
||||
/* environment variables take precedence over gradle.properties file */
|
||||
storeFile file(getEnvOrConfig('KEYSTORE_PATH').replaceAll("~", System.properties['user.home']))
|
||||
@@ -242,11 +268,11 @@ android {
|
||||
resValue "string", "build_config_package", "im.status.ethereum"
|
||||
}
|
||||
release {
|
||||
// Caution! In production, you need to generate your own keystore file.
|
||||
// see https://facebook.github.io/react-native/docs/signed-apk-android.
|
||||
minifyEnabled enableProguardInReleaseBuilds
|
||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||
signingConfig signingConfigs.release
|
||||
if (getEnvOrConfig('ANDROID_APK_SIGNED').toBoolean()) {
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
}
|
||||
pr {
|
||||
initWith release
|
||||
@@ -287,6 +313,19 @@ dependencies {
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
|
||||
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
||||
|
||||
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.fbjni'
|
||||
}
|
||||
// TODO Uncomment once Flipper does not cause webview crashes in Debug mode
|
||||
// debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
|
||||
// exclude group:'com.facebook.flipper'
|
||||
// }
|
||||
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.flipper'
|
||||
}
|
||||
|
||||
if (enableHermes) {
|
||||
def hermesPath = "../../node_modules/hermes-engine/android/";
|
||||
debugImplementation files(hermesPath + "hermes-debug.aar")
|
||||
@@ -296,6 +335,16 @@ dependencies {
|
||||
implementation jscFlavor
|
||||
}
|
||||
|
||||
if (googleFree) {
|
||||
implementation(project(':react-native-device-info')) {
|
||||
exclude group: 'com.google.firebase'
|
||||
exclude group: 'com.google.android.gms'
|
||||
exclude group: 'com.android.installreferrer'
|
||||
}
|
||||
} else {
|
||||
implementation 'com.google.firebase:firebase-messaging:23.0.0'
|
||||
}
|
||||
|
||||
// react-native-screens
|
||||
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
|
||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
|
||||
@@ -309,8 +358,9 @@ dependencies {
|
||||
implementation project(':react-native-status')
|
||||
implementation project(':react-native-status-keycard')
|
||||
implementation 'com.github.status-im:function:0.0.1'
|
||||
implementation 'com.facebook.fresco:fresco:2.0.0'
|
||||
implementation 'com.facebook.fresco:animated-gif:2.0.0'
|
||||
implementation 'com.facebook.fresco:fresco:2.2.0'
|
||||
implementation 'com.facebook.fresco:animated-gif:2.2.0'
|
||||
implementation "com.squareup.okhttp3:okhttp-tls:3.12.12"
|
||||
}
|
||||
|
||||
def getLocalNDKDir = { ->
|
||||
@@ -330,9 +380,9 @@ def getLocalNDKDir = { ->
|
||||
// puts all compile dependencies into folder libs for BUCK to use
|
||||
task hemroidBuild(type: Exec) {
|
||||
def localNdkDir = getLocalNDKDir()
|
||||
def ndkDir = System.env.ANDROID_NDK
|
||||
def ndkDir = System.env.ANDROID_NDK_ROOT
|
||||
if (localNdkDir != null) {
|
||||
ndkDir = localNdkDir
|
||||
ndkDir = localNdkDir
|
||||
}
|
||||
|
||||
def execPath = "$ndkDir/ndk-build"
|
||||
@@ -346,3 +396,7 @@ task hemroidBuild(type: Exec) {
|
||||
preBuild.dependsOn hemroidBuild
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
|
||||
if (!googleFree) {
|
||||
apply plugin: "com.google.gms.google-services"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "854811651919",
|
||||
"firebase_url": "https://status-react-app.firebaseio.com",
|
||||
"project_id": "status-react-app",
|
||||
"storage_bucket": "status-react-app.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:11ee7444ded8a00a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
|
||||
"client_type": 2,
|
||||
"ios_info": {
|
||||
"bundle_id": "im.status.ethereum"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:15dbe4af1e06ca3e005f3a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum.debug"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
|
||||
"client_type": 2,
|
||||
"ios_info": {
|
||||
"bundle_id": "im.status.ethereum"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:1d0d69fe8c1bb89b005f3a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum.pr"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
|
||||
"client_type": 2,
|
||||
"ios_info": {
|
||||
"bundle_id": "im.status.ethereum"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
||||
@@ -15,6 +15,9 @@
|
||||
|
||||
# React Native
|
||||
|
||||
-keep class com.facebook.hermes.unicode.** { *; }
|
||||
-keep class com.facebook.jni.** { *; }
|
||||
|
||||
# Keep our interfaces so they can be used by other ProGuard rules.
|
||||
# See http://sourceforge.net/p/proguard/bugs/466/
|
||||
-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
|
||||
@@ -61,3 +64,15 @@
|
||||
-dontwarn java.nio.file.*
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
||||
-dontwarn okio.**
|
||||
|
||||
# fast-image
|
||||
|
||||
-keep public class com.dylanvann.fastimage.* {*;}
|
||||
-keep public class com.dylanvann.fastimage.** {*;}
|
||||
-keep public class * implements com.bumptech.glide.module.GlideModule
|
||||
-keep public class com.bumptech.glide.annotation.GlideModule
|
||||
-keep public class * extends com.bumptech.glide.module.AppGlideModule
|
||||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
|
||||
**[] $VALUES;
|
||||
public *;
|
||||
}
|
||||
@@ -2,7 +2,10 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<!-- 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"/>
|
||||
<!-- 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"/>
|
||||
|
||||
<application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:usesCleartextTraffic="true" />
|
||||
</manifest>
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
||||
* directory of this source tree.
|
||||
*/
|
||||
package im.status.ethereum;
|
||||
|
||||
import android.content.Context;
|
||||
import com.facebook.flipper.android.AndroidFlipperClient;
|
||||
import com.facebook.flipper.android.utils.FlipperUtils;
|
||||
import com.facebook.flipper.core.FlipperClient;
|
||||
import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
|
||||
import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.inspector.DescriptorMapping;
|
||||
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
|
||||
// import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
|
||||
// import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.modules.network.NetworkingModule;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
public class ReactNativeFlipper {
|
||||
public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
|
||||
if (FlipperUtils.shouldEnableFlipper(context)) {
|
||||
final FlipperClient client = AndroidFlipperClient.getInstance(context);
|
||||
|
||||
client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
|
||||
client.addPlugin(new ReactFlipperPlugin());
|
||||
client.addPlugin(new DatabasesFlipperPlugin(context));
|
||||
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
|
||||
client.addPlugin(CrashReporterPlugin.getInstance());
|
||||
|
||||
// TODO Uncomment once Flipper does not cause webview crashes in Debug mode
|
||||
// NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
|
||||
// NetworkingModule.setCustomClientBuilder(
|
||||
// new NetworkingModule.CustomClientBuilder() {
|
||||
// @Override
|
||||
// public void apply(OkHttpClient.Builder builder) {
|
||||
// builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
|
||||
// }
|
||||
// });
|
||||
// client.addPlugin(networkFlipperPlugin);
|
||||
client.start();
|
||||
|
||||
// Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
|
||||
// Hence we run if after all native modules have been initialized
|
||||
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
|
||||
if (reactContext == null) {
|
||||
reactInstanceManager.addReactInstanceEventListener(
|
||||
new ReactInstanceManager.ReactInstanceEventListener() {
|
||||
@Override
|
||||
public void onReactContextInitialized(ReactContext reactContext) {
|
||||
reactInstanceManager.removeReactInstanceEventListener(this);
|
||||
reactContext.runOnNativeModulesQueueThread(
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
client.addPlugin(new FrescoFlipperPlugin());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
client.addPlugin(new FrescoFlipperPlugin());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,15 +17,12 @@
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="28" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
||||
|
||||
<uses-permission android:name="com.android.vending.BILLING" />
|
||||
|
||||
<!-- these permissions should be removed -->
|
||||
<!-- React Native unnecessary permissions (https://github.com/facebook/react-native/issues/5886) -->
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
|
||||
<application
|
||||
tools:replace="android:allowBackup"
|
||||
@@ -36,6 +33,7 @@
|
||||
android:name=".MainApplication"
|
||||
android:largeHeap="true"
|
||||
android:usesCleartextTraffic="true">
|
||||
<meta-data android:name="commitHash" android:value="${commitHash}"/>
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
@@ -71,7 +69,7 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
|
||||
<service android:name="im.status.ethereum.module.ForegroundService"></service>
|
||||
<service android:name="im.status.ethereum.pushnotifications.ForegroundService"></service>
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.provider"
|
||||
@@ -83,6 +81,12 @@
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_provider_paths" />
|
||||
</provider>
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_icon"
|
||||
android:resource="@drawable/notification_icon" />
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_color"
|
||||
android:resource="@color/notification_icon_color" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -23,17 +23,21 @@ import android.provider.Settings;
|
||||
import android.os.Bundle;
|
||||
import com.facebook.react.ReactActivityDelegate;
|
||||
import com.facebook.react.ReactRootView;
|
||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
|
||||
|
||||
import com.facebook.react.ReactFragmentActivity;
|
||||
import com.facebook.react.ReactActivity;
|
||||
import com.reactnativenavigation.NavigationActivity;
|
||||
import com.facebook.react.modules.core.PermissionListener;
|
||||
import org.devio.rn.splashscreen.SplashScreen;
|
||||
|
||||
import java.util.Properties;
|
||||
import im.status.ethereum.module.StatusThreadPoolExecutor;
|
||||
import im.status.ethereum.MainApplication;
|
||||
|
||||
public class MainActivity extends ReactFragmentActivity
|
||||
public class MainActivity extends NavigationActivity
|
||||
implements ActivityCompat.OnRequestPermissionsResultCallback{
|
||||
|
||||
|
||||
@@ -97,6 +101,16 @@ public class MainActivity extends ReactFragmentActivity
|
||||
return intent;
|
||||
}
|
||||
|
||||
private void tryToEmit(String eventName, WritableMap event) {
|
||||
try {
|
||||
((MainApplication) getApplication()).getReactNativeHost()
|
||||
.getReactInstanceManager()
|
||||
.getCurrentReactContext()
|
||||
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
||||
.emit("url", event);
|
||||
} catch(Exception e) {/* we expect NPE on first start, which is OK because we have a fallback */}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNewIntent(final Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
@@ -167,6 +181,16 @@ public class MainActivity extends ReactFragmentActivity
|
||||
@Override
|
||||
public void run() {
|
||||
System.loadLibrary("status-logs");
|
||||
|
||||
// when app is started but the Activity has been destroyed, the deep linking url event is
|
||||
// not emitted when coming back to foreground. This is a workaround. If the problem is
|
||||
// resolved in react-native this code should be removed
|
||||
if (getIntent().getData() != null) {
|
||||
WritableMap event = Arguments.createMap();
|
||||
event.putString("url", getIntent().getDataString());
|
||||
// on first start emit will (silently) fail, but the regular deep linking handler will work
|
||||
tryToEmit("url", event);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -178,14 +202,7 @@ public class MainActivity extends ReactFragmentActivity
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the main component registered from JavaScript.
|
||||
* This is used to schedule rendering of the component.
|
||||
*/
|
||||
@Override
|
||||
protected String getMainComponentName() {
|
||||
return "StatusIm";
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
@@ -199,7 +216,7 @@ public class MainActivity extends ReactFragmentActivity
|
||||
private static final Integer FREQUENCY_OF_REMINDER_IN_PERCENT = 5;
|
||||
|
||||
private boolean shouldShowRootedNotification() {
|
||||
if (RootUtil.isDeviceRooted()) {
|
||||
if (RootUtil.isDeviceRooted() && BuildConfig.ENABLE_ROOT_ALERT == "1") {
|
||||
if (userRejectedRootedNotification()) {
|
||||
return ((Math.random() * 100) < FREQUENCY_OF_REMINDER_IN_PERCENT);
|
||||
} else return true;
|
||||
@@ -242,14 +259,4 @@ public class MainActivity extends ReactFragmentActivity
|
||||
mPermissionListener = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ReactActivityDelegate createReactActivityDelegate() {
|
||||
return new ReactActivityDelegate(this, getMainComponentName()) {
|
||||
@Override
|
||||
protected ReactRootView createRootView() {
|
||||
return new RNGestureHandlerEnabledRootView(MainActivity.this);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,24 +2,31 @@ package im.status.ethereum;
|
||||
|
||||
import androidx.multidex.MultiDexApplication;
|
||||
import android.util.Log;
|
||||
import android.content.Context;
|
||||
import android.webkit.WebView;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import com.facebook.react.PackageList;
|
||||
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
|
||||
import com.facebook.react.bridge.JavaScriptExecutorFactory;
|
||||
|
||||
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
|
||||
import com.facebook.react.ReactApplication;
|
||||
import cl.json.RNSharePackage;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.reactnativenavigation.NavigationApplication;
|
||||
import com.reactnativenavigation.react.NavigationReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import im.status.ethereum.keycard.RNStatusKeycardPackage;
|
||||
import im.status.ethereum.module.StatusPackage;
|
||||
import im.status.ethereum.pushnotifications.PushNotificationPackage;
|
||||
import im.status.ethereum.StatusOkHttpClientFactory;
|
||||
|
||||
public class MainApplication extends MultiDexApplication implements ReactApplication {
|
||||
public class MainApplication extends NavigationApplication {
|
||||
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
private final ReactNativeHost mReactNativeHost = new NavigationReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
@@ -28,16 +35,18 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
StatusPackage statusPackage = new StatusPackage(RootUtil.isDeviceRooted());
|
||||
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
packages.add(statusPackage);
|
||||
packages.add(new ReactNativeDialogsPackage());
|
||||
packages.add(new RNStatusKeycardPackage());
|
||||
packages.add(new PushNotificationPackage());
|
||||
return packages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getJSMainModuleName() {
|
||||
return "index.android";
|
||||
return "index";
|
||||
}
|
||||
};
|
||||
|
||||
@@ -49,6 +58,40 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
|
||||
OkHttpClientProvider.setOkHttpClientFactory(new StatusOkHttpClientFactory());
|
||||
|
||||
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1");
|
||||
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
}
|
||||
/**
|
||||
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
|
||||
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
*
|
||||
* @param context
|
||||
* @param reactInstanceManager
|
||||
*/
|
||||
private static void initializeFlipper(
|
||||
Context context, ReactInstanceManager reactInstanceManager) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
try {
|
||||
/*
|
||||
We use reflection here to pick up the class that initializes Flipper,
|
||||
since Flipper library is not available in release mode
|
||||
*/
|
||||
Class<?> aClass = Class.forName("im.status.ethereum.ReactNativeFlipper");
|
||||
aClass
|
||||
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
|
||||
.invoke(null, context, reactInstanceManager);
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package im.status.ethereum;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.facebook.react.modules.network.OkHttpClientFactory;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.tls.HandshakeCertificates;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.lang.RuntimeException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.security.cert.CertificateFactory;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
import im.status.ethereum.module.StatusPackage;
|
||||
|
||||
class StatusOkHttpClientFactory implements OkHttpClientFactory {
|
||||
public OkHttpClient createNewNetworkModuleClient() {
|
||||
String certPem = StatusPackage.getImageTLSCert();
|
||||
X509Certificate cert;
|
||||
|
||||
try {
|
||||
CertificateFactory cf = CertificateFactory.getInstance("X.509");
|
||||
cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(certPem.getBytes()));
|
||||
} catch(Exception e) {
|
||||
Log.e("StatusOkHttpClientFactory", "Could not parse certificate");
|
||||
cert = null;
|
||||
}
|
||||
|
||||
HandshakeCertificates clientCertificates = new HandshakeCertificates.Builder()
|
||||
.addPlatformTrustedCertificates()
|
||||
.addTrustedCertificate(cert)
|
||||
.build();
|
||||
|
||||
return OkHttpClientProvider.createClientBuilder()
|
||||
.sslSocketFactory(clientCertificates.sslSocketFactory(), clientCertificates.trustManager())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 317 B |
|
Before Width: | Height: | Size: 142 B |
|
Before Width: | Height: | Size: 155 B |
|
Before Width: | Height: | Size: 145 B |
|
Before Width: | Height: | Size: 167 B |
|
Before Width: | Height: | Size: 127 B |
|
Before Width: | Height: | Size: 308 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 370 B |
|
Before Width: | Height: | Size: 350 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 141 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 526 B |
|
Before Width: | Height: | Size: 614 B |
|
Before Width: | Height: | Size: 613 B |
|
Before Width: | Height: | Size: 537 B |
|
Before Width: | Height: | Size: 274 B |
|
Before Width: | Height: | Size: 307 B |
|
Before Width: | Height: | Size: 176 B |
|
Before Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 150 B |
|
Before Width: | Height: | Size: 139 B |
|
Before Width: | Height: | Size: 296 B |
|
Before Width: | Height: | Size: 132 B |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 325 B |
|
Before Width: | Height: | Size: 272 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 436 B |
|
Before Width: | Height: | Size: 206 B |
|
Before Width: | Height: | Size: 414 B |
|
Before Width: | Height: | Size: 302 B |
|
Before Width: | Height: | Size: 98 B |
|
Before Width: | Height: | Size: 730 B |
|
Before Width: | Height: | Size: 648 B |
|
Before Width: | Height: | Size: 576 B |
|
Before Width: | Height: | Size: 544 B |
|
Before Width: | Height: | Size: 398 B |
|
Before Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 816 B |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 464 B |
|
Before Width: | Height: | Size: 426 B |
|
Before Width: | Height: | Size: 430 B |
|
Before Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 473 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 823 B |
|
Before Width: | Height: | Size: 396 B |
|
Before Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 384 B |
|
Before Width: | Height: | Size: 188 B |
|
Before Width: | Height: | Size: 675 B |
|
Before Width: | Height: | Size: 438 B |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 324 B |