Compare commits

...
Author SHA1 Message Date
Shivek Khurana 5e46db6cd2 tos->tou
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-07-14 15:42:28 +05:30
andrey 81a2069d6a [#12294] "Unknown" if tap "Pinned messages" on user profile from public chat
Signed-off-by: andrey <motor4ik@gmail.com>
2021-07-12 16:18:00 +05:30
Brian Sztamfater d7cc6aa90a Fix error replies activity center while not implemented
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-07-12 16:18:00 +05:30
andrey 73ef9de339 copy full address when signing tx
Signed-off-by: andrey <motor4ik@gmail.com>
2021-07-12 16:08:08 +05:30
Shivek Khurana 66b3510840 Principles link 🔗 Fixes #12296
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-07-12 16:08:08 +05:30
Shivek Khurana c34e073bcd Bump release to 1.15.0 2021-07-07 18:02:01 +05:30
Michele Balistreri 5ff854c7c7 update status-go
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-07-07 13:53:01 +02:00
Shivek Khurana dea7227c29 Enabled password reset UI
Fix function typo that caused android version to fail
Fix Issue 1 pointed out by Tetiana. Implement new UI to accomodate slow progress on Android
Fix QA Issue 3 - Hide reset password option for keycard accounts
Add steps to password reset
Align the checkbox on terms of use
Make modal rext align center because it wrapped abruptly
Logout user after password reset
Disable next button to curb recklessness
Remove reset password feature flag

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-07-07 17:02:44 +05:30
Serhy ab01093a6e Edit message in chat test
Signed-off-by: Serhy <sergii@status.im>
2021-07-07 11:36:34 +03:00
jinhojang6 a35d5f9d15 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2021-07-07 08:51:42 +02:00
Vitaliy Vlasov caaba958e3 Add Waku V2 support
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2021-07-06 19:18:48 +03:00
andrey 723d99cb40 [#12260] Keycard UI issues after RNN
Signed-off-by: andrey <motor4ik@gmail.com>
2021-07-06 13:03:45 +02:00
Serhy 927d67f3ca Update tests to check ToS link and fix for chats in activity centre
Signed-off-by: Serhy <sergii@status.im>
2021-07-05 23:23:29 +03:00
Brian Sztamfater 089f42e0e9 Pinned messages in chats
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-07-05 10:31:37 -03:00
andrey 440e6d2047 [#12270] App crashes if first open the "Enter your seed phrase" screen, then go back, generate a new key and create a password
Signed-off-by: andrey <motor4ik@gmail.com>
2021-07-05 14:25:53 +02:00
Brian Sztamfater af9461da74 Mention activity center & empty state
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-07-02 16:42:18 -03:00
jakub ec54de8f63 nix: refactor gomobile to be built with buildGo114Module
This simplifies the package, and also drops the need for `deps.nix` file.
It also slims down the #11986 Go upgrade PR for easier debugging.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-30 18:50:05 +02:00
jakub 0d403739f9 nix: upgrade go-maven-resolver to 1.1.1, add more repos
I've noticed issues with the https://repository.sonatype.org/ Maven repository we were using.
They appear to have purged their storage of a lot of packages, including our own for example:
https://repository.sonatype.org/content/groups/sonatype-public-grid/com/github/status-im/

For this reason I've release a new version of `go-maven-resolver` that includes two more Maven repos:
- https://plugins.gradle.org/m2
- https://jitpack.io

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-30 18:49:55 +02:00
Churikova Tetiana 031626aefc e2e: more fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-06-30 16:53:39 +02:00
andrey b280befe2d rnn more issues
Signed-off-by: andrey <motor4ik@gmail.com>
2021-06-30 15:24:32 +02:00
Shivek Khurana 35845ae3d3 New TOS and force opt-in banner
Change link on first screen fix #12122
Tos and privacy now open in webview. Added TOS to about fix #12208
New users TOS opt in fixes #12206
Add tos accept screen for existing users fixes #12207
Address reviews and effects to show-hide force tos opt-in screen
clear checkbox state when get started is clicked. Fixes qa-issue 2
Show screen logic and cleanup
Fix issue with banner not showing for second new account, until re-login. Update Terms of service to Terms of Use.
Update tos url
Update e2e
Update e2e 2
Update e2e 3

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-06-30 12:41:06 +05:30
Churikova Tetiana d3fefb6238 e2e: fixes, align, e2e for sync
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-06-29 18:22:52 +02:00
Michele BalistreriandTetiana Churikova 6598ef3466 remove cancel warning on Keycard onboarding
Co-authored-by: Tetiana Churikova <tatiana@status.im>
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-06-29 13:43:55 +02:00
Andrea Maria Piana 45b9fd4b91 [Fixes: #12607] Edit messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-29 13:18:52 +02:00
Michele Balistreri 9ba0960d71 improve credential handling for e2e
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-06-25 15:46:16 +02:00
jakub f917782fc1 ci: allow for providing custom Nix cache hosts
This is part of my work of moving Nix cache to a separate host
because our Master host with jenkins needs more space.

Also, new Nix installer updated `.profile`, not `.bash_profile`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-24 15:33:28 +02:00
Shivek Khurana dc86457035 Fix go version
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-06-24 16:22:04 +05:30
Shivek Khurana a1204d0c80 UI in place
Do not need account-info for password reset
Update status go version
Java API
PR Fixes and hide behind a feature flag
Reset status go version to HEAD
Disable reset password in DEV
Enable reset password in DEV

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-06-24 13:47:57 +05:30
andrey e7887d4fca [#11885] Add ETH2x-FLI erc20 token in our default list of supported tokens in the wallet
Signed-off-by: andrey <motor4ik@gmail.com>
2021-06-23 20:16:17 +02:00
Churikova Tetiana 8bab25075b e2e: align tests with RNN upgrade
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-06-23 19:09:33 +02:00
andrey 706d6a44a4 rnn leftovers
Signed-off-by: andrey <motor4ik@gmail.com>
2021-06-23 15:35:31 +02:00
andrey dd5864ff25 add plain url support in all qr scanners, add scanner to browser options
Signed-off-by: andrey <motor4ik@gmail.com>
2021-06-22 13:39:03 +02:00
Serhy a1d091ac19 Update release process guide
Signed-off-by: Serhy <sergii@status.im>
2021-06-22 14:15:28 +03:00
Churikova Tetiana e312e3137d add release umbrella issue template
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-06-21 13:28:49 +02:00
Churikova Tetiana 1def0b7f9e added 1.14 to RELEASES.md 2021-06-21 13:28:18 +02:00
andrey 7bfd671820 [#12233] support $HEZ erc20 token
Signed-off-by: andrey <motor4ik@gmail.com>
2021-06-21 12:39:22 +02:00
Serhy afb6109d9f Update e2e tests after RNN upgrade
Signed-off-by: Serhy <sergii@status.im>
2021-06-18 16:33:15 +03:00
jakub a9601ddb86 ci: upgrade XCode 12.3 to 12.5
It's about time to upgrade, especially since `13.0` is near.

Related to: https://github.com/status-im/infra-ci/commit/2d63c1f3

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-18 15:10:53 +02:00
jakub 0652d18653 nix: upgrade nixpkgs, keep Go at 1.14.15
Notable software upgrades:

- Go `1.14.13` to `1.14.15`
- Clojure `1.10.1.763` to `1.10.3.855`
- NodeJS `12.20.1` to `12.22.1`
- Git `2.29.2` to `2.31.1`
- CMake `3.10.2` to `3.18.1`
- Curl `7.74.0` to `7.76.1`
- Android NDK `21.3.6528147` to `22.1.7171670`
- Android Platform Tools `30.0.5` to `31.0.2`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-15 17:49:33 +02:00
jakub f9d697dd2e nix: upgrade Nix 2.3.6 to 2.3.12
This should also fix issues with MacOS sandboxing:
```
sandbox-exec: execvp() of '/nix/store/...-bash-4.4-p23/bin/bash' failed: Operation not permitted
```
https://github.com/cachix/install-nix-action/issues/15

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-15 17:49:27 +02:00
Serhy 296e28ef1c Bump release to 1.14.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-15 11:46:57 +02:00
Serhy 9502229c09 e2e update to align RN update
Signed-off-by: Serhy <sergii@status.im>
2021-06-14 22:02:26 +03:00
andrey 5f719ac95b react native navigation
Signed-off-by: andrey <motor4ik@gmail.com>
2021-06-14 20:03:49 +02:00
jakub 0e12360ed8 fdroid: fix permissions on TMPDIR for Vagrant builds
Our `Makefile` implicitly creates the `TMPDIR` folder.
The issue with that is that if `make fdroid-build-env` is called by
`root` - as it is when being used by F-Droid - then the `TMPDIR`
is also owned by `root`, and because its permissions are `0755` the
`vagrant` user is unable to write to it.

This is why implicit targets like this are a nightmare to debug:
https://github.com/status-im/status-react/blob/63290fd019d26647e0b8a3d5f1e323b762644337/Makefile#L120-L124

For more details see:
https://gitlab.com/fdroid/fdroidserver/-/issues/910
https://gitlab.com/fdroid/fdroiddata/-/merge_requests/8879
https://gitlab.com/fdroid/fdroiddata/-/merge_requests/9140

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-10 16:43:07 +02:00
Churikova Tetiana 63290fd019 e2e: txs fix + color match
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-06-08 13:02:19 +02:00
jakub ffb5fac6f7 fdroid: add fix for /tmp permission on Vagrant builders
You can see details about this in these PRs:
https://gitlab.com/fdroid/fdroiddata/-/merge_requests/8879
https://gitlab.com/fdroid/fdroiddata/-/merge_requests/9140

Without this the build fails with:
```
error: creating directory '/tmp/tmp-status-react-896b583da/nix-shell-900-0': Permission denied
```
https://monitor.f-droid.org/builds/log/im.status.ethereum/2021042608

It doesn't make any sense to me, since `/tmp` has to have `1777`
permissions, but it is what it is.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-08 10:13:40 +02:00
jakub c20d6b5782 ci: do no delete non-draft releases
We identified this issue in status-desktop release from branch
`release/0.1.0-beta.10` which had old version in VERSION file.
https://ci.status.im/job/status-desktop/job/release/job/release%252F0.1.0-beta.10/

Depends on: https://github.com/status-im/status-jenkins-lib/pull/28

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-08 09:19:36 +02:00
jakub 2b52ba2389 ci: fix folder name for the status.im CI job
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-06-08 09:19:28 +02:00
Serhy bc823f9e96 Enable DB management in e2e builds
Signed-off-by: Serhy <sergii@status.im>
2021-06-07 14:47:42 +03:00
Andrea Maria Piana 3568b20522 [Fixes: #12191] Fix muting chat
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-07 07:28:00 +02:00
Volodymyr Kozieiev 1900e3038b Community channel editing
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-06-04 19:21:51 +03:00
Michele Balistreri aaf07911c4 add blocked card popover
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-06-04 13:12:06 +02:00
Shivek Khurana 8448570922 Anonymous metrics opt-in UI
Settings screen
Settings event handler and connection to UI
Both bottom sheets with text in place
Make links inline
Show metrics in progress
Event value in accordion
Repurpose metrics screen for first time users
Onboarding metrics screen working, but not connected to flow. No animations yet.
Show opt-in banner for new accounts
Show opt in screen on login for existing accounts. Don't start metrics service for accounts where metrics are disabled
Tighten start/stop logic
Pagination and loader
Remove prn and fix lint
Ui fixes
Thank you animation
lint fix
PR comment fixes
Get rid of set, fix lint
Have an overshoot but buttons stopped working
add accessibility labels
True modals and fix opt-in displayed multiple times error
Fix icon cutting off on the top on smaller screens
Replace "invite-instructions" to "how-it-works" in all translatiosn
Add pagination to view-data events
Refactor open and close modal functions
Remove dispatch from init-db
Update status go to include pagination of data
Put metrics behind a feature flag

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-06-04 13:57:36 +05:30
Andrea Maria Piana e4e9556303 set depreacted metamask fields
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-02 13:18:29 +02:00
Serhy 3207300e02 Tests execution ordering
Signed-off-by: Serhy <sergii@status.im>
2021-06-02 13:22:00 +03:00
Andrea Maria Piana f0d739291e Add community link in description
Fixes: #12179
Fixes: #12133
Fixes: #12131

This commit adds a community link in the description that can be copied and
shared by the user.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-02 12:18:13 +02:00
jinhojang6 f26c3090c6 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-06-01 13:45:06 +02:00
Andrea Maria Piana 505b290c6e [Fixes: #12140] Don't show gap after 30 days and allow user to set sync period
This commit adds a setting in sync section so that user can select the
amount of days the can sync.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-01 13:08:20 +02:00
Andrea Maria Piana 508060f18d Fix community toggle
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-06-01 13:02:31 +02:00
Andrea Maria Piana a3cb837266 Fix group chat gaps 2021-06-01 13:02:20 +02:00
Andrea Maria Piana ae3df0c730 Exclude blocked contacts from list 2021-06-01 13:02:20 +02:00
Andrea Maria Piana d6a999043e dont show gaps in timeline/profile chats 2021-06-01 13:02:19 +02:00
Andrea Maria Piana 58d994706f Hide option to select community type
Fixes: #12147

Hide option to select community type
2021-06-01 13:02:18 +02:00
Michele Balistreri 213c288cc1 handle hash-message failure correctly
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-31 16:41:02 +02:00
Michele Balistreri 114e704b78 fixed various styling issues
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-31 12:38:40 +02:00
Serhy 4cd6ada534 Update e2e to check ther is no blocked user in mentions
Signed-off-by: Serhy <sergii@status.im>
2021-05-31 12:10:24 +03:00
Churikova Tetiana 1bdbf3e403 e2e: mentions + new e2e + unread mentions
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-28 17:42:54 +02:00
Andrea Maria Piana ef13b4d210 [Fixes: #12061] Add unread mentions count
Fixes: #2061

This commit adds an unread mentions count in 3 places:

1) Public chats
2) Communities in home
3) Communities chats

The logic is that if you have unread mentions, it will show you the
count of messages with unread mentions, while if you have only unread
messages, you will see a blue dot.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-28 16:50:53 +02:00
Andrea Maria Piana 8926a7ad4e Allow importing db from script
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-28 12:58:40 +02:00
Michele Balistreri 65d76ba9c8 remove puk/pairing step from onboarding
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-27 14:02:15 +03:00
Serhy 399e7d399b Update e2e with more checks
Signed-off-by: Serhy <sergii@status.im>
2021-05-27 13:35:15 +03:00
Serhy 69a50ff9ab Update kk test with additional check
Signed-off-by: Serhy <sergii@status.im>
2021-05-26 11:44:54 +03:00
Andrea Maria Piana 152407b903 [Fixes: #12060] Highlight posts that mention you
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-26 08:40:41 +02:00
jakub e30ca97184 nix: drop references to nix-cache-cn.status.im
See:
https://github.com/status-im/infra-ci/commit/faaf051b

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-25 17:53:47 +02:00
Roman Volosovskyi 011de1b8ae Tracing of nested fx handlers on :trace logging level 2021-05-25 16:26:51 +03:00
jakub 6d43f34cf8 nix/deps/gradle: include Gradle targets with numbers in names
This fixes an issue first detected in:
https://github.com/status-im/status-react/pull/12141

Which resulted in dependencies being ignored for `react-native-nagivation`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-25 14:33:41 +02:00
Churikova Tetiana e5b7fb13a1 e2e: 3 last upgrade tests
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-25 13:46:28 +02:00
Michele Balistreri b67ecacd8b fix #10793 and #11060
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-25 13:38:40 +03:00
Roman Volosovskyi 58d358125c [wallet] Show cached balance before fetching latest 2021-05-25 10:26:57 +03:00
Andrea Maria Piana f5baee5039 [Fixes: #12136] Fix endless spinner on group chat invitation
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-24 15:55:49 +02:00
Volodymyr Kozieiev 2b0c498613 Edit community
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-24 16:26:42 +03:00
Michele Balistreri 177b905291 remove unreliable card check
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-24 12:24:40 +03:00
Michele Balistreri 4217f558a8 add reset with mnemonic on frozen/blocked cards
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-21 15:41:52 +03:00
Andrea Maria Piana a71468f425 Allow toggling communities
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-21 13:09:19 +02:00
Andrea Maria Piana dd5c30b7a0 Move mailserver logic/gaps/ranges to status-go
This commit moves most of the mailserver logic to status-go.

- Filters are now removed and not passed to the client anymore
- Ranges have been removed
- Gaps are now messages with a different content type
- Upsert/Save chat has been removed and instead we have more specific
endpoints such as CreatePublicChat/CreateOneToOneChat/CreateProfileChat
- Creation of timeline/profile chat has been moved to status-go

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-05-21 07:44:21 +02:00
Brian Sztamfater 929925af39 Resolve username to ENS right after 1-1 chat opened after username search from 'Start new chat' by ENS
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-05-19 12:00:37 -03:00
Churikova Tetiana 880321ccc4 e2e: paring upgrade test
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-19 14:34:29 +02:00
Michele Balistreri 1bff966679 correctly resume keycard setup after cancel
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-19 13:11:39 +03:00
Michele Balistreri f770045f89 show notifications and welcome screen for keycard
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-18 19:14:38 +03:00
Michele Balistreri 72df44da6c allow creation of recovery cards from logged-out state
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-18 14:09:11 +03:00
Churikova Tetiana 273b0064e2 e2e: upgrade - dapps, wallet
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-18 10:39:27 +02:00
guylouis 9dcf3cde93 added v1.13 release note
Signed-off-by: andrey <motor4ik@gmail.com>
2021-05-18 10:09:14 +02:00
Churikova Tetiana b6623ae1c3 e2e: merge too granular e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-14 11:20:14 +02:00
Churikova Tetiana 2618201bb3 ci: make e2e stage depends on publish param
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-12 20:42:30 +02:00
Roman Volosovskyi ba3e229d6f make target for clearing xcode's derived data dir 2021-05-12 16:39:29 +03:00
Michele Balistreri 8cb0ad9285 add signTypedData_V4 to Keycard and update status-go
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-12 13:48:05 +03:00
Roman Volosovskyi 6c7d689a7c fix building for ios simulator from cli/xcode 2021-05-11 12:42:52 +03:00
Serhy 6a71a1e798 Update e2e to merge emoji long tab in another test
Signed-off-by: Serhy <sergii@status.im>
2021-05-11 12:25:59 +03:00
Volodymyr Kozieiev 3469aca1d8 Remove fastlane metadata because no one use it
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-11 12:09:42 +03:00
Michele Balistreri 427209c960 removes flow related flags when cancelling
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-11 09:09:52 +03:00
Tetiana Churikova b71617e490 update bug report: add missing brackets
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-10 17:35:52 +02:00
Tetiana Churikova ba8c943046 update bug-report
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-07 14:48:52 +02:00
Serhy ef042bdc0b Accept-Reject chats from activity center test
Signed-off-by: Serhy <sergii@status.im>
2021-05-07 13:14:57 +03:00
Volodymyr Kozieiev 8628cbbf76 Update release guide
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-06 15:58:58 +03:00
Michele Balistreri 0b8509949a add factory reset option on new Keycard account
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-05-06 13:26:45 +03:00
Roman Volosovskyi a7660754fb Allow to enter bip39 password on account recovery 2021-05-05 12:06:55 +03:00
Churikova Tetiana ec528f98cc e2e: upgrade - commands, audiomessage
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-05-03 17:07:23 +02:00
jakub dd0031f68e ci: add PR numbers to filenames of artifacts
This is useful for QA team when they download multiple builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-02 22:19:03 +02:00
Churikova Tetiana be37b1683e e2e: fix for progress bar and testrail for e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-30 18:41:14 +02:00
Churikova Tetiana 710e55002b e2e: 1 upgrade test
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-30 11:55:43 +02:00
Serhy 19eda04c90 Test activity cener with only-contacts setting
Signed-off-by: Serhy <sergii@status.im>
2021-04-29 14:00:33 +03:00
jakub cf9f160de9 ci: nicer artifact filenames for release builds
Depends on: https://github.com/status-im/status-jenkins-lib/pull/24

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-28 17:25:39 +02:00
Roman Volosovskyi 3dfa7beacd [wallet #12000] Check tx history in 2/3/5/10/20 minutes on buy crypto 2021-04-28 17:10:38 +03:00
Brian Sztamfater 4dacc95de6 Include a 'My Profile' button in the Start New Chat dialogue
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-04-27 16:44:03 -03:00
andrey 448782b3d3 small chat perf impr
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-27 16:36:11 +02:00
Roman Volosovskyi 693c41850c [wallet] Store pending transactions 2021-04-27 12:25:18 +03:00
andrey 1bd62f1199 [#12033] Can't open Status tab after upgrade from 1.12 to 1.13 if the tab has never been opened before upgrade
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-23 16:47:15 +02:00
Roman Volosovskyi 2ed25a9f51 fix warning on intro screen 2021-04-23 16:48:37 +03:00
Churikova Tetiana 3b6f3b77cc e2e fix PNs
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-23 14:59:33 +02:00
Volodymyr Kozieiev 67b646dcca status-go cleanup
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-22 17:10:42 +03:00
andrey d59c9205ea [#12011] Invisible messages in public and group chats if they were received while user was on another screen
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-21 13:10:19 +02:00
andrey c2212af3ff [#12014] Skip 'Accept and join' view when navigating back from public chat joined from referral
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-21 13:08:36 +02:00
andrey da9e6686c6 [#12008] "Community information is not found" after opening community view from home
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-20 17:44:28 +02:00
Andrea Maria Piana f7ab1ff20c Bump release to 1.13.0
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-20 17:55:36 +03:00
Andrea Maria Piana 956bb813d4 Make cut release executable 2021-04-20 11:07:48 +02:00
Andrea Maria Piana 807dabf5b2 Load message on-component-did-mount
I have changed the behavior of loading notifications:

Before it would always use the same function and check for `cursor !=
""`.
This worked on most cases, but sometimes the user would jump back to the
home view without doing any clean up, so cursor would be `""` and it
would not load any notification anymore.

Now the two functions are split in initial load, and load-more.

Initial load is called on component-did-mount so we don't have to worry
about where the user is coming from. We also avoid multiple firing of
the events by checking `loading?`, so it does not result in duplicated
notifications.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-20 11:06:19 +02:00
Churikova Tetiana 3b652adaf3 e2e: align with chat optimization
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-19 20:23:31 +02:00
andrey c22ffb1032 [#11994] No chats on Home screen after reopening the app if appearance doesn't match the device settings (dark/light mode)
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-19 18:53:29 +02:00
andrey 2494c61f85 [#11991] No unread message indicators after navigation back to 'Chats' main view via tap on Chats tab button 2021-04-19 18:53:19 +02:00
andrey 073371c4ed chat list optimization 2021-04-19 18:53:19 +02:00
Andrea Maria Piana db848a1f19 Add permission handling & enable HW acceleration on webview
This extend adding permissions to a separate webview used for buying
crypto.
It also removes a fix with hardware acceleration, as the camera does not
work if disabled.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-19 18:26:18 +02:00
Brian Sztamfater 85a01f5404 Add support for SOCKS token
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-04-19 11:17:37 -03:00
andrey adaf77ba1b v4
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-19 14:52:30 +02:00
andrey 7f839f952d eth_sign support 2021-04-19 14:50:44 +02:00
Volodymyr Kozieiev b29912f7f7 community links unfurling
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-19 15:44:32 +03:00
Roman Volosovskyi fab241f6ac Pevent incorrect usage of fx/defn inside fx/merge
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-04-19 12:51:37 +02:00
jakub 594c83013c ci: upgrade jenkins lib to 1.2.12 to generalize GH release
This is required to also ad GitHub releases to `status-desktop`.

Also renamed `status-react-jenkins` to `status-jenkins-lib` for clarity.

Depends on: https://github.com/status-im/status-react-jenkins/pull/23

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-19 11:47:34 +02:00
jakub 2e94e0e765 ci: rename folder to match status-desktop naming
Part of re-organization related to release builds for desktop.

See:
- https://github.com/status-im/status-react/pull/11992
- https://ci.status.im/job/status-desktop/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-19 11:47:25 +02:00
andrey 05ed28b9a2 re-frisk 1.5.0 2021-04-19 11:45:43 +02:00
Serhy f4530d4d03 activity center: align e2e
Signed-off-by: Serhy <sergii@status.im>
2021-04-19 11:39:43 +03:00
Shivek Khurana ed4e227144 Add a long running task to transfer events to Go when the user logs in, rename interceptors namespace to core, send events in batches, capture s/on-will-focus, capture navigate-to-cofx, stop long running task if any event fails validation, not quite ready yet, needs more testing
Remove redudant println, don't stop the task in case of a bad event, just reject that batch, capture navigate-to-cofx events with an effect, capture parts of screens/on-will-focus event

Fix lint

Shorten comment widths, update  to use less brackets, call events reset once, double run safety for long running task

Call onboard after stopping

Reset periodic-tasks-chan to  on close, formatting

Get rid of redundant inline function

Update go version to point to 0.75.1

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-19 10:59:23 +05:30
andrey 93ce02b547 [#11958] Add activity center 2021-04-16 20:45:20 +02:00
Andrea Maria Piana 5bb849f9c1 Add messages from contacts only 2021-04-16 20:45:19 +02:00
jakub 310a1ad5f1 drop scripts/tag-release.sh in favor of scripts/cut-release.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-16 16:14:57 +02:00
Andrea Maria Piana a90d8a1439 Add release guide & script to cut release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-16 16:12:37 +02:00
Michele Balistreri acbd240070 add change pairing code functionality
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-04-16 13:09:01 +03:00
Roman Volosovskyi c77b350d77 [wallet #11811] Show transfers with unspecified chaiId 2021-04-15 17:42:52 +03:00
jinhojang6 2cf0a60977 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-04-15 13:56:59 +02:00
jakub 711389365c doc: update update-playstore-metadata job link
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 16:14:16 +02:00
jakub ef5031a4aa ci: update Google Play JSON credential name
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 14:04:39 +02:00
jakub ab7e9795ce ci: use status-im-auto cred for e2e PR jobs
Trying to clean up duplicate credentials.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 13:50:22 +02:00
jakub 7eca3c42d7 ci: add Jenkinsfile for pod repo updates
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 13:48:00 +02:00
Volodymyr Kozieiev e307b4faa6 Fixed error on login with attempt to save wrong key into account
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-04-14 11:14:12 +03:00
Roman Volosovskyi 4129ca1597 [wallet #11898] Fix disappearing tokens after adding a new account 2021-04-14 11:09:17 +03:00
Brian Sztamfater 31ba933917 Improved Start New Private Chat interface
Signed-off-by: Brian Sztamfater <brian@status.im>
2021-04-13 16:57:47 -03:00
Michele Balistreri eea5b4eb0f add change PUK functionality
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-04-13 18:21:21 +03:00
Brian Sztamfater d1016669bb Remove self-mentions
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-13 11:22:52 +02:00
Serhy 4ca7c0b989 Jenkins URL to rerun tests
Signed-off-by: Serhy <sergii@status.im>
2021-04-13 11:16:25 +03:00
andrey f6e480344d do not render not active screen
Signed-off-by: andrey <motor4ik@gmail.com>
2021-04-13 08:40:02 +02:00
Shivek Khurana 5eed7bd560 Disable Medium.com unfurling
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-12 14:51:12 +05:30
andrey 87f86d3b7b bump re-frisk 1.4.0 2021-04-12 08:36:54 +02:00
jakub 8890f25f96 ios: update gems, fastlane 2.164.0 to 2.179.0
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-09 10:23:37 +02:00
jakub 651065f0a6 ios: fix saving stderr logs from react-native-xcode.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-09 09:50:14 +02:00
jakub b27a53bdee nix: fix order of starting iOS shell hooks
Fixes the `'Statusgo.h' file not found` error.

Resolves: https://github.com/status-im/status-react/issues/11951

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-09 09:50:13 +02:00
Roman Volosovskyi 2116847fc6 [wallet] cleanup 2021-04-08 23:58:55 +03:00
barukimang 965438bc87 fixed broken urls readme and contributing pages
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-07 19:06:30 +02:00
Shivek Khurana 90ad5f2f77 In key management section, the mnemonic was not being trimmed, which lead to issues
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-05 18:02:49 +05:30
Michele Balistreri f0827ff624 add creation of backup keycards
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-04-02 17:11:36 +03:00
Samuel Hawksby-Robinson be0ad943ea Anon metrics transfer
Saving my initial noodling

Saving my initial noodling

Filtering working much better, data collection working better

Added jsonrpc call params

Added transformations ns and funcs

whitelisting the new rpc method

Addressed PR feedback

Minor fix for the on-failure log/error

lint fix

manual lint fix

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-04-01 17:07:18 +05:30
Roman Volosovskyi 937efc9f4f [wallet #11944] Watch confirmation of sent tx when syncing is disabled 2021-04-01 11:31:54 +03:00
Andrea Maria Piana 116b4d8812 Add community notifications on android & IOS
[Fixes: #11806]
[Fixes: #11877]

Features added

An admin should receive a notification on android if a community request is made
Clicking on the push notification will take you to the list of requests
Changes to push notifications
Push notification for messages are grouped by chat, similarly to discord. Only the first notification in a chat will alert, the next will be "silent" notification. Meaning you will see the message but it will not alert. This is consistent with discord/whatsapp.
Clicking on a transaction notification will take you to wallet (not sure it was doing that before, but it might have)
Changed the behavior of the notification toggle, before Notifications and wallet transactions were separate, meaning you could have wallet transaction and Notifications disabled and you'd still receive transactions notifications. Now you need to have Notifications enabled to receive wallet transactions. Eventually we will have an option to toggle message notifications.

Technical details

Removes headless tasks, they were not used
Message notifications are passed unchanged to java, we still check if the chat is in the foreground, but no modifications are made to the notification object. This should get us closer to avoid clojure completely.
Merged the two notifications implementation (NewMessageSignalHandler and PushNotificationHelper). We should split maybe off in more meaningful classes, but there's less code duplication now, and it can be re-used for non-chat (communities) notifications.
Parsing of text for message notifications is done in status-go
Signal is not passed to status-react if notifications are not enabled

Next step

To completely remove notification code from status-react the following are required:

Java needs to be alerted of which chat is in the foreground and whether the app is in the foreground
Transaction notification body message need to be created in status-go
Notification signal needs to be stopped in Java

Limitations

If the name of a contact changes, the notification will not change, once is displayed, it won't be modified
2021-03-31 21:45:08 +02:00
Roman Volosovskyi 460685212a [wallet] Finetuning RPC calls for new accounts 2021-03-31 16:08:25 +03:00
guylouis 46655dbd48 Added v1.12 release notes
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-31 12:10:01 +02:00
Samuel Hawksby-Robinson f970834536 Added ToC, Tidied Troubleshooting, Added images to avoid future 404s
Removed superfluous check

Adjusted images to be 50% the page width

Image width 75%

Finished off REPL section

Signed-off-by: Samuel Hawksby-Robinson <samuel@samyoul.com>
2021-03-30 23:18:37 +01:00
Samuel Hawksby-Robinson a4836120e6 Added a doc for IDE setup
Based on https://notes.status.im/9Gr7kqF8SzC_SmYK0eB7uQ?view, hopefully this document can help some poor soul in the future. I have a little more work to do but I'm interested in whether this kind of document would be welcome in the repo
2021-03-30 22:57:46 +01:00
Roman Volosovskyi a364ce1906 [wallet] Optimized watching for tx confirmation
Update e2e
2021-03-30 22:16:38 +03:00
Brian Sztamfater 0c55f1208b Move react-native-status to a pod dependency
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-30 10:54:00 +02:00
Serhy da6860d693 pdate in balance related tests
Signed-off-by: Serhy <sergii@status.im>
2021-03-29 13:56:56 +03:00
andrey 94235aa703 navigate to login when error
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-29 12:18:48 +02:00
Samuel Hawksby-Robinson 5da9efebe3 Removed region from on-ramping we don't want it (#11920)
* Removed region from on-ramping we don't want it

* Updated status-go version

* revert change make ios made to keycard version

* Updated status-go version

* Updated status-go version

* Updated status-go version
2021-03-25 14:27:10 +00:00
andrey 3de7c37d90 chat input performance improvements
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-25 14:44:57 +01:00
Roman Volosovskyi 7c4c520712 [wallet #11860] Show preloaded tx history when app is offline 2021-03-24 17:48:40 +02:00
Andrea Maria Piana a8ae933604 Revert "Anon metrics transfer"
This reverts commit 2abd430e02.
2021-03-24 16:05:31 +01:00
Samuel Hawksby-Robinson 2abd430e02 Anon metrics transfer
Saving my initial noodling

Saving my initial noodling

Filtering working much better, data collection working better

Added jsonrpc call params

Added transformations ns and funcs

whitelisting the new rpc method

Addressed PR feedback

Fix lint

Add reasons to why txf ns exists

Transform event instead of the contexts

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-03-24 15:33:29 +05:30
Andrea Maria Piana a99e7f660f Add banning of users in communities
This commit adds bannning of users in communities for on-request and
invitation only communities.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-03-24 09:31:54 +01:00
jakub 8268346dfa fdroid: small fixes for docs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-23 13:33:30 +01:00
andrey f5df7805ee [#11864] Loopring smart contract bug
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-22 17:47:12 +01:00
Churikova Tetiana 5b08242102 e2e: refactor test browsing
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-19 19:53:45 +01:00
Roman Volosovskyi f8983ab147 [wallet #11902] Handle chain id mismatch 2021-03-19 18:22:32 +02:00
andrey 067c69cca4 [#11904] update swarm gateway
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-19 12:53:02 +01:00
Michele Balistreri 77e6f83e2e handle multiple paired keycards with the same account
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-03-18 16:24:31 +03:00
Churikova Tetiana 4e0ec35ea5 e2e: added delivered for group chats and check for PNs
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-17 14:41:22 +01:00
andrey 66a4ab5aef [#11883] Unread indicator re-appears for received message after relogin
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-17 14:30:38 +01:00
andrey 9d7dcc6ae7 [#11880] Open user profile when tapping on user icon in 1-1 chat
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-17 11:20:10 +01:00
jakub 46f8d9fdbf docs: update format of F-Droid metadata
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-17 11:18:39 +01:00
andrey b22acc3da2 [#11882] Replace #status with #support in Profile > Need help
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-17 10:56:45 +01:00
Roman Volosovskyi e5f9de828d [wallet] Nonce range cache 2021-03-16 20:45:09 +02:00
Andrea Maria Piana 3f9817b977 upgrade status-go
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-03-16 13:51:21 +01:00
andrey 503028cb4e fixed timeline load more, fixed message confirmation status
fixed group chat invitation

Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-16 09:35:22 +01:00
andrey c7cc9e27a9 [#11797] Communities issues
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-15 18:08:50 +01:00
Churikova Tetiana 313181ddb3 e2e: extend kk account creation
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-15 16:06:27 +01:00
Roman Volosovskyi a07c65d173 [wallet] Store last fetched balance and nonce in db 2021-03-15 16:36:18 +02:00
jinhojang6 1431cf80e1 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-15 15:09:38 +01:00
jinhojang6 1aba1f8000 Add the #status-arabic public chat
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-15 12:33:54 +01:00
andrey 76b1e2a007 bump re-frisk
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-12 13:01:59 +01:00
andrey 25d5672355 messages improvements 2021-03-12 12:07:15 +01:00
Roman Volosovskyi f572f5ef5e Add RPC usage stats screen 2021-03-10 14:18:52 +02:00
andrey 51178ab1b2 [#11843] "Enable all" is disabled after relogin for 3 or 4 chat link previews after relogin
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-08 15:21:26 +01:00
andrey a9124d0fd2 fix pods
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-08 13:52:52 +01:00
Churikova Tetiana ee4f6ead12 e2e: fix balance updating
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-08 09:53:43 +01:00
Michele Balistreri 5fecdd7830 keycard account removal and card reset
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-03-08 09:13:26 +03:00
Andrea Maria Piana 49b78c0cea Dont push notification if chat is not in cofx
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-05 16:10:28 +01:00
andrey aee782d468 [#11822] Own status updates are shown on other user profiles 2021-03-05 16:09:09 +01:00
Roman Volosovskyi ff02219080 [#11842] Fix login after restoring existing account 2021-03-05 14:51:07 +02:00
Roman Volosovskyi 9c7c796e02 [wallet] Avoid requesting of token balances on account creation 2021-03-05 08:16:50 +02:00
Roman Volosovskyi 843c015d56 [#11823] Fix balances fetching on recovering kk multiacc 2021-03-04 18:09:28 +02:00
Serhy 174329d098 User profilepic display setting test
Signed-off-by: Serhy <sergii@status.im>
2021-03-04 11:39:01 +02:00
andrey 0491038b09 1.12.0 2021-03-03 14:03:39 +01:00
jinhojang6 ac6a4af207 Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-03 13:59:59 +01:00
andrey 106e9112e0 [#11395] Inapp Keycard upsell MVP
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-03 12:20:17 +01:00
andrey c625e95d5e [#11815] GNT to GLM Migration was not implemented
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-03 12:18:06 +01:00
Roman Volosovskyi 580ecfedc1 [wallet] RPC calls optimzations for new accounts 2021-03-03 10:55:18 +02:00
jakub 4cc99c6bb8 nix: fix name fo config value for unsigned build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 18:26:42 +01:00
jakub 6a764869a0 doc/FDROID.md: add explanation of Android build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-02 16:58:02 +01:00
jakub aff335b305 gradle: Exclude Google libraries when GOOGLE_FREE=1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 16:29:37 +01:00
andrey 93ed7c15bd [#11809] Upgrade react-native-device-info to 7.4.0
Also update gradle dependencies with transitive deps.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 16:29:20 +01:00
jakub c57974d9ff nix: upgrade go-maven-resolver to v1.1.0
This release adds support for resolving transitive dependencies.
https://github.com/status-im/go-maven-resolver/releases/tag/v1.1.0
https://github.com/status-im/go-maven-resolver/pull/5

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 16:29:19 +01:00
Churikova Tetiana a7f9a98f48 e2e: checking balance on mobile network
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-03-02 12:59:26 +01:00
jakub c703e45105 docs: update instructions in doc/FDROID.md
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:41 +01:00
jakub 8376fedb4b make: add release-fdroid and fdroid-nix-dir targets
With these targets added we can simplify the format of the F-Droid YAML
metadata file which defines how to run `status-react` builds.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:34 +01:00
jakub d0d8815d4a readme: add "Get it on ..." badges
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:34 +01:00
Shivek Khurana fa9fceb75d Fix the top margin on keystorage views
Fix lint

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-03-02 16:16:41 +05:30
jakub 293fd5fae1 nix: add missing cljfmt dependencies to nix/deps/clojure
It seems like this worked before purely because the `cljfmt` library was
already in the `~/.m2` cache folder. This issue was noticed when I
cleaned up the `~/.m2` folder on one Jenkins slave host and the Lint stage
started randomly failing.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-01 16:42:38 +01:00
andrey 9b6b337453 [#11764] Data that was added before pairing devices is not synced anymore across synced devices
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-01 16:26:20 +01:00
jakub 37cf8ffe72 nix: update clojure dependencies
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-01 13:23:35 +01:00
andrey 4f9e38930e Revert "[#11395] Inapp Keycard upsell MVP"
This reverts commit 99e99b0e
2021-03-01 12:12:09 +01:00
andrey 99e99b0e81 [#11395] Inapp Keycard upsell MVP 2021-03-01 12:07:46 +01:00
Churikova Tetiana 83630b28bb e2e: migration and message statuses
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-26 16:29:11 +01:00
Gheorghe Pinzaru c7009ff6f7 Add request/approve communites
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-26 15:38:19 +01:00
Brian Sztamfater c2f513f67e [#11743] Fix crash on network change
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-26 15:35:47 +01:00
Roman Volosovskyi 37284051dc PNs for transaction messages 2021-02-25 10:51:19 +02:00
guylouis c1315eca90 Update RELEASES.md with v1.11 notes
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-24 11:23:11 +01:00
guylouis 9f9370f72d Update RELEASE_CHECKLIST.md
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-24 11:22:31 +01:00
Churikova Tetiana 61da0db9c9 e2e: previews in lomks
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-23 21:40:03 +01:00
Michele Balistreri 325a860916 faster keycard login
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-02-23 20:15:24 +03:00
Volodymyr Kozieiev a383cfa39a Delivered messages have double-check icon in private chats
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-02-23 18:47:40 +02:00
Serhy d5e1d3fe65 New e2e test to set image from Galary and Photo
Signed-off-by: Serhy <sergii@status.im>
2021-02-23 15:15:42 +02:00
jakub f0d79f3af0 ci: adjust behavior of PUBLISH to be true for releases
Otherwise release builds never create the GitHub draft releases.
Not unless a user explicitly stats a build with `PUBLISH: true`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-23 13:45:25 +01:00
Michele Balistreri 09ac3e6a9e use the currently selected account for signing messages/typed data
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2021-02-22 13:37:09 +03:00
Churikova Tetiana f3c85c1e7a e2e: several fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-19 14:47:45 +01:00
Andrea Franz 505171cf87 enable Keycard on iOS
Signed-off-by: Andrea Franz <andrea@gravityblast.com>
2021-02-19 10:26:16 +01:00
Churikova Tetiana f9c3747768 e2e:-5 critical e2e and fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-18 16:13:40 +01:00
andrey 9648f741b4 cleaning 3
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-17 16:16:54 +01:00
andrey e493a2b79c [#11395] Inapp Keycard upsell MVP
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-17 13:19:08 +01:00
Churikova Tetiana 8698e13fa1 e2e: nightly fixes and py upgrade
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-17 12:07:45 +01:00
Andrea Maria Piana 452e54fc19 Add buy crypto banner
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-17 10:25:45 +01:00
Churikova Tetiana 4f094c174d e2e: connecting status handling
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-16 16:45:52 +01:00
andrey 7c04bb9076 [#11716] Implement new Connectivity dialogues and remove 'Offline' snackbars
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-16 16:25:49 +01:00
Andrea Maria Piana 8d3fa3c3d7 Fix images being dropped in profile channels
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-16 10:02:47 +01:00
andrey 32393c9091 [#11704] Android 11 flatlist performance degradation
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-15 14:51:53 +01:00
Andrea Maria Piana 35f152c479 Add our.status.im and medium.com link unfurling
Fixes: #11739
Fixes: #11738

Adds unfurling for our.status.im and medium.com

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-15 13:50:51 +01:00
Andrea Maria Piana 37b36d38c7 update statusgo
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-15 10:36:16 +01:00
Churikova Tetiana 1a77891273 e2e: fix for duplicating chats
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-11 09:56:50 +01:00
Andrea Maria Piana 63893ff575 Handle eth_accounts exception
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-09 18:08:22 +01:00
Andrea Maria Piana 226aacdeac Only scale if width/height is positive
Fixes: #11728
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-09 16:45:35 +01:00
Roman Volosovskyi a37dbb57d6 [wallet] Merge blocks ranges 2021-02-09 16:48:00 +02:00
jinhojang6 4fdfa3e008 Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-09 14:02:40 +01:00
Churikova Tetiana 8d510be72e small nightly fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-09 11:16:19 +01:00
andrey 72d592a5a6 hide increase gas/cancel temporary for 1.10 2021-02-09 08:53:44 +01:00
Andrea Maria Piana 1075dfcb8b Release 1.11.0 2021-02-08 16:10:26 +01:00
Shivek Khurana 49d4b15761 Add tenor and giphy.com support
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-08 16:09:22 +01:00
Churikova Tetiana a7f9998d6c e2e: nightly fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-08 14:18:22 +01:00
Serhy b2be539374 When no chat on screen is expected
Signed-off-by: Serhy <sergii@status.im>
2021-02-05 19:47:18 +02:00
Roman Volosovskyi 3685f6a500 [#11117] Move PNs to status-go 2021-02-05 17:03:34 +02:00
Serhy 9a51a46869 Webview camera permission
Signed-off-by: Serhy <sergii@status.im>
2021-02-05 14:19:30 +02:00
Andrea Maria Piana 0867b972c3 Don't rely on contacst for one-to-one mentions, and remove cursor
[Fixes: #11670]
[Fixes: #11671]

This commit fixes 2 issues.

One issue was due to removing tribute to talk, which added in the
`contacts` map any user you open a chat with, and some code relied on
this behavior.

The second issue was likely due to a react native upgrade which might
have fixed a bug but caused a different issue, which resulted in the
text disappearing when cursor was set.

I have removed that (it was only used on android) and everything seems
to be working correctly, but not so sure about this one.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-02-04 17:54:00 +01:00
jakub d946d473c6 fastlane: use Apple Store Connect API for CI builds
Because our CI Apple account still has 2FA disabled in order for it to
be usable in Jenkin it is now failing with an error that seems unrelated
to 2FA.

The recommended way of doing Apple authentication for CI are App Store
Connect API JWTs. The API appears to support both pushing builds as well as
updating metadata and other tasks like refreshing of provisioning
profiles.

Fixes: https://github.com/status-im/status-react/issues/11713
Issue: https://github.com/fastlane/fastlane/issues/18098
Docs: https://docs.fastlane.tools/app-store-connect-api/

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-04 15:10:07 +01:00
Churikova Tetiana 7e8a68ec67 e2e: refactoring commands, wait for balance, find trans
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-04 13:54:06 +01:00
Shivek Khurana 39b0a6bb44 Restrict changes to translations file only
Signed-off-by: Shivek Khurana <shivek@status.im>
2021-02-03 17:00:28 +05:30
Roman Volosovskyi 00ad3e9e1f [#11674] Make sure token balances are fetched on mobile network 2021-02-03 12:45:05 +02:00
Churikova Tetiana 781360a1cf e2e: fix opensea
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-02 17:15:28 +01:00
andrey c76567c20f [#11703] No way to sign in to opensea 2021-02-02 17:15:18 +01:00
Churikova Tetiana 6d38386c11 e2e: update PyYAML and urllib3
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-02 16:57:13 +01:00
Churikova Tetiana 522d03b846 e2e: chat_management + wallet_management
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-02-02 12:00:17 +01:00
Churikova Tetiana b73fcba395 improve logging, get rid of 2 e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-28 17:09:40 +01:00
Andrea Maria Piana 741e9e834b Avoid concurrent access to contact
In some instances when fetching messages for a timeline the app would
crash as a map was accessed concurrently without locking.
This fixes the issue.

Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-28 14:49:14 +01:00
Churikova Tetiana ad006b018c test_recover + test_sign_in
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-28 13:59:59 +01:00
andrey 56c4ffc39f [#11690] Invisible digits in Request transaction dialog in 1-1 chat on Android
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-28 13:57:39 +01:00
Churikova Tetiana d31ed933a0 e2e: reduce amount, continue review
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-27 17:22:16 +01:00
andrey 6469ff912a [#11651] No spinner when pressing "Fetch more messages" in public chat + white toggles in Sync settings on Android
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-27 16:49:57 +01:00
Serhy ff961bbfe8 Fix e2e fails in develop
Signed-off-by: Serhy <sergii@status.im>
2021-01-27 12:25:05 +02:00
Andrea Maria Piana eba6b63258 Fix topic issue, remove ttt, add db export/import
There were a few issues with topic management:

- Topics/ranges were saved one-by-one, which cause an out of memory
error on some devices
- Topics that were not listened to were saved, and therefore requested
from the mailserver, which caused long syncing time

It also removes tribute to talk and add export/import methods

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-01-26 12:46:21 +01:00
Roman Volosovskyi 9bf4da1edd [wallet] Avoid unnecessary balance checks 2021-01-26 11:53:54 +02:00
Churikova Tetiana c2f8f012a8 e2e: global refactoring
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-25 18:44:24 +01:00
Roman Volosovskyi 6c4097f521 [wallet #11570] Handle non archival RPC node 2021-01-25 15:41:50 +02:00
andrey 35671226e4 remove outdated :initial-props
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-25 10:38:34 +01:00
andrey 08b9cfcf52 [#8284] Remove unnecessary permissions [Android]
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-21 16:23:54 +01:00
andrey 0087a66df8 bump re-frisk 2021-01-21 15:25:54 +01:00
Anton Danchenko 3042a4b696 upgrade xdist to latest version
Signed-off-by: Serhy <sergii@status.im>
2021-01-21 12:51:11 +02:00
andrey cb66886aab [#11665] Youtube-link preview is resized incorrectly in chat view for videos with short title
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-21 11:16:53 +01:00
andrey af2b053fa9 disable fast refresh on ios and bump re-frisk
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-20 11:44:24 +01:00
andrey fa4521d2e7 react native config latest version with pods, fixes react-native-config compiling issue by moving it to pods [#11657]
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-19 17:14:06 +01:00
jakub b33c086966 nix: set ANDROID_SDK_HOME to a tmp directory
This fixes issues with Gradle complaining about lack of `~/.android`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-01-19 14:08:59 +01:00
andrey 4704cef3da handle error from infura
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-19 11:52:57 +01:00
andrey 329182fdbe [#11643] Display profile picture only of users I have added to contacts
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-18 10:14:41 +01:00
shivekkhurana 5c3133adb6 Key management screen in place
Key phrase screen in place

Added flow in a Rich comment, added storage screen, added Keycard upsell banner

Validate seed against selected multiaccount

Vvalidate seed against multiaccount

Connected migration flow to Keycard onboarding flow, unable to finish because an event called generate-and-load-key is not being emitted with the flow I made

Fixed state that was needed to start the recovery process, also removed seed-phrase from app-db when onboarding starts

Moved strings to translations in key storage views

Upsell banner bg theme, accordion data, choose-storage next bug, Hide keys managment option for Keycard accounts and from multiaccounts list screen.

Added test for subscription function

Tests for keystore move checkbox and seed phrase input

Fix translations/en.json after merge conflict, add test for seed-phrase input, seed-against-key-uid validation and state setup for redirect to Keycard screens

Update validate fn to mock mnemonic import and cascading changes

Fix linting errors

Fix seed key-uid mismatch popup, reduce styles and remove redundant views

Add dot menu in place of access-existing-keys button on login page

Make multiaccount redirect test more terse

Remove dangling comma from translations/en.json

Fix var that was missed during rebase

fx/merge and extra newline fixes

Removed nil? check, tests pass

Unknown error popup

Redirect Keycard banner to https://keycard.tech

Remove unused sub and fix linting

Fix issue#4 - Unable to enter new seeds

Hide back and disable hardware back on Keycard onboarding intro if the user is coming from migration flow. Fixes issue#1 raised by Diana.

Set state so show wallet balances show up auto magically. Fixes issue#3.

Update tests to capture recovering state

Center align sign in button since the left button was deleted.

Changes suggested by Andrey

Add top margin to Keycard intro only when user comes key storage

Hide manage key storage on ios

Signed-off-by: Shivek Khurana <shivek@status.im>
2021-01-14 22:35:48 +05:30
andrey f28f479256 react native config on ios
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 14:17:01 +01:00
Roman Volosovskyi daf7791d86 [wallet #11535] Show PNs right after enabling 2021-01-14 13:54:46 +02:00
Roman Volosovskyi 73ca49aad5 [#11599] Smaller kk dev menu items
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-14 10:11:20 +01:00
Churikova Tetiana 7cf42b292b Merge branch 'develop' of github.com:status-im/status-react into develop 2021-01-14 10:04:33 +01:00
Frank Tang 2687d7ab9a added github.com to white list of link preview
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 09:46:58 +01:00
andrey abac5247bf RN 63 and xcode12
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-14 09:41:38 +01:00
jakub 939ce8bef5 nix: Upgrade Android SDK, use nixpkgs master
This makes use of the refactoring of Android SDK done in:
https://github.com/NixOS/nixpkgs/pull/89775

Which allows us to drop the use of our own fork of `nixpkgs`.

Android Upgrades:
* Build Tools - `29.0.2` to `30.0.3`
* Platform Tools - `29.0.6` to `30.0.5`
* NDK Bundle - `21.0.6113669` to `21.3.6528147`

Other Upgrades:
* Git - `2.28.0` to `2.29.2`
* Go - `1.14.7` to `1.14.13`
* Clojure - `1.10.1.645` to `1.10.1.763`
* NodeJS - `12.18.3` to `12.20.1`
* Yarn - `1.22.4` to `1.22.10`
* OpenJDK - `8u265-ga` to `8u272-b10`
* PatchElf - `0.11` to `0.12`
* CoreUtils - `8.31` to `8.32`

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-01-13 15:35:59 +01:00
jakub eb1f1bf587 nix: fix building of status-go forks with different GH owner
Resolves: https://github.com/status-im/status-react/issues/11637

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-01-13 15:16:07 +01:00
andrey 46d430b69c [#11626] Group chat subtitle shows 'no members'
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-13 12:21:48 +01:00
Serhy e4d175ef93 Revert 11624
Signed-off-by: Serhy <sergii@status.im>
2021-01-13 12:24:32 +02:00
hesterbruikman 25c5106284 Correction
Removed: Auto scan for tokens of primary Ethereum account upon recovery
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-13 10:38:10 +01:00
andrey 3fd36c6904 [#11627] Add GRT erc20 token in our default list of supported tokens in the wallet
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-12 18:13:00 +01:00
Frank Tang fe6f75e1b7 fix: No "Delete" option for a group chat from the home screen if user has been removed from it
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-12 13:46:36 +01:00
snyk-bot 6410de803e fix: test/appium/requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055461
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055462
2021-01-12 13:45:27 +01:00
dependabot[bot] 9d2e2e26ad Bump lxml from 4.6.1 to 4.6.2 in /test/appium
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.1...lxml-4.6.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-12 13:45:11 +01:00
snyk-bot 6c935057c5 fix: test/appium/requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055461
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-1055462

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2021-01-12 12:38:11 +01:00
Serhy d68f7679df Update saucelabs endpoint
Signed-off-by: Serhy <sergii@status.im>
2021-01-12 11:38:57 +02:00
andrey 346ff25843 [#11610] App crashes on Android with GiFDecoder error
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-12 10:35:37 +01:00
Andrea Maria Piana 2e7875cfef Fix wrong greater than sign on mailserver connection
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-01-12 10:03:14 +01:00
andrey d6f2792622 [#11606] Favorites - when changing the name of a favorite, the past name appears quickly when saving it
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-11 16:46:20 +01:00
andrey 2af23bcb2e intro wizard indicator fix
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-11 16:45:21 +01:00
jinhojang6 e0b01d2fed Update translations
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-11 10:32:49 +01:00
jakub 9889e80bbd ci: parametrize publishing, make BUILD_TYPE a choice
This changes the behavior of mobile combined builds to not publish
the results of `nightly` or `release` builds unless `PUBLISH`
parameter is set to `true`.

It also makes the `BUILD_TYPE` into a dropdown choice field with
pre-defined values, like `manual` or `e2e`.

Changes:
- Add parameter definitions for `BUILD_TYPE` and `PUBLISH`
- Move uploading of `latest.json` to `Publish` stage
- Make `Publish` stage optional based on the `PUBLISH` parameter

Requires: https://github.com/status-im/status-react-jenkins/pull/21

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2021-01-08 12:54:17 +01:00
hesterbruikman e0e497d3d0 Adding 1.10 App/Play store release content (#11581)
* Adding 1.10 App/Play store release content

* Removes Cancel and Speed up tx

As discussed, the feature is not yet reliable for public release. On occasion the nonce cannot be overwritten, resulting in 2 pending transactions.
2021-01-07 09:43:45 +01:00
hesterbruikman abc63af4a8 Create RELEASE_CHECKLIST.md
Moving file to repo to replace hackmd notes doc

Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-04 09:29:00 +01:00
Frank Tang b5b16f1278 [Fixes: #10978] Endless loading public chat name
Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-04 09:26:55 +01:00
Roman Volosovskyi 767bd46bff Allow non alphanumeric branch names in scripts/update-status-go.sh 2020-12-31 12:50:26 +02:00
Roman Volosovskyi 8e288aea56 [#11379] Add a watch only account from an ENS name 2020-12-30 18:18:24 +02:00
Churikova Tetiana 4f4f6cf29e fixed testrail reports and e2e nightly
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-29 18:48:04 +01:00
Andrea Maria Piana d8235d9e17 Add milestoned to actions 2020-12-29 09:54:29 +01:00
Andrea Maria Piana 5d02472f89 Add next column to zenhub 2020-12-29 09:30:04 +01:00
Frank Tang f306b084da [Fixes: #11586] Every element in a seq should have a unique :key
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-29 09:12:50 +01:00
Andrea Maria Piana 6099262c98 [Fixes: #11579] Add only certain fields to multiaccount on login
`multiaccounts` has some fields that should not be overriden
(`save-password`), so we expliciltly `assoc` only certain fields.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 17:09:22 +01:00
Andrea Maria Piana 37ccc6f825 Hide option to increase gas on keycard
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 15:19:24 +01:00
Andrea Maria Piana 33e58dbca9 Whitelist link previews client side
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 09:37:02 +01:00
Andrea Maria Piana d8f1944b27 Hide community banner
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-28 09:36:22 +01:00
Gheorghe Pinzaru 6342163152 Add react-native-fast-image for external assets
Use fast image in link previews

Mock fast image in tests

Update nix android deps

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-25 15:03:59 +03:00
Gheorghe Pinzaru 8948dcb736 Fix android text overflow
Fixes #11575

Move the overflow handler to separate view

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-24 16:58:51 +03:00
hesterbruikman 52823d7f59 Create releases.md (#11463)
* Create releases.md

File that captures release notes for App store ad Play store. Informs users of relevant additions, changes, fixes.

* Update and rename releases.md to RELEASES.md

As suggested, removing checklist to keep in a separate file and using capitals for the title
2020-12-24 13:43:29 +01:00
jinhojang6 eff60c69d5 Update translations
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-24 08:24:48 +01:00
Andrea Maria Piana b30149d9f2 Bump version to 1.10.0 2020-12-24 08:23:44 +01:00
Andrea Maria Piana 2ca39daa59 Communities
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 17:23:11 +01:00
Gheorghe Pinzaru 35c2c226df Remove redundant overflow hidden on messages
Fixes #11439

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-23 14:27:30 +03:00
Andrea Maria Piana 5b801b95fa [Fixes: #11557] Resend contact picture when changed
Fixes: #11557

Resend contact picture when it is changed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 09:43:51 +01:00
Andrea Maria Piana b5a6f1b78f Add nix purge command and change the behavior of nix clean
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-23 09:08:46 +01:00
Gheorghe Pinzaru 2571e44de0 Referrals add screen with join public-chat
Update strings

Check if transaction has receipt on login

Notification on accept

Add large icon

Unify notifications for referral

Fix duplicate path for acquisition

Fix accept notification and visibility

Small fixes

Do not show notifications when not rewardable

Add home item

Show referral on lets go button

Fix list item on home

Hide messages on accept

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-22 15:33:02 +03:00
Churikova Tetiana 7f22912f1e e2e: bookmarks
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-21 16:38:58 +01:00
Roman Volosovskyi aac7a97e13 [#11502] Handle tx fetching failure 2020-12-21 17:05:00 +02:00
Michele Balistreri eaf463395a shorter pairing codes for Keycard
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2020-12-21 17:07:25 +03:00
Gheorghe Pinzaru 8342972059 Android tabbar replace elevation with border
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-21 15:02:18 +03:00
Churikova Tetiana 98a8359db3 e2e: new tests
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-18 10:05:40 +01:00
Andrea Maria Piana 9fe7ddaf0b [Fixes: #11545] Don't update browser if nil
Fixes: #11545
Fixes: #11544

The two issues were caused by the same bug, essentially if
`navigation-state-changed` event was fired (it's debounced) when the tab
had been closed, the browser would be updated with a `nil` id, causing
all sort of issues as it had not history etc.

This commit ensures that no changes are made if the browser is nil.

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-18 10:05:00 +01:00
Gheorghe Pinzaru 5643c4d537 Add profile pictures
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-17 14:12:07 +01:00
Gheorghe Pinzaru 09822e142b Add async storage wrapper
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-12-16 14:08:13 +03:00
Gheorghe Pinzaru 86d7b79175 Add buy crypto banner UI
Store in local storage banner preference

Add i18n
2020-12-16 14:08:05 +03:00
Andrea Maria Piana 4e5ba2c533 Fix watching accounts for transaction in chat messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-15 16:40:26 +01:00
Volodymyr Kozieiev b197d54e47 Switched to status-go where reaction resends under the hood if sending failed
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-12-15 16:59:13 +02:00
Churikova Tetiana 1b9bd8b017 e2e: fixed browser tests
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-14 18:53:39 +01:00
Roman Volosovskyi 879f441b7d [#11499] Fix multiple notifications for a single erc20 transfer 2020-12-14 13:34:20 +02:00
Frank Tang 8e882dda21 [Fixes: #11074] only validate whether group name is blank
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-14 10:58:40 +01:00
Churikova Tetiana 905aa26705 e2e: browser1.0
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-11 18:09:31 +01:00
andrey 3241d3273e [#11469] Browser bookmarks
Signed-off-by: andrey <motor4ik@gmail.com>
2020-12-11 16:55:42 +01:00
Churikova Tetiana efc4f6c750 e2e: fix fetching from offline
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-10 17:09:24 +01:00
Roman Volosovskyi c33e2be76b [wallet] Watch txs history while app is in the background (Android only) 2020-12-10 18:02:49 +02:00
Andrea Maria Piana 8748280279 [Fixes: #10777] Always convert value to string
When calling `SendTransaction` sometimes the value would be a string
(most cases), sometimes the value would instead big a `BigInt`, which
would be serialized to an integer, and status-go would be unable to
parse it as it expects values to be a string.
This commit makes sure that values are always serialized as string
before sending them over.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-10 08:26:38 +01:00
Andrea Maria Piana 1b4dcb7103 [Fixes: #11520] Rotate mailservers on error conditions
If a mailserver request is failing we disconnect at the 3rd attempt.

Though once we are disconnected, we connect again to the same mailserver
based on ping time.

This commit changes the behavior so that mailservers are penalized if
they are returning errors.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-10 08:26:00 +01:00
Churikova Tetiana 5259de7423 e2e:nightly fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-09 18:01:36 +01:00
Serhy e167773258 Update tests and get balance method
Signed-off-by: Serhy <sergii@status.im>
2020-12-08 18:47:56 +02:00
snyk-bot 57c0e835e2 fix: test/appium/requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-1014645

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-08 15:56:04 +01:00
Roman Volosovskyi 7055c46a60 [#11507] Fix e2e tests 2020-12-07 15:37:16 +02:00
Andrea Maria Piana 2f1e5c819e [Fixes: #11518] Fix dependabot directory
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-07 12:14:16 +01:00
Andrea Maria Piana 2df5eccff0 [Fixes: #9851] Allow setting ens & transaction verify url, and fix
pending transaction

This commit fixes an issue where pending transactions would be marked as
confirmed in commands, due to the fact that we would default to pending
if no transaction was in the database.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-07 11:19:12 +01:00
Serhy a70b07e83d Interact with ropsten web3 to send assets
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-04 21:16:58 +01:00
Churikova Tetiana 8a97331779 e2e: testrail report
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-04 21:10:01 +01:00
Andrea Maria Piana fdf91cff80 [Fixes: #8280] Remove unused transport security entries
Removes not used security transport entries from ios

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-04 12:42:01 +01:00
Andrea Maria Piana f04042c643 [Fixes: #10801] Send chat messages in order
Chat messages are now sent in order using a different endpoint
`sendChatMessages`.
Text should always be displayed after images.

This is not implementing a Caption field, that would require either a
protocol change or leverage the `text` in the message.
It applies for both normal chats and timelines.

Move also all inputs under `chat/inputs` so we avoid re-renders as
`chats` has changed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-03 18:29:40 +01:00
Churikova Tetiana fd5be21207 e2e: TODO resolve
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-03 14:10:42 +01:00
jakub c62abf10c1 nix: add docs about NodeJS modules, small refactor
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-02 20:47:23 +01:00
jakub 458ef05740 bump jenkins library to 1.2.8 to add keychain password
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-02 19:34:10 +01:00
andrey 609a7120b6 flatlist render changes
Signed-off-by: andrey <motor4ik@gmail.com>
2020-12-02 16:04:15 +01:00
jakub b62ff59f16 ci: make GitHub build links use CDN for downloads
Should speed up downloads for some geographical locations.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-02 15:53:17 +01:00
Serhy c381fc2e2f E2e for mentions is chat
Signed-off-by: Serhy <sergii@status.im>
2020-12-02 16:04:55 +02:00
andrey d2493c0725 [#11470] Statuses issues
Signed-off-by: andrey <motor4ik@gmail.com>
2020-12-02 10:39:07 +01:00
Andrea Maria Piana b9f896f4e3 Don't allow multiple pop ups to be shown
This commit makes sure that we don't display multiple pop ups when
mailserver connection has failed.
It also fixes the navigation to avoid being stuck on Profile tab.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-02 09:50:23 +01:00
Jonathan Rainville 7e069ed342 fix: linting and variable name 2020-12-02 09:49:47 +01:00
Jonathan Rainville b2cdc59670 fix: fix mailserver popup showing after canceling it
Fixes #10065
After clicking cancel, the popup is `dismissed`, so it will not appear again
Selecting a new mail server sets `dismissed` as false, so the error can appear again
2020-12-02 09:49:46 +01:00
Andrea Maria Piana a6e08f0d8e fix typo on branch name 2020-12-02 09:12:42 +01:00
Andrea Maria Piana 0e6d191e58 Point to master for easier testing 2020-12-02 08:55:47 +01:00
Andrea Maria Piana 852838f777 add assigned 2020-12-02 08:42:24 +01:00
jakub 32efcb06a0 nix: make status-go version regex even more lax
In release `1.7.0` we had an issue with `status-go` version `v0.62.3.hotfix.3`
not matching [Semantic Versionig](https://semver.org/#spec-item-11) so a fix was
introduced in https://github.com/status-im/status-react/pull/11331 that made the regex a bit more lax.

Again in `1.9.0` we had the same issue and the release not appears as `develop`
instead of the actual `status-go` version, which this time was `0.63.8+hotfix.2`.
Notice the `+` instead of `-` or `.` before `hotfix.2`.

I've added `+` to allowed characters after the 3 digit standard version format.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-01 20:18:03 +01:00
Churikova Tetiana 179e389e37 align e2e 11478
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-12-01 16:15:00 +01:00
Andrea Maria Piana a4716cc494 [Fixes: #9181] Reset edit mailserver on add pressed
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-12-01 14:44:34 +01:00
Roman Volosovskyi 92aaa194a8 [wallet] Pull to refresh tx history 2020-11-30 16:13:55 +02:00
Andrea Maria Piana 64840f74a7 [Fixes: #11351] Pass topics when querying the mailserver
Currently we are still using a bloom filter when querying mailserver.
This commit changes the behavior so that topics are used instead.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-30 12:08:08 +01:00
Andrea Maria Piana bd281e6c9f Upgrade workflows 2020-11-30 12:01:24 +01:00
Andrea Maria Piana e8350414f3 Use our own fork for actions 2020-11-30 10:31:24 +01:00
Andrea Maria Piana ae900a4cd9 Add action for creating branches 2020-11-30 10:14:38 +01:00
Andrea Maria Piana 46cd4aa893 Create zenhub-pr.yml
Create action for zenhub-pr
2020-11-30 10:12:02 +01:00
jakub f0d9f2ac54 nix: add a way to deal with new gradle version to docs
Also adjusted the `generate.sh` script and split stuff into separate function
to make it easier to run specific stages of the generation process.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-27 14:56:42 +01:00
Churikova Tetiana f47c816ce0 fix e2e and align to new 11465
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-26 18:34:22 +01:00
andrey 88889930ae :accessibility-label :message-image
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-26 17:57:22 +01:00
andrey e2717ade98 [#11438] Add "sent" message confirmations 2020-11-26 17:57:10 +01:00
andrey f9095a492e [#11214] Add option for user to increase the gas payment for a pending transaction
[#11215] Add option for user to cancel a pending transaction.

Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-26 14:51:18 +01:00
Churikova Tetiana 1f7e40cede updated libs + e2e fix
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-25 18:58:29 +01:00
Roman Volosovskyi 7bfaa9255c [wallet history] Stop watching each new block 2020-11-25 16:44:16 +02:00
Serhy 166bdbf798 Update mailserver locator
Signed-off-by: Serhy <sergii@status.im>
2020-11-23 14:17:11 +02:00
shivekkhurana ecc41bebe0 Moved text-input props to their own functions, renamed get-suggestions to get-user-suggestions
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-23 16:33:08 +05:30
shivekkhurana 4cb058f1ca Add notes on testing, translations, merging and starting Refrisk
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-23 11:23:31 +05:30
shivekkhurana a55dd51064 Rename mailserver to history nodes on settings screen, changed en.json to reflect changes.
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-20 16:43:36 +05:30
Andrea Maria Piana d260ea9e03 [Fixes: #11452] Don't allow more than x pictures if taken from camera
This commit fixes an issue with taking pictures from camera, where
the check for image count was not checked.

Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-20 10:15:03 +01:00
Andrea Maria Piana 36f90fc567 Dont send unprocessed images
When selecting an image from camera roll we would immediately setting
the filepath with the raw image, process and later once it was processed
we would replace the file path.
On slow devices, the user might press send while the image is still
processing, causing the raw image to be sent, which might be discarded
as too large and never sent.

This commit changes the behavior so that we only set the uri once the
image is processed, it might add some delay, but the image should be
correctly sent.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 16:17:11 +01:00
Andrea Franz 22c6635d93 show tx data in keycard web3 request screen
Signed-off-by: Andrea Franz <andrea@gravityblast.com>
2020-11-19 11:28:25 +01:00
Andrea Maria Piana ae2d9b996c Limit max batch of images
There's an issue reported on slow devices when sending a batch of
images.

All the requests are send concurrently, and the sending of messages is
processed concurrently in the background.
On slow devices or connection with slow upload speed this may result in
expired envelopes, as the POW calculation or the upload takes too long,
and either they never leave the device, or worse they reach the
mailserver but won't be stored because already expired on arrival.

This commit allows setting the max-images-batch config value, setting it
to 1 for release and keeping it to 5 for other builds.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 09:13:06 +01:00
Andrea Maria Piana 7c9bb5b21c Fix bug when coming back from background
Fixes: #11441
Fixes: #11416

The issue was due to a nil pointer exception with the
localNotificationService.
Upon upgrade it would be disabled and therefore it would not be
available.
This was due to the fact that initialization comes from the database and
not from status-react, so on upgrade it would not be available.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 08:17:53 +01:00
Andrea Maria Piana 80ac4a8dc2 Remove status-core from codeowners
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-19 07:12:05 +01:00
andrey e30962ca75 [#11446] Can't sell item on opensea
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-18 17:27:20 +01:00
Churikova Tetiana 2bcc832cca fix ru date short values
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-17 17:35:31 +01:00
jakub 0b8c673094 ci: fix iOS signing, use same keychain name
Using different temporary keychains does not work if we do not set
`default_keychain=true`, because `codesign` then can't find the cert:
```
error: No signing certificate "iOS Distribution" found: No "iOS Distribution" signing certificate matching team ID
```
But if we set `default_keychain=true` then we cause a race condition
when the keychain is deleted by a parallel job while another is using it
as its default.

For this reason we have to use a static keychain name and keep it
between builds.

I tried disabling `default_keychain=true` in #11378 but it worked only
because the default user keychain already had the cert.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-17 10:16:32 +01:00
jinhojang6 dbabcc223e Update translations
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-16 17:09:07 +01:00
andrey 9f7ad853f0 [#11411] App is crashed on account creation after navigating to access key and back
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-16 17:04:02 +01:00
Churikova Tetiana 28d3cf03d9 fix 6305 e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-16 15:49:14 +01:00
andrey 7b46c445a7 [#11383] Status Updates : Add reactions and copy to clipboard
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-16 14:15:15 +01:00
andrey cf911aa246 [#11236] Deeplink to public chat on onboarding
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-16 14:12:14 +01:00
Volodymyr Kozieiev a91bdfb047 Don't make inability to unfurl url a user's problem
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-11-16 13:57:40 +02:00
andrey 61105e15f6 fix ens content resolution
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-16 12:31:00 +01:00
Gheorghe Pinzaru 13c81a34b3 Add pinch to zoom deps
Add image interactions

Add image preview to timeline

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-14 21:56:46 +03:00
shivekkhurana fbb606b859 Escape address so newlines and spaces don't interfere
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-13 20:11:48 +05:30
shivekkhurana 30753f8766 Make right item occupy entire space instead of left one. Make left grow if nothing on right.
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-13 20:09:53 +05:30
Churikova Tetiana 6b4f2901ae reduce number of parallel sessions
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-13 15:29:35 +01:00
Gheorghe Pinzaru 40e2839793 Exclude google deps based on env
Export all vars from .env

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-13 11:05:28 +03:00
Churikova Tetiana d14f232abf status e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-12 18:43:49 +01:00
Churikova Tetiana 8310749696 fix e2e nightly
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-11 16:42:22 +01:00
Roman Volosovskyi fac4f0c871 [#10798] Fix unviewed counter on receiving response 2020-11-11 15:04:17 +02:00
Roman Volosovskyi ae3936eff2 [#11240] Clarify assets Status wallet supports 2020-11-10 22:17:56 +02:00
Churikova Tetiana 920000c3e8 e2e: failures
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-10 18:10:04 +01:00
andrey b3a3a753d2 fix timeline non contacts
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-10 15:45:07 +01:00
andrey e5ada29ed8 [#11384] Status Updates : Open profile when tapping on username or avatar
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-10 13:44:46 +01:00
Roman Volosovskyi 35381a55c0 [#10239] Remove "Fetch last 24 hours" option 2020-11-10 13:33:53 +02:00
Serhy 473c5135b2 Update number of parallel sessions to align with Sauce
Signed-off-by: Serhy <sergii@status.im>
2020-11-09 21:32:20 +02:00
Michele Balistreri 4384d979e7 update Keycard SDK, remove workaround
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
2020-11-09 20:10:58 +01:00
andrey b1ea04900e [#11398] Error at attempt to sign typed message in simpledapp.eth
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-09 17:43:35 +01:00
Churikova Tetiana 627e1d0e14 e2e align new wallet cards
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-09 16:44:51 +01:00
Churikova Tetiana f7d7c282cd nightly e2e fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-09 16:40:22 +01:00
tbenr 07e36096cc new-account-cards
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-09 16:38:00 +01:00
Gheorghe Pinzaru 6311077cec Don't crash if token is missing referrals
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-09 13:41:53 +03:00
andrey 6d104d60e2 [#11382] Status Updates: Add URL unfurling
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-09 11:27:53 +01:00
Gheorghe Pinzaru 72591f576d Update to Quo Readme
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-09 10:28:41 +03:00
Roman Volosovskyi 6eb840c8b2 [#10362] Allow receiving old messages after rejoining a pubchat 2020-11-06 17:37:18 +02:00
andrey f1d070ed82 [#11333] personal_sign method does not work in status
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-06 15:51:19 +01:00
Churikova Tetiana 9e466976dc align e2e timeline
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-06 14:24:31 +01:00
andrey ee61244770 timeline
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-06 14:23:02 +01:00
jakub 34c6292af4 fastlane: disable default_keychain to avoid race condition
If we run parallel job and a job sets a temporary keychain into a
default than another job can assume that is the user default.

The result is that one of the jobs will attempt to set a non-existent
temporary keychain into the default keychain.

This happens when we call `Fastlane::Actions::DeleteKeychainAction`:
https://github.com/fastlane/fastlane/blob/2.164.0/fastlane/lib/fastlane/actions/delete_keychain.rb#L21

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-05 16:09:32 +01:00
shivekkhurana 0d82dab5c5 Fix scroll issue
Signed-off-by: shivekkhurana <khuranashivek@gmail.com>
2020-11-05 20:26:42 +05:30
Michele Balistreri 206ce8849f closes #11373
Signed-off-by: Michele Balistreri <michele@bitgamma.com>
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-05 14:20:04 +01:00
Andrea Maria Piana 7cef533a8a [Fixes: #11349] Split large messages in batches
When sending messages in quick succession, it might be that multiple
messages are batched together in datasync, resulting in a single large
payload.

This commit changes the behavior so that we can pass a max-message-size
and we split the message in batches before sending.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-05 12:49:53 +01:00
Roman Volosovskyi e7807202c9 [#11354] Add error alerts on denying access 2020-11-04 17:11:47 +02:00
Roman Volosovskyi d17f7c67b9 [#10957] Fix slow assets list 2020-11-04 14:05:35 +02:00
Roman Volosovskyi 82aca6bd76 [#10771] Fix loading of tx history before 10000000th block 2020-11-04 11:26:31 +02:00
Churikova Tetiana c7b3efe6ad new e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-03 17:57:36 +01:00
Serhy d8713fe3c7 Fix more e2e
Signed-off-by: andrey <motor4ik@gmail.com>
2020-11-03 16:30:25 +01:00
Serhy 6f86f73ac6 Update e2e 2020-11-03 16:30:16 +01:00
andrey b7948b9869 navigate to home when press chat tab on chat screen 2020-11-03 16:30:16 +01:00
Andrea Maria Piana d380186051 Upgrade status-go to 0.63.0
No functional changes, just removing code that is unused

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-03 11:20:35 +01:00
Andrea Maria Piana a91fa39547 [Fixes: #11355] Fix crash on logout
On shutdown the app was calling `PeersCount`, but sometimes the server
would be unavailable, resulting in a call to a nil pointer.

Upgrades status-go version with the fix.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-11-03 10:01:03 +01:00
jakub 3b780f4ff2 fastlane: Create temporary Keychain for iOS signing
This is a new approach to signing the iOS app by using a temporary
Keychain created only for that specific build and unlocked in advance.

By doing it this way we can avoid issues with `errSecInternalComponent`
appearing when there is no UI to open a Keychain password prompt when
running build in CI. I've described this problem in details in:
https://github.com/fastlane/fastlane/issues/15185

Thanks to `codesign:` partition ID being added to key partition list by
Fastlane `match` when importing a Keychain this approach now works:
https://github.com/fastlane/fastlane/pull/17456

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-11-03 00:03:38 +01:00
Churikova Tetiana d8eb33e330 e2e fixes+new check
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-11-02 20:20:21 +01:00
Volodymyr Kozieiev 0b5be54fea Allow group creation without contacts
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-11-02 20:10:22 +02:00
Volodymyr Kozieiev f99b2aa401 Link preview generation
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2020-11-02 15:28:31 +02:00
Roman Volosovskyi 27ad8f07c3 Trim url before opening in browser 2020-11-02 13:09:06 +02:00
Gheorghe Pinzaru 7402718e68 Use custom color for disabled state of controls
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-11-02 10:34:59 +03:00
Churikova Tetiana 3ac8f0c5fd e2e refactoring
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-30 15:51:15 +01:00
Gheorghe Pinzaru cf4bef8268 Add pick multiple images
Add inner border to image message

Add max batch size of 5

Disable camera roll more images

Use interop instead of aget

Add border as a separate layer

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-30 12:46:00 +03:00
Gheorghe Pinzaru fe5b5ab4bc use ens for rinkeby contract
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-29 15:42:56 +03:00
Gheorghe Pinzaru 050f20cfae Add local notifications for transactions
Pods

Add headless js service

Handle Local Notifications react

CopyPaste driven implementation of java notification

pn demo

Show iOs push in foreground

Show icon in notification

Enable notifications on login

Get chain from status-go

Add UI for switching notifications

go go!

Fixup

Handle notification onPress

Android UI

Handle press iOs

Handle android press and validate

go update

Fix route params in universal link handler

Set show badge explicitly to false

Fix e2e

bump status go

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-29 15:40:58 +03:00
Churikova Tetiana 10dcee3e05 nightly fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-28 22:36:06 +01:00
Churikova Tetiana ce20eddb99 profile e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-28 17:19:37 +01:00
andrey eae66c967e my status
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-28 14:42:59 +01:00
jakub 973bdb61b3 nix: make status-go matching regex more lax
We had an issue where the `1.7.0` release was using the `v0.62.3.hotfix.3`
version of `status-go` which didn't match the regex we use to verify
if the specified version is a valid version according to [Semantic Versioning](https://semver.org/).

You can check the current regex here: https://regex101.com/r/OeTQCv/3

I also added a trace message to show when we mark a build as `develop`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-26 13:02:50 +01:00
andrey 663f5f41a0 [#11323] Turn off "Block screenshots" by default in nightly and PRs build
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-26 12:03:21 +01:00
Roman Volosovskyi ba3ca2c818 Remove chitchat duplication in general list 2020-10-23 19:48:58 +03:00
Churikova Tetiana 95aa500119 collectible e2e
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-23 16:20:23 +02:00
Serhy 2cf4be4b34 Add test to send Max tokens from wallet
Signed-off-by: Serhy <sergii@status.im>
2020-10-23 11:30:14 +03:00
Roman Volosovskyi 5232432ec5 [#7788] Clear mailserver details after deletion 2020-10-23 11:06:04 +03:00
Roman Volosovskyi dca26b3350 [#11317] Prevent joining to pubchats with upper case letter in topic 2020-10-22 17:12:17 +03:00
jakub 466d279e2a nix: Increase stalled-download-timeout to 1 hour
Might help with issues described in: https://github.com/status-im/infra-ci/issues/17.

Details: https://github.com/NixOS/nixpkgs/issues/65015#issuecomment-662675716

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-22 12:43:01 +02:00
jakub 250b4d4646 upgrade fastlane 2.154.0 to 2.164.0
It's been a while and a fix for an issue I've reported a long time ago
has been merged in https://github.com/fastlane/fastlane/pull/17456. With
this fix we should see less iOS signing issues appearing as `errSecInternalComponent`.

This should also enable me to try a fix I proposed in
https://github.com/fastlane/fastlane/issues/15185 which consists of
creating a temporary unlocked keychain for each build.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-22 12:42:52 +02:00
Roman Volosovskyi 320d81432f Fix exception on my-profile screen (#11313 leftover) 2020-10-22 12:23:57 +03:00
Roman Volosovskyi 70526f9429 Markdown updates
On status-go side:
- new `strong-emph` node was added for strong emphasised text with triple
  "*" and "_"
- `del` node got proper marshalling and can be recognised (works with single
  and double "~")

On status react side:
- styles for `strong-emph` nodes
- styles for `del` (strikethrough) nodes
- unsuccessful attempt to use monospaced fonts for code/codeblock (we have a font
  which is used as monospaced but doesn't support that property actually)
2020-10-21 22:23:46 +03:00
Roman Volosovskyi 9691626992 [#11189] Backward compatible ENS registrar 2020-10-21 14:28:11 +03:00
Churikova Tetiana e52f6b8753 e2e for mentions, gr chats, fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-20 18:20:37 +02:00
jinhojang6 04cd74e57d Update translation
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-19 16:12:45 +02:00
Andrea Maria Piana b826a34f27 Fix coming back from offline
Fixes: #11305

The issue was due to the fact that the first condition was wrapped in a
when in fx merge, causing it to be ignored.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-19 16:07:29 +02:00
jakub 81cfc83ed3 nix: add info about NDK bundle download issues
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-19 12:07:00 +02:00
andrey ff3f171646 1.8.0 2020-10-16 15:56:29 +02:00
andrey 3ae85cacd5 [#11041] Hardly visible username on replies in dark mode
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-16 15:54:16 +02:00
Gheorghe Pinzaru 36f9436e12 Fix group chat invitation actions based on state
Fix decline button color and Check if user was removed from group invite

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-16 15:39:33 +03:00
Andrea Maria Piana 8c42e717c1 Change settings on toggle
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-16 12:13:32 +02:00
shivekkhurana cf0cd283a6 Add new UI for mailserver selection, Add feature to disable mailserver usage 2020-10-16 12:13:15 +02:00
Gheorghe Pinzaru 316c6038d7 Fix webview toggle crash ios
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-15 13:57:49 +02:00
Andrea Maria Piana f5034a4dfa [Fixes: #11290] Increase group size to 20
Increases the maximum size of a group chat to 20.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-15 13:53:01 +02:00
Roman Volosovskyi cf58a84838 [#11192] Prevent replacing of mention with pubkey inside markdown 2020-10-14 22:20:48 +03:00
Churikova Tetiana dcd2655860 nightly fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-14 14:24:37 +02:00
Serhy 9e0b8e76cf Update refresh webview test
Signed-off-by: Serhy <sergii@status.im>
2020-10-14 13:03:24 +03:00
jinhojang6 40a26f4e10 Upate translation
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-14 10:53:13 +02:00
jinhojang6 094cf61915 Update Spanish Playstore title and description
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-13 14:14:08 +02:00
Roman Volosovskyi c238b6bca5 upgrade react-native-webview 2020-10-09 17:13:18 +03:00
jakub 908b5f723c nix: add support for INFURA_TOKEN var for Android build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-08 17:55:24 +02:00
jakub 085ae22be1 disable pipefail for update-status-go.sh
This caused a silent failure due to usage of grep matching.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-08 14:49:02 +02:00
Gheorghe Pinzaru 0368895edf Allow to enabled debug
Optimistic update

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-08 13:57:37 +03:00
andrey 905699b686 [#11283] Blank view when open yearn.finance in Status WebView
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-08 12:16:30 +02:00
andrey b198084b78 [#11263] Entering "0x" in the Recipient throws an error
[#11262] Wallet "Done" and "Add to favorites" only appears when the input box is focused

Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-07 19:43:54 +02:00
Churikova Tetiana 2e7c377343 one more fix
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-07 19:42:58 +02:00
Churikova Tetiana 9f36bd44b2 fix e2e with scan tokens 2020-10-07 18:07:42 +02:00
Churikova Tetiana 4e9b1001df fix accessibility 2020-10-07 15:10:13 +02:00
andrey e602f0493d do not show zeros for token balances, and fetch all tokens only when creating new account 2020-10-07 11:44:01 +02:00
Andrea Maria Piana 85991d2272 Set infura token and update snx/synth contract
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-07 10:01:39 +02:00
Churikova Tetiana f3ed1e370a new e2e+fixes
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
2020-10-06 16:50:07 +02:00
jakub bdbc48764e add F-Droid update README file
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-06 11:23:17 +02:00
Andrea Maria Piana c74a5a5215 [Fix: #11228] Dont drop messages if smaller than 4096
There was an issue with counting characters in status-go that meant that
unicode characters were double counted.

That issue is now fixed. It's still not going to be 100% accurate as
in some languages characters are displayed together if they come one
after the other, but this PR should make it much safer.
To overcome this we could cap the UI input to something a bit lower
(3000 characters for example) and that should give us some room.

This commit includes a migration of the database fixing an issue with
long filenames on desktop.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-06 11:18:08 +02:00
jakub c4cac2cef7 fix availability of INFURA_TOKEN for Android build
The env variable `INFURA_TOKEN` is used at build time of JS bundle, not
the final APK file. We never passed the `secretsFile` to the
derivation for JS bundle so it never saw the `INFURA_TOKEN`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-05 16:36:05 +02:00
Andrea Maria Piana 966f6de31a Fix infura token
Setting a top-level closure-defines does not have any effect,
it needs to be for some reason inside each environment.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-05 16:22:14 +02:00
jakub 93ed3eb7ff ci: add public download url to build description
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-01 17:32:10 +02:00
jakub bc12c90d2e update-status-go: fix case where two matching refs exist
Before it was possible to break the format of `status-go-version.json`:
```
 > git ls-remote https://github.com/status-im/status-go v0.62.3.hotfix.3
59e6602405bfbcf8446d26aca9b8087e84529f8e    refs/heads/release/v0.62.3.hotfix.3
59e6602405bfbcf8446d26aca9b8087e84529f8e    refs/tags/v0.62.3.hotfix.3
```
Which would result in `commit-sha1` key being set to two commits insted of one.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-10-01 14:40:30 +02:00
Gheorghe Pinzaru 00ec94b73c Bump navigation libs
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-01 10:18:12 +03:00
Gheorghe Pinzaru 5458c7b2db Allow recovering to see referral flow
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-10-01 10:17:23 +03:00
Gheorghe Pinzaru 92fae99cf7 Hide referrals nightly 2020-10-01 10:16:36 +03:00
andrey 9cd1e08aaa upgrade shadow
Signed-off-by: andrey <motor4ik@gmail.com>
2020-10-01 08:53:10 +02:00
Roman Volosovskyi 6cf3a6a98e [#11212] Mention suggestions based on names parts 2020-09-30 14:02:49 +03:00
jakub c866082cde ci: use more buckets for different builds
* `status-im-releases` for release builds
* `status-im-nightlies` for nightlies

I want to reserve the `status-im` bucket for use with the site.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-09-28 20:10:14 +02:00
Roman Volosovskyi 22ca98b0f8 [#11216] Fix moving cursor after pressing mention suggestion on samsung device 2020-09-28 17:59:03 +03:00
Roman Volosovskyi b5f7a62b14 Fix some UI warnings 2020-09-25 15:13:51 +03:00
andrey abe6e97728 override custom tokens
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-25 14:03:44 +02:00
Churikova Tetiana 6940adf1cb disable collectible e2e
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-25 11:58:20 +02:00
andrey e55cb6b47b [#11218] Hard code fix for SUPR NFT support
Drop collectibles details support
2020-09-25 11:58:09 +02:00
andrey ccd034e7a6 add images
Signed-off-by: andrey <motor4ik@gmail.com>
2020-09-25 11:42:17 +02:00
andrey f2da0cbbdb [#11222] Add aUSDC token and optimize search for Aave (LEND) (aka Ethlend) 2020-09-24 16:05:07 +02:00
904 changed files with 55904 additions and 32164 deletions
+2 -2
View File
@@ -31,7 +31,7 @@ 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.network.ui.views/mainnet?
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
@@ -65,7 +65,7 @@ mocks.js-dependencies/emoji-picker
mocks.js-dependencies/i18n
mocks.js-dependencies/qr-code
mocks.js-dependencies/svg
mocks.js-dependencies/vector-icons
mocks.js-dependencies/icons
mocks.js-dependencies/webview
mocks.js-dependencies/desktop-linking
mocks.js-dependencies/desktop-shortcuts
+1
View File
@@ -1,5 +1,6 @@
{: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
+1 -1
View File
@@ -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:
+4
View File
@@ -24,4 +24,8 @@ 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
+6
View File
@@ -23,4 +23,10 @@ KEYCARD_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
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
+7
View File
@@ -23,3 +23,10 @@ ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
DISABLE_WALLET_ON_MOBILE_NETWORK=1
APN_TOPIC=im.status.ethereum.pr
BLANK_PREVIEW=0
MAX_IMAGES_BATCH=5
GOOGLE_FREE=0
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
+6 -1
View File
@@ -17,4 +17,9 @@ RPC_NETWORKS_ONLY=0
PARTITIONED_TOPIC=0
CONTRACT_NODES=1
ENABLE_ROOT_ALERT=1
ENABLE_REFERRAL_INVITE=1
ENABLE_REFERRAL_INVITE=0
MAX_IMAGES_BATCH=5
BLANK_PREVIEW=0
COMMUNITIES_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
+2
View File
@@ -16,4 +16,6 @@ SNOOPY=0
RPC_NETWORKS_ONLY=1
PARTITIONED_TOPIC=0
ENABLE_ROOT_ALERT=1
MAX_IMAGES_BATCH=1
ENABLE_REFERRAL_INVITE=0
METRICS_ENABLED=0
+1 -1
View File
@@ -94,4 +94,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
[version]
^0.105.0
^0.122.0
+1 -11
View File
@@ -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
+2 -3
View File
@@ -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/)
+8 -27
View File
@@ -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)
```
...
```
+76
View File
@@ -0,0 +1,76 @@
---
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 ([example]( https://notes.status.im/1.14-release-notes?view))
- [ ] 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 1.14.0 release branch and get successful builds (doc is [here](https://github.com/status-im/status-react/blob/develop/doc/RELEASE_GUIDE.md) 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. If should be updated, ask @cammellos for help
#### 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. 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)
- [ ] 2. Submit beta version for Android (Open Testing in Play Store)
- [ ] 3. Submit iOS build to Apple review ([instruction](https://drive.google.com/file/d/10Cl7PBB7TFPkZiVbfzdFGpfMRP9bxXuq/view?usp=sharing), be careful - low quality of audio)
- [ ] 4. Play store content reviewed and updated
- [ ] 5. Privacy policy reviewed and updated (ask in channel)
- [ ] 6. Countries to be excluded (ask in channel)
- [ ] 7. Changes to our FAQ made (should be checked and if any changes needed, ask Jakub to made them)
- [ ] 8. Prepare PR for F-droid build ([instruction]( https://github.com/status-im/status-react/blob/develop/doc/FDROID.md))
#### 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)
- [ ] 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)
+17
View File
@@ -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
+15
View File
@@ -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
+17
View File
@@ -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
+20
View File
@@ -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
+4
View File
@@ -165,3 +165,7 @@ trace.edn
/app/
project.clj
##appium
test/appium/report/
result.xml
+42 -10
View File
@@ -127,10 +127,17 @@ _tmpdir-rm: SHELL := /bin/sh
_tmpdir-rm: ##@prepare Remove TMPDIR
rm -fr "$(TMPDIR)"
# 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}
@@ -149,12 +156,31 @@ 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
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 := default
release-android: export BUILD_ENV ?= prod
release-android: export BUILD_TYPE ?= nightly
release-android: export BUILD_NUMBER ?= $(TMP_BUILD_NUMBER)
@@ -162,12 +188,21 @@ 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-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: ##@build Build release for F-Droid
echo "GOOGLE_FREE=1" >> .env.release
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 && \
xcodebuild -workspace ios/StatusIm.xcworkspace -scheme StatusIm -configuration Release -destination 'generic/platform=iOS' -UseModernBuildSystem=N clean archive
@@ -234,15 +269,12 @@ endif
lint: export TARGET := clojure
lint: ##@test Run code style checks
yarn clj-kondo --confg .clj-kondo/config.edn --lint src && \
clojure -Sdeps '{:deps {cljfmt {:mvn/version "0.6.7"}}}' \
-m cljfmt.main check $$(git diff --diff-filter=d --cached --name-only src && echo src) \
--indents indentation.edn
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 := clojure
lint-fix: ##@test Run code style checks and fix issues
clojure -Sdeps '{:deps {cljfmt {:mvn/version "0.6.7"}}}' \
-m cljfmt.main fix src \
--indents indentation.edn
clojure -Scp "$$CLASS_PATH" -m cljfmt.main fix src --indents indentation.edn
test: export TARGET := clojure
test: ##@test Run tests once in NodeJS
+5 -2
View File
@@ -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.
[![Getting started with Status](https://i.imgur.com/C0aZZEL.jpg)](https://www.youtube.com/watch?v=oDCSEmS9c3o "Getting started with Status")
@@ -24,7 +27,7 @@ Developers are the heart of software and to keep Status beating we need all the
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.
-11
View File
@@ -1,11 +0,0 @@
# Description
This document explains some of the steps that are involved in relseases.
## PlayStore Metadata Updates
You can update Play Store releae metadata using `fastlane android upload_metadata`.
But that requires credentials necessary for accessing Play Store API. The simpler way is to edit files contained within [`fastlane/metadata`](metadata) and run the following CI job:
https://ci.status.im/job/status-tools/job/update-playstore-metadata/
+1075
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
1.7.0
1.15.0
+13
View File
@@ -123,6 +123,11 @@ 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", false)
def getVersionCode = { ->
new ByteArrayOutputStream().withStream { stdOut ->
if (project.hasProperty("versionCode")) {
@@ -322,6 +327,14 @@ 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'
}
}
// react-native-screens
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
+1 -5
View File
@@ -25,10 +25,6 @@
<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"/>
<application
tools:replace="android:allowBackup"
android:allowBackup="false"
@@ -74,7 +70,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"
@@ -26,14 +26,14 @@ import com.facebook.react.ReactRootView;
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;
public class MainActivity extends ReactFragmentActivity
public class MainActivity extends NavigationActivity
implements ActivityCompat.OnRequestPermissionsResultCallback{
@@ -178,14 +178,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) {
@@ -242,14 +235,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);
}
};
}
}
@@ -10,18 +10,20 @@ import com.facebook.react.PackageList;
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
import com.facebook.react.ReactApplication;
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 java.util.List;
import im.status.ethereum.keycard.RNStatusKeycardPackage;
import im.status.ethereum.module.StatusPackage;
import im.status.ethereum.pushnotifications.PushNotificationPackage;
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;
@@ -30,10 +32,12 @@ 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;
}
@@ -51,7 +55,7 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1");
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
+2
View File
@@ -4,6 +4,7 @@
* Project-wide gradle configuration properties for use by all modules
*/
ext {
RNNKotlinVersion = "1.4.31"
buildToolsVersion = project.buildToolsVersion
minSdkVersion = Integer.valueOf(project.minSdkVersion)
compileSdkVersion = Integer.valueOf(project.compileSdkVersion)
@@ -19,6 +20,7 @@ buildscript {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"
classpath "com.android.tools.build:gradle:${project.ext.gradlePluginVersion}"
// WARNING: Do not place your application dependencies here!
// They belong in the individual module build.gradle files.
+2 -2
View File
@@ -25,7 +25,7 @@ kotlinVersion=1.3.50
minSdkVersion=23
compileSdkVersion=29
targetSdkVersion=29
buildToolsVersion=29.0.2
buildToolsVersion=30.0.3
supportLibVersion=28.0.0
# This should match version from nix/mobile/android/maven-and-npm-deps/maven/default.nix
gradlePluginVersion=3.5.3
@@ -50,4 +50,4 @@ org.gradle.jvmargs=-Xmx8704M
versionCode=9999
# Flipper
FLIPPER_VERSION=0.35.0
FLIPPER_VERSION=0.54.0
+8 -6
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.2.3'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label 'linux' }
@@ -6,7 +6,7 @@ pipeline {
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 20, unit: 'MINUTES')
timeout(time: 30, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '10',
@@ -101,12 +101,14 @@ pipeline {
} else { /* if no universal is available pick first */
env.PKG_URL = urls.first()
}
if (utils.isNightlyBuild()) {
env.DIAWI_URL = android.uploadToDiawi()
}
jenkins.setBuildDesc(APK: env.PKG_URL)
/* e2e builds get tested in SauceLabs */
if (utils.isE2EBuild()) {
env.SAUCE_URL = android.uploadToSauceLabs()
}
if (utils.isNightlyBuild()) {
env.DIAWI_URL = android.uploadToDiawi()
}
}
}
}
@@ -114,7 +116,7 @@ pipeline {
}
stage('Cleanup') {
steps {
sh 'make clean'
sh 'make purge'
}
}
}
+49 -12
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.2.3'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label 'linux' }
@@ -16,6 +16,20 @@ pipeline {
))
}
/* WARNING: Defining parameters here with the ?: trick causes them to remember last value. */
parameters {
choice(
name: 'BUILD_TYPE',
description: 'Makefile target to build. Optional Parameter.',
choices: genChoices(params.BUILD_TYPE, ['manual', 'nightly', 'release', 'pr', 'e2e']),
)
booleanParam(
name: 'PUBLISH',
description: 'Trigger publishing of build results for nightly or release.',
defaultValue: getPublishDefault(params.PUBLISH),
)
}
stages {
stage('Prep') {
steps { script {
@@ -27,13 +41,13 @@ pipeline {
stage('Build') {
parallel {
stage('iOS') { steps { script {
ios = jenkins.Build('status-react/combined/mobile-ios')
ios = jenkins.Build('status-react/platforms/ios')
} } }
stage('Android') { steps { script {
apk = jenkins.Build('status-react/combined/mobile-android')
apk = jenkins.Build('status-react/platforms/android')
} } }
stage('Android e2e') { steps { script {
apke2e = jenkins.Build('status-react/combined/mobile-android-e2e')
apke2e = jenkins.Build('status-react/platforms/android-e2e')
} } }
}
}
@@ -65,23 +79,25 @@ pipeline {
]
/* add URLs to the build description */
jenkins.setBuildDesc(urls)
/* Create JSON file with newest build URLs */
switch (btype) {
/* legacy naming, should have named it nightly.json */
case 'nightly': s3.updateBucketJSON(urls, 'latest.json'); break
}
} }
}
stage('Publish') {
when { expression { params.PUBLISH } }
steps { script {
switch (btype) {
case 'nightly': build(job: 'misc/status.im', wait: false); break
case 'release': github.publishReleaseMobile(); break
case 'nightly':
/* Create JSON file with newest build URLs */
s3.updateBucketJSON(urls, 'latest.json');
build(job: 'website/status.im', wait: false);
break;
case 'release':
github.publishReleaseFiles(repo: 'status-react');
break;
}
} }
}
stage('Run e2e') {
when { expression { btype == 'nightly' } }
when { expression { btype == 'nightly' && params.PUBLISH } }
steps { script {
e2eApk = utils.getEnv(apke2e, 'SAUCE_URL')
build(
@@ -93,3 +109,24 @@ pipeline {
}
}
}
/* Helper that generates list of available choices for a parameter
* but re-orders them based on the currently set value. First is default. */
def List genChoices(String previousChoice, List defaultChoices) {
if (previousChoice == null) {
return defaultChoices
}
choices = defaultChoices.minus(previousChoice)
choices.add(0, previousChoice)
return choices
}
/* Helper that makes PUBLISH default to 'false' unless:
* - The build is for a release branch
* - A user explicitly specified a value
* Since release builds create and re-create GitHub drafts every time. */
def Boolean getPublishDefault(Boolean previousValue) {
if (env.JOB_NAME.startsWith('status-react/release')) { return true }
if (previousValue != null) { return previousValue }
return false
}
+5 -4
View File
@@ -1,7 +1,7 @@
library 'status-react-jenkins@v1.2.3'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label 'macos-xcode-11.5' }
agent { label 'macos-xcode-12.5' }
parameters {
string(
@@ -99,8 +99,9 @@ pipeline {
steps {
script {
env.PKG_URL = s3.uploadArtifact(api)
jenkins.setBuildDesc(IPA: env.PKG_URL)
/* e2e builds get tested in SauceLabs */
if (btype == 'e2e') {
if (utils.isE2EBuild()) {
env.SAUCE_URL = ios.uploadToSauceLabs()
} else {
env.DIAWI_URL = ios.uploadToDiawi()
@@ -113,7 +114,7 @@ pipeline {
stage('Cleanup') {
steps {
sh 'make watchman-clean'
sh 'make clean'
sh 'make purge'
}
}
}
+18 -7
View File
@@ -1,16 +1,26 @@
library 'status-react-jenkins@v1.2.3'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label params.AGENT_LABEL }
parameters {
string(
name: 'NIX_CACHE_HOST',
description: 'FQDN of Nix binary cache host.',
defaultValue: params.NIX_CACHE_HOST ?: 'cache-01.do-ams3.nix.ci.statusim.net'
)
string(
name: 'NIX_CACHE_USER',
description: 'Username for Nix binary cache host.',
defaultValue: params.NIX_CACHE_USER ?: 'nix-cache'
)
}
environment {
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
/* we source .bash_profile to be able to use nix-store */
NIX_SSHOPTS = "-o StrictHostKeyChecking=no source .bash_profile;"
/* where our /nix/store is hosted */
NIX_CACHE_USER = 'nix-cache'
NIX_CACHE_HOST = 'master-01.do-ams3.ci.misc.statusim.net'
NIX_SSHOPTS = "-o StrictHostKeyChecking=no source .profile;"
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
}
@@ -29,7 +39,7 @@ pipeline {
stages {
stage('Setup') {
steps { script {
nix.shell('nix-env -i openssh', pure: false)
nix.shell('nix-env -i openssh', sandbox: false, pure: false)
/* some build targets don't build on MacOS */
uname = sh(script: 'uname', returnStdout: true)
} }
@@ -88,7 +98,8 @@ pipeline {
nix.shell("""
find /nix/store/ -mindepth 1 -maxdepth 1 -type d \
-not -name '*.links' -and -not -name '*-status-react-*' \
| xargs nix-copy-closure -v --to ${NIX_CACHE_USER}@${NIX_CACHE_HOST}
| xargs nix-copy-closure -v \
--to ${params.NIX_CACHE_USER}@${params.NIX_CACHE_HOST}
""",
pure: false
)
+2 -2
View File
@@ -6,11 +6,11 @@ This folder contains files defininf [Jenkins pipelines](https://jenkins.io/doc/b
All `Jenkinsfile`s contain the following line:
```groovy
library 'status-react-jenkins@master'
library 'status-jenkins-lib@master'
```
Which loads the used methods - like `nix.shell()` - from a separate private repo:
https://github.com/status-im/status-react-jenkins
https://github.com/status-im/status-jenkins-lib
This is done to improve security of our CI setup.
+9 -3
View File
@@ -44,13 +44,19 @@ pipeline {
credentialsId: 'etherscan-api-key',
variable: 'ETHERSCAN_API_KEY'
),
string(
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
]) {
dir('test/appium/tests') {
sh """
python3 -m pytest -m testrail_id \
-m "not upgrade" \
-n24 --rerun_count=2 \
python3 -m pytest \
--numprocesses 15 \
--rerun_count=2 \
--testrail_report=True \
-m testrail_id \
-m "not upgrade" \
--network=${params.NETWORK} \
--apk=${params.APK_NAME}
"""
+7 -2
View File
@@ -62,7 +62,7 @@ pipeline {
withCredentials([
usernamePassword(
credentialsId: 'status-im-auto-token',
credentialsId: 'status-im-auto',
usernameVariable: 'GIT_HUB_USER', /* ignored */
passwordVariable: 'GIT_HUB_TOKEN'
),
@@ -80,10 +80,15 @@ pipeline {
credentialsId: 'etherscan-api-key',
variable: 'ETHERSCAN_API_KEY'
),
string(
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
]) {
dir('test/appium/tests') {
sh """
python3 -m pytest -n24 \
python3 -m pytest \
--numprocesses 15 \
--rerun_count=2 \
--testrail_report=True \
-m "${params.TEST_MARKERS}" \
+8 -2
View File
@@ -48,11 +48,17 @@ pipeline {
credentialsId: 'etherscan-api-key',
variable: 'ETHERSCAN_API_KEY'
),
string(
credentialsId: 'infura-e2e-token',
variable: 'WEB3_INFURA_PROJECT_ID'
),
]) {
dir('test/appium/tests') {
sh """
python3 -m pytest -m upgrade \
-n24 --rerun_count=2 \
python3 -m pytest \
-m upgrade \
--numprocesses 15 \
--rerun_count=2 \
--testrail_report=True \
--network=${params.NETWORK} \
--apk=${params.APK_NAME} \
+1 -1
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.2.3'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label 'macos' }
-55
View File
@@ -1,55 +0,0 @@
library 'status-react-jenkins@v1.2.3'
pipeline {
agent { label 'linux' }
environment {
LANG = 'en_US.UTF-8'
LANGUAGE = 'en_US.UTF-8'
LC_ALL = 'en_US.UTF-8'
TARGET = 'ios'
FASTLANE_DISABLE_COLORS = 1
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
/* avoid writing to r/o /nix */
GEM_HOME = '~/.rubygems'
}
options {
timestamps()
/* Disable concurrent jobs */
disableConcurrentBuilds()
/* Prevent Jenkins jobs from running forever */
timeout(time: 5, unit: 'MINUTES')
/* Don't keep more than 50 builds */
buildDiscarder(logRotator(numToKeepStr: '50'))
}
stages {
stage('Prep') {
steps { script {
nix.shell(
'bundle install --gemfile=fastlane/Gemfile',
attr: 'shells.fastlane',
)
} }
}
stage('Play Store Update'){
steps { script {
withCredentials([
string(
credentialsId: 'SUPPLY_JSON_KEY_DATA',
variable: 'GOOGLE_PLAY_JSON_KEY'
),
]) {
nix.shell(
'bundle exec --gemfile=fastlane/Gemfile fastlane android upload_metadata',
keepEnv: ['FASTLANE_DISABLE_COLORS', 'GOOGLE_PLAY_JSON_KEY'],
attr: 'shells.fastlane',
pure: false
)
}
} }
}
}
}
+43
View File
@@ -0,0 +1,43 @@
/**
* This job runs daily and executes `pod repo update` on MacOS
* This is done to avoid issues with out of date repo causing errors like:
*
* Failed with exit code 1 (in target 'StatusImPR' from project 'StatusIm')
**/
pipeline {
agent {
label params.HOST_LABEL
}
triggers {
/* Run daily at 2am */
cron('H 2 * * *')
}
options {
timestamps()
/* Prevent Jenkins jobs from running forever */
timeout(time: 5, unit: 'MINUTES')
/* Limit builds retained */
buildDiscarder(logRotator(
numToKeepStr: '20',
))
}
parameters {
string(
name: 'HOST_LABEL',
description: 'Label of host to run on',
/* Using startTimeInMillis to randomize which host gets the update. */
defaultValue: "macos-0${(currentBuild.startTimeInMillis % 3) + 1}",
)
}
stages {
stage('Update') {
steps {
sh 'pod repo update'
}
}
}
}
+113
View File
@@ -0,0 +1,113 @@
# Description
This document describes how to update Status APK builds for the [F-Droid](https://f-droid.org/) Android application catalogue.
# Intro
In simplest terms F-Droid requires a YAML file that defines the steps necessary to create a universal unsigned APK build. This is achieved by submitting a new app versions into the `metadata/im.status.ethereum.yml` file in the [fdroiddata](https://gitlab.com/fdroid/fdroiddata) repository.
The app builds defined this way run on servers that generate the unsigned APKs using the [fdroidserver](https://gitlab.com/fdroid/fdroidserver) software. The [server setup](https://f-droid.org/en/docs/Build_Server_Setup/) is quite involved but is not necessary unless you want to run your own instance. Normally the applications defines in `fdroiddata` are built by servers maintained by [the F-Droid volunteers](https://f-droid.org/en/contribute/).
First release of Status app was merged in [fdroid/fdroiddata#7179](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/7179).
:warning: __WARNING__: Once changes are commited into `fdroiddata` repo they __cannot be changed__.
# Adding New Versions
You can find our configuration file at [`metadata/im.status.ethereum.yml`](https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/im.status.ethereum.yml)
The file defines all the necessary metadata like `SourceCode`, `Website`, or `License`, but the most important key is `Builds`, which looks like this:
```yml
Builds:
- versionName: 1.12.0
versionCode: 2021022512
commit: cfb825a11b61d312af8cb5d36686af540c31f481
sudo:
- cd build/im.status.ethereum
- make fdroid-build-env
init: nix/scripts/setup.sh
output: result/app-release-unsigned.apk
scanignore:
- android/build.gradle
scandelete:
- ios
build: make release-fdroid BUILD_NUMBER=$$VERCODE$$
```
It contains a list of objects defining each release of the application. In order to add a new release simply copy a previous release object and adjust the following values:
* `versionName` - String version like `1.12.0`.
* `versionCode` - Android `versionCode`. Normally it is generated from timestamp at build time.
* `commit` - Specific commit SHA1 from which the given release was built.
The `versionCode` should be the same as the one in build that was uploaded to Play Store.
It can be found in the build logs or by using:
```
> apkanalyzer manifest version-code StatusIm-Mobile-v1.12.0.apk
2021022512
```
At the bottom of the file you should also update the following keys:
* `CurrentVersion` - Same as the new `versionName` added
* `CurrentVersionCode` - Same as the `versionCode` added
Then submit a merge request to the [fdroid/fdroiddata](https://gitlab.com/fdroid/fdroiddata) repository.
:warning: __WARNING__: Currently GitLab PR builds will fail due to running as `root` instead of `vagrant` and failing to install Nix.
# Checking Builds
The simplest way to test if the app builds via F-Droid is to use the Docker image:
https://gitlab.com/fdroid/docker-executable-fdroidserver
Which is available under `registry.gitlab.com/fdroid/docker-executable-fdroidserver:latest`.
Because we use Nix to build the mobile app we need to slightly modify the image with this `Dockerfile`:
```Dockerfile
FROM registry.gitlab.com/fdroid/docker-executable-fdroidserver:latest
ARG BUILDER_UID=1000
ENV BUILDER_USER=vagrant
RUN useradd -u $BUILDER_UID $BUILDER_USER
RUN mkdir -m 0755 /nix /home/$BUILDER_USER \
&& chown -R $BUILDER_USER /nix /home/$BUILDER_USER
```
Build it using:
```
docker build --build-arg=BUILDER_UID=$UID -t statusteam/docker-executable-fdroidserver:latest .
```
Then clone the [fdroiddata](https://gitlab.com/fdroid/fdroiddata) and [fdroidserver](https://gitlab.com/fdroid/fdroidserver) repos and use it to test the build of a specific Status Android app version: `1.12.0`
```
git clone https://gitlab.com/fdroid/fdroidserver
git clone https://gitlab.com/fdroid/fdroiddata
docker run --rm \
-u $UID:$GID -e USER=vagrant \
-v $PWD/fdroiddata:/repo \
-v $PWD/fdroidserver:/fdroidserver \
statusteam/docker-executable-fdroidserver:latest \
build im.status.ethereum
```
We have to create a user and specify the UID because Nix cannot run as `root` and that is the default user for the F-Droid Docker image. By adding our own user and setting the UID we also make it possible to mount folders like `fdroiddata` and `fdroidserver`.
You can specify a `--verbose` flag for `build` command for additional information.
You can provide `--storage-opt size=30G` flag if Docker complains about running out of space.
You should also run `lint` and `rewritemeta` for the App ID to verify and fix the YAML metadata formatting.
# Details
The original research was done in [#8512](https://github.com/status-im/status-react/issues/8512).
Normally F-Droid server wants to run Gradle itself, but we do not specify the `gradle` key in order to run `make release-fdroid` ourselves in `build` step. We also add `android/build.gradle` to `scanignore` to avoid F-Droid trying to use Gradle directly.
Once the PR is merged it may take a few days for the F-Droid server farm to build and deploy the new version to their site and app. You can look up the current state of builds [here](https://f-droid.org/wiki/index.php?title=Special:RecentChanges&days=7&from=&hidebots=0&hideanons=1&hideliu=1&limit=500) and look for your App ID and a `deploy` change after it.
# F-Droid Build
F-Droid requires submitted applications to be free of non Open Source software. For this reason we need to exclude certain Google libraries at build time.
This is achieved by setting `GOOGLE_FREE=1` in the `.env.release` file. This affects two things:
1. [Clojure code conditional](../src/status_im/acquisition/core.cljs) which stops use of `get-referrer`.
2. [Gradle build configuration](../android/app/build.gradle) by excluding Google libraries.
Both are affected by the `.env` file and both are required.
+147
View File
@@ -0,0 +1,147 @@
# Using IntelliJ IDEA and Cursive
## Table of Contents
- [Install Cursive](#install-cursive)
- [Getting Cursive to understand `status-react`](#getting-cursive-to-understand-status-react)
- [I get a lot of `cannot be resolved`](#i-get-a-lot-of-cannot-be-resolved)
- [REPL!](#repl)
- [Connecting to REPL to IntelliJ](#connecting-to-repl-to-intellij)
- [Connecting REPL and IntelliJ to `status-react`](#connecting-repl-and-intellij-to-status-react)
## Install Cursive
See https://cursive-ide.com/userguide/index.html
## Getting Cursive to understand `status-react`
- Add this file to the root of the `status-react` project dir
- https://gist.github.com/Samyoul/f71a0593ba7a12d24dd0d5ef986ebbec
- Right click and "add as leiningen project"
<img src="images/IDE_SETUP/1_fake_project_file.png" width=75% />
## I get a lot of `cannot be resolved`
Are you getting problems where you get a lot of `cannot be resolved` on everything?
<img src="images/IDE_SETUP/2_resolve.jpeg" width=75% />
See https://cursive-ide.com/userguide/macros.html
- opt+enter (on macOS)
- resolve defview as fn and letsubs as let
- move selection on resolve and hit enter
- and select defn for defview and let for letsubs
## REPL!
### Connecting to REPL to IntelliJ
I had a number of problems connecting to REPL, the solution is as follows:
At the top of IntelliJ IDEA click on the `Add Configuration...` option:
<img src="images/IDE_SETUP/3_REPL_1.png" width=75% />
This will load the following menu:
<img src="images/IDE_SETUP/4_REPL_2.png" width=75% />
Click on the `+` icon in the top left corner of the menu.
Select `Clojure REPL > Remote`
<img src="images/IDE_SETUP/5_REPL_3.png" width=75% />
Which will load the following menu
<img src="images/IDE_SETUP/6_REPL_4.png" width=75% />
Enter the below options:
- Name = status-react
- Display Name = status-react
- Connection type = nREPL
- Connection details
- Host = 127.0.0.1
- Port = 7888
<img src="images/IDE_SETUP/7_REPL_5.png" width=75% />
Press `OK`
Now the below option will be visible.
Press the green run button
<img src="images/IDE_SETUP/8_REPL_6.png" width=75% />
You should now see an dialog with the following message:
```shell
Connecting to remote nREPL server...
Clojure 1.10.1
```
To confirm you have a working connection with REPL enter the following command in the input box below the output:
```shell
(prn 1)
```
Which should output
```shell
(prn 1)
1
=> nil
```
See below:
<img src="images/IDE_SETUP/9_REPL_7.png" width=75% />
### Connecting REPL and IntelliJ to `status-react`
**The important next step is telling REPL the context in which to interact with the code.**
Do the following:
Ensure you have 3 terminals running the following
- `make run-clojure`
- `make run-metro`
- `make run-ios` / `make run-android`
[See the STARTING GUIDE for details](STARTING_GUIDE.md#development)
Next go back to the REPL input and enter the following commands:
```clojure
(shadow/watch :mobile)
(shadow/repl :mobile)
```
See Below
<img src="images/IDE_SETUP/10_REPL_8.png" width="75%" />
Which should switch the clj file type target to cljs as shown above
Finally you are ready to test REPL.
Create a sample function to evaluate something simple like `(prn "I'm working")`, move your cursor to one of the outer parentheses. Right or `control` click and select the `REPL` option. From there select `Sync files in REPL` and then `Send '...' to REPL'`.
<img src="images/IDE_SETUP/11_REPL_9.png" width="75%" />
Alternatively you can use the shortcut commands `⇧⌘M` to sync your files and `⇧⌘P` to send the statement to REPL. You may also need to switch the REPL namespace to match the current file, which can be done manually from the dialogue box or using the `⇧⌘N` shortcut key.
Following the above should give you the below result:
<img src="images/IDE_SETUP/12_REPL_10.png" width="75%" />
🎉 Tada! Working! 🎉
---
For additional details on issues you may face when setting up REPL with Cursive [see this document](https://notes.status.im/9Gr7kqF8SzC_SmYK0eB7uQ?view#Connecting-Cursive--IntelliJ-IDEA-to-REPL-Problems)
+21
View File
@@ -0,0 +1,21 @@
#### Before submission
- [ ] Feature or improvements release? (Feature release needs more lead time and assets for comms)
- [ ] Sign off by QA
- [ ] App store listing content reviewed and updated ([copy](https://docs.google.com/spreadsheets/d/1fLDr3BD1dcg0dolvLiozXoZU27IQirjBzn0h4_QS2u0/edit#gid=0), [images](https://www.dropbox.com/sh/6baklctvxy3nuoo/AACG9kYIVdt2qREW76rP8SP-a?dl=0) )
- [ ] Play store content reviewed and updated
- [ ] Release notes written and added (500 character limit for updates (Android), no Android references for App store)
- [ ] Comms timeframe agreed on (Mon/Tue ping when both submissions are in)
- [ ] Privacy policy reviewed and updated
- [ ] App translations for key features merged and tested
- [ ] Countries to be excluded
- [ ] Changes to our FAQ made
#### Before publishing
- [ ] Translations for comms available
- [ ] Promotional content ready
- [ ] Update Draft with release on https://github.com/status-im/status-react/releases
- [ ] Add release to DO store and [update site](https://notes.status.im/s/status-release-upload#) (Jakub - requires credentials to upload)
#### At time of publishing
- [ ] validate draft release on github release page https://github.com/status-im/status-react/releases
- [ ] update https://github.com/status-im/status-react/blob/develop/RELEASES.md with release notes
+106
View File
@@ -0,0 +1,106 @@
# Description
This document explains some of the steps that are involved in releases.
# Release process
## Coordination
All the coordination is done in the `#release` channel on discord.
Release readiness can be tracked by watching an appropriate milestone at [milestones](https://github.com/status-im/status-react/milestones) section in github.
When release is building you can check the progress in a testrail. Ask @churik for access if you don't have it
## Preparing branches
Special branches should be created at the start of a release process. That can be done manually or with the script
### Prepare branches with the script
You can use the script to cut a release branch. No arguments needed, the new release version will be deducted automatically:
`scripts/cut-release.sh`
Upon script call two branches will be created:
- `release/a.b.x`
- `chore/update-release-to-$version`
The first one is the main release branch. All bugfixes should be cherry-picked from `develop` to it. Jenkins treats that branch specially and prepares release builds from it.
The second branch only updates the `VERSION` file and all you need to do is to merge it to `develop`. If you have the `gh` command installed, `cut-release` script will automatically create a PR for this.
### Prepare branches manually
#### Create a branch
First, we need to create a release branch cut from develop.
The name of the branch should be `release/a.b.x` where `x` is actually `x`, not a variable, and `a` and `b` are the `MAJOR` and `MINOR` version of the app.
For example, valid branch names are:
`release/1.12.x` or `release/3.12.x`
#### Update version
We need to update the `VERSION` file to reflect the release we want to build.
## Building
Jenkins will automatically build this branch and create release candidates.
Those will go through the QA process and the QA team will let us know when
tested successfully.
## Bugfixes before an app is released
Because both `status-react` and `status-go` might have newer commits that we don't want to include, bug fixes should be applied separately to develop and the release branch.
The best workflow is to send a PR to develop, get it merged, and the cherry-pick on the
release branch.
It is a release manager's responsibility to cherry-pick bugfix from `develop` to release branch. In order to do this, you should be a part of a `release group` on github. Contact @jakubgs to be added.
If cherry-picking not practical for some reason (i.e develop has diverged significantly from release)
other workflows are possible.
To change status-go, a similar workflow applies.
First checkout the tag used in `status-go-version.json` of release branch.
`git checkout v0.62.3`
Create a branch on status-go named: `release/vx.y.z+hotfix.w` where (make sure branch name is not the same as the tag)
`x` is the `MAJOR` version
`y` is the `MINOR` version
`z` is the `PATCH` version
`w` is the `HOTFIX` version
For example valid names are:
`release/v0.62.3+hotfix.2`
`release/v1.3.4+hotfix.4`
Once the branch is ready to use and tested successfully, tag the branch:
`git tag v0.62.3+hotfix.2`
Push the branch and then the tag to origin:
`git push --set-upstream origin release/v0.62.3+hotfix.2`
`git push origin v0.62.3+hotfix.2`
Switch to status-react release branch, and cherry pick the commit you need.
Once that's done, update the status-react release branch with the new tag:
`make shell`
`scripts/update-status-go.sh v0.62.3+hotfix.2`
And commit and push the changes
# Hotfix process
The hotfix process is basically identical to the workflow of a bugfix:
1) Add the changes on status-react
2) Make sure you use a hotfix branch for status-go (unless we are happy to release from develop)
3) Update the `VERSION` in status-react
View File
+69 -20
View File
@@ -1,4 +1,11 @@
# Business Logic Modules
# Codebase Strucuture and Guidelines
## Starting the app
The app is bundled and run in a Nix environment. Information regarding how to run it locally can be found [here](https://status.im/technical/build_status/).
## Business Logic Modules
Each business logic module is managed in a module directory.
@@ -31,7 +38,7 @@ Rationale and how to get there:
Currently a lot of business logic is lost in utils and screens namespaces and should be moved to dedicated top level directories.
This should make core logic of the app more accessible and organized
## core.cljs
### core.cljs
Core namespace must only contain functions that can be called outside of the module (i.e. in events or other modules):
@@ -45,9 +52,8 @@ Core namespace must only contain functions that can be called outside of the mod
{:db (module.db/set-current-account db)})
```
## db.cljs
### db.cljs
- must contain specs for the app-db subpart the module modifies
- must contain getter and setter functions used by fx producing functions and subscriptions
- db logic called by other modules
@@ -55,26 +61,69 @@ Rationale:
These guidelines make db.cljs namespaces the place to go when making changes to the db layout and minimize breaking changes when adding/refactoring features
# Subscriptions
## re-frame
### Subscriptions
- all subscriptions must be defined in the single `status-im.subs` namespace
- subscriptions must subscribe only on other subscriptions, and never on app-db itself
- `reg-root-key-sub` should be used for the root keys subscriptions
# Events
### Events
- all events must be defined in the single `status-im.events` namespace which can be considered as an index of everything going on in the app
- events must always be declared with `register-handler-fx`, no `register-handler-db`
- events must never use the `trim-v` interceptor
- events must only contain a function call defined in a module
```clojure
(handlers/register-handler-fx
:notifications/handle-push-notification-open
(fn [cofx [_ event]]
(notifications/handle-push-notification-open event cofx)))
```
- events must use synthetic namespaces:
- all events must be defined in the `core.cljs` namespaces
- events must always be declared with `fx/defn` macro
- `:module.ui/` for user triggered events
- `:module.callback/` for callback events, which are events bringing back the result of an fx to the event loop, the name of the event should end with `-success` or `-error` most of the time. Other possibilities can be `-granted`, `-denied` for instance.
- `:module/` for internal events, examples are time based events marked `-timed-out`, external changes marked `-changed` or reception of external events marked `-received`.
## Testing flow
- All PRs automatically go to "REVIEW" column on [Pipeline for QA](https://github.com/status-im/status-react/projects/7) project on Github. This is our main board for QA / devs interaction
- After the PR gets at least 1 approval, it should be moved to "E2E Tests" column. Some PRs may need approvals from more than one person.
- Critical path tests are automatically run for all PRs in "E2E Tests" column.
- If E2E tests pass:
- If PR doesn't need manual QA (it is small change or change doesn't relate to app) - after passing e2e tests it can be merged (don't use the Github UI to merge, check section on merging PRs).
- If manual QA needed - add label 'request manual qa'. The QA team will process it (make sure the summary and test instructions are clear). QA team will review results and test PR on different platforms and assign one of the three labels:
- No issues - label 'TESTED-OK' and then you can merge it.
- If issues - label 'TESTED-ISSUES' and comment from QA with bugs.
- After fix and/or discussion the process is repeated.
- If manual QA is not needed but all tests don't pass, you can ping @churik or @Serhy to confirm that failed E2E tests are not unrelated.
## Enabling debug logs
Calls to `log/debug` will not be printed to the console by default. It can be enabled under "Advanced settings" in the app:
![Enable Debug Logs](./log-settings.png)
## Translations
The app relies on system locale to select a language from the [list of supported languages](https://github.com/status-im/status-react/blob/bda73867471cf2bb8a68b1cc27c9f94b92d9a58b/src/status_im/i18n_resources.cljs#L9). It falls back to English in cash the system locale is not supported.
We use Lokalise App to manage [translations](https://translate.status.im/). In case you need to add/remove a key to translations, you only need to change `en.json`. Missing keys fallback to `en.json`. The actual translations will be added by Lokalise.
## re-frisk
re-frisk is a state visualization tool written by our very own Andrey (@flexsurfer). To start re-frisk, execute the following command:
```bash
$ yarn shadow-cljs run re-frisk-remote.core/start
```
or you can also use make:
```bash
$ make run-re-frisk
```
A server will be started at http://localhost:4567. It might show "not connected" at first. Don't worry and just start using the app. The events and state will populate.
## Merging approved PRs
We don't Github's UI to merge. Instead `./scripts/merge-pr.sh` is used to sign and merge PR to `develop`. You first need to enable [GPG signing on you commits](https://github.com/status-im/status-react/blob/develop/STARTING_GUIDE.md#configure-gpg-keys-for-signing-commits).
Once your commits are verfied and PR approved, you can run the script like so:
```bash
$ git checkout develop
$ git fetch
$ git reset --hard origin/develop
$ ./scripts/merge-pr.sh 11370
```
Replace 11370 with your PR id.
## Release process
TODO(shivekkhurana): Compile release notes
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

+58 -40
View File
@@ -11,18 +11,6 @@
# There are a few env variables defined in the .env file in
# this directory (fastlane/.env)
# unlocks keychain if KEYCHAIN_PASSWORD variable is present
# (to be used on CI machines)
def unlock_keychain_if_needed
return unless ENV['KEYCHAIN_PASSWORD']
unlock_keychain(
path: 'login.keychain',
password: ENV['KEYCHAIN_PASSWORD'],
set_default: true
)
end
def curl_upload(url, file, auth, conn_timeout = 5, timeout = 60, retries = 3)
rval = sh(
'curl',
@@ -81,6 +69,45 @@ def upload_to_saucelabs(file)
end
end
# Creates and unlocks a keychain into which Fastlane match imports signing keys and certs.
class Keychain
attr_accessor :name, :pass
def initialize(name)
# Local devs will not have KEYCHAIN_PASSWORD set, and will be prompted for password.
return "login.keychain-db" unless ENV['KEYCHAIN_PASSWORD']
# We user the same keychain every time because we need to set a default.
@name = "#{name}.keychain-db"
@pass = ENV['KEYCHAIN_PASSWORD']
Fastlane::Actions::CreateKeychainAction.run(
name: @name,
password: @pass,
unlock: true,
# Fastlane can't find the signing cert without setting a default.
default_keychain: true,
# Deleting the keychain would cause race condition for parallel jobs.
require_create: false,
# Lock it up after 25 minutes just in case we don't delete it.
lock_when_sleeps: true,
lock_after_timeout: true,
timeout: 1500
)
end
end
# App Store Connect API is an official public API used to manage Apps.
# This includes metadata, pricing and availability, provisioning, and more.
# It provides a JSON API and auth using API Keys to generate a JSON Web Token (JWT).
def asc_api_key()
app_store_connect_api_key(
key_id: ENV['FASTLANE_ASC_API_KEY_ID'],
issuer_id: ENV['FASTLANE_ASC_API_ISSUER_ID'],
key_filepath: ENV['FASTLANE_ASC_API_KEY_FILE_PATH'],
duration: 1200, # seconds, session length
in_house: false,
)
end
# builds an ios app with ad-hoc configuration and put it
# to "status-ios" output folder
# `readonly`:
@@ -88,19 +115,23 @@ end
# if false - read list of devices from AppStoreConnect, and upgrade the provisioning profiles from it
# `pr_build`:
# if true - uses StatusImPR scheme and postfixed app id with `.pr` to build an app, which can be used in parallel with release
# if false - uses StatusIm scheme to build the release app
# if false - uses StatusIm scheme to build the release app
def build_ios_adhoc(readonly: false, pr_build: false)
# PR builds should appear as a separate App on iOS
scheme = pr_build ? 'StatusImPR' : 'StatusIm'
app_id = pr_build ? 'im.status.ethereum.pr' : 'im.status.ethereum'
kc = Keychain.new('fastlane')
match(
type: 'adhoc',
force_for_new_devices: true,
readonly: readonly,
api_key: asc_api_key(),
app_identifier: app_id,
keychain_name: 'login.keychain'
force_for_new_devices: true,
keychain_name: kc.name,
keychain_password: kc.pass
)
build_ios_app(
@@ -128,11 +159,15 @@ def build_ios_e2e
showsdks_output = sh('xcodebuild', '-showsdks')
simulator_sdk = showsdks_output.scan(/iphonesimulator\d\d?\.\d\d?/).first
kc = Keychain.new('fastlane')
match(
type: 'adhoc',
force_for_new_devices: true,
readonly: true,
keychain_name: 'login.keychain'
api_key: asc_api_key(),
force_for_new_devices: true,
keychain_name: kc.name,
keychain_password: kc.pass
)
build_ios_app(
@@ -181,7 +216,6 @@ platform :ios do
desc 'It creates an .ipa that can be used by a list of devices, registeded in the App Store Connect.'
desc 'This .ipa is ready to be distibuted through diawi.com'
lane :adhoc do
unlock_keychain_if_needed
build_ios_adhoc(readonly: true)
end
@@ -189,31 +223,32 @@ platform :ios do
desc 'This lane is used for SauceLabs end-to-end testing.'
desc 'It creates an .app that can be used inside of a iPhone simulator.'
lane :e2e do
unlock_keychain_if_needed
build_ios_e2e
end
desc '`fastlane ios pr` - makes a new pr build'
desc 'This lane builds a new adhoc build and leaves an .ipa that is ad-hoc signed (can be uploaded to diawi)'
lane :pr do
unlock_keychain_if_needed
build_ios_adhoc(pr_build: true)
end
desc '`fastlane ios nightly` - makes a new nightly'
desc 'This lane builds a new nightly and leaves an .ipa that is ad-hoc signed (can be uploaded to diawi)'
lane :nightly do
unlock_keychain_if_needed
build_ios_adhoc()
end
desc '`fastlane ios release` builds a release & uploads it to TestFlight'
lane :release do
kc = Keychain.new('fastlane')
match(
type: 'appstore',
readonly: true,
api_key: asc_api_key(),
app_identifier: 'im.status.ethereum',
keychain_name: 'login.keychain'
keychain_name: kc.name,
keychain_password: kc.pass
)
build_ios_app(
@@ -230,6 +265,7 @@ platform :ios do
"ITSAppUsesNonExemptEncryption": false
}
)
upload_to_testflight(
ipa: 'status-ios/StatusIm.ipa',
skip_waiting_for_build_processing: true
@@ -300,24 +336,6 @@ platform :android do
)
end
desc 'Upload metadata to Google Play.'
desc 'Metadata is always updated when builds are uploaded,'
desc 'but this action can update metadata without uploading a build.'
desc 'expects GOOGLE_PLAY_JSON_KEY environment variable'
lane :upload_metadata do
upload_to_play_store(
skip_upload_apk: true,
skip_upload_changelogs: true,
json_key_data: ENV['GOOGLE_PLAY_JSON_KEY'],
# These don't matter much as we're not uploading any new builds
# and indeed, we're skipping changelogs. This is just so that
# the library can find what it thinks it needs and continue with
# the work we actually want it to do.
track: 'production',
version_code: '2020042307'
)
end
desc '`fastlane android upload_diawi` - upload .apk to diawi'
desc 'expects to have an .apk prepared: `result/app.apk`'
desc 'expects to have a diawi token as DIAWI_TOKEN env variable'
+61 -37
View File
@@ -1,27 +1,28 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.2)
CFPropertyList (3.0.3)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.1.0)
aws-partitions (1.350.0)
aws-sdk-core (3.104.3)
aws-eventstream (1.1.1)
aws-partitions (1.442.0)
aws-sdk-core (3.113.1)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-kms (1.36.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sdk-kms (1.43.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.75.0)
aws-sdk-core (~> 3, >= 3.104.1)
aws-sdk-s3 (1.93.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.2.1)
aws-sigv4 (1.2.3)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.3)
babosa (1.0.4)
claide (1.0.3)
colored (1.2)
colored2 (3.1.2)
@@ -29,24 +30,28 @@ GEM
highline (~> 1.7.2)
declarative (0.0.20)
declarative-option (0.1.0)
digest-crc (0.6.1)
rake (~> 13.0)
digest-crc (0.6.3)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.6)
emoji_regex (3.0.0)
excon (0.76.0)
faraday (1.0.1)
emoji_regex (3.2.2)
excon (0.79.0)
faraday (1.3.0)
faraday-net_http (~> 1.0)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
faraday (>= 0.7.4)
ruby2_keywords
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-net_http (1.0.1)
faraday_middleware (1.0.0)
faraday (~> 1.0)
fastimage (2.2.0)
fastlane (2.154.0)
fastimage (2.2.3)
fastlane (2.179.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0)
@@ -67,6 +72,7 @@ GEM
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (~> 2.0.0)
naturally (~> 2.2)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
@@ -92,20 +98,35 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
signet (~> 0.12)
google-cloud-core (1.5.0)
google-apis-core (0.3.0)
addressable (~> 2.5, >= 2.5.1)
googleauth (~> 0.14)
httpclient (>= 2.8.1, < 3.0)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
rexml
signet (~> 0.14)
webrick
google-apis-iamcredentials_v1 (0.3.0)
google-apis-core (~> 0.1)
google-apis-storage_v1 (0.3.0)
google-apis-core (~> 0.1)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
google-cloud-env (1.3.3)
google-cloud-env (1.5.0)
faraday (>= 0.17.3, < 2.0)
google-cloud-errors (1.0.1)
google-cloud-storage (1.27.0)
google-cloud-errors (1.1.0)
google-cloud-storage (1.31.0)
addressable (~> 2.5)
digest-crc (~> 0.4)
google-api-client (~> 0.33)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.1)
google-cloud-core (~> 1.2)
googleauth (~> 0.9)
mini_mime (~> 1.0)
googleauth (0.13.1)
googleauth (0.16.1)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
@@ -118,23 +139,23 @@ GEM
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.4.0)
json (2.3.1)
jwt (2.2.1)
json (2.5.1)
jwt (2.2.2)
memoist (0.16.2)
mime-types (3.3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2020.0512)
mini_magick (4.10.1)
mini_mime (1.0.2)
mime-types-data (3.2021.0225)
mini_magick (4.11.0)
mini_mime (1.1.0)
multi_json (1.15.0)
multipart-post (2.0.0)
nanaimo (0.3.0)
naturally (2.2.0)
naturally (2.2.1)
netrc (0.11.0)
os (1.1.1)
plist (3.5.0)
public_suffix (4.0.5)
rake (13.0.1)
plist (3.6.0)
public_suffix (4.0.6)
rake (13.0.3)
representable (3.0.4)
declarative (< 0.1.0)
declarative-option (< 0.2.0)
@@ -145,10 +166,12 @@ GEM
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
retriable (3.1.2)
rexml (3.2.5)
rouge (2.0.7)
ruby2_keywords (0.0.4)
rubyzip (2.3.0)
security (0.1.3)
signet (0.14.0)
signet (0.15.0)
addressable (~> 2.3)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.5, < 3.0)
@@ -169,8 +192,9 @@ GEM
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (1.7.0)
webrick (1.7.0)
word_wrap (1.0.0)
xcodeproj (1.17.1)
xcodeproj (1.19.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
@@ -178,7 +202,7 @@ GEM
nanaimo (~> 0.3.0)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.0)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
+2 -2
View File
@@ -1,4 +1,4 @@
{ stdenv, bundlerEnv, ruby, makeWrapper }:
{ stdenv, lib, bundlerEnv, ruby, makeWrapper }:
let
fastlane = stdenv.mkDerivation rec {
@@ -28,7 +28,7 @@ let
export FASTLANE_PLUGINFILE_PATH=$STATUS_REACT_HOME/fastlane/Pluginfile
'';
meta = with stdenv.lib; {
meta = with lib; {
description = "A tool to automate building and releasing iOS and Android apps";
longDescription = "fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.";
homepage = https://github.com/fastlane/fastlane;
+151 -68
View File
@@ -10,6 +10,16 @@
};
version = "2.7.0";
};
artifactory = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wify8rhjwr5bw5y6ary61vba290vk766cxw9a9mg05yswmaisls";
type = "gem";
};
version = "3.0.15";
};
atomos = {
groups = ["default"];
platforms = [];
@@ -25,20 +35,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
type = "gem";
};
version = "1.1.0";
version = "1.1.1";
};
aws-partitions = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rwd13lqambjpq94qhccw3ixn6bvwnqcnd3v1rdlmpcvqq2rw49c";
sha256 = "0lm08fmahg3m87vbsfv73iswgvicdwcxfmkzr6v9qshlkg36lafd";
type = "gem";
};
version = "1.350.0";
version = "1.442.0";
};
aws-sdk-core = {
dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -46,10 +56,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xfv8nfz8n700z29di51mcyyrnmbpq7flff4hx9mm92avnly1ysy";
sha256 = "0i3x8p9gymc9977dcdkz5ca6mrmh7ym6p2mrscbh49nfd9gi5zg0";
type = "gem";
};
version = "3.104.3";
version = "3.113.1";
};
aws-sdk-kms = {
dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -57,10 +67,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0rpwpj4f4q9wdrbgiqngzwfdaaqyz0iif8sv16z6z0mm6y3cb06q";
sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
type = "gem";
};
version = "1.36.0";
version = "1.43.0";
};
aws-sdk-s3 = {
dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -68,10 +78,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "068xx6wp86wkmikdzg4wqxmg570hc3ydp8211j02g13djjr3k28n";
sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
type = "gem";
};
version = "1.75.0";
version = "1.93.0";
};
aws-sigv4 = {
dependencies = ["aws-eventstream"];
@@ -79,30 +89,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0aknh3q37rq3ixxa84x2p26g8a15zmiig2rm1pmailsb9vqhfh3j";
sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
type = "gem";
};
version = "1.2.1";
version = "1.2.3";
};
babosa = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10nn9bw63i4awpzn5vrx6kmpx1sg7z8r3fhw9r8bvg9pz2wh489g";
sha256 = "16dwqn33kmxkqkv51cwiikdkbrdjfsymlnc0rgbjwilmym8a9phq";
type = "gem";
};
version = "1.0.3";
version = "1.0.4";
};
CFPropertyList = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
type = "gem";
};
version = "3.0.2";
version = "3.0.3";
};
claide = {
groups = ["default"];
@@ -171,10 +181,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1nygbn680kmya9vnz0pr9681z8lszr2whln0rxk168vaxbcnga8d";
sha256 = "118d5p02kdw6a5pi8af12dxma7q3b77zz5q5xjjf5kgp8qh1930a";
type = "gem";
};
version = "0.6.1";
version = "0.6.3";
};
domain_name = {
dependencies = ["unf"];
@@ -202,31 +212,31 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mjl5g6fv8iyf3nnbfyzd64bhl8l1qxyh452797km1aj4c682ia3";
sha256 = "15xqimc9dr9yyrf09dy8g60s65bvgg6xyyr7q74352r9vhwyg357";
type = "gem";
};
version = "3.0.0";
version = "3.2.2";
};
excon = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05is0kb650j8wrdi4rgkdls662chnhdg2p64pgq3zkd3d7l2a9zw";
sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
type = "gem";
};
version = "0.76.0";
version = "0.79.0";
};
faraday = {
dependencies = ["multipart-post"];
dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
type = "gem";
};
version = "1.0.1";
version = "1.3.0";
};
faraday-cookie_jar = {
dependencies = ["faraday" "http-cookie"];
@@ -234,10 +244,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
sha256 = "00hligx26w9wdnpgsrf0qdnqld4rdccy8ym6027h5m735mpvxjzk";
type = "gem";
};
version = "0.0.6";
version = "0.0.7";
};
faraday-net_http = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
type = "gem";
};
version = "1.0.1";
};
faraday_middleware = {
dependencies = ["faraday"];
@@ -255,21 +275,21 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "11ny2pj0j6pljszrf1w3iqdv2pcl2iwwghjbgcjlizy424zbh0hb";
sha256 = "0lgr0vs9kg5622qaf2l3f37b238dncs037fisiygvkbq8sg11i68";
type = "gem";
};
version = "2.2.0";
version = "2.2.3";
};
fastlane = {
dependencies = ["CFPropertyList" "addressable" "aws-sdk-s3" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multipart-post" "plist" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
dependencies = ["CFPropertyList" "addressable" "artifactory" "aws-sdk-s3" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multipart-post" "naturally" "plist" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05y7qn8f1d3q355vf1fvbwz0sf73bwiwbcpzidd1szh49400h65b";
sha256 = "1wspwgc1q31049a20k2gnzmizdvq4jdmzyd2fnz7r4g68fygj3sj";
type = "gem";
};
version = "2.154.0";
version = "2.179.0";
};
fastlane-plugin-clean_testflight_testers = {
groups = ["default"];
@@ -313,16 +333,49 @@
};
version = "0.38.0";
};
google-apis-core = {
dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet" "webrick"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jx4jiyfjxd8pxlpi94f07cb5yvljb5rv7i8xzjq2xrrlvdf212a";
type = "gem";
};
version = "0.3.0";
};
google-apis-iamcredentials_v1 = {
dependencies = ["google-apis-core"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gqpxcc0cjv4838q38g3mx9pgk7681w6irr6zwcygvnvbsvbbpsh";
type = "gem";
};
version = "0.3.0";
};
google-apis-storage_v1 = {
dependencies = ["google-apis-core"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0q6d5grhrkyfxmzlv0y39i6wzq5ayq1lkp33vfcg9pm8jyzcz7b2";
type = "gem";
};
version = "0.3.0";
};
google-cloud-core = {
dependencies = ["google-cloud-env" "google-cloud-errors"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1qjn7vs8f85vxi1nkikbjfja6bv9snrj26vzscjii0cm8n4dy0i1";
sha256 = "0amp8vd16pzbdrfbp7k0k38rqxpwd88bkyp35l3x719hbb6l85za";
type = "gem";
};
version = "1.5.0";
version = "1.6.0";
};
google-cloud-env = {
dependencies = ["faraday"];
@@ -330,31 +383,31 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0frifczbhs5k699avaxnaypijfmjd2zb1rbdmcb30vdx8sskypa9";
sha256 = "0ajc3w4wqg46ywcbmb5fz1q6gfm6g7874s9h31i1r038kz2bzfag";
type = "gem";
};
version = "1.3.3";
version = "1.5.0";
};
google-cloud-errors = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hvs1x39g77hbdqjxmzcl6gq8160pv3kskvzbbch0ww1np6qwm67";
sha256 = "0q3h996b6vl2ryfbm9jwczjcbnwhkpqs6hingxp22rhzk7qxi9z0";
type = "gem";
};
version = "1.0.1";
version = "1.1.0";
};
google-cloud-storage = {
dependencies = ["addressable" "digest-crc" "google-api-client" "google-cloud-core" "googleauth" "mini_mime"];
dependencies = ["addressable" "digest-crc" "google-apis-iamcredentials_v1" "google-apis-storage_v1" "google-cloud-core" "googleauth" "mini_mime"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "06pmgk210frapxjjshy9iax6jb5ps8fbylcy0c9ypwji6cwxk990";
sha256 = "1bjkwnsii4svw2g09xjqpkq3mck820kj9nhx3vlv7rjmlh3bg68s";
type = "gem";
};
version = "1.27.0";
version = "1.31.0";
};
googleauth = {
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
@@ -362,10 +415,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ldhllhv8mlbalp8a3zb1hsj5p2i8f0vf88r71vm083gq7820iwn";
sha256 = "1438alhx4n4rdgf6q7ni8qj1b10y8lr9z9spphhjyhacby1ifsjn";
type = "gem";
};
version = "0.13.1";
version = "0.16.1";
};
highline = {
groups = ["default"];
@@ -423,20 +476,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
type = "gem";
};
version = "2.3.1";
version = "2.5.1";
};
jwt = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01zg1vp3lyl3flyjdkrcc93ghf833qgfgh2p1biqfhkzz11r129c";
sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
type = "gem";
};
version = "2.2.1";
version = "2.2.2";
};
memoist = {
groups = ["default"];
@@ -464,30 +517,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
type = "gem";
};
version = "3.2020.0512";
version = "3.2021.0225";
};
mini_magick = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lpq12z70n10c1qshcddd5nib2pkcbkwzvmiqqzj60l01k3x4fg9";
sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs";
type = "gem";
};
version = "4.10.1";
version = "4.11.0";
};
mini_mime = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
sha256 = "0kb7jq3wjgckmkzna799y5qmvn6vg52878bkgw35qay6lflcrwih";
type = "gem";
};
version = "1.0.2";
version = "1.1.0";
};
multi_json = {
groups = ["default"];
@@ -524,10 +577,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0dzqdawqr4agx7zr1fr5zxdwl8vb5rhpz57l1lk7d2y46ha6l4l7";
sha256 = "04x1nkx6gkqzlc4phdvq05v3vjds6mgqhjqzqpcs6vdh5xyqrf59";
type = "gem";
};
version = "2.2.0";
version = "2.2.1";
};
netrc = {
groups = ["default"];
@@ -554,30 +607,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ra0910xxbhfsmdi0ig36pr3q0khdqzwb5da3wg7y3n8d1sh9ffp";
sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
type = "gem";
};
version = "3.5.0";
version = "3.6.0";
};
public_suffix = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
type = "gem";
};
version = "4.0.5";
version = "4.0.6";
};
rake = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
type = "gem";
};
version = "13.0.1";
version = "13.0.3";
};
representable = {
dependencies = ["declarative" "declarative-option" "uber"];
@@ -611,6 +664,16 @@
};
version = "3.1.2";
};
rexml = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
type = "gem";
};
version = "3.2.5";
};
rouge = {
groups = ["default"];
platforms = [];
@@ -621,6 +684,16 @@
};
version = "2.0.7";
};
ruby2_keywords = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
type = "gem";
};
version = "0.0.4";
};
rubyzip = {
groups = ["default"];
platforms = [];
@@ -647,10 +720,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "10g2667fvxnc50hcd1aywgsbf8j7nrckg3n7zjvywmyz82pwmpqp";
sha256 = "1vvxmfm9khxp35xs8qxc82i7hakylxbn7kx4apinvxaid6rlq60g";
type = "gem";
};
version = "0.14.0";
version = "0.15.0";
};
simctl = {
dependencies = ["CFPropertyList" "naturally"];
@@ -766,6 +839,16 @@
};
version = "1.7.0";
};
webrick = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
type = "gem";
};
version = "1.7.0";
};
word_wrap = {
groups = ["default"];
platforms = [];
@@ -782,10 +865,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mv5rsbgwq4vzri31w2f1474arrsr5j69rdhklrci6jnjps8dmx9";
sha256 = "1411j6sfnz0cx4fiw52f0yqx4bgcn8cmpgi3i5rwmmahayyjz2fn";
type = "gem";
};
version = "1.17.1";
version = "1.19.0";
};
xcpretty = {
dependencies = ["rouge"];
@@ -804,9 +887,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15b5c0lxz2blmichfdlabzlbyw5nlh1ci898pxwb661m9bahz3ml";
sha256 = "14rg4f70klrs910n7rsgfa4dn8s2qyny55194ax2qyyb2wpk7k5a";
type = "gem";
};
version = "1.0.0";
version = "1.0.1";
};
}
}
@@ -1,12 +0,0 @@
الحاله هي أداة اتصال خاصة وآمنة. يمكنك الدردشة مع الأصدقاء وتخزين الأصول واستكشاف مستقبل الويب دون استغلالها لبياناتك.
مع الحاله ، أنت وحدك تتحكم في معلوماتك.
دردشة
تزيل الحاله جهات خارجية مركزية من رسائلك. ليس المحتوى الخاص بك محميًا فحسب ، بل أيضًا البيانات الوصفية الخاصة بك - للحصول على الخصوصية المطلقة.
المعاملات
تخزين الأصول الرقمية في محفظة الحالة الخاصة بك. إرسال الرموز المميزة من الأصدقاء وطلبها أو التعامل مع التطبيقات اللامركزية.
يكتشف
الوصول إلى التطبيقات المستندة إلى الايثريوم على الويب٣ . لعب الألعاب وتبادل الأصول الرقمية وأكثر من ذلك.
@@ -1 +0,0 @@
الدردشة والتعامل بشكل آمن
-1
View File
@@ -1 +0,0 @@
الحاله - الاتصالات الخاصة
@@ -1,12 +0,0 @@
Status ist eine App für private und sichere Kommunikation. Chatten Sie mit Freunden, bewahren Sie Assets auf und erkunden Sie die Zukunft des Internets, ohne Ihre Privatsphäre aufzugeben.
In Status haben nur Sie die volle Kontrolle über Ihre Informationen.
CHATTEN
Status entfernt unnötige Mittelmänner beim Chatten. Nicht nur ihre Nachrichten sind geschützt, sondern auch auch ihre Metadaten - für ultimative Privatsphäre
TRANSAKTIONEN
Bewahren Sie digitale Assets in Ihrer Status-Wallet auf. Senden und erhalten Sie Tokens von Ihren Freunden oder interagieren Sie mit DApps.
ERKUNDEN
Greifen Sie auf Ethereum-basierte Web3-Apps zu. Spielen Sie Spiele, konvertieren Sie Assets u.v.m.
@@ -1 +0,0 @@
Chatten und Transaktionen sicher tätigen
@@ -1 +0,0 @@
Status - Private Kommunikation
@@ -1,12 +0,0 @@
Status is a private and secure communication tool. Chat with friends, store assets and explore the future of the web without being exploited for your data.
With Status, you alone control your information.
CHAT
Status removes centralized third parties from your messages. Not only is your content protected, but so is your metadata for ultimate privacy.
TRANSACT
Store digital assets in your Status wallet. Send and request tokens from friends, or transact with decentralized applications.
EXPLORE
Access Ethereum based applications on web3. Play games, exchange digital assets and more.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 508 KiB

@@ -1 +0,0 @@
Chat and transact securely
@@ -1 +0,0 @@
Status - Private Communication
@@ -1,12 +0,0 @@
Status é uma ferramenta de comunicação segura e privada. Converse com os seus amigos, armazene ativos e explore o futuro da web sem que os seus dados sejam explorados.
Com a Status, apenas você controlas as suas informações.
CONVERSA
A Status remove terceiros centralizados das suas mensagens. Não é apenas o seu conteúdo que está protegido, mas também os seus metadados - para uma privacidade máxima.
TRANSACIONA
Armazene ativos digitais na sua carteira Status. Envie e solicite tokens aos seus amigos, ou transacione com aplicações descentralizadas.
EXPLORA
Acesse à aplicações baseadas na Ethereum na web3. Joge jogos, troce ativos digitais e muito mais.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 466 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 KiB

@@ -1 +0,0 @@
Converse e faça transações de uma forma segura
@@ -1 +0,0 @@
Status - Comunição Privada
@@ -1,12 +0,0 @@
Ang Status ay isang pribado at ligtas na tool sa komunikasyon. Makipag-chat sa mga kaibigan, mag-imbak ng mga asset at galugarin ang hinaharap ng web nang hindi sinamantala para sa iyong data.
Sa Status, ikaw lamang ang kumokontrol sa iyong impormasyon.
Chat
Tinatanggal ng Status ang mga sentralisadong third party sa iyong mga mensahe. Hindi lamang protektado ang iyong nilalaman, ngunit gayon din ang iyong metadata - para sa panghuli sa privacy.
TRANSACT
Mag-imbak ng mga digital na assets sa iyong Status wallet. Magpadala at humiling ng mga token mula sa mga kaibigan, o makipag-transaksyon sa mga desentralisadong aplikasyon.
Siyasatin
I-access ang mga aplikasyon na batay sa Ethereum sa web3. Maglaro ng mga laro, makipagpalitan ng mga digital assets at marami pa.
@@ -1 +0,0 @@
Makipag-chat at makipag-transaksyon nang ligtas
-1
View File
@@ -1 +0,0 @@
Status - Pribadong Komunikasyon
@@ -1,14 +0,0 @@
Status est un outil de communication privé et sécurisé. Discutez avec vos amis, stockez vos
cryptos et explorez l'avenir du web sans être exploité pour vos données.
Avec Status, vous seul contrôlez vos informations.
COMMUNIQUEZ
Status retire toute entité centralisée de l'équation. Non seulement votre contenu est protégé, mais vos metadonnées aussi. Votre vie privée est totalement préservée.
TRANSACTIONNEZ
Stockez des actifs numériques dans votre portefeuille Status. Échangez des tokens avec
vos amis et effectuez des transactions à partir dapplications décentralisées.
EXPLOREZ
Accédez à des applications web3 basées sur Ethereum. Jouez, échangez des ressources
numériques et plus encore.
@@ -1 +0,0 @@
Discutez et effectuez des transactions en toute sécurité
@@ -1 +0,0 @@
Status - Communication Privée
@@ -1,12 +0,0 @@
Status adalah alat komunikasi pribadi dan aman. Mengobrol dengan teman, menyimpan aset, dan menjelajahi masa depan web tanpa dieksploitasi untuk data Anda.
Dengan Status, Anda sendirilah yang mengendalikan informasi Anda.
OBROLAN
Status menghapus pihak ketiga yang terpusat dari pesan Anda. Tidak hanya konten Anda dilindungi, tetapi juga metadata Anda - untuk privasi tertinggi.
MELAKUKAN TRANSAKSI
Simpan aset digital di dompet Status Anda. Kirim dan minta token dari teman, atau bertransaksi dengan aplikasi terdesentralisasi.
JELAJAHI
Akses aplikasi berbasis Ethereum di web3. Main game, tukar aset digital, dan lainnya.
@@ -1 +0,0 @@
Mengobrol dan bertransaksi dengan aman
-1
View File
@@ -1 +0,0 @@
Status - Komunikasi Pribadi
@@ -1,12 +0,0 @@
Status è uno strumento per una comunicazione privata e sicura. Chatta con gli amici, deposita cryptovalute, esplora il futuro del web senza rinunciare alla tua privacy.
Con Status hai il pieno controllo delle informazioni che ti riguardano.
CHATTA
Status rimuove terze parti centralizzate. Non è protetto soltanto il contenuto dei tuoi messaggi, ma anche i tuoi metadati. Status è la app di messaggistica che ti assicura la massima protezione della tua privacy.
EFFETTUA TRANSAZIONI
Conserva asset digitali nel portafoglio di Status. Scambia token con i tuoi amici o effettua transazioni con le applicazioni decentralizzate.
ESPLORA
Accedi alle applicazioni Web3 basate su Ethereum. Gioca, scambia asset digitali e molto altro.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 KiB

Some files were not shown because too many files have changed in this diff Show More