Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2dd07726c | ||
|
|
c99a967dec | ||
|
|
ea0c9e03cc | ||
|
|
c35c8609f8 | ||
|
|
daa86aaef9 | ||
|
|
571939ae07 | ||
|
|
74d2570185 | ||
|
|
e1f1e216a7 | ||
|
|
7daabf38a3 | ||
|
|
a90c195950 | ||
|
|
ffea7bbda9 | ||
|
|
6d5a064f1e | ||
|
|
cdb1bd2480 | ||
|
|
d96bab2511 | ||
|
|
1e1adfc5ea | ||
|
|
e4a750a0fd | ||
|
|
fb4f42d17b | ||
|
|
e456b19c44 | ||
|
|
7482a16628 | ||
|
|
d88b5ce803 | ||
|
|
d0480dbb7c | ||
|
|
1e3838c5ee | ||
|
|
30459be088 | ||
|
|
6c1be43eaf | ||
|
|
1f9267704a | ||
|
|
7e47e7db1e | ||
|
|
4c9565b080 | ||
|
|
b372baf3db | ||
|
|
70b8fcdfe2 | ||
|
|
128cc28597 | ||
|
|
c51d6defe2 | ||
|
|
9faa9b69b3 | ||
|
|
3a4a13b281 | ||
|
|
62fcd7cf0f | ||
|
|
2d5cca836a | ||
|
|
9296205ce5 | ||
|
|
15657ad1b2 | ||
|
|
c2e5a53a4e | ||
|
|
84c703c303 | ||
|
|
5ba64a5890 | ||
|
|
81f8ff8e14 | ||
|
|
8c403004b7 | ||
|
|
cabfdfa8e7 | ||
|
|
40d77685dd | ||
|
|
75ecc1eab1 | ||
|
|
11d66e5bc2 | ||
|
|
9d5f6d0b06 | ||
|
|
48c83ef759 | ||
|
|
c84fc71bf1 | ||
|
|
550602db12 | ||
|
|
5932f7dc99 | ||
|
|
b89dce3c2a | ||
|
|
8aba451be8 | ||
|
|
82dd805755 | ||
|
|
6e30d9faa8 | ||
|
|
070869b705 | ||
|
|
9dfa1069e5 | ||
|
|
99dd374c87 | ||
|
|
bac5ace90a | ||
|
|
34cb7d19e2 | ||
|
|
a98bbf6a71 | ||
|
|
8116f7a7b1 | ||
|
|
b3fbed1a1b | ||
|
|
4826bedba4 | ||
|
|
b81ac07636 | ||
|
|
2da2dfdad7 | ||
|
|
1036bff41b | ||
|
|
e15b9a224c | ||
|
|
82ab32c028 | ||
|
|
3541485338 | ||
|
|
8c82a84aee | ||
|
|
447945f46e | ||
|
|
16b2c90040 | ||
|
|
a210d59c4f | ||
|
|
fe0c5c2da7 | ||
|
|
8c91fbdd49 | ||
|
|
93e0c1fc5e | ||
|
|
9c7d215217 | ||
|
|
4668d6a285 | ||
|
|
6c9c92efc7 | ||
|
|
eff252c7c0 | ||
|
|
ab12c8a17d | ||
|
|
8b21d6ab53 | ||
|
|
36fa4bdb62 | ||
|
|
ed10ed70f7 | ||
|
|
8c089bb334 | ||
|
|
45b09603d2 | ||
|
|
857cb47ceb | ||
|
|
4782b3eb2a | ||
|
|
1a5008bcda | ||
|
|
c5c7f2eb27 | ||
|
|
25072cff9f | ||
|
|
e38cb0dee6 | ||
|
|
ba4a8b7d81 | ||
|
|
882e40d99f | ||
|
|
c304b1b623 | ||
|
|
1da39e064d | ||
|
|
3899368aa0 | ||
|
|
5ff1c8f1e4 | ||
|
|
7289940653 | ||
|
|
a253f8cedb | ||
|
|
daf52102ce | ||
|
|
fa20d4d9c3 | ||
|
|
dd26fcf42c | ||
|
|
8ac9cc08e1 | ||
|
|
c1230319e1 | ||
|
|
1e48442d67 | ||
|
|
94fbbbcb3c | ||
|
|
4dfd616583 | ||
|
|
85d00e47af | ||
|
|
438fd7a512 | ||
|
|
ee5f73f5ee | ||
|
|
b49c0ae58a | ||
|
|
f474edf67d | ||
|
|
dfd90617bf | ||
|
|
9782ba2ac3 | ||
|
|
f0e0c95fe0 | ||
|
|
ef7d977299 | ||
|
|
70a5ed255f | ||
|
|
be1347346c | ||
|
|
803e83ae02 | ||
|
|
64748c939b | ||
|
|
64fb344197 | ||
|
|
f27b402205 | ||
|
|
b22744f81e | ||
|
|
174e44c77d | ||
|
|
35c5d5ae6a | ||
|
|
ae00ecb3e0 | ||
|
|
8687282d63 | ||
|
|
04a97faa43 | ||
|
|
91d3cd8da8 | ||
|
|
e1a7146f4c | ||
|
|
5dc1bfe03b | ||
|
|
2d8ba41d89 | ||
|
|
457ed15e0b | ||
|
|
c11cf22bbb | ||
|
|
6ffdaa4e25 | ||
|
|
f56bd54fd3 | ||
|
|
394648b377 | ||
|
|
22a606cbab | ||
|
|
1b30b3be80 | ||
|
|
10434b53e0 | ||
|
|
0472523a7f | ||
|
|
770963447a | ||
|
|
874aa9866d | ||
|
|
32a3f85694 | ||
|
|
b88bbda3c5 | ||
|
|
fad5119ceb | ||
|
|
3697f63ab0 | ||
|
|
ba8cf8e863 | ||
|
|
ce1d2c4ed8 | ||
|
|
813c60f9e1 | ||
|
|
28a81f2dd8 | ||
|
|
826410b687 | ||
|
|
1aa7594c41 | ||
|
|
5ff1d70357 | ||
|
|
2a95f7cfac | ||
|
|
4654c4a543 | ||
|
|
baf3b8c9ed | ||
|
|
c6ff90954f | ||
|
|
c37498a6b2 | ||
|
|
c1b0f3ae98 | ||
|
|
5007dc757f | ||
|
|
b09f3fa6da | ||
|
|
b11c817392 | ||
|
|
247674b280 | ||
|
|
07ea097bb4 | ||
|
|
23d3a2db2a | ||
|
|
a85ca5bd3d | ||
|
|
0f036ca9c4 | ||
|
|
c19128e8b1 | ||
|
|
8d615801d1 | ||
|
|
4f6e1897fe | ||
|
|
93b5f8d180 | ||
|
|
0e607dc293 | ||
|
|
9ced0e4131 | ||
|
|
55ee800e18 | ||
|
|
676998b83b | ||
|
|
755ef19315 | ||
|
|
bc9b0f8c87 | ||
|
|
c8b063493b | ||
|
|
949e78a17e | ||
|
|
a821ec5a14 | ||
|
|
4648066ec7 | ||
|
|
e85bc539d3 | ||
|
|
c26d298573 | ||
|
|
cdde36ca28 | ||
|
|
3c3ef20769 | ||
|
|
2150f6db48 | ||
|
|
10101a23e6 | ||
|
|
f75fff9dd8 | ||
|
|
9aa31ddf02 | ||
|
|
9a61b30c50 | ||
|
|
f1652ee2c4 | ||
|
|
e1d2b9b1c1 | ||
|
|
e60c20bc10 | ||
|
|
1391c48e39 | ||
|
|
2343d9be1e | ||
|
|
7b85bfbd53 | ||
|
|
27bfbea6bd | ||
|
|
caaff74efe | ||
|
|
6ce58db7b9 | ||
|
|
fe788c3c26 | ||
|
|
1faa2e8f88 | ||
|
|
2b7430e008 | ||
|
|
62c8e73409 | ||
|
|
e0e9ab9adb | ||
|
|
b618f73063 | ||
|
|
8a88aac34d | ||
|
|
32ccca0912 | ||
|
|
2be78041e2 | ||
|
|
d941029661 | ||
|
|
f7c930964c | ||
|
|
0c25b77e54 | ||
|
|
d0deb94bf3 | ||
|
|
3a444f40f3 | ||
|
|
7537c6b033 | ||
|
|
e67f6c1cd3 | ||
|
|
1d7eb49c57 | ||
|
|
f6dfc64567 | ||
|
|
f08ac94596 | ||
|
|
52a8f8fc22 | ||
|
|
6859fb8f8e | ||
|
|
f45f96975e | ||
|
|
53d5ac4ea2 | ||
|
|
874f07bd77 | ||
|
|
4efb3c111a | ||
|
|
de2b5fb935 | ||
|
|
5f8d5fd57e | ||
|
|
763b291629 | ||
|
|
9f50686042 | ||
|
|
1652601a82 | ||
|
|
7a44db36fe | ||
|
|
338b241c8e | ||
|
|
91761a92c7 | ||
|
|
4b2a1db12f | ||
|
|
05d4b4b068 | ||
|
|
9c9b55fe3e | ||
|
|
6ec307a8bb | ||
|
|
86553eff14 | ||
|
|
60911a1dd1 | ||
|
|
21c2a525cf | ||
|
|
26ae330476 | ||
|
|
5442a8567c | ||
|
|
fa0777e25e | ||
|
|
c6c3e089ca | ||
|
|
6a30ce3de3 | ||
|
|
ac0a115f1d | ||
|
|
58476a43da | ||
|
|
92e6a1862b | ||
|
|
45cd66f908 | ||
|
|
a1e3bb3bd6 | ||
|
|
e6f290c06a | ||
|
|
65c872c6ec | ||
|
|
7acaff6167 | ||
|
|
08c97b078a | ||
|
|
e59b782b86 | ||
|
|
87483b1ef4 | ||
|
|
eb3ae3c928 | ||
|
|
3f12c04684 | ||
|
|
cf0fba7891 | ||
|
|
9f0fb41713 | ||
|
|
2a7da758aa | ||
|
|
0f00f8439f | ||
|
|
76d6825dd5 | ||
|
|
028f959bc3 | ||
|
|
bc6de0722f | ||
|
|
3e67a0f163 | ||
|
|
3787ac5b94 | ||
|
|
a60e39cfd5 | ||
|
|
a7d330ecb3 | ||
|
|
ca22b67d0e | ||
|
|
03ec410862 | ||
|
|
e43a328c6f | ||
|
|
cf72bcbe42 | ||
|
|
077b885617 | ||
|
|
2e42da5996 | ||
|
|
f6dc9d1ad3 | ||
|
|
9f1eb60e21 | ||
|
|
8e7d5233df | ||
|
|
4f40fda6a3 | ||
|
|
f0079961f4 | ||
|
|
9862abb7eb | ||
|
|
6d7697870d | ||
|
|
4f53a2b11e | ||
|
|
fd9e8273e1 | ||
|
|
6afaba23b5 | ||
|
|
4aef76281c | ||
|
|
c62d7d501e | ||
|
|
65cdb0dfe7 | ||
|
|
ea18966f33 | ||
|
|
e1abe5c6e2 | ||
|
|
cac96b589f | ||
|
|
f8d4f56d2d | ||
|
|
0957fb6e0a | ||
|
|
5118a5095d | ||
|
|
01c5cf2498 | ||
|
|
fae4b34863 | ||
|
|
020d5cc1c1 | ||
|
|
7e5df7689b | ||
|
|
ff7ec97de4 | ||
|
|
dd0ba49bea | ||
|
|
6105435207 | ||
|
|
711fd19967 | ||
|
|
d58553f67a | ||
|
|
76882690d7 | ||
|
|
6a33c4723a | ||
|
|
6a26ebafa3 | ||
|
|
3c55fc1fa2 | ||
|
|
15a1a15c08 | ||
|
|
9e43aa04c7 | ||
|
|
18f7d05a61 | ||
|
|
70e325fd2b | ||
|
|
fba631c044 | ||
|
|
598617cf2b | ||
|
|
66f177370a | ||
|
|
ad7d58788f | ||
|
|
ad4ea0783f | ||
|
|
5c44cb6399 | ||
|
|
a9e0b3dd6b | ||
|
|
131da5f444 | ||
|
|
874ececc47 | ||
|
|
5f1d74a77a | ||
|
|
00b0d75fc4 | ||
|
|
4b93c8ff43 | ||
|
|
80ad2b8fca | ||
|
|
a8bc93eb17 | ||
|
|
9d3fc4286e | ||
|
|
16fba373c9 | ||
|
|
9c3ff8c88c | ||
|
|
2525620730 | ||
|
|
6dde1d7b74 | ||
|
|
1691e2fe34 | ||
|
|
b536d20713 | ||
|
|
ca3720be0a | ||
|
|
63d0aaca2a | ||
|
|
3a4b58f32f | ||
|
|
d748ccdef9 | ||
|
|
97aff27980 | ||
|
|
0c3e836272 | ||
|
|
60fc4f1b9a | ||
|
|
b97e2df2fb | ||
|
|
f539bb5ca2 | ||
|
|
c166c7c314 | ||
|
|
24f482014b | ||
|
|
9c73d9d03c | ||
|
|
0cbb6819b4 | ||
|
|
7bbd476cf6 | ||
|
|
93f00c442e | ||
|
|
e0c9800751 | ||
|
|
fdc814cdb0 | ||
|
|
59c2b79df2 | ||
|
|
27d1a5f3f4 | ||
|
|
5df1e6caf6 | ||
|
|
b11d3bed78 | ||
|
|
9258f2a513 | ||
|
|
604ee33c52 | ||
|
|
f94be17b11 | ||
|
|
4bf8aaf2e0 | ||
|
|
0f20f07363 | ||
|
|
a1404385d1 | ||
|
|
1ee16da0c7 | ||
|
|
17950e0ac0 | ||
|
|
1190fc8069 | ||
|
|
92456612b1 | ||
|
|
9912136ac9 | ||
|
|
0eb065bbb7 | ||
|
|
2e61f94d84 | ||
|
|
f606dc065b | ||
|
|
6464ef96b6 | ||
|
|
9068801e4f | ||
|
|
2f3d3fc7f9 | ||
|
|
69664322b8 | ||
|
|
a1662752bc | ||
|
|
3363152160 | ||
|
|
7cad13c3c7 | ||
|
|
699986c0b2 | ||
|
|
85b5445296 | ||
|
|
cdb2370cf3 | ||
|
|
5d6b46a914 | ||
|
|
77ff5b473b | ||
|
|
ac8b06b6bf | ||
|
|
dc12a0ff97 | ||
|
|
c329d5e69f | ||
|
|
009ac7eec2 | ||
|
|
2bf3e6ce13 | ||
|
|
babcd96fb6 | ||
|
|
bf6c89e263 | ||
|
|
72a02df646 | ||
|
|
462101dbf5 | ||
|
|
00f1463e94 | ||
|
|
9135e915ab | ||
|
|
d7242f1c70 | ||
|
|
fa4ea0640d | ||
|
|
8f94332d59 | ||
|
|
337ec963b7 | ||
|
|
cf5a395b29 | ||
|
|
e2d597401c | ||
|
|
3ae500ff68 | ||
|
|
779eadd787 | ||
|
|
110475a973 | ||
|
|
74469c2b61 | ||
|
|
d5238ac82f | ||
|
|
c861d95d69 | ||
|
|
40f98f8238 | ||
|
|
2161c2e433 | ||
|
|
2983af67d6 | ||
|
|
4a8bb704bf | ||
|
|
e61702c8bb | ||
|
|
5b75e1dca6 | ||
|
|
97d4edcf30 | ||
|
|
1663848b7e | ||
|
|
113f9aaa81 | ||
|
|
6db24a4a6c | ||
|
|
8cac0e46b1 | ||
|
|
b38d2c1836 | ||
|
|
8948904a9b | ||
|
|
8111758ef7 | ||
|
|
bf7b86ccd5 | ||
|
|
96b88a427d | ||
|
|
cc6dcc3636 | ||
|
|
9d6b8609be | ||
|
|
16ab8f9357 | ||
|
|
ac186e27de | ||
|
|
917f10955a | ||
|
|
8638a2266d | ||
|
|
baab56946e | ||
|
|
d10a026908 | ||
|
|
2cb50fcbf6 | ||
|
|
449b2808e6 | ||
|
|
6bf1aecb6d | ||
|
|
4d26934949 | ||
|
|
0f6aa8d401 | ||
|
|
32ddf81a5e | ||
|
|
7b34a4fb1b | ||
|
|
215e516b2b | ||
|
|
eecd1d50e4 | ||
|
|
5a9279b232 | ||
|
|
6a5e718cd3 | ||
|
|
70009f80ab | ||
|
|
8e3031f106 | ||
|
|
3e0c31af9a | ||
|
|
e1bbefa60b | ||
|
|
4575f83f49 | ||
|
|
37232eee7e | ||
|
|
373ca6ec2d | ||
|
|
fe28f44d4b | ||
|
|
cd81519e9a | ||
|
|
d4a58ac2fb | ||
|
|
75280c4db6 | ||
|
|
9a52339ea7 | ||
|
|
d53bef385a | ||
|
|
35e71289dc | ||
|
|
0dfc8384e6 | ||
|
|
605e3a727d | ||
|
|
41e18993be | ||
|
|
ce3f2b5895 | ||
|
|
3b4cbfa4bc | ||
|
|
9a3cdc4f8b | ||
|
|
1d84c30de3 | ||
|
|
8133c4c5f0 | ||
|
|
e21ece0f8d | ||
|
|
89828ba7fd | ||
|
|
8215498ddb | ||
|
|
ae6205c874 | ||
|
|
328f9686c9 | ||
|
|
9f412577d7 | ||
|
|
11bd340a94 | ||
|
|
3c102b9797 | ||
|
|
bd4b7fc49d | ||
|
|
29252336cc | ||
|
|
4b5b4f9099 | ||
|
|
28da6f8bfc | ||
|
|
e0fe0d2dbd | ||
|
|
07cf34ad60 | ||
|
|
7c4c9a9fc0 | ||
|
|
59ceddbaad | ||
|
|
99ccbc3383 | ||
|
|
8c2d5398b0 | ||
|
|
67c83b13e3 | ||
|
|
11a84ba145 | ||
|
|
1f5bb579c9 | ||
|
|
4586f8007c | ||
|
|
55c620e59d | ||
|
|
525609f0af | ||
|
|
90653955a6 | ||
|
|
d27ab756d0 | ||
|
|
c6a1db6334 | ||
|
|
73777e052e | ||
|
|
a6d3fc3742 | ||
|
|
a671c70838 | ||
|
|
a45991b6dc | ||
|
|
2e9fa22e4f | ||
|
|
737d8c4d53 | ||
|
|
3aa7e103f7 | ||
|
|
c1d2d44da4 | ||
|
|
0fed8113d1 | ||
|
|
53c35cb554 | ||
|
|
be82365542 | ||
|
|
eae8a65597 | ||
|
|
fe54a25a3a | ||
|
|
15a4219ef4 | ||
|
|
2ffbdac89e | ||
|
|
402eb8397d | ||
|
|
ff88049a08 | ||
|
|
cee21241d4 | ||
|
|
60ad7c8a29 | ||
|
|
4989c92780 |
@@ -1,185 +0,0 @@
|
||||
legacy.status-im.utils.build/warning-handler
|
||||
legacy.status-im.utils.build/get-current-sha
|
||||
status-im.constants/spacing-char
|
||||
status-im.constants/arg-wrapping-char
|
||||
legacy.status-im.ios.core/init
|
||||
legacy.status-im.ui.components.camera/aspects
|
||||
legacy.status-im.ui.components.camera/capture-targets
|
||||
legacy.status-im.ui.components.camera/set-torch
|
||||
legacy.status-im.ui.components.camera/request-access-ios
|
||||
legacy.status-im.chat.models.message-content/stylings
|
||||
legacy.status-im.chat.models.message-content/actions
|
||||
legacy.status-im.chat.models.message-content/blank-string
|
||||
legacy.status-im.chat.models.message-content/sorted-ranges
|
||||
legacy.status-im.ethereum.mnemonic/words->passphrase
|
||||
native-module.core/listener
|
||||
native-module.core/multiaccount-reset
|
||||
native-module.core/extract-group-membership-signatures
|
||||
native-module.core/sign-group-membership
|
||||
native-module.core/update-mailservers
|
||||
legacy.status-im.ethereum.abi-spec/bytes-to-hex
|
||||
legacy.status-im.android.core/init
|
||||
legacy.status-im.chat.models.message/transport-keys
|
||||
legacy.status-im.utils.datetime/week
|
||||
legacy.status-im.utils.datetime/time-ago
|
||||
legacy.status-im.utils.datetime/format-date
|
||||
legacy.status-im.utils.datetime/get-ordinal-date
|
||||
reagent.dom/render
|
||||
reagent.dom/unmount-component-at-node
|
||||
reagent.dom/dom-node
|
||||
reagent.dom/force-update-all
|
||||
legacy.status-im.multiaccounts.create.core/get-new-key-code
|
||||
legacy.status-im.ethereum.decode/string
|
||||
legacy.status-im.ui.screens.network.views/mainnet?
|
||||
legacy.status-im.data-store.chats/event->string
|
||||
legacy.status-im.mailserver.constants/seven-days
|
||||
legacy.status-im.mailserver.constants/connection-timeout
|
||||
legacy.status-im.hardwallet.card/install-applet
|
||||
legacy.status-im.hardwallet.card/install-cash-applet
|
||||
legacy.status-im.multiaccount.login.data-test/all-contacts
|
||||
legacy.status-im.multiaccount.login.data-test/multiaccounts
|
||||
legacy.status-im.multiaccount.login.data-test/get-chats
|
||||
legacy.status-im.multiaccount.login.data-test/transport
|
||||
legacy.status-im.multiaccount.login.data-test/topics
|
||||
legacy.status-im.utils.utils/clear-timeout
|
||||
legacy.status-im.utils.handlers/logged-in
|
||||
legacy.status-im.multiaccounts.model/credentials
|
||||
legacy.status-im.multiaccounts.login.core/contract-fleet?
|
||||
legacy.status-im.multiaccounts.login.core/fetch-nodes
|
||||
status-im.config/rpc-networks-only?
|
||||
status-im.config/waku-enabled?
|
||||
legacy.status-im.utils.pairing/has-paired-installations?
|
||||
legacy.status-im.tribute-to-talk.core-test/user-cofx
|
||||
mocks.js-dependencies/action-button
|
||||
mocks.js-dependencies/camera
|
||||
mocks.js-dependencies/dismiss-keyboard
|
||||
mocks.js-dependencies/emoji-picker
|
||||
mocks.js-dependencies/i18n
|
||||
mocks.js-dependencies/qr-code
|
||||
mocks.js-dependencies/svg
|
||||
mocks.js-dependencies/icons
|
||||
mocks.js-dependencies/webview
|
||||
mocks.js-dependencies/desktop-linking
|
||||
mocks.js-dependencies/desktop-shortcuts
|
||||
mocks.js-dependencies/snoopy
|
||||
mocks.js-dependencies/snoopy-filter
|
||||
mocks.js-dependencies/snoopy-bars
|
||||
mocks.js-dependencies/snoopy-buffer
|
||||
mocks.js-dependencies/desktop-menu
|
||||
mocks.js-dependencies/desktop-config
|
||||
mocks.js-dependencies/react-native-navigation-twopane
|
||||
mocks.js-dependencies/react-native-screens
|
||||
mocks.js-dependencies/react-native-shake
|
||||
mocks.js-dependencies/back-handler
|
||||
mocks.js-dependencies/react
|
||||
mocks.js-dependencies/react-navigation-native
|
||||
mocks.js-dependencies/react-navigation-stack
|
||||
mocks.js-dependencies/react-navigation-bottom-tabs
|
||||
mocks.js-dependencies/react-native-haptic-feedback
|
||||
mocks.js-dependencies/mock
|
||||
quo.previews.main/init
|
||||
legacy.status-im.chat.models.message-list-test/descending-range
|
||||
legacy.status-im.chat.models.message-list-test/random-range
|
||||
legacy.status-im.ethereum.eip165/supports?
|
||||
legacy.status-im.utils.hex/valid-hex?
|
||||
legacy.status-im.multiaccounts.core/chat-send?
|
||||
legacy.status-im.hardwallet.simulated-keycard/install-cash-applet
|
||||
legacy.status-im.hardwallet.simulated-keycard/sign-typed-data
|
||||
legacy.status-im.utils.core/safe-read-message-content
|
||||
legacy.status-im.ui.components.react/native-modules
|
||||
legacy.status-im.ui.components.react/progress-bar
|
||||
react-native.fs/move-file
|
||||
react-native.fs/read-dir
|
||||
react-native.fs/mkdir
|
||||
react-native.fs/unlink
|
||||
react-native.fs/file-exists?
|
||||
legacy.status-im.ui.components.colors/white
|
||||
legacy.status-im.ui.components.colors/black
|
||||
legacy.status-im.ui.components.core/animated-header
|
||||
legacy.status-im.ui.components.core/safe-area-provider
|
||||
legacy.status-im.ui.components.core/safe-area-consumer
|
||||
legacy.status-im.ui.components.core/safe-area-view
|
||||
legacy.status-im.utils.universal-links.core/open!
|
||||
legacy.status-im.transport.filters.core-test/member-2
|
||||
legacy.status-im.ui.screens.chat.ttt/one-to-one-chat-description-container
|
||||
legacy.status-im.ethereum.ens/ttl
|
||||
legacy.status-im.ethereum.ens/addr-hash
|
||||
legacy.status-im.ethereum.ens/name-hash
|
||||
legacy.status-im.ethereum.ens/ABI-hash
|
||||
legacy.status-im.ethereum.ens/pubkey-hash
|
||||
legacy.status-im.network.core/get-network
|
||||
status-im.constants/desktop-content-types
|
||||
status-im.constants/blocks-per-hour
|
||||
status-im.constants/one-earth-day
|
||||
status-im.constants/left-pane-min-width
|
||||
status-im.constants/system
|
||||
status-im.constants/contact-discovery
|
||||
status-im.constants/send-transaction-failed-parse-response
|
||||
status-im.constants/send-transaction-failed-parse-params
|
||||
status-im.constants/send-transaction-no-account-selected
|
||||
status-im.constants/send-transaction-invalid-tx-sender
|
||||
status-im.constants/web3-get-logs
|
||||
status-im.constants/web3-transaction-receipt
|
||||
status-im.constants/web3-new-filter
|
||||
status-im.constants/web3-new-pending-transaction-filter
|
||||
status-im.constants/web3-new-block-filter
|
||||
status-im.constants/web3-uninstall-filter
|
||||
status-im.constants/web3-get-filter-changes
|
||||
status-im.constants/web3-shh-post
|
||||
status-im.constants/web3-shh-new-identity
|
||||
status-im.constants/web3-shh-has-identity
|
||||
status-im.constants/web3-shh-new-group
|
||||
status-im.constants/web3-shh-add-to-group
|
||||
status-im.constants/web3-shh-new-filter
|
||||
status-im.constants/web3-shh-uninstall-filter
|
||||
status-im.constants/web3-shh-get-filter-changes
|
||||
status-im.constants/web3-shh-get-messages
|
||||
status-im.constants/status-create-address
|
||||
status-im.constants/event-transfer-hash
|
||||
status-im.constants/regx-rtl-characters
|
||||
status-im.constants/desktop-msg-chars-hard-limit
|
||||
status-im.constants/debug-metrics
|
||||
status-im.constants/scan-qr-code
|
||||
status-im.constants/ipfs-proto-code
|
||||
status-im.constants/swarm-proto-code
|
||||
legacy.status-im.multiaccounts.update.publisher/publish-update!
|
||||
legacy.status-im.utils.async/task-queue
|
||||
legacy.status-im.utils.async/async-periodic-run!
|
||||
legacy.status-im.desktop.core/app-root
|
||||
legacy.status-im.desktop.core/init
|
||||
legacy.status-im.chat.models-test/test-db
|
||||
legacy.status-im.ui.components.spacing/padding-vertical
|
||||
legacy.status-im.utils.money/percent-change
|
||||
utils.debounce/clear-all
|
||||
legacy.status-im.transport.db/create-chat
|
||||
legacy.status-im.utils.priority-map/priority-map
|
||||
legacy.status-im.utils.priority-map/priority-map-by
|
||||
legacy.status-im.utils.priority-map/priority-map-keyfn
|
||||
legacy.status-im.utils.priority-map/empty-message-map
|
||||
legacy.status-im.wallet.choose-recipient.core/use-default-eth-gas
|
||||
legacy.status-im.ui.components.animation/decay
|
||||
legacy.status-im.ui.components.animation/remove-all-listeners
|
||||
legacy.status-im.ui.components.animation/stop-animation
|
||||
legacy.status-im.ui.components.animation/animated
|
||||
legacy.status-im.ui.components.animation/add
|
||||
legacy.status-im.ui.components.animation/subtract
|
||||
legacy.status-im.ui.components.animation/get-layout
|
||||
legacy.status-im.wallet.transactions-test/uri-query-data
|
||||
legacy.status-im.utils.name/shortened-name
|
||||
legacy.status-im.ui.components.button.haptic/trigger
|
||||
legacy.status-im.contact.db/filter-dapps
|
||||
legacy.status-im.contact.db/filter-group-contacts
|
||||
legacy.status-im.contact.db/legacy-pending?
|
||||
legacy.status-im.utils.transducers-test/preview-call-1
|
||||
legacy.status-im.utils.transducers-test/preview-call-2
|
||||
legacy.status-im.utils.types/to-string
|
||||
legacy.status-im.chat.db/datemark?
|
||||
legacy.status-im.chat.db/gap?
|
||||
legacy.status-im.chat.db/map->sorted-seq
|
||||
legacy.status-im.utils.snoopy/status-module-filter
|
||||
legacy.status-im.utils.snoopy/websocket-filter
|
||||
legacy.status-im.utils.snoopy/touches-filter
|
||||
legacy.status-im.utils.snoopy/native-animation-filter
|
||||
legacy.status-im.utils.snoopy/keyboard-observer-filter
|
||||
legacy.status-im.utils.multihash/hex
|
||||
legacy.status-im.utils.multihash/decode-array
|
||||
@@ -4,7 +4,7 @@
|
||||
legacy.status-im.utils.views/letsubs clojure.core/let
|
||||
reagent.core/with-let clojure.core/let
|
||||
legacy.status-im.utils.fx/defn clj-kondo.lint-as/def-catch-all
|
||||
utils.re-frame/defn clj-kondo.lint-as/def-catch-all
|
||||
utils.re-frame/defn clojure.core/defn
|
||||
quo.react/with-deps-check clojure.core/fn
|
||||
quo.previews.preview/list-comp clojure.core/for
|
||||
legacy.status-im.utils.styles/def clojure.core/def
|
||||
@@ -13,7 +13,29 @@
|
||||
test-helpers.unit/deftest-event clojure.core/defn
|
||||
|
||||
taoensso.tufte/defnp clojure.core/defn}
|
||||
:linters {:case-duplicate-test {:level :error}
|
||||
:linters {:clojure-lsp/unused-public-var {:exclude-when-defined-by #{utils.re-frame/defn}
|
||||
:exclude #{
|
||||
;; even if we are not
|
||||
;; using color now, we
|
||||
;; will need it later
|
||||
quo.foundations.colors
|
||||
|
||||
;; same for funcs from
|
||||
;; native-module
|
||||
native-module.core
|
||||
|
||||
;; some funcs used
|
||||
;; temporarily during
|
||||
;; development
|
||||
test-helpers.component
|
||||
test-helpers.unit
|
||||
|
||||
;; not sure if unused
|
||||
;; functions here should
|
||||
;; be removed:
|
||||
keycard.keycard
|
||||
react-native.fs}}
|
||||
:case-duplicate-test {:level :error}
|
||||
:case-quoted-test {:level :error}
|
||||
:case-symbol-test {:level :error}
|
||||
:clj-kondo-config {:level :error}
|
||||
@@ -40,7 +62,8 @@
|
||||
:equals-true {:level :error}
|
||||
:inline-def {:level :error}
|
||||
:invalid-arity {:skip-args [legacy.status-im.utils.fx/defn
|
||||
utils.re-frame/defn]}
|
||||
utils.re-frame/defn
|
||||
utils.re-frame/merge]}
|
||||
:loop-without-recur {:level :error}
|
||||
:minus-one {:level :error}
|
||||
:misplaced-docstring {:level :error}
|
||||
@@ -53,6 +76,8 @@
|
||||
:redundant-do {:level :error}
|
||||
:redundant-let {:level :error}
|
||||
:refer-all {:level :error}
|
||||
;; ignore error in config itself saying that `:shadowed-fn-param` is unknown
|
||||
#_{:clj-kondo/ignore [:clj-kondo-config]}
|
||||
:shadowed-fn-param {:level :error}
|
||||
:shadowed-var {:level :error
|
||||
;; We temporarily use :include to define an
|
||||
@@ -74,7 +99,8 @@
|
||||
;; https://github.com/borkdude/clj-kondo/issues/867
|
||||
:unresolved-symbol {:exclude [PersistentPriorityMap.EMPTY
|
||||
number
|
||||
legacy.status-im.test-helpers/restore-app-db]}
|
||||
legacy.status-im.test-helpers/restore-app-db
|
||||
(cljs.test/is [match-strict?])]}
|
||||
:unresolved-var {:level :error}
|
||||
:unsorted-required-namespaces {:level :error}
|
||||
:unused-alias {:level :warning}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
CACHED_WEBVIEWS_ENABLED=1
|
||||
DEBUG_WEBVIEW=1
|
||||
DEFAULT_NETWORK=mainnet_rpc
|
||||
DEV_BUILD=1
|
||||
ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
@@ -35,3 +34,7 @@ FAST_CREATE_COMMUNITY_ENABLED=1
|
||||
TEST_NETWORKS_ENABLED=1
|
||||
SHOW_NOT_IMPLEMENTED_FEATURES=0
|
||||
ENABLE_ALERT_BANNER=0
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
API_LOGGING_ENABLED=1
|
||||
SENTRY_ENABLED=0
|
||||
SENTRY_ENVIRONMENT=ci-main
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
DEBUG_WEBVIEW=1
|
||||
DEFAULT_NETWORK=goerli_rpc
|
||||
ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
FLEET=status.staging
|
||||
@@ -22,8 +21,8 @@ KEYCARD_TEST_MENU=1
|
||||
QR_READ_TEST_MENU=1
|
||||
ENABLE_ROOT_ALERT=0
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
VERIFY_TRANSACTION_CHAIN_ID=5
|
||||
VERIFY_ENS_CHAIN_ID=5
|
||||
VERIFY_TRANSACTION_CHAIN_ID=11155111
|
||||
VERIFY_ENS_CHAIN_ID=11155111
|
||||
TEST_STATEOFUS=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_ENABLED=1
|
||||
@@ -38,3 +37,8 @@ SHOW_NOT_IMPLEMENTED_FEATURES=1
|
||||
DELETE_MESSAGE_FOR_ME_UNDO_TIME_LIMIT=10000
|
||||
DELETE_MESSAGE_UNDO_TIME_LIMIT=10000
|
||||
ENABLE_ALERT_BANNER=0
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
MOBILE_DATA_SYNCING_TOGGLE_ENABLE=0
|
||||
API_LOGGING_ENABLED=1
|
||||
SENTRY_ENABLED=0
|
||||
SENTRY_ENVIRONMENT=ci-main
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
CACHED_WEBVIEWS_ENABLED=1
|
||||
DEBUG_WEBVIEW=1
|
||||
DEFAULT_NETWORK=goerli_rpc
|
||||
ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
GROUP_CHATS_ENABLED=1
|
||||
@@ -21,8 +20,8 @@ KEYCARD_TEST_MENU=0
|
||||
ENABLE_ROOT_ALERT=1
|
||||
DISABLE_WALLET_ON_MOBILE_NETWORK=1
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
VERIFY_TRANSACTION_CHAIN_ID=5
|
||||
VERIFY_ENS_CHAIN_ID=5
|
||||
VERIFY_TRANSACTION_CHAIN_ID=11155111
|
||||
VERIFY_ENS_CHAIN_ID=11155111
|
||||
TEST_STATEOFUS=1
|
||||
BLANK_PREVIEW=0
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
@@ -36,3 +35,8 @@ LOCAL_PAIRING_ENABLED=1
|
||||
FAST_CREATE_COMMUNITY_ENABLED=1
|
||||
TEST_NETWORKS_ENABLED=1
|
||||
ENABLE_ALERT_BANNER=1
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
API_LOGGING_ENABLED=1
|
||||
SENTRY_ENABLED=0
|
||||
SENTRY_ENVIRONMENT=ci-main
|
||||
GOOGLE_FREE=0
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
DEBUG_WEBVIEW=1
|
||||
DEFAULT_NETWORK=mainnet_rpc
|
||||
ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
GROUP_CHATS_ENABLED=1
|
||||
LOG_LEVEL=info
|
||||
LOG_LEVEL=debug
|
||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||
MAINNET_WARNING_ENABLED=1
|
||||
PFS_ENCRYPTION_ENABLED=1
|
||||
@@ -23,3 +22,7 @@ DELETE_MESSAGE_ENABLED=1
|
||||
FAST_CREATE_COMMUNITY_ENABLED=0
|
||||
TEST_NETWORKS_ENABLED=0
|
||||
ENABLE_ALERT_BANNER=1
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
API_LOGGING_ENABLED=1
|
||||
SENTRY_ENABLED=1
|
||||
SENTRY_ENVIRONMENT=ci-nightly
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
DEBUG_WEBVIEW=0
|
||||
DEFAULT_NETWORK=mainnet_rpc
|
||||
ETHEREUM_DEV_CLUSTER=0
|
||||
EXTENSIONS=0
|
||||
GROUP_CHATS_ENABLED=1
|
||||
LOG_LEVEL=
|
||||
LOG_LEVEL=error
|
||||
MAILSERVER_CONFIRMATIONS_ENABLED=1
|
||||
MAINNET_WARNING_ENABLED=1
|
||||
PFS_ENCRYPTION_ENABLED=1
|
||||
@@ -19,3 +18,8 @@ MAX_IMAGES_BATCH=1
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
FAST_CREATE_COMMUNITY_ENABLED=0
|
||||
TEST_NETWORKS_ENABLED=0
|
||||
STATUS_PROXY_STAGE_NAME=prod
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
API_LOGGING_ENABLED=0
|
||||
SENTRY_ENABLED=1
|
||||
SENTRY_ENVIRONMENT=production
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: MVPBug Report
|
||||
about: MVPBug Report
|
||||
name: Bug Report
|
||||
about: Bug Report
|
||||
title: ''
|
||||
labels: ['E:Mobile Bug MVP', ':1234: low prio']
|
||||
type: 'Bug'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
@@ -1,39 +1,26 @@
|
||||
[comment]: # (Please replace ... with your information. Remove < and >)
|
||||
[comment]: # (To auto-close issue on merge, please insert the related issue number after # i.e fixes #566)
|
||||
|
||||
If you submit PR for issue with bounty then write here Fixes #NN where NN is issue number
|
||||
|
||||
*otherwise*
|
||||
|
||||
fixes #...
|
||||
|
||||
### Summary
|
||||
|
||||
## Summary
|
||||
[comment]: # (Summarise the problem and how the pull request solves it)
|
||||
...
|
||||
|
||||
<!-- (Optional, remove if no changes to documentation) -->
|
||||
Documentation change PR (review please): https://github.com/status-im/status.im/pull/xxx
|
||||
## Review notes
|
||||
[comment]: # (Optional. Specify if something in particular should be looked at, or ignored, during review)
|
||||
|
||||
### Review notes
|
||||
<!-- (Optional. Specify if something in particular should be looked at, or ignored, during review) -->
|
||||
## Testing notes
|
||||
[comment]: # (Optional)
|
||||
|
||||
### Testing notes
|
||||
<!-- (Optional) -->
|
||||
|
||||
#### Platforms
|
||||
<!-- (Optional. Specify which platforms should be tested) -->
|
||||
### Platforms
|
||||
[comment]: # (Optional. Specify which platforms should be tested)
|
||||
|
||||
- Android
|
||||
- iOS
|
||||
- macOS
|
||||
- Linux
|
||||
- Windows
|
||||
|
||||
#### Areas that maybe impacted
|
||||
<!-- (Optional. Specify if some specific areas has to be tested, for example 1-1 chats) -->
|
||||
### Areas that may be impacted
|
||||
[comment]: # (Optional. Specify if some specific areas need to be tested, such as 1-1 chats)
|
||||
|
||||
##### Functional
|
||||
#### Functional
|
||||
|
||||
- 1-1 chats
|
||||
- public chats
|
||||
@@ -48,32 +35,27 @@ Documentation change PR (review please): https://github.com/status-im/status.im/
|
||||
- fleet
|
||||
- bootnodes
|
||||
|
||||
##### Non-functional
|
||||
#### Non-functional
|
||||
|
||||
- battery performance
|
||||
- CPU performance / speed of the app
|
||||
- network consumption
|
||||
|
||||
### Steps to test
|
||||
<!-- (Specify exact steps to test if there are such) -->
|
||||
## Steps to test
|
||||
[comment]: # (Specify exact steps to test if there are such)
|
||||
|
||||
- Open Status
|
||||
- ...
|
||||
- Step 3, etc.
|
||||
|
||||
<!-- (PRs will only be accepted if squashed into single commit.) -->
|
||||
|
||||
### Before and after screenshots comparison
|
||||
[comment]: # (Can be ready or wip)
|
||||
status: ready
|
||||
|
||||
| Figma (if available) | iOS (if available) | Android (if available)
|
||||
| --- | --- | --- |
|
||||
| Please embed Image/Video here of the before and after. | Please embed Image/Video here of the before and after. | Please embed Image/Video here of the before and after. |
|
||||
|
||||
status: ready <!-- Can be ready or wip -->
|
||||
|
||||
<!-- Uncomment this section for status-go upgrade/dogfooding pull requests
|
||||
|
||||
- Specify potentially impacted user flows in _Areas that maybe impacted*.
|
||||
- Specify potentially impacted user flows in _Areas that may be impacted*.
|
||||
- Ensure that _Steps to test_ is filled in.
|
||||
|
||||
### Risk
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "legal-docs"]
|
||||
path = legal-docs
|
||||
url = https://github.com/status-im/status-software-legal-documents.git
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"ignore_dirs": [
|
||||
"android/build",
|
||||
"target"
|
||||
"target",
|
||||
".clj-kondo",
|
||||
".shadow-cljs"
|
||||
]
|
||||
}
|
||||
@@ -43,8 +43,6 @@ export NODE_OPTIONS += --openssl-legacy-provider
|
||||
# The path can be anything, but home is usually safest.
|
||||
export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
||||
|
||||
# Our custom config is located in nix/nix.conf
|
||||
export NIX_USER_CONF_FILES = $(PWD)/nix/nix.conf
|
||||
# Location of symlinks to derivations that should not be garbage collected
|
||||
export _NIX_GCROOTS = ./.nix-gcroots
|
||||
# Defines which variables will be kept for Nix pure shell, use semicolon as divider
|
||||
@@ -97,6 +95,8 @@ nix-purge: ##@nix Completely remove Nix setup, including /nix directory
|
||||
nix/scripts/purge.sh
|
||||
|
||||
nix-update-gradle: export TARGET := gradle
|
||||
nix-update-gradle: export ORG_GRADLE_PROJECT_hermesEnabled := false
|
||||
nix-update-gradle: export ORG_GRADLE_PROJECT_universalApk := false
|
||||
nix-update-gradle: ##@nix Update maven nix expressions based on current gradle setup
|
||||
nix/deps/gradle/generate.sh
|
||||
|
||||
@@ -209,21 +209,21 @@ build-fdroid: export BUILD_ENV = prod
|
||||
build-fdroid: export BUILD_TYPE = release
|
||||
build-fdroid: export ANDROID_ABI_SPLIT = false
|
||||
build-fdroid: export ANDROID_ABI_INCLUDE = armeabi-v7a;arm64-v8a;x86;x86_64
|
||||
build-fdroid: export ANDROID_STORE = fdroid
|
||||
build-fdroid: ##@build Build release for F-Droid
|
||||
@scripts/google-free.sh
|
||||
@scripts/build-android.sh
|
||||
|
||||
build-android: export BUILD_ENV ?= prod
|
||||
build-android: export BUILD_TYPE ?= nightly
|
||||
build-android: export ORG_GRADLE_PROJECT_versionCode ?= $(TMP_BUILD_NUMBER)
|
||||
build-android: export ANDROID_ABI_SPLIT ?= false
|
||||
build-android: export ANDROID_ABI_INCLUDE ?= armeabi-v7a;arm64-v8a;x86
|
||||
build-android: ##@build Build unsigned Android APK
|
||||
@scripts/build-android.sh
|
||||
|
||||
release-android: export TARGET := keytool
|
||||
release-android: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
|
||||
release-android: keystore build-android ##@build Build signed Android APK
|
||||
@scripts/sign-android.sh result/app-release-unsigned.apk
|
||||
@scripts/sign-android.sh result/app-arm64-v8a-release-unsigned.apk
|
||||
|
||||
release-ios: export TARGET := ios
|
||||
release-ios: export IOS_STATUS_GO_TARGETS := ios/arm64
|
||||
@@ -269,15 +269,18 @@ run-metro: export TARGET := clojure
|
||||
run-metro: ##@run Start Metro to build React Native changes
|
||||
@scripts/run-metro.sh
|
||||
|
||||
export RE_FRISK_PORT ?= 4567
|
||||
|
||||
run-re-frisk: export TARGET := clojure
|
||||
run-re-frisk: ##@run Start re-frisk server
|
||||
yarn shadow-cljs run re-frisk-remote.core/start
|
||||
yarn shadow-cljs run re-frisk-remote.core/start ${RE_FRISK_PORT}
|
||||
|
||||
# TODO: Migrate this to a Nix recipe, much the same way as nix/mobile/android/targets/release-android.nix
|
||||
run-android: export TARGET := android
|
||||
# Disabled for debug builds to avoid 'maximum call stack exceeded' errors.
|
||||
# https://github.com/status-im/status-mobile/issues/18493
|
||||
run-android: export ORG_GRADLE_PROJECT_hermesEnabled := false
|
||||
run-android: export ORG_GRADLE_PROJECT_universalApk := false
|
||||
run-android: ##@run Build Android APK and start it on the device
|
||||
@scripts/run-android.sh
|
||||
|
||||
@@ -438,12 +441,13 @@ android-clean: ##@prepare Clean Gradle state
|
||||
rm -rf ~/.gradle
|
||||
|
||||
|
||||
android-ports: export FLOWSTORM_PORT := 7722
|
||||
android-ports: export FLOWSTORM_PORT ?= 7722
|
||||
android-ports: export TARGET := android-sdk
|
||||
android-ports: export RCT_METRO_PORT ?= 8081
|
||||
android-ports: ##@other Add proxies to Android Device/Simulator
|
||||
adb reverse tcp:8081 tcp:8081 && \
|
||||
adb reverse tcp:$(RCT_METRO_PORT) tcp:$(RCT_METRO_PORT) && \
|
||||
adb reverse tcp:3449 tcp:3449 && \
|
||||
adb reverse tcp:4567 tcp:4567 && \
|
||||
adb reverse tcp:$(RE_FRISK_PORT) tcp:$(RE_FRISK_PORT) && \
|
||||
adb reverse tcp:$(FLOWSTORM_PORT) tcp:$(FLOWSTORM_PORT) && \
|
||||
adb forward tcp:5561 tcp:5561
|
||||
|
||||
|
||||
@@ -143,6 +143,10 @@ android {
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17
|
||||
}
|
||||
// Disable default lint checks to remove redundant lintVitalReportRelease task
|
||||
lintOptions {
|
||||
checkReleaseBuilds false
|
||||
}
|
||||
|
||||
// https://developer.android.com/studio/projects/install-ndk#vanilla_cmake
|
||||
externalNativeBuild {
|
||||
@@ -211,7 +215,7 @@ android {
|
||||
reset()
|
||||
enable getEnvOrConfig('ANDROID_ABI_SPLIT').toBoolean()
|
||||
include getEnvOrConfig('ANDROID_ABI_INCLUDE').split(";")
|
||||
universalApk true
|
||||
universalApk getEnvOrConfig('ORG_GRADLE_PROJECT_universalApk').toBoolean()
|
||||
}
|
||||
}
|
||||
signingConfigs {
|
||||
@@ -335,3 +339,8 @@ task hemroidBuild(type: Exec) {
|
||||
preBuild.dependsOn hemroidBuild
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
|
||||
def googleServicesConfigFile = "./googleServices.gradle";
|
||||
if (project.file(googleServicesConfigFile).exists()) {
|
||||
apply from: file(googleServicesConfigFile)
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Exclude google library so we can publish to external android stores
|
||||
*/
|
||||
|
||||
def googleFree = project.env.get("GOOGLE_FREE", 0) == '1'
|
||||
|
||||
if (!googleFree) {
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
if (googleFree) {
|
||||
implementation(project(':react-native-firebase_app')) {
|
||||
exclude group: 'com.google.firebase'
|
||||
exclude group: 'com.google.gms'
|
||||
}
|
||||
|
||||
implementation(project(':react-native-firebase_messaging')) {
|
||||
exclude group: 'com.google.firebase'
|
||||
exclude group: 'com.google.gms'
|
||||
}
|
||||
} else {
|
||||
implementation 'com.google.firebase:firebase-messaging:24.1.0'
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,7 @@
|
||||
android:allowBackup="false"
|
||||
android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:theme="@style/Theme.AppSplash"
|
||||
android:name=".MainApplication"
|
||||
android:largeHeap="true"
|
||||
@@ -122,6 +123,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" tools:replace="android:resource" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
package im.status.ethereum;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
/** @author Kevin Kowalewski */
|
||||
public class RootUtil {
|
||||
|
||||
public static boolean isDeviceRooted() {
|
||||
return checkRootMethod1() || checkRootMethod2() || checkRootMethod3();
|
||||
}
|
||||
|
||||
private static boolean checkRootMethod1() {
|
||||
String buildTags = android.os.Build.TAGS;
|
||||
return buildTags != null && buildTags.contains("test-keys");
|
||||
}
|
||||
|
||||
private static boolean checkRootMethod2() {
|
||||
String[] paths = { "/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su",
|
||||
"/system/bin/failsafe/su", "/data/local/su" };
|
||||
for (String path : paths) {
|
||||
if (new File(path).exists()) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean checkRootMethod3() {
|
||||
Process process = null;
|
||||
try {
|
||||
process = Runtime.getRuntime().exec(new String[] { "/system/xbin/which", "su" });
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||
return in.readLine() != null;
|
||||
} catch (Throwable t) {
|
||||
return false;
|
||||
} finally {
|
||||
if (process != null) process.destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package im.status.ethereum
|
||||
|
||||
import android.os.Build
|
||||
import java.io.BufferedReader
|
||||
import java.io.File
|
||||
import java.io.InputStreamReader
|
||||
|
||||
object RootUtil {
|
||||
|
||||
fun isDeviceRooted(): Boolean =
|
||||
checkRootMethod1() || checkRootMethod2() || checkRootMethod3()
|
||||
|
||||
private fun checkRootMethod1(): Boolean =
|
||||
Build.TAGS?.contains("test-keys") ?: false
|
||||
|
||||
private fun checkRootMethod2(): Boolean {
|
||||
val paths = arrayOf(
|
||||
"/system/app/Superuser.apk",
|
||||
"/sbin/su",
|
||||
"/system/bin/su",
|
||||
"/system/xbin/su",
|
||||
"/data/local/xbin/su",
|
||||
"/data/local/bin/su",
|
||||
"/system/sd/xbin/su",
|
||||
"/system/bin/failsafe/su",
|
||||
"/data/local/su"
|
||||
)
|
||||
return paths.any { File(it).exists() }
|
||||
}
|
||||
|
||||
private fun checkRootMethod3(): Boolean {
|
||||
var process: Process? = null
|
||||
return try {
|
||||
process = Runtime.getRuntime().exec(arrayOf("/system/xbin/which", "su"))
|
||||
BufferedReader(InputStreamReader(process.inputStream)).readLine() != null
|
||||
} catch (t: Throwable) {
|
||||
false
|
||||
} finally {
|
||||
process?.destroy()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 92 B After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 940 B |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 266 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 972 B After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 495 B After Width: | Height: | Size: 452 B |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 108 B After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 826 B After Width: | Height: | Size: 824 B |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 826 B After Width: | Height: | Size: 825 B |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 123 KiB |
@@ -2,4 +2,5 @@
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@mipmap/ic_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_foreground"/>
|
||||
</adaptive-icon>
|
||||
<monochrome android:drawable="@mipmap/ic_launcher_monochrome" />
|
||||
</adaptive-icon>
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@mipmap/ic_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_foreground"/>
|
||||
</adaptive-icon>
|
||||
<monochrome android:drawable="@mipmap/ic_launcher_monochrome" />
|
||||
</adaptive-icon>
|
||||
|
||||
|
Before Width: | Height: | Size: 374 B After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 737 B |
|
Before Width: | Height: | Size: 970 B After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 517 B After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 905 B After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 25 KiB |
@@ -4,4 +4,5 @@
|
||||
<color name="alert_text">#000000</color>
|
||||
<color name="splash_background">#09101C</color>
|
||||
<color name="splash_status_bar_color">#ffffff</color>
|
||||
<color name="notification_icon_color">#4360DF</color>
|
||||
</resources>
|
||||
|
||||
@@ -31,6 +31,7 @@ buildscript {
|
||||
classpath("com.android.tools.build:gradle")
|
||||
classpath("com.facebook.react:react-native-gradle-plugin")
|
||||
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
|
||||
classpath("com.google.gms:google-services:4.4.2")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,10 +38,10 @@ KEYSTORE_PASSWORD=password
|
||||
KEYSTORE_ALIAS=status
|
||||
KEYSTORE_KEY_PASSWORD=password
|
||||
|
||||
# By default we build a mostly universal APK
|
||||
ANDROID_ABI_SPLIT=false
|
||||
# Some platforms are excluded though
|
||||
ANDROID_ABI_INCLUDE=armeabi-v7a;arm64-v8a;x86;x86_64
|
||||
# Splitting by CPU Architecture produces smaller APKs.
|
||||
ANDROID_ABI_SPLIT=true
|
||||
# By default its better to only build apk for most recent devices.
|
||||
ANDROID_ABI_INCLUDE=arm64-v8a
|
||||
|
||||
org.gradle.jvmargs=-Xmx8704M -XX:+UseParallelGC
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
initscript {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.gradle:github-dependency-graph-gradle-plugin:+"
|
||||
}
|
||||
}
|
||||
apply plugin: org.gradle.dependencygraph.simple.SimpleDependencyGraphPlugin
|
||||
@@ -1,12 +1,12 @@
|
||||
pluginManagement {
|
||||
include ':react-native-share'
|
||||
project(':react-native-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share/android')
|
||||
includeBuild('../node_modules/@react-native/gradle-plugin')
|
||||
repositories {
|
||||
mavenLocal() // Let's prioritize local Maven repos so that Nix can provide them offline
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
include ':react-native-share'
|
||||
project(':react-native-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share/android')
|
||||
rootProject.name = 'StatusIm'
|
||||
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
|
||||
include ':react-native-nfc-manager'
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
/* Options section can't access functions in objects. */
|
||||
def isPRBuild = utils.isPRBuild()
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux && x86_64 && nix-2.19' }
|
||||
agent { label 'linux && x86_64 && nix-2.24' }
|
||||
|
||||
options {
|
||||
timestamps()
|
||||
@@ -41,6 +41,7 @@ pipeline {
|
||||
BUILD_ENV = 'prod'
|
||||
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
|
||||
FASTLANE_DISABLE_COLORS = 1
|
||||
SENTRY_PRODUCTION = "${utils.isReleaseBuild() ? 'true' : 'false'}"
|
||||
}
|
||||
|
||||
stages {
|
||||
@@ -72,11 +73,7 @@ pipeline {
|
||||
stage('Upload') {
|
||||
steps { script {
|
||||
def urls = apks.collect { s5cmd.upload(it) }
|
||||
if (urls.size() > 1) { /* Return only the universal APK. */
|
||||
env.PKG_URL = urls.find { it.contains('universal') }
|
||||
} else { /* If no universal is available pick first. */
|
||||
env.PKG_URL = urls.first()
|
||||
}
|
||||
env.PKG_URL = urls.first()
|
||||
jenkins.setBuildDesc(APK: env.PKG_URL)
|
||||
} }
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
import groovy.json.JsonBuilder
|
||||
|
||||
@@ -134,4 +134,3 @@ def updateBucketJSON(urls, fileName) {
|
||||
writeFile(file: filePath, text: contentJson)
|
||||
return s5cmd.upload(filePath)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux' }
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
/* Options section can't access functions in objects. */
|
||||
def isPRBuild = utils.isPRBuild()
|
||||
|
||||
pipeline {
|
||||
agent { label 'macos && arm64 && nix-2.19 && xcode-15.1' }
|
||||
agent { label 'macos && arm64 && nix-2.24 && xcode-16.2' }
|
||||
|
||||
parameters {
|
||||
string(
|
||||
@@ -41,6 +41,7 @@ pipeline {
|
||||
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
|
||||
FASTLANE_DISABLE_COLORS = 1
|
||||
BUNDLE_PATH = "${HOME}/.bundle"
|
||||
SENTRY_PRODUCTION = "${utils.isReleaseBuild() ? 'true' : 'false'}"
|
||||
}
|
||||
|
||||
stages {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
/* Options section can't access functions in objects. */
|
||||
def isPRBuild = utils.isPRBuild()
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux && x86_64 && nix-2.19' }
|
||||
agent { label 'linux && x86_64 && nix-2.24' }
|
||||
|
||||
options {
|
||||
timestamps()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
|
||||
@@ -73,9 +73,9 @@ pipeline {
|
||||
passwordVariable: 'TESTRAIL_PASS'
|
||||
),
|
||||
usernamePassword(
|
||||
credentialsId: 'sauce-labs-api',
|
||||
usernameVariable: 'SAUCE_USERNAME',
|
||||
passwordVariable: 'SAUCE_ACCESS_KEY'
|
||||
credentialsId: 'lambda-test-api',
|
||||
usernameVariable: 'LAMBDA_TEST_USERNAME',
|
||||
passwordVariable: 'LAMBDA_TEST_ACCESS_KEY'
|
||||
),
|
||||
string(
|
||||
credentialsId: 'etherscan-api-key',
|
||||
@@ -95,8 +95,7 @@ pipeline {
|
||||
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
||||
sh """
|
||||
python3 -m pytest \
|
||||
--numprocesses 8 \
|
||||
--rerun_count=2 \
|
||||
--numprocesses 9 \
|
||||
--testrail_report=True \
|
||||
-m testrail_id \
|
||||
-m \"nightly\" \
|
||||
@@ -110,21 +109,6 @@ pipeline {
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
sauce('sauce-labs-cred') {
|
||||
saucePublisher()
|
||||
}
|
||||
}
|
||||
}
|
||||
success {
|
||||
script {
|
||||
junit(
|
||||
testDataPublishers: [[$class: 'SauceOnDemandReportPublisher', jobVisibility: 'public']],
|
||||
testResults: 'test/appium/tests/*.xml'
|
||||
)
|
||||
}
|
||||
}
|
||||
cleanup {
|
||||
sh 'make purge'
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
|
||||
@@ -111,9 +111,9 @@ pipeline {
|
||||
passwordVariable: 'TESTRAIL_PASS'
|
||||
),
|
||||
usernamePassword(
|
||||
credentialsId: 'sauce-labs-api',
|
||||
usernameVariable: 'SAUCE_USERNAME',
|
||||
passwordVariable: 'SAUCE_ACCESS_KEY'
|
||||
credentialsId: 'lambda-test-api',
|
||||
usernameVariable: 'LAMBDA_TEST_USERNAME',
|
||||
passwordVariable: 'LAMBDA_TEST_ACCESS_KEY'
|
||||
),
|
||||
string(
|
||||
credentialsId: 'etherscan-api-key',
|
||||
@@ -133,8 +133,7 @@ pipeline {
|
||||
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
||||
sh """
|
||||
python3 -m pytest \
|
||||
--numprocesses 8 \
|
||||
--rerun_count=2 \
|
||||
--numprocesses 9 \
|
||||
--testrail_report=True \
|
||||
-k \"${params.KEYWORD_EXPRESSION}\" \
|
||||
--apk=${params.APK_URL ?: apk_path} \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
agent { label 'macos' }
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
agent { label params.AGENT_LABEL }
|
||||
@@ -109,10 +109,19 @@ pipeline {
|
||||
stage('Upload') {
|
||||
steps { script {
|
||||
sshagent(credentials: ['nix-cache-ssh']) {
|
||||
nix.shell("""
|
||||
nix.shell(
|
||||
"""
|
||||
find /nix/store/ -mindepth 1 -maxdepth 1 -type d \
|
||||
-not -name '*.links' -and -not -name '*-status-mobile-*' \
|
||||
| xargs nix copy --to ${NIX_SSH_REMOTE}
|
||||
-not -name "*.links" -and -not -name "*-status-mobile-*" \
|
||||
-and -not -name "tmp-*" \
|
||||
-print0 | xargs -0 nix-store -qR | sort -u > "${WORKSPACE_TMP}"/store-paths.txt
|
||||
""",
|
||||
pure: false
|
||||
)
|
||||
nix.shell(
|
||||
"""
|
||||
nix-store --export < "${WORKSPACE_TMP}"/store-paths.txt | \\
|
||||
ssh ${env.NIX_SSHOPTS} ${params.NIX_CACHE_USER}@${params.NIX_CACHE_HOST} ${env.NIX_STORE_CMD} --import
|
||||
""",
|
||||
pure: false
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux' }
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env groovy
|
||||
library 'status-jenkins-lib@v1.9.1'
|
||||
library 'status-jenkins-lib@v1.9.20'
|
||||
|
||||
pipeline {
|
||||
agent {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
- [Patching](patching.md)
|
||||
- [Creating a pixel perfect UI](pixel-perfection.md)
|
||||
- [Contributing to status-go](status-go-changes.md)
|
||||
- [Status Backend Server](use-status-backend-server.md)
|
||||
- [Malli schemas (recorded demo)](https://www.youtube.com/watch?v=SlRio70aYVI) ([slides](files/forging-code-with-schemas-sep-2023-slides.pdf))
|
||||
|
||||
## Testing
|
||||
@@ -33,7 +34,7 @@
|
||||
|
||||
## Misc
|
||||
|
||||
- [Importing icons from Figma into project](export-icons.md)
|
||||
- [Importing assets from Figma into project](import-assets.md)
|
||||
- [Updating Status APK builds for the F-Droid Android application catalogue](fdroid.md)
|
||||
- [Troubleshooting for known errors](troubleshooting.md)
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ This one is straightforward, just evaluate a navigation dispatch form from anywh
|
||||
|
||||
#### REPL-ing a component
|
||||
|
||||
This is also straighforward, but there are some small differences. Just like above, we only have to evaluate a dispatch form, as follows:
|
||||
This is also straightforward, but there are some small differences. Just like above, we only have to evaluate a dispatch form, as follows:
|
||||
|
||||
```cljs
|
||||
;; example debugging a quo component, although it could be any other component e.g. from the `status-im2` ns.
|
||||
|
||||
@@ -127,6 +127,71 @@ You can provide `--storage-opt size=30G` flag if Docker complains about running
|
||||
|
||||
You should also run `lint` and `rewritemeta` for the App ID to verify and fix the YAML metadata formatting.
|
||||
|
||||
# Scanning Builds Locally
|
||||
|
||||
Based on the documentation provided here: https://gitlab.com/fdroid/wiki/-/wikis/Tips-for-fdroiddata-contributors/Setting-up-app-submission-development-environment-locally
|
||||
|
||||
We can locally scan our source code and pre-built APKS by using the FDroid CLI tool. We can prepare a FDroid environment by
|
||||
following [the steps mentioned in these instructions](https://gitlab.com/fdroid/wiki/-/wikis/Tips-for-fdroiddata-contributors/Setting-up-app-submission-development-environment-locally).
|
||||
* Note, at the time of writing (March 2025), the easiest way to follow these instructions involved:
|
||||
* Creating a new empty directory outside of the status-mobile repository.
|
||||
* For this example, let's refer to this directory as `status-fdroid-server`
|
||||
* Then git cloning the two referenced git repos inside the `status-fdroid-server` directory:
|
||||
```shell
|
||||
git clone https://gitlab.com/fdroid/fdroiddata.git --depth=1
|
||||
git clone https://gitlab.com/fdroid/fdroidserver.git --depth=1
|
||||
```
|
||||
* Then create a subdirectory inside `status-fdroid-server` named `apks`
|
||||
* Then create a subdirectory inside `status-fdroid-server` named `scripts`
|
||||
* Create a file inside the `scripts` folder named `env.sh`
|
||||
```shell
|
||||
source /etc/profile.d/bsenv.sh
|
||||
export GRADLE_USER_HOME=$home_vagrant/.gradle
|
||||
export fdroid="sudo --preserve-env --user vagrant
|
||||
env PATH=$fdroidserver:$PATH
|
||||
env PYTHONPATH=$fdroidserver:$fdroidserver/examples
|
||||
env PYTHONUNBUFFERED=true
|
||||
env TERM=$TERM
|
||||
env HOME=$home_vagrant
|
||||
fdroid"
|
||||
|
||||
export build=im.status.ethereum
|
||||
```
|
||||
* Create a file inside the `scripts` folder named `prep.sh`
|
||||
```shell
|
||||
apt-get update && apt-get install -y make xz-utils
|
||||
```
|
||||
* Create a file inside the `scripts` folder named `run.sh`
|
||||
```shell
|
||||
docker run --rm -i -t --privileged --pid=host --entrypoint "/bin/bash" \
|
||||
-v ${ANDROID_SDK_ROOT}:/opt/android-sdk:Z \
|
||||
-v $(pwd)/fdroidserver:/home/vagrant/fdroidserver:Z \
|
||||
-v $(pwd)/scripts:/scripts:z \
|
||||
-v $(pwd)/fdroiddata:/build:z \
|
||||
-v $(pwd)/apks:/apks:z \
|
||||
registry.gitlab.com/fdroid/fdroidserver:buildserver
|
||||
```
|
||||
* Create a file inside the `scripts` folder named `latest-version-code.sh`
|
||||
```shell
|
||||
prefix="versionCode: "
|
||||
resultLine=$(grep $prefix ./metadata/$build.yml | tail -n 1)
|
||||
echo $resultLine | sed -e "s/^$prefix//"
|
||||
```
|
||||
* Then inside a terminal shell run the following command:
|
||||
* `env ANDROID_SDK_ROOT=<insert sdk directory> sh scripts/run.sh`
|
||||
* Ensure you replace `<insert sdk directory>` with the path to Android SDK folder.
|
||||
* On macOS, the value could be: `$HOME/Library/Android/sdk`
|
||||
* Once inside the Docker shell environment run the following commands:
|
||||
* `sh /scripts/prep.sh`
|
||||
* This command should install `xz` utils packages for installing the Nix package manager.
|
||||
* `source /scripts/env.sh`
|
||||
* This command should populate the Docker shell environment with the `$fdroid` command.
|
||||
* Next we can run `cd /build` to enter the `fdroiddata` directory that has been mounted inside the docker environment.
|
||||
* And now we can run `$fdroid scanner $build:$(sh /scripts/latest-version-code.sh)` to scan the latest version of the status app that has been registered in the `fdroiddata/metadata/im.status.ethereum.yml` file.
|
||||
* Alternatively, we can also copy an APK into the `apks` folder and run `$fdroid scanner /apks/<insert-apk-file-name>`.
|
||||
* Ensure that you replace the `<insert-apk-file-name>` with the correct name of the pre-built APK.
|
||||
* For example, after running `make release-fdroid`, you can copy the `app-arm64-v8a-release-unsigned.apk` file into the `apks` folder and run `$fdroid scanner /apks/app-arm64-v8arelease-unsigned.apk` inside the docker shell environment.
|
||||
|
||||
# Details
|
||||
|
||||
The original research was done in [#8512](https://github.com/status-im/status-mobile/issues/8512).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# new icons
|
||||
# Importing assets from Figma into project
|
||||
|
||||
## Export icons
|
||||
## Icons
|
||||
|
||||

|
||||
|
||||
@@ -13,3 +13,11 @@
|
||||
```
|
||||
2x@2x
|
||||
4. If you want platform specific icon use `.android` or `.ios` suffixes. Example `icon_name@2x.android.png`.:w
|
||||
|
||||
## Images
|
||||
|
||||
Make sure to compress images before using into project.
|
||||
```
|
||||
make shell
|
||||
./scripts/compress_image.sh image_path
|
||||
```
|
||||
@@ -92,7 +92,7 @@ For particular example it was failed on `Recover access(password:qwerty, keycard
|
||||
Not all features of the app could be covered by e2e at the moment:
|
||||
|
||||
- Colours or place of an element on UI.
|
||||
- Real ETH/token transactions. That’s the main reason we have separate .apk build for automation needs - it defaults to Goerli network. Also it has enabled keycard test menu, ENS names and chat commands are also on Goerli network (the same in PR builds, but not in nightlies / release)
|
||||
- Real ETH/token transactions. That’s the main reason we have separate .apk build for automation needs - it defaults to Sepolia network. Also it has enabled keycard test menu, ENS names and chat commands are also on Sepolia network (the same in PR builds, but not in nightlies / release)
|
||||
- Autologin/Biometric related actions (autologin available when device meets certain conditions like the it has set unlock password and device is not rooted: all emulators are rooted in SauceLabs)
|
||||
|
||||
## Brief flow for test to be automated
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
## What is Status Backend Server
|
||||
Status Backend Server is a http server that runs status-go, it exposed endpoints come from [mobile/status.go](https://github.com/status-im/status-go/blob/master/mobile/status.go) so that you can call them through http requests. It brings the following benefits:
|
||||
- When verifying changes made in status-go, you only need to run these commands once (unless modifying Kotlin/Objective-C code):
|
||||
- `make clean && make run-clojure`
|
||||
- `make run-android` or `make run-ios`
|
||||
This avoids repeatedly rebuilding and saves development time.
|
||||
- Debug status-go while running status mobile app
|
||||
|
||||
## Solution to use Status Backend Server for mobile development
|
||||
`StatusBackendClient` is the entry point to use Status Backend Server. We need always to call `status-im.setup.status-backend-client/init` whether `STATUS_BACKEND_SERVER_ENABLED` is `1` or not. If it's not enabled, the invocation to functions in `native-module.core` will be delegated to built-in status-go library, otherwise it will be delegated to status-go running in status-backend server. Currently, all functions has usages in `native-module.core` should be supported delegated to.
|
||||
NOTE: not all the native functions used `StatusBackendClient`, only the corresponding functions in `native-module.core` has usages should be supported delegated to ATM.
|
||||
|
||||
related [PR](https://github.com/status-im/status-mobile/pull/21550)
|
||||
|
||||
## Usage
|
||||
### Add environment variables to your local machine:
|
||||
```shell
|
||||
# enable using status backend server or not, otherwise it will use built-in status-go library
|
||||
export STATUS_BACKEND_SERVER_ENABLED=1
|
||||
|
||||
#The host should contain an IP address and a port separated by a colon.
|
||||
#The port comes from your running status backend server.
|
||||
#If you run it by PORT=60000 make run-status-backend , then host will likely be 127.0.0.1:60000
|
||||
export STATUS_BACKEND_SERVER_HOST="127.0.0.1:60000"
|
||||
|
||||
export STATUS_BACKEND_SERVER_ROOT_DATA_DIR="/path/to/your/root/data/dir"
|
||||
```
|
||||
You need to change `STATUS_BACKEND_SERVER_ROOT_DATA_DIR` to your preferred directory and ensure it exists, it should be in absolute path.
|
||||
All the db files and log files(api.log/geth.log) and keystore files etc will be stored in this directory.
|
||||
|
||||
### Start the status backend server:
|
||||
```shell
|
||||
PORT=60000 make run-status-backend
|
||||
```
|
||||
MAKE SURE the status-backend is checked out to a revision that's at least compatible with the revision in status-mobile/status-go-version.json before starting the server.
|
||||
|
||||
For the Android simulator, you need to reverse the port:
|
||||
```shell
|
||||
adb reverse tcp:60000 tcp:60000
|
||||
```
|
||||
However, there is restriction when use adb reverse, we use random port for media server. So I'd suggest use "10.0.2.2:60000" as `STATUS_BACKEND_SERVER_HOST`.
|
||||
|
||||
### Debug status-go using IDEA
|
||||
Assume you've already set up the development environment for status-go, open status-go project use IDEA, run `make generate` with terminal in the status-go project root directory to ensure all the generated files are up to date, then open `cmd/status-backend/main.go` file, navigate to function `main()`, click the green play button on the left of `main()`, choose `Modify Run Configuration`, in `Program arguments` section, add `--address=localhost:60000 --media-https=false`, then click `OK`, finally click the green play button on the left of `main()` again and choose `Debug ...`.
|
||||
Basically, you don't have to run `make generate` again and again, just run it once at the beginning. So you can re-run and debug it faster!
|
||||
|
||||
## Known Android simulator issues
|
||||
- Issue#1: Android simulator may not display images due to TLS certificate validation issues with the image server
|
||||
- solution: use http instead of https for media server with set env: `export STATUS_BACKEND_SERVER_MEDIA_SERVER_ENABLE_TLS=0`, you also need to set env variable `STATUS_BACKEND_SERVER_IMAGE_SERVER_URI_PREFIX` to "http://10.0.2.2:" so that `image_server.cljs` can work, and to make `/accountInitials` work, you need to copy `Inter-Medium.ttf` to your host machine from the android simulator, let's say you store it in `/Users/mac/Downloads/Inter-Medium.ttf`, then you need to update `get-font-file-ready` manually in `image_server.cljs` to return the correct path so that status backend server can access it.
|
||||
- Issue#2: exportUnencryptedDatabaseV2/import-multiaccount does not work for android, probably cause of tech debt, I found it during creating the draft PR.
|
||||
- Issue#3: unable to invoke `multiaccounts_storeIdentityImage` to change avatar image.
|
||||
- The reason is that we path the absolute path of the image to the backend server, but the image file is stored in the android simulator. the backend server cannot access it as it runs in the host machine.
|
||||
|
||||
If you're using ios simulator, you can skip above issues!
|
||||
|
||||
## Details for issue#1 if you're interested
|
||||
- we use `react-native-fast-image` which use okhttpclient behind
|
||||
- we were using custom cert for https
|
||||
- we fetch the custom cert through endpoint `ImageServerTLSCert`
|
||||
- we fetched it through built-in status-go before, now we need to fetch it through status backend server
|
||||
- we expect `OkHttpClientProvider.setOkHttpClientFactory(StatusOkHttpClientFactory())` to be invoked early(will trigger fetching wrong custom cert via built-in status-go since StatusBackendClient is not initialised yet!) in `MainApplication.kt` before executing clojure code, otherwise we will get black screen after `make run-android` . After deep research, I found there's no way to update the cert okhttpclient used to the correct one return from status backend server
|
||||
@@ -217,6 +217,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-22
|
||||
arm64-darwin-23
|
||||
x86_64-darwin-22
|
||||
|
||||
DEPENDENCIES
|
||||
|
||||