lint fix
remove unused import and debug backgrounds
set width boundaries for long usernames in activity
fix lint and pass width from view
updated spacing to accommodate iphoneX
Signed-off-by: andrey <motor4ik@gmail.com>
Will make it easier and safer to upgrade Nix on CI hosts.
Also added architecture since we are starting to mix those.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
* Add/Fix rebase overwritten event
* Remove membership invitation only option
* Fix lint findings
* Replace if w/ when condition
* Remove left over code
* Add/Fix rebase overwritten event
* Remove left over code
* Add correct message to community info
CLJ Refactor x Hydra are cool. Add modal
Swap UI
Swap token input and gas slider in place
Asset selector sheets
WIP
Selector events
Tabs are back
Hide Swaps behind ff, add cards and modals for advanced settings
Fix lint issues
Signed-off-by: Shivek Khurana <shivek@status.im>
Nesting of Nix shells does not work, since we have no way to safely do
that without starting an infinite loop of nested Nix shells.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This script fetches a specified APK and analyzes it for values like
version code or commit and then based on that creates a branchy and a
commit in `fdroiddata` repository that can be used to create a release PR.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
New UI and re-frame handlers for setting pfp from url
Add fake chain-id, connect the pfp upload backend to UI
Add toast on setting pfp, new-new-new UI
Show assets based on selected network
Add horzontal padding to traits card
a11y ids and pr review changes
Added emoji in toast, fix chain id nill issue
Restore Podfile
Fix fix podfile
Add placeholder images for collections, hide option to set pfp when image url is empty or ends in mp4 or svg
Improvise missing designs
Fix paddings
New nu placeholders
Sort collections by name
Kinda fix issue 4
Fix lint
Signed-off-by: Shivek Khurana <shivek@status.im>
Now, you won't have to fight an arbitrary character limit on posts like Twitter, and you can pack more meaning into your messages without having to split them into multiple messages.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
People on HackerOne keep reporting this file as containing a secret token.
The reality is that this token is no longer usable since it was
published to a public repo, which would have caused it to be revoked
automatically though GitHub automation:
https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning
Other than that I'm pretty sure nobody is using this script.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
The dependency on `make shell` is confusing and unnecessary since
`update-status-go.sh` script only requires availability of the
`nix-prefetch-url` utility to check SHA256 of the `status-go` verison.
Use of `make shell` with this script can also cause issues when running
`make run-android` if already in the shell, which prevents spawning a
new one and effectively stops changes to `status-go-verison.json` file
taking effect.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Baic skeleton 🦴
NFT Details page. The API is not returning properties
Add traits, add opensea link, fetch nfts when new account is added
Toggle privacy options
Hide NFT behind FF
Update sgv
Fix lint and rename opensea to collectibles
Signed-off-by: Shivek Khurana <shivek@status.im>
⛳️ Add flag to hide message in UI, there are some bugs in rebuild list process
Don't rebuild, just update the UI state
Update delete to soft delete. Some traces of delete already exist in the app
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
With upgrade to Go above `1.15` and Gomobile we now drop support for darwin/arm32 builds.
This means all devices like iPhone 5 or older.
For more details see:
https://tip.golang.org/doc/go1.15#darwin
Signed-off-by: Jakub Sokołowski <jakub@status.im>
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>
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>
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>
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>
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>
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>
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>
Fixes: #12179Fixes: #12133Fixes: #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>
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>
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>
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>
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>
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>
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>
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>
[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
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>
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
* 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
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>
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>
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>
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>
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>
[Fixes: #11670]
[Fixes: #11671]
This commit fixes 2 issues.
One issue was due to removing tribute to talk, which added in the
`contacts` map any user you open a chat with, and some code relied on
this behavior.
The second issue was likely due to a react native upgrade which might
have fixed a bug but caused a different issue, which resulted in the
text disappearing when cursor was set.
I have removed that (it was only used on android) and everything seems
to be working correctly, but not so sure about this one.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
In some instances when fetching messages for a timeline the app would
crash as a map was accessed concurrently without locking.
This fixes the issue.
Signed-off-by: andrey <motor4ik@gmail.com>
There were a few issues with topic management:
- Topics/ranges were saved one-by-one, which cause an out of memory
error on some devices
- Topics that were not listened to were saved, and therefore requested
from the mailserver, which caused long syncing time
It also removes tribute to talk and add export/import methods
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Key phrase screen in place
Added flow in a Rich comment, added storage screen, added Keycard upsell banner
Validate seed against selected multiaccount
Vvalidate seed against multiaccount
Connected migration flow to Keycard onboarding flow, unable to finish because an event called generate-and-load-key is not being emitted with the flow I made
Fixed state that was needed to start the recovery process, also removed seed-phrase from app-db when onboarding starts
Moved strings to translations in key storage views
Upsell banner bg theme, accordion data, choose-storage next bug, Hide keys managment option for Keycard accounts and from multiaccounts list screen.
Added test for subscription function
Tests for keystore move checkbox and seed phrase input
Fix translations/en.json after merge conflict, add test for seed-phrase input, seed-against-key-uid validation and state setup for redirect to Keycard screens
Update validate fn to mock mnemonic import and cascading changes
Fix linting errors
Fix seed key-uid mismatch popup, reduce styles and remove redundant views
Add dot menu in place of access-existing-keys button on login page
Make multiaccount redirect test more terse
Remove dangling comma from translations/en.json
Fix var that was missed during rebase
fx/merge and extra newline fixes
Removed nil? check, tests pass
Unknown error popup
Redirect Keycard banner to https://keycard.tech
Remove unused sub and fix linting
Fix issue#4 - Unable to enter new seeds
Hide back and disable hardware back on Keycard onboarding intro if the user is coming from migration flow. Fixes issue#1 raised by Diana.
Set state so show wallet balances show up auto magically. Fixes issue#3.
Update tests to capture recovering state
Center align sign in button since the left button was deleted.
Changes suggested by Andrey
Add top margin to Keycard intro only when user comes key storage
Hide manage key storage on ios
Signed-off-by: Shivek Khurana <shivek@status.im>
This makes use of the refactoring of Android SDK done in:
https://github.com/NixOS/nixpkgs/pull/89775
Which allows us to drop the use of our own fork of `nixpkgs`.
Android Upgrades:
* Build Tools - `29.0.2` to `30.0.3`
* Platform Tools - `29.0.6` to `30.0.5`
* NDK Bundle - `21.0.6113669` to `21.3.6528147`
Other Upgrades:
* Git - `2.28.0` to `2.29.2`
* Go - `1.14.7` to `1.14.13`
* Clojure - `1.10.1.645` to `1.10.1.763`
* NodeJS - `12.18.3` to `12.20.1`
* Yarn - `1.22.4` to `1.22.10`
* OpenJDK - `8u265-ga` to `8u272-b10`
* PatchElf - `0.11` to `0.12`
* CoreUtils - `8.31` to `8.32`
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This changes the behavior of mobile combined builds to not publish
the results of `nightly` or `release` builds unless `PUBLISH`
parameter is set to `true`.
It also makes the `BUILD_TYPE` into a dropdown choice field with
pre-defined values, like `manual` or `e2e`.
Changes:
- Add parameter definitions for `BUILD_TYPE` and `PUBLISH`
- Move uploading of `latest.json` to `Publish` stage
- Make `Publish` stage optional based on the `PUBLISH` parameter
Requires: https://github.com/status-im/status-react-jenkins/pull/21
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
* Adding 1.10 App/Play store release content
* Removes Cancel and Speed up tx
As discussed, the feature is not yet reliable for public release. On occasion the nonce cannot be overwritten, resulting in 2 pending transactions.
`multiaccounts` has some fields that should not be overriden
(`save-password`), so we expliciltly `assoc` only certain fields.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
* Create releases.md
File that captures release notes for App store ad Play store. Informs users of relevant additions, changes, fixes.
* Update and rename releases.md to RELEASES.md
As suggested, removing checklist to keep in a separate file and using capitals for the title
Update strings
Check if transaction has receipt on login
Notification on accept
Add large icon
Unify notifications for referral
Fix duplicate path for acquisition
Fix accept notification and visibility
Small fixes
Do not show notifications when not rewardable
Add home item
Show referral on lets go button
Fix list item on home
Hide messages on accept
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Fixes: #11545Fixes: #11544
The two issues were caused by the same bug, essentially if
`navigation-state-changed` event was fired (it's debounced) when the tab
had been closed, the browser would be updated with a `nil` id, causing
all sort of issues as it had not history etc.
This commit ensures that no changes are made if the browser is nil.
Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
When calling `SendTransaction` sometimes the value would be a string
(most cases), sometimes the value would instead big a `BigInt`, which
would be serialized to an integer, and status-go would be unable to
parse it as it expects values to be a string.
This commit makes sure that values are always serialized as string
before sending them over.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
If a mailserver request is failing we disconnect at the 3rd attempt.
Though once we are disconnected, we connect again to the same mailserver
based on ping time.
This commit changes the behavior so that mailservers are penalized if
they are returning errors.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
pending transaction
This commit fixes an issue where pending transactions would be marked as
confirmed in commands, due to the fact that we would default to pending
if no transaction was in the database.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Chat messages are now sent in order using a different endpoint
`sendChatMessages`.
Text should always be displayed after images.
This is not implementing a Caption field, that would require either a
protocol change or leverage the `text` in the message.
It applies for both normal chats and timelines.
Move also all inputs under `chat/inputs` so we avoid re-renders as
`chats` has changed.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
This commit makes sure that we don't display multiple pop ups when
mailserver connection has failed.
It also fixes the navigation to avoid being stuck on Profile tab.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Fixes#10065
After clicking cancel, the popup is `dismissed`, so it will not appear again
Selecting a new mail server sets `dismissed` as false, so the error can appear again
In release `1.7.0` we had an issue with `status-go` version `v0.62.3.hotfix.3`
not matching [Semantic Versionig](https://semver.org/#spec-item-11) so a fix was
introduced in https://github.com/status-im/status-react/pull/11331 that made the regex a bit more lax.
Again in `1.9.0` we had the same issue and the release not appears as `develop`
instead of the actual `status-go` version, which this time was `0.63.8+hotfix.2`.
Notice the `+` instead of `-` or `.` before `hotfix.2`.
I've added `+` to allowed characters after the 3 digit standard version format.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Currently we are still using a bloom filter when querying mailserver.
This commit changes the behavior so that topics are used instead.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Also adjusted the `generate.sh` script and split stuff into separate function
to make it easier to run specific stages of the generation process.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit fixes an issue with taking pictures from camera, where
the check for image count was not checked.
Signed-off-by: andrey <motor4ik@gmail.com>
When selecting an image from camera roll we would immediately setting
the filepath with the raw image, process and later once it was processed
we would replace the file path.
On slow devices, the user might press send while the image is still
processing, causing the raw image to be sent, which might be discarded
as too large and never sent.
This commit changes the behavior so that we only set the uri once the
image is processed, it might add some delay, but the image should be
correctly sent.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
There's an issue reported on slow devices when sending a batch of
images.
All the requests are send concurrently, and the sending of messages is
processed concurrently in the background.
On slow devices or connection with slow upload speed this may result in
expired envelopes, as the POW calculation or the upload takes too long,
and either they never leave the device, or worse they reach the
mailserver but won't be stored because already expired on arrival.
This commit allows setting the max-images-batch config value, setting it
to 1 for release and keeping it to 5 for other builds.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Fixes: #11441Fixes: #11416
The issue was due to a nil pointer exception with the
localNotificationService.
Upon upgrade it would be disabled and therefore it would not be
available.
This was due to the fact that initialization comes from the database and
not from status-react, so on upgrade it would not be available.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Using different temporary keychains does not work if we do not set
`default_keychain=true`, because `codesign` then can't find the cert:
```
error: No signing certificate "iOS Distribution" found: No "iOS Distribution" signing certificate matching team ID
```
But if we set `default_keychain=true` then we cause a race condition
when the keychain is deleted by a parallel job while another is using it
as its default.
For this reason we have to use a static keychain name and keep it
between builds.
I tried disabling `default_keychain=true` in #11378 but it worked only
because the default user keychain already had the cert.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
When sending messages in quick succession, it might be that multiple
messages are batched together in datasync, resulting in a single large
payload.
This commit changes the behavior so that we can pass a max-message-size
and we split the message in batches before sending.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
On shutdown the app was calling `PeersCount`, but sometimes the server
would be unavailable, resulting in a call to a nil pointer.
Upgrades status-go version with the fix.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
This is a new approach to signing the iOS app by using a temporary
Keychain created only for that specific build and unlocked in advance.
By doing it this way we can avoid issues with `errSecInternalComponent`
appearing when there is no UI to open a Keychain password prompt when
running build in CI. I've described this problem in details in:
https://github.com/fastlane/fastlane/issues/15185
Thanks to `codesign:` partition ID being added to key partition list by
Fastlane `match` when importing a Keychain this approach now works:
https://github.com/fastlane/fastlane/pull/17456
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Add inner border to image message
Add max batch size of 5
Disable camera roll more images
Use interop instead of aget
Add border as a separate layer
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
Pods
Add headless js service
Handle Local Notifications react
CopyPaste driven implementation of java notification
pn demo
Show iOs push in foreground
Show icon in notification
Enable notifications on login
Get chain from status-go
Add UI for switching notifications
go go!
Fixup
Handle notification onPress
Android UI
Handle press iOs
Handle android press and validate
go update
Fix route params in universal link handler
Set show badge explicitly to false
Fix e2e
bump status go
Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
We had an issue where the `1.7.0` release was using the `v0.62.3.hotfix.3`
version of `status-go` which didn't match the regex we use to verify
if the specified version is a valid version according to [Semantic Versioning](https://semver.org/).
You can check the current regex here: https://regex101.com/r/OeTQCv/3
I also added a trace message to show when we mark a build as `develop`.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
It's been a while and a fix for an issue I've reported a long time ago
has been merged in https://github.com/fastlane/fastlane/pull/17456. With
this fix we should see less iOS signing issues appearing as `errSecInternalComponent`.
This should also enable me to try a fix I proposed in
https://github.com/fastlane/fastlane/issues/15185 which consists of
creating a temporary unlocked keychain for each build.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
On status-go side:
- new `strong-emph` node was added for strong emphasised text with triple
"*" and "_"
- `del` node got proper marshalling and can be recognised (works with single
and double "~")
On status react side:
- styles for `strong-emph` nodes
- styles for `del` (strikethrough) nodes
- unsuccessful attempt to use monospaced fonts for code/codeblock (we have a font
which is used as monospaced but doesn't support that property actually)
Fixes: #11305
The issue was due to the fact that the first condition was wrapped in a
when in fx merge, causing it to be ignored.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
There was an issue with counting characters in status-go that meant that
unicode characters were double counted.
That issue is now fixed. It's still not going to be 100% accurate as
in some languages characters are displayed together if they come one
after the other, but this PR should make it much safer.
To overcome this we could cap the UI input to something a bit lower
(3000 characters for example) and that should give us some room.
This commit includes a migration of the database fixing an issue with
long filenames on desktop.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
The env variable `INFURA_TOKEN` is used at build time of JS bundle, not
the final APK file. We never passed the `secretsFile` to the
derivation for JS bundle so it never saw the `INFURA_TOKEN`.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Setting a top-level closure-defines does not have any effect,
it needs to be for some reason inside each environment.
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Before it was possible to break the format of `status-go-version.json`:
```
> git ls-remote https://github.com/status-im/status-go v0.62.3.hotfix.3
59e6602405bfbcf8446d26aca9b8087e84529f8e refs/heads/release/v0.62.3.hotfix.3
59e6602405bfbcf8446d26aca9b8087e84529f8e refs/tags/v0.62.3.hotfix.3
```
Which would result in `commit-sha1` key being set to two commits insted of one.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
* `status-im-releases` for release builds
* `status-im-nightlies` for nightlies
I want to reserve the `status-im` bucket for use with the site.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
### Builds in TestFlight and PlayStore to push as a release
[comment]: # (Will be added by QA after testing approving of build)
### Process
#### 1) Kick-off
- [ ] 1. Translation PRs is merged before cutting branch (Jinho)
- [ ] 2. Prepare scope of visible changes based on commits history, started from previous release branch cut ([guide](https://notes.status.im/how-to-prepare-release-notes))
- [ ] 3. Update [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) with release notes (make PR based on previous step)
- [ ] 4. Create release branch using this [guide](https://github.com/status-im/status-react/blob/develop/doc/RELEASE_GUIDE.md), bump VERSION (merge created PR ([example](https://github.com/status-im/status-react/pull/12504) ) to develop) and get successful release builds (so, testing can be started)
- [ ] 5. Based on release scope, ask for comms (Jonny)
- [ ] 6. Make sure that assets (screenshots, video) in stores are up-to-date, more info [here](https://notes.status.im/how-to-update-assets)
#### 2) Testing
[comment]: # (Section will be maintained by QA)
- [ ] Dogfooding (add notes, if it was held)
- [ ] Regression testing for release candidate build
- [ ] Upgrade tests
- [ ] Fix known blocker(s) found during regression testing
##### Blockers
[comment]: # (Section for blocker issues; should be fixed and merged by release-manager. Remove if no blockers found)
- [ ] 2. Release notes written and added (500 character limit for updates (Android) and PR for [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) is ready to be merged (from 1.3 step)
- [ ] 3. Submit beta version for Android (Open Testing in Play Store)
- [ ] 4. Submit iOS build to Apple review ([instruction](https://drive.google.com/file/d/10Cl7PBB7TFPkZiVbfzdFGpfMRP9bxXuq/view?usp=sharing), be careful - low quality of audio)
- [ ] 5. Play store content reviewed and updated
- [ ] 6. Privacy policy reviewed and updated (ask in channel)
- [ ] 7. Countries to be excluded (ask in channel)
- [ ] 8. Changes to our FAQ made (should be checked and if any changes needed, ask Jakub to made them)
#### 4) Before publishing
- [ ] 1. Translations for comms available (marketing, ask in the channel)
- [ ] 3. Upload builds for DO store, https://dev.status.im/ (Jakub)
#### 5) At time of publishing
- [ ] 1. Notify marketing to push comms and blog post (Jonny + get review on blog from QA team)
- [ ] 2. Publish release to app store and playstore
- [ ] 3. Final push to update prod site https://status.im/, [instructions](https://github.com/status-im/infra-docs/blob/master/articles/status_release_upload.md) (Jakub - requires credentials to upload)
- [ ] 4. Add the link to the post about the release and publish the release: https://github.com/status-im/status-react/releases (Jakub)
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80"/>](https://play.google.com/store/apps/details?id=im.status.ethereum)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80"/>](https://f-droid.org/packages/im.status.ethereum/)
[<img src="doc/github_badge.png" alt="Get it on Github" height="80"/>](https://github.com/status-im/status-react/releases)
Join us in creating a browser, messenger, and gateway to a decentralized world. Status is a free (libre) open source mobile client targeting Android & iOS built entirely on [Ethereum](https://ethereum.org/) technologies. That's right, no middle men and `go-ethereum` running directly on your device.
[](https://www.youtube.com/watch?v=oDCSEmS9c3o "Getting started with Status")
@@ -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.
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:
This document describes how to update Status APK builds for the [F-Droid](https://f-droid.org/) Android application catalogue.
# Intro
In simplest terms F-Droid requires a YAML file that defines the steps necessary to create a universal unsigned APK build. This is achieved by submitting a new app versions into the `metadata/im.status.ethereum.yml` file in the [fdroiddata](https://gitlab.com/fdroid/fdroiddata) repository.
The app builds defined this way run on servers that generate the unsigned APKs using the [fdroidserver](https://gitlab.com/fdroid/fdroidserver) software. The [server setup](https://f-droid.org/en/docs/Build_Server_Setup/) is quite involved but is not necessary unless you want to run your own instance. Normally the applications defines in `fdroiddata` are built by servers maintained by [the F-Droid volunteers](https://f-droid.org/en/contribute/).
First release of Status app was merged in [fdroid/fdroiddata#7179](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/7179).
:warning: __WARNING__: Once changes are commited into `fdroiddata` repo they __cannot be changed__.
# Adding New Versions
There are two ways - automated and manual - described below.
## Automated
The script will analyze a provided APK, update the metadata file based on that information, and commit the change to [`fdroiddata`](https://gitlab.com/fdroid/fdroiddata) repo. The creation of merge request is manual.
#### Requirements:
- GitLab account
- Forked copy of the [`fdroiddata`](https://gitlab.com/fdroid/fdroiddata) repo
- Link to the release published
#### Steps
1. Use the F-Droid PR update script via `make`:
```sh
make fdroid-pr APK=StatusIm-Mobile-v1.16.0-ef34af.apk
```
The script also accepts a URL.
2. Add a fork repo:
```sh
git remote add john https://gitlab.com/john/fdroiddata.git
```
3. Push:
```sh
git push john status-im/v1.16.0
```
4. [Create a PR via the GitLab interface.](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
## Manual
You can find our configuration file at [`metadata/im.status.ethereum.yml`](https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/im.status.ethereum.yml)
The file defines all the necessary metadata like `SourceCode`, `Website`, or `License`, but the most important key is `Builds`, which looks like this:
```yml
Builds:
- versionName: 1.12.0
versionCode: 2021022512
commit: cfb825a11b61d312af8cb5d36686af540c31f481
sudo:
- cd build/im.status.ethereum
- make fdroid-build-env
init: nix/scripts/setup.sh
output: result/app-release-unsigned.apk
scanignore:
- android/build.gradle
scandelete:
- ios
build: make release-fdroid BUILD_NUMBER=$$VERCODE$$
```
It contains a list of objects defining each release of the application. In order to add a new release simply copy a previous release object and adjust the following values:
* `versionName` - String version like `1.12.0`.
* `versionCode` - Android `versionCode`. Normally it is generated from timestamp at build time.
* `commit` - Specific commit SHA1 from which the given release was built.
The `versionCode` should be the same as the one in build that was uploaded to Play Store.
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`
We have to create a user and specify the UID because Nix cannot run as `root` and that is the default user for the F-Droid Docker image. By adding our own user and setting the UID we also make it possible to mount folders like `fdroiddata` and `fdroidserver`.
You can specify a `--verbose` flag for `build` command for additional information.
You can provide `--storage-opt size=30G` flag if Docker complains about running out of space.
You should also run `lint` and `rewritemeta` for the App ID to verify and fix the YAML metadata formatting.
# Details
The original research was done in [#8512](https://github.com/status-im/status-react/issues/8512).
Normally F-Droid server wants to run Gradle itself, but we do not specify the `gradle` key in order to run `make release-fdroid` ourselves in `build` step. We also add `android/build.gradle` to `scanignore` to avoid F-Droid trying to use Gradle directly.
The Android metadata like description or screenshots is [loaded from our repository](https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/#fastlane-structure) based on the Fastlane [`supply`](https://docs.fastlane.tools/actions/supply/) tool folder structure for updating Google Play store metadata.
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.
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'`.
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:
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)
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:
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
# PlayStore Metadata Updates
This section is relevant only for the marketing team, no developer participation is required.
You can update Play Store release 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:
The app is bundled and run in a Nix environment. Information regarding how to run it locally can be found [here](https://status.im/technical/build_status/).
## Business Logic Modules
Each business logic module is managed in a module directory.
@@ -31,7 +38,7 @@ Rationale and how to get there:
Currently a lot of business logic is lost in utils and screens namespaces and should be moved to dedicated top level directories.
This should make core logic of the app more accessible and organized
## core.cljs
### core.cljs
Core namespace must only contain functions that can be called outside of the module (i.e. in events or other modules):
@@ -45,9 +52,8 @@ Core namespace must only contain functions that can be called outside of the mod
{:db (module.db/set-current-account db)})
```
## db.cljs
### db.cljs
- must contain specs for the app-db subpart the module modifies
- must contain getter and setter functions used by fx producing functions and subscriptions
- db logic called by other modules
@@ -55,26 +61,69 @@ Rationale:
These guidelines make db.cljs namespaces the place to go when making changes to the db layout and minimize breaking changes when adding/refactoring features
# Subscriptions
## re-frame
### Subscriptions
- all subscriptions must be defined in the single `status-im.subs` namespace
- subscriptions must subscribe only on other subscriptions, and never on app-db itself
- `reg-root-key-sub` should be used for the root keys subscriptions
# Events
### Events
- all events must be defined in the single `status-im.events` namespace which can be considered as an index of everything going on in the app
- events must always be declared with `register-handler-fx`, no `register-handler-db`
- events must never use the `trim-v` interceptor
- events must only contain a function call defined in a module
- all events must be defined in the `core.cljs` namespaces
- events must always be declared with `fx/defn` macro
- `:module.ui/` for user triggered events
- `:module.callback/` for callback events, which are events bringing back the result of an fx to the event loop, the name of the event should end with `-success` or `-error` most of the time. Other possibilities can be `-granted`, `-denied` for instance.
- `:module/` for internal events, examples are time based events marked `-timed-out`, external changes marked `-changed` or reception of external events marked `-received`.
## Testing flow
- All PRs automatically go to "REVIEW" column on [Pipeline for QA](https://github.com/status-im/status-react/projects/7) project on Github. This is our main board for QA / devs interaction
- After the PR gets at least 1 approval, it should be moved to "E2E Tests" column. Some PRs may need approvals from more than one person.
- Critical path tests are automatically run for all PRs in "E2E Tests" column.
- If E2E tests pass:
- If PR doesn't need manual QA (it is small change or change doesn't relate to app) - after passing e2e tests it can be merged (don't use the Github UI to merge, check section on merging PRs).
- If manual QA needed - add label 'request manual qa'. The QA team will process it (make sure the summary and test instructions are clear). QA team will review results and test PR on different platforms and assign one of the three labels:
- No issues - label 'TESTED-OK' and then you can merge it.
- If issues - label 'TESTED-ISSUES' and comment from QA with bugs.
- After fix and/or discussion the process is repeated.
- If manual QA is not needed but all tests don't pass, you can ping @churik or @Serhy to confirm that failed E2E tests are not unrelated.
## Enabling debug logs
Calls to `log/debug` will not be printed to the console by default. It can be enabled under "Advanced settings" in the app:

## Translations
The app relies on system locale to select a language from the [list of supported languages](https://github.com/status-im/status-react/blob/bda73867471cf2bb8a68b1cc27c9f94b92d9a58b/src/status_im/i18n_resources.cljs#L9). It falls back to English in cash the system locale is not supported.
We use Lokalise App to manage [translations](https://translate.status.im/). In case you need to add/remove a key to translations, you only need to change `en.json`. Missing keys fallback to `en.json`. The actual translations will be added by Lokalise.
## re-frisk
re-frisk is a state visualization tool written by our very own Andrey (@flexsurfer). To start re-frisk, execute the following command:
```bash
$ yarn shadow-cljs run re-frisk-remote.core/start
```
or you can also use make:
```bash
$ make run-re-frisk
```
A server will be started at http://localhost:4567. It might show "not connected" at first. Don't worry and just start using the app. The events and state will populate.
## Merging approved PRs
We don't Github's UI to merge. Instead `./scripts/merge-pr.sh` is used to sign and merge PR to `develop`. You first need to enable [GPG signing on you commits](https://github.com/status-im/status-react/blob/develop/STARTING_GUIDE.md#configure-gpg-keys-for-signing-commits).
Once your commits are verfied and PR approved, you can run the script like so:
الحاله هي أداة اتصال خاصة وآمنة. يمكنك الدردشة مع الأصدقاء وتخزين الأصول واستكشاف مستقبل الويب دون استغلالها لبياناتك.
مع الحاله ، أنت وحدك تتحكم في معلوماتك.
يجمع Status بين برنامج المراسلة الخاص ومحفظة التشفير الآمنة ومتصفح لتطبيقات إيثريوم اللامركزية في أداة اتصال واحدة قوية. الدردشة مع الأصدقاء والمجتمعات المتزايدة. شراء الأصول الرقمية وبيعها وتخزينها وتبادلها. تصفح الإنترنت اللامركزي دون استغلال بياناتك.
Status هو نظام تشغيل إيثريوم الخاص بك
برنامج المراسلة الخاص
أرسل دردشات خاصة 1: 1 ، ومجموعات خاصة ، ودردشات عامة دون وسطاء غير ضروريين في اتصالاتك. Status عبارة عن تطبيق نصي يزيل نقاط الاختناق المركزية من رسائلك يمنحك لمزيد من الخصوصية والمراسلة الآمنة. تطبيق مراسلة مشفر مع تشفير شامل وخصوصية بشكل افتراضي بحيث لا يمكن لأي شخص آخر غيرك والمرسل إليه استعراض رسائلك - ولا حتى Status. يعتبره البعض برنامج مراسلات سريًه.
دردشة
تزيل الحاله جهات خارجية مركزية من رسائلك. ليس المحتوى الخاص بك محميًا فحسب ، بل أيضًا البيانات الوصفية الخاصة بك - للحصول على الخصوصية المطلقة.
مدفوعات بلا حدود، من النظير إلى النظير
يتيح ماسنجر Status لأي شخص في أي مكان إرسال مدفوعات عالمية مباشرة في الدردشة حيث انه متكامل بسلاسة مع محفظة العملات المشفرة.
المعاملات
تخزين الأصول الرقمية في محفظة الحالة الخاصة بك. إرسال الرموز المميزة من الأصدقاء وطلبها أو التعامل مع التطبيقات اللامركزية.
محفظة إيثريوم آمنة
تتيح لك محفظة تشفير Status إرسال أصول إيثريوم وتخزينها وتداولها وتبادلها بأمان مثل ETH و SNT والعملات المستقرة القيمة مثل DAI و NFTs. يمكنك التحكم بكل ثقة في عملتك المشفرة والأصول الرقمية باستخدام تطبيق محفظة إيثريوم هذه . تدعم محفظة البلوكتشين الخاصة Status حاليًا أصول ERC-20 و ERC-721 فقط ؛ لا تدعم البيتكوين.
اكسب مع DEFI
دع عملاتك المشفرة تعمل مع أحدث تطبيقات التمويل اللامركزية والتبادلات اللامركزية (DEX) مثل Maker و Aave و Uniswap و Synthetix و PoolTogether و Zerion و Kyber وغيرهم الكثير.
يكتشف
الوصول إلى التطبيقات المستندة إلى الايثريوم على الويب٣ . لعب الألعاب وتبادل الأصول الرقمية وأكثر من ذلك.
متصفح تطبيقات الويب 3 اللامركزية
تصفح الويب الآمن وأدنو من النظام الإيكولوجي المتنامي للتطبيقات اللامركزية باستخدام المتصفح الآمن. يتيح Status الوصول إلى أكثر من مجرد DeFi - اكتشف أحدث الأسواق والمقتنيات والألعاب والشبكات الاجتماعية مثل SuperRare و Gitcoin و Dragonereum و Axie Infinity و Open Sea و CryptoKitties و Decentraland وغيرهم الكثير.
تواصل مع مجتمعك
استكشف وتواصل ودردش مع مجتمعاتك و أصدقائك المفضلين لديك. سواء كانت مجموعة صغيرة من الأصدقاء ، أو مجموعة فنانين ، أو تجار تشفير ، أو المؤسسة الكبيرة التالية - أرسل رسائل نصية وتواصل مع مجتمعات Status.
بثّ اﻷنشطة اﻹجتماعية
شارك ما يدور في ذهنك وانشر التحديثات مع جهات الاتصال الخاصة بك في شبكة تواصل اجتماعية لامركزية حديثة ومقاومة للرقابة.
إنشاء حساب خاص
حافظ على خصوصيتك مع إنشاء حساب مستعار. عند إنشاء حسابك المجاني ، لن تضطر أبدًا إلى إدخال رقم هاتف أو عنوان بريد إلكتروني أو حساب مصرفي. يتم إنشاء المفاتيح الخاصة بالمحفظة الخاصة بك وتخزينها على جهازك لضمان وصولك إلى أموالك ومعاملاتك المالية فقط.
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.
Status kombiniert einen privaten Messenger, eine sichere Krypto-Wallet und einen Ethereum Web3 DApp-Browser in einem leistungsstarken Kommunikationswerkzeug. Chatten Sie mit Freunden und wachsenden Communities. Kaufen, verkaufen, speichern und tauschen Sie digitale Assets. Surfen Sie im dezentralen Internet, ohne dass Ihre Daten ausgebeutet werden.
In Status haben nur Sie die volle Kontrolle über Ihre Informationen.
Status ist Ihr Betriebssystem für Ethereum.
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
PRIVATER MESSENGER
Senden Sie private 1:1, private Gruppen und öffentliche Chats ohne unnötige Vermittler in Ihrer Kommunikation. Status ist eine Messenger-App, die zentralisierte Drosselstellen aus Ihren Nachrichten entfernt und so für mehr Privatsphäre und sicheres Messaging sorgt. Eine verschlüsselte Messaging-App mit Ende-zu-Ende-Verschlüsselung und standardmäßigem Datenschutz, so dass niemand außer Ihnen und dem gewünschten Empfänger Ihre Nachrichten sehen kann - nicht einmal Status. Einige betrachten es als einen geheimen Messenger.
TRANSAKTIONEN
Bewahren Sie digitale Assets in Ihrer Status-Wallet auf. Senden und erhalten Sie Tokens von Ihren Freunden oder interagieren Sie mit DApps.
PEER-TO-PEER, GRENZÜBERSCHREITENDE ZAHLUNGEN
Nahtlos in die Kryptowährungs-Wallet integriert, ermöglicht der Status-Messenger jedem und überall, globale Zahlungen direkt in einem Chat zu senden.
SICHERE ETHEREUM-WALLET
Mit der Krypto-Wallet Status können Sie Ethereum-Assets wie ETH, SNT, stable Coins wie DAI sowie NFTs sicher senden, speichern, handeln und tauschen. Übernehmen Sie selbstbewusst die Kontrolle über Ihre Kryptowährungen und digitalen Assets mit dieser Ethereum-Wallet-App. Die Status-Blockchain-Wallet unterstützt derzeit nur ERC-20- und ERC-721-Vermögenswerte; sie unterstützt keine Bitcoin.
VERDIENEN MIT DEFI
Setzen Sie Ihre Kryptowährung mit den neuesten dezentralen Finanz-Apps und dezentralen Börsen (DEX) wie Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber und mehr ein.
WEB3 DAPP BROWSER
Surfen Sie im sicheren Web und greifen Sie auf das wachsende Ökosystem dezentraler Anwendungen mit dem sicheren Browser zu. Status ermöglicht den Zugriff auf mehr als nur DeFi - erkunden Sie die neuesten Marktplätze, Sammlerstücke, Spiele und sozialen Netzwerke wie SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland und mehr.
VERNETZEN SIE SICH MIT IHRER COMMUNITY
Erforschen, verbinden und chatten Sie mit Ihren Lieblings-Communities und Freunden. Ob es sich um eine kleine Gruppe von Freunden, ein Künstlerkollektiv, Krypto-Händler oder die nächste große Organisation handelt - texten und kommunizieren Sie mit Status-Communities.
SOZIALE NETZE
Teilen Sie mit Ihren Kontakten, was Sie auf dem Herzen haben und posten Sie Updates in einem wirklich offenen, hochmodernen dezentralen sozialen Netzwerk.
PRIVATE ACCOUNT ERSTELLUNG
Bleiben Sie privat mit pseudo-anonymer Kontoerstellung. Wenn Sie Ihr kostenloses Konto erstellen, müssen Sie NIEMALS eine Telefonnummer, E-Mail-Adresse oder ein Bankkonto angeben. Ihre privaten Wallet-Schlüssel werden lokal generiert und gespeichert, um sicherzustellen, dass nur Sie Zugriff auf Ihr Geld und Ihre finanziellen Transaktionen haben.
ERKUNDEN
Greifen Sie auf Ethereum-basierte Web3-Apps zu. Spielen Sie Spiele, konvertieren Sie Assets u.v.m.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.