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
757 changed files with 32983 additions and 22401 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
@@ -27,5 +27,5 @@ ENABLE_QUO_PREVIEW=1
MAX_IMAGES_BATCH=5
APN_TOPIC=im.status.ethereum.pr
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
+3 -2
View File
@@ -26,6 +26,7 @@ ENABLE_REFERRAL_INVITE=1
MAX_IMAGES_BATCH=5
APN_TOPIC=im.status.ethereum.pr
VERIFY_TRANSACTION_CHAIN_ID=3
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=0
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
+3 -2
View File
@@ -26,6 +26,7 @@ APN_TOPIC=im.status.ethereum.pr
BLANK_PREVIEW=0
MAX_IMAGES_BATCH=5
GOOGLE_FREE=0
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=0
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1
COMMUNITIES_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
+1
View File
@@ -22,3 +22,4 @@ MAX_IMAGES_BATCH=5
BLANK_PREVIEW=0
COMMUNITIES_ENABLED=1
DATABASE_MANAGEMENT_ENABLED=1
METRICS_ENABLED=0
+1
View File
@@ -18,3 +18,4 @@ PARTITIONED_TOPIC=0
ENABLE_ROOT_ALERT=1
MAX_IMAGES_BATCH=1
ENABLE_REFERRAL_INVITE=0
METRICS_ENABLED=0
+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)
+35 -10
View File
@@ -156,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)
@@ -169,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
@@ -241,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/
+144
View File
@@ -1,3 +1,147 @@
## 1.14
### For iOS and Android
### Features
- Highlight posts that mention you ([details](https://github.com/status-im/status-react/pull/12146))
- Remove PUK and Pairing Code screen from Keycard onboarding
[details](https://github.com/status-im/status-react/pull/12155))
- Added unread messages count for messages with mentions in public chats ([details](https://github.com/status-im/status-react/pull/12152))
- Sync history setting allowing to sync chat history up to 1 month ([details](https://github.com/status-im/status-react/pull/12166))
### Improvements
- "My profile" button for simplification of finding own public key ([details](https://github.com/status-im/status-react/pull/12044))
- Factory reset option is available on account creation and recovery flows ([details](https://github.com/status-im/status-react/pull/12055))
- Allow the creation of recovery/backup Keycard from the login interface ([details](https://github.com/status-im/status-react/pull/12115))
- Reset blocked and/or frozen Keycards ([details](https://github.com/status-im/status-react/pull/12127))
- Show cached balance ([details](https://github.com/status-im/status-react/pull/12134))
### Bugfixes
- Pending transactions are stored in the database and shown on history screen after re-login ([details](https://github.com/status-im/status-react/pull/12032))
- Multiple fixes for keycard
- Fixes for resolving ENS name from chat key ([details](https://github.com/status-im/status-react/pull/12100))
## 1.13
### For iOS and Android
### Features
- New activity manager https://github.com/status-im/status-react/issues/11958
New chats and group chat invitation will appear in a new section, the activity center, where a user will be able to accept or decline the request.
https://www.figma.com/file/r59kCQxl6tlC0dHkcAJOpP/Action-center-MVP---Mobile?node-id=2%3A8012 (not fully implemented)
- Receive messages from contacts only option
Under privacy in settings a user will be able to select whether they want to receive messages and group chat invitations from contacts only.
- Added delivered confirmation for private groups
Messages sent to private groups will now be marked as confirmed if at least one of the members received it.
- New keycard functionalities: reset a keycard, changing PUK of a card, changing pairing code, create a new keycard backup card.
### Improvements
- Improved UI for starting a new private chat
### Bugfixes
- Fixed issue with crypto on ramp and requiring camera access
- Removed Wyre from list of services in buy crypto feature
- Added support for SOCKS token
## 1.12
### iOS
#### Excerpt
V1.12 Release - Keycard on iOS, Crypto Onramps, and More
Keycard can now be used on iOS devices for hardware enforced security to your keys and accounts! Status v1.12 also introduces simpler access to obtaining crypto via onramps providers as well as some key updates to the messaging experience
##### Added
Keycard iOS integration
Link previews for our.status.im and medium.om
List of Crypto onramps
Add “delivered” message confirmations to 1:1 messages
Keycard banner on login screen
#### Fixed
UI issue showing up a chat on a paired device when it should not
UI issue was showing messages as pending if no one is part of the group chat*
Push notification is generated on paired account when you send message to 1-1
UI issue for wrong notification when using two paired devices with same accounts
Improve keycard login time
### Android
#### Excerpt
V1.12 Release - Crypto Onramps and Improved Messaging
Status v1.12 introduces simpler access to obtaining crypto via onramp providers as well as some key updates to the messaging experience including delivered message confirmations in 1:1 private chats
##### Added
Link previews for our.status.im and medium.om
List of Crypto onramps
Add “delivered” message confirmations to 1:1 messages
Keycard banner on login screen
Local notifications for Mentions
#### Fixed
UI issue showing up a chat on a paired device when it should not
UI issue was showing messages as pending if no one is part of the group chat*
Push notification is generated on paired account when you send message to 1-1
UI issue for wrong notification when using two paired devices with same accounts
Improve keycard login time
## 1.11
### iOS
#### Excerpt
V1.11 also makes some improvements to the overall Status experience. Improved compatibility with DApps creates a more seamless experience with your favorite DeFi, NFT, and other decentralized applications. Improvements to Status Nodes and fixes to Android notifications have been made for better performance with private, group chats and public chats.
Update in the App Store or Google Play if you do not have auto updates enabled.
For the full changelog, see Github https://github.com/status-im/status-react/milestone/49?closed=1
#### Added
- Add Giphy url support in chat
- The Graph (GRT) erc-20 token added to the default list
#### Changed
- Improved compatibility with DApps
- Sync with Status Nodes improvements
#### Fixed
- Fixes to Android notifications
- UI fixes
- Sluggish performance on private group chats bug
### Android
#### Excerpt
V1.11 also makes some improvements to the overall Status experience. Improved compatibility with DApps creates a more seamless experience with your favorite DeFi, NFT, and other decentralized applications. Improvements to Status Nodes and fixes to Android notifications have been made for better performance with private, group chats and public chats.
Update in the App Store or Google Play if you do not have auto updates enabled.
For the full changelog, see Github https://github.com/status-im/status-react/milestone/49?closed=1
#### Added
- Migrate existing account to Keycard
- Add Giphy url support in chat
- The Graph (GRT) erc-20 token added to the default list
#### Changed
- Improved compatibility with DApps
- Sync with Status Nodes improvements
#### Fixed
- Fixes to Android notifications
- UI fixes
- Sluggish performance on private group chats bug
## 1.10
### iOS
#### Excerpt
+1 -1
View File
@@ -1 +1 @@
1.11.1
1.15.0
+8
View File
@@ -327,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
View File
@@ -71,7 +71,6 @@
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
<service android:name="im.status.ethereum.pushnotifications.ForegroundService"></service>
<service android:name="im.status.ethereum.module.LocalNotificationsService" />
<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,8 +10,9 @@ 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;
@@ -20,9 +21,9 @@ 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;
@@ -54,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
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.2.11'
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',
+18 -8
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.2.11'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label 'linux' }
@@ -26,7 +26,7 @@ pipeline {
booleanParam(
name: 'PUBLISH',
description: 'Trigger publishing of build results for nightly or release.',
defaultValue: params.PUBLISH ?: false,
defaultValue: getPublishDefault(params.PUBLISH),
)
}
@@ -41,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')
} } }
}
}
@@ -88,16 +88,16 @@ pipeline {
case 'nightly':
/* Create JSON file with newest build URLs */
s3.updateBucketJSON(urls, 'latest.json');
build(job: 'misc/status.im', wait: false);
build(job: 'website/status.im', wait: false);
break;
case 'release':
github.publishReleaseMobile();
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(
@@ -120,3 +120,13 @@ def List genChoices(String previousChoice, List defaultChoices) {
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
}
+2 -2
View File
@@ -1,7 +1,7 @@
library 'status-react-jenkins@v1.2.11'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label 'macos-xcode-12.3' }
agent { label 'macos-xcode-12.5' }
parameters {
string(
+18 -7
View File
@@ -1,16 +1,26 @@
library 'status-react-jenkins@v1.2.11'
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.
+1 -1
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'
),
+1 -1
View File
@@ -1,4 +1,4 @@
library 'status-react-jenkins@v1.2.11'
library 'status-jenkins-lib@v1.2.18'
pipeline {
agent { label 'macos' }
-55
View File
@@ -1,55 +0,0 @@
library 'status-react-jenkins@v1.2.11'
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'
}
}
}
}
+42 -23
View File
@@ -10,6 +10,8 @@ The app builds defined this way run on servers that generate the unsigned APKs u
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)
@@ -17,31 +19,31 @@ You can find our configuration file at [`metadata/im.status.ethereum.yml`](https
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.4.1
versionCode: 2020070112
- versionName: 1.12.0
versionCode: 2021022512
commit: cfb825a11b61d312af8cb5d36686af540c31f481
sudo:
- mkdir -m 0755 /nix
- chown vagrant /nix
init: ./nix/scripts/setup.sh
output: ./result/app-release-unsigned.apk
- 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-android BUILD_TYPE=release BUILD_NUMBER=2020070112 ANDROID_APK_SIGNED=false
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.4.1`
* `versionCode` - Android `versionCode`. We use a timestamp generated by [a script](../scripts/version/gen_build_no.sh)
* `commit` - Specific commit SHA1 from which the given release was built
* `BUILD_NUMBER` in `build` step - Same value as `versionCode`
* `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 uplodade to Play Store. It can be found in the build logs or by using:
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-v1.4.1.apk
2020070112
> apkanalyzer manifest version-code StatusIm-Mobile-v1.12.0.apk
2021022512
```
At the bottom of the file you should also update the following keys:
@@ -51,6 +53,8 @@ At the bottom of the file you should also update the following keys:
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:
@@ -71,24 +75,39 @@ 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.4.1`
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 \
-v $(pwd)/nix:/nix \
-v $(pwd)/fdroiddata:/repo \
-v $(pwd)/fdroidserver:/fdroidserver \
-u $UID:$GID -e USER=vagrant \
-v $PWD/fdroiddata:/repo \
-v $PWD/fdroidserver:/fdroidserver \
statusteam/docker-executable-fdroidserver:latest \
build im.status.ethereum:1.4.1
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 `--vebose` flag for `build` command for additional information.
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 im.status.ethereum` to verify the YAML format is correct.
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-android` ourselves in `build` step.
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)
+5
View File
@@ -8,9 +8,14 @@
- [ ] 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
+2 -16
View File
@@ -54,7 +54,6 @@ Core namespace must only contain functions that can be called outside of the mod
### 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
@@ -72,21 +71,8 @@ These guidelines make db.cljs namespaces the place to go when making changes to
### 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:
- `: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`.
- all events must be defined in the `core.cljs` namespaces
- events must always be declared with `fx/defn` macro
## 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
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

+2 -20
View File
@@ -103,7 +103,7 @@ def asc_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: 1500, # seconds, session length
duration: 1200, # seconds, session length
in_house: false,
)
end
@@ -115,7 +115,7 @@ 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
@@ -336,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'
+54 -32
View File
@@ -1,25 +1,26 @@
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.383.0)
aws-sdk-core (3.109.1)
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.39.0)
aws-sdk-core (~> 3, >= 3.109.0)
aws-sdk-kms (1.43.0)
aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.83.1)
aws-sdk-core (~> 3, >= 3.109.0)
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.2)
aws-sigv4 (1.2.3)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.0.3)
@@ -29,25 +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.78.0)
faraday (1.1.0)
emoji_regex (3.2.2)
excon (0.79.0)
faraday (1.3.0)
faraday-net_http (~> 1.0)
multipart-post (>= 1.2, < 3)
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.164.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)
@@ -68,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)
@@ -93,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.4.0)
google-cloud-env (1.5.0)
faraday (>= 0.17.3, < 2.0)
google-cloud-errors (1.0.1)
google-cloud-storage (1.29.1)
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.14.0)
googleauth (0.16.1)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
@@ -119,23 +139,23 @@ GEM
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.4.0)
json (2.3.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)
plist (3.6.0)
public_suffix (4.0.6)
rake (13.0.1)
rake (13.0.3)
representable (3.0.4)
declarative (< 0.1.0)
declarative-option (< 0.2.0)
@@ -146,11 +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.2)
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)
@@ -171,6 +192,7 @@ 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.19.0)
CFPropertyList (>= 2.3.3, < 4.0)
@@ -180,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;
+133 -60
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 = "1as2xr2yjsylrjys084bm2q90la0nw7rm1cgwx57wcds58i9zrwb";
sha256 = "0lm08fmahg3m87vbsfv73iswgvicdwcxfmkzr6v9qshlkg36lafd";
type = "gem";
};
version = "1.383.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 = "0xmppcxq7jm8lffqibkhq257hfwfbv82zm2y1fbhwm3icgxzwlfx";
sha256 = "0i3x8p9gymc9977dcdkz5ca6mrmh7ym6p2mrscbh49nfd9gi5zg0";
type = "gem";
};
version = "3.109.1";
version = "3.113.1";
};
aws-sdk-kms = {
dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -57,10 +67,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ly1m631qm2ciif7sysbzrgczjvz95ga3g6w6vrzvfdv31jjnl9a";
sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
type = "gem";
};
version = "1.39.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 = "021yqghdb1i980vn249hv44jajr0v3hq4ik4r6fqh9kwp04fsbqv";
sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
type = "gem";
};
version = "1.83.1";
version = "1.93.0";
};
aws-sigv4 = {
dependencies = ["aws-eventstream"];
@@ -79,10 +89,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
type = "gem";
};
version = "1.2.2";
version = "1.2.3";
};
babosa = {
groups = ["default"];
@@ -99,10 +109,10 @@
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 = "1hi89v53pm2abfv9j8lgqdd7hgkr7fr0gwrczr940iwbb3xv7rrs";
sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
type = "gem";
};
version = "0.78.0";
version = "0.79.0";
};
faraday = {
dependencies = ["multipart-post" "ruby2_keywords"];
dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
type = "gem";
};
version = "1.1.0";
version = "1.3.0";
};
faraday-cookie_jar = {
dependencies = ["faraday" "http-cookie"];
@@ -239,6 +249,16 @@
};
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"];
groups = ["default"];
@@ -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 = "1mr143fx505iwgci6v9bl4pd6v305wrc4q1s329sjmy67jfbm47w";
sha256 = "1wspwgc1q31049a20k2gnzmizdvq4jdmzyd2fnz7r4g68fygj3sj";
type = "gem";
};
version = "2.164.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 = "0bjgxyvagy6hjj8yg7fqq24rwdjxb6hx7fdd1bmn4mwd846lci2i";
sha256 = "0ajc3w4wqg46ywcbmb5fz1q6gfm6g7874s9h31i1r038kz2bzfag";
type = "gem";
};
version = "1.4.0";
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 = "1d8yc807dbd4pcwrrg2pdl30hghcnjid55qrjl2shffhzgiyl54h";
sha256 = "1bjkwnsii4svw2g09xjqpkq3mck820kj9nhx3vlv7rjmlh3bg68s";
type = "gem";
};
version = "1.29.1";
version = "1.31.0";
};
googleauth = {
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
@@ -362,10 +415,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0cm60nbmwzf83fzy06f3iyn5a6sw91siw8x9bdvpwwmjsmivana6";
sha256 = "1438alhx4n4rdgf6q7ni8qj1b10y8lr9z9spphhjyhacby1ifsjn";
type = "gem";
};
version = "0.14.0";
version = "0.16.1";
};
highline = {
groups = ["default"];
@@ -423,10 +476,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
type = "gem";
};
version = "2.3.1";
version = "2.5.1";
};
jwt = {
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,10 +607,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ra0910xxbhfsmdi0ig36pr3q0khdqzwb5da3wg7y3n8d1sh9ffp";
sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
type = "gem";
};
version = "3.5.0";
version = "3.6.0";
};
public_suffix = {
groups = ["default"];
@@ -574,10 +627,10 @@
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 = [];
@@ -626,10 +689,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
type = "gem";
};
version = "0.0.2";
version = "0.0.4";
};
rubyzip = {
groups = ["default"];
@@ -657,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"];
@@ -776,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 = [];
@@ -814,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 es una herramienta de comunicación segura y privada. Chatea con amigos, almacena activos y explora el futuro de la web sin ser explotado por tu información personal.
Solo tú controlas tu información, con Status.
CHAT
Status quita de en medio terceros centralizados a tus mensajes. No sólo tu contenido es protegido, sino también tu metadata: por máxima privacidad.
TRANSFIERE
Almacena activos digitales en tu monedero Status (ERC20 and ERC721). Envía y recibe monedas de tus amigos, o transfiere activos con aplicaciónes descentralizadas.
EXPLORA
Accede a aplicaciones basadas en Ethereum de la Web3. Juega, intercambia bienes digitales y más.
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 @@
Chatea y transfiere de forma segura
@@ -1 +0,0 @@
Status - Comunicación 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

@@ -1 +0,0 @@
Chatta ed esegui transazioni in modo sicuro
@@ -1 +0,0 @@
Status - Comunicazione Privata
@@ -1,12 +0,0 @@
스테이터스는 검열과 감시 없는 안전한 커뮤니케이션 도구입니다. 스테이터스와 함께 여러분의 친구들과 자유롭게 채팅하고, 디지털 자산을 안전하게 보관하거나, 데이터를 유출하지 않는 안전한 웹의 미래를 체험해보세요.
스테이터스에서 사용되는 모든 데이터의 주권은 여러분에게 있습니다. 여러분의 데이터는 안전하게 보호됩니다.
채팅
스테이터스는 메시징 네트워크에서 제 3의 중개자나 중앙화된 요소를 제거했습니다. 여러분의 채팅은 컨텐츠 뿐만아니라 메타 데이터까지 안전하게 보호됩니다. 최고의 프라이버시를 보장하는 메신저를 활용해보세요.
거래
스테이터스 지갑에 여러분의 디지털 자산을 안전하게 보관해보세요. 친구에게 토큰을 요청하거나 전달할 수 있고, 탈중앙 앱으로 거래를 수행할 수 있습니다.
체험
이더리움 및 Web 3 기반의 다양한 애플리케이션들을 활용해보세요. 게임, 거래소, 디지털 자산 관리 등 다양한 서비스들을 체험해볼 수 있습니다.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 KiB

@@ -1 +0,0 @@
검열과 감시 없는 채팅 및 거래
@@ -1 +0,0 @@
스테이터스 - 안전한 커뮤니케이션
@@ -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.
@@ -1 +0,0 @@
Converse e faça transações de uma forma segura
@@ -1 +0,0 @@
Status - Comunição Privada
@@ -1,12 +0,0 @@
Status é uma ferramenta de comunicação segura e privada. Conversa com os teus amigos, armazena ativos e explora o futuro da web sem que os teus dados sejam explorados.
Com a Status, apenas tu controlas as tuas informações.
CONVERSA
A Status remove terceiros centralizados das tuas mensagens. Não é apenas o teu conteúdo que está protegido, mas também os teus metadados - para uma derradeira privacidade.
TRANSACIONA
Armazena ativos digitais na tua carteira Status. Envia e solicita tokens aos teus amigos, ou transaciona com aplicações descentralizadas.
EXPLORA
Acessa a aplicações baseadas na Ethereum na web3. Joga jogos, troca ativos digitais e muito mais.

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