Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
896b583da1 | ||
|
|
2c4387a0f1 | ||
|
|
4c1ac9ad18 | ||
|
|
cf2c463ab9 | ||
|
|
b68066b16f | ||
|
|
b299e2399a |
@@ -1,5 +1,6 @@
|
||||
status-im.utils.build/warning-handler
|
||||
status-im.utils.build/get-current-sha
|
||||
status-im.ethereum.resolver/name
|
||||
status-im.chat.constants/spacing-char
|
||||
status-im.chat.constants/arg-wrapping-char
|
||||
status-im.ios.core/init
|
||||
|
||||
@@ -27,10 +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
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
COLLECTIBLES_ENABLED=1
|
||||
COMMANDS_ENABLED=1
|
||||
TWO_MINUTES_SYNCING=1
|
||||
SWAP_ENABLED=1
|
||||
|
||||
@@ -26,11 +26,6 @@ ENABLE_REFERRAL_INVITE=1
|
||||
MAX_IMAGES_BATCH=5
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
VERIFY_TRANSACTION_CHAIN_ID=3
|
||||
VERIFY_ENS_CHAIN_ID=3
|
||||
TEST_STATEOFUS=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
TWO_MINUTES_SYNCING=1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
CACHED_WEBVIEWS_ENABLED=1
|
||||
DEBUG_WEBVIEW=1
|
||||
DEFAULT_NETWORK=testnet_rpc
|
||||
DEFAULT_NETWORK=mainnet_rpc
|
||||
ERC20_CONTRACT_WARNINGS=0
|
||||
ETHEREUM_DEV_CLUSTER=1
|
||||
EXTENSIONS=0
|
||||
@@ -18,22 +18,14 @@ RPC_NETWORKS_ONLY=0
|
||||
PARTITIONED_TOPIC=0
|
||||
CONTRACT_NODES=1
|
||||
STATUS_GO_ENABLE_NIMBUS=0
|
||||
COMMANDS_ENABLED=1
|
||||
KEYCARD_TEST_MENU=0
|
||||
ENABLE_ROOT_ALERT=1
|
||||
ENABLE_REFERRAL_INVITE=1
|
||||
DISABLE_WALLET_ON_MOBILE_NETWORK=1
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
VERIFY_TRANSACTION_CHAIN_ID=3
|
||||
VERIFY_ENS_CHAIN_ID=3
|
||||
TEST_STATEOFUS=1
|
||||
BLANK_PREVIEW=0
|
||||
MAX_IMAGES_BATCH=5
|
||||
GOOGLE_FREE=0
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
TWO_MINUTES_SYNCING=1
|
||||
ENABLE_QUO_PREVIEW=1
|
||||
|
||||
@@ -22,5 +22,4 @@ MAX_IMAGES_BATCH=5
|
||||
BLANK_PREVIEW=0
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
|
||||
@@ -18,6 +18,3 @@ PARTITIONED_TOPIC=0
|
||||
ENABLE_ROOT_ALERT=1
|
||||
MAX_IMAGES_BATCH=1
|
||||
ENABLE_REFERRAL_INVITE=0
|
||||
METRICS_ENABLED=0
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
COLLECTIBLES_ENABLED=1
|
||||
|
||||
@@ -9,27 +9,46 @@ assignees: ''
|
||||
|
||||
# Bug Report
|
||||
|
||||
## Problem
|
||||
|
||||
## Problem
|
||||
[comment]: # (A problem description)
|
||||
|
||||
An overview of the background required to understand the problem.
|
||||
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
|
||||
|
||||
1) Open Status
|
||||
2)
|
||||
[comment]: # (Describe how we can replicate the bug step by step.)
|
||||
|
||||
- Open Status
|
||||
- ...
|
||||
- Step 3, etc.
|
||||
|
||||
### Additional Information
|
||||
|
||||
- Status version: nightly
|
||||
- Operating System: Android, iOS
|
||||
[comment]: # (Please do your best to fill this out.)
|
||||
- Status version: ...
|
||||
[comment]: # (Android or iOS.)
|
||||
- Operating System: <Android|iOS>
|
||||
|
||||
#### Logs
|
||||
|
||||
[comment]: # (Please, add logs/notes if necessary)
|
||||
[comment]: # (if on Android please replicate bug whilst running adb logcat)
|
||||
|
||||
```
|
||||
...
|
||||
```
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
---
|
||||
name: Release umbrella issue
|
||||
about: Release Issue
|
||||
title: 'Mobile release '
|
||||
labels: release
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
Issue to manage mobile release <version>
|
||||
|
||||
### Scope
|
||||
[comment]: # (Add milestone from github)
|
||||
https://github.com/status-im/status-react/milestone/
|
||||
|
||||
- release notes:
|
||||
- release branch:
|
||||
|
||||
|
||||
### Testing info
|
||||
[comment]: # (TestRail info, added by QA)
|
||||
Main test suite:
|
||||
Upgrade (e2e):
|
||||
|
||||
### Builds in TestFlight and PlayStore to push as a release
|
||||
[comment]: # (Will be added by QA after testing approving of build)
|
||||
|
||||
### Process
|
||||
#### 1) Kick-off
|
||||
- [ ] 1. Translation PRs is merged before cutting branch (Jinho)
|
||||
- [ ] 2. Prepare scope of visible changes based on commits history, started from previous release branch cut ([guide](https://notes.status.im/how-to-prepare-release-notes))
|
||||
- [ ] 3. Update [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) with release notes (make PR based on previous step)
|
||||
- [ ] 4. Create release branch using this [guide](https://github.com/status-im/status-react/blob/develop/doc/RELEASE_GUIDE.md), bump VERSION (merge created PR ([example](https://github.com/status-im/status-react/pull/12504) ) to develop) and get successful release builds (so, testing can be started)
|
||||
- [ ] 5. Based on release scope, ask for comms (Jonny)
|
||||
- [ ] 6. Make sure that assets (screenshots, video) in stores are up-to-date, more info [here](https://notes.status.im/how-to-update-assets)
|
||||
|
||||
#### 2) Testing
|
||||
[comment]: # (Section will be maintained by QA)
|
||||
- [ ] Dogfooding (add notes, if it was held)
|
||||
- [ ] Regression testing for release candidate build
|
||||
- [ ] Upgrade tests
|
||||
- [ ] Fix known blocker(s) found during regression testing
|
||||
|
||||
##### Blockers
|
||||
[comment]: # (Section for blocker issues; should be fixed and merged by release-manager. Remove if no blockers found)
|
||||
- [ ] 1 blocker:
|
||||
|
||||
=============================================================================================
|
||||
|
||||
- [ ] Cherry-pick fix(es) to the release branch
|
||||
- [ ] Verify fix(es) on new release candidate build
|
||||
- [ ] Retest
|
||||
- [ ] Keep release build forever (button in Jenkins)
|
||||
|
||||
#### 3) Submission
|
||||
|
||||
- [ ] 1. Prepare PR for F-droid build ([instruction]( https://github.com/status-im/status-react/blob/develop/doc/FDROID.md))
|
||||
- [ ] 2. Release notes written and added (500 character limit for updates (Android) and PR for [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) is ready to be merged (from 1.3 step)
|
||||
- [ ] 3. Submit beta version for Android (Open Testing in Play Store)
|
||||
- [ ] 4. Submit iOS build to Apple review ([instruction](https://drive.google.com/file/d/10Cl7PBB7TFPkZiVbfzdFGpfMRP9bxXuq/view?usp=sharing), be careful - low quality of audio)
|
||||
- [ ] 5. Play store content reviewed and updated
|
||||
- [ ] 6. Privacy policy reviewed and updated (ask in channel)
|
||||
- [ ] 7. Countries to be excluded (ask in channel)
|
||||
- [ ] 8. Changes to our FAQ made (should be checked and if any changes needed, ask Jakub to made them)
|
||||
|
||||
|
||||
#### 4) Before publishing
|
||||
- [ ] 1. Translations for comms available (marketing, ask in the channel)
|
||||
- [ ] 2. Promotional content ready (marketing, ask in channel)
|
||||
- [ ] 3. Upload builds for DO store, https://dev.status.im/ (Jakub)
|
||||
|
||||
#### 5) At time of publishing
|
||||
- [ ] 1. Notify marketing to push comms and blog post (Jonny + get review on blog from QA team)
|
||||
- [ ] 2. Publish release to app store and playstore
|
||||
- [ ] 3. Final push to update prod site https://status.im/, [instructions](https://github.com/status-im/infra-docs/blob/master/articles/status_release_upload.md) (Jakub - requires credentials to upload)
|
||||
- [ ] 4. Add the link to the post about the release and publish the release: https://github.com/status-im/status-react/releases (Jakub)
|
||||
- [ ] 5. Merge PR for updating [RELEASES.md](https://github.com/status-im/status-react/blob/develop/RELEASES.md) (from 1.3 step)
|
||||
|
||||
@@ -10,7 +10,7 @@ project-board:
|
||||
|
||||
automated-tests:
|
||||
repo-full-name: 'status-im/status-react'
|
||||
job-full-name: 'status-react/e2e/status-app-prs'
|
||||
job-full-name: 'end-to-end-tests/status-app-prs'
|
||||
kickoff-column-name: 'E2E Tests'
|
||||
|
||||
github-team:
|
||||
|
||||
@@ -168,5 +168,4 @@ project.clj
|
||||
|
||||
##appium
|
||||
test/appium/report/
|
||||
result.xml
|
||||
test/appium/tests/users.py
|
||||
result.xml
|
||||
@@ -1,4 +1,4 @@
|
||||
.PHONY: nix-add-gcroots clean nix-clean run-metro test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm _install-hooks
|
||||
.PHONY: nix-add-gcroots clean nix-clean run-metro test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm
|
||||
|
||||
help: SHELL := /bin/sh
|
||||
help: ##@other Show this help
|
||||
@@ -42,7 +42,7 @@ export NIX_CONF_DIR = $(PWD)/nix
|
||||
# Location of symlinks to derivations that should not be garbage collected
|
||||
export _NIX_GCROOTS = /nix/var/nix/gcroots/per-user/$(USER)/status-react
|
||||
# Defines which variables will be kept for Nix pure shell, use semicolon as divider
|
||||
export _NIX_KEEP ?= TMPDIR,BUILD_ENV,STATUS_GO_SRC_OVERRIDE
|
||||
export _NIX_KEEP ?= TMPDIR,BUILD_ENV,STATUS_GO_SRC_OVERRIDE,NIMBUS_SRC_OVERRIDE
|
||||
|
||||
# Useful for Andoird release builds
|
||||
TMP_BUILD_NUMBER := $(shell ./scripts/version/gen_build_no.sh | cut -c1-10)
|
||||
@@ -57,10 +57,13 @@ endif
|
||||
# Nix targets
|
||||
#----------------
|
||||
|
||||
# WARNING: This has to be located right before all the targets.
|
||||
# WARNING: This has to be located right before the targets
|
||||
ifdef IN_NIX_SHELL
|
||||
SHELL := env bash
|
||||
else
|
||||
SHELL := ./nix/scripts/shell.sh
|
||||
endif
|
||||
|
||||
shell: export TARGET ?= default
|
||||
shell: ##@prepare Enter into a pre-configured shell
|
||||
ifndef IN_NIX_SHELL
|
||||
@ENTER_NIX_SHELL
|
||||
@@ -124,11 +127,6 @@ _tmpdir-rm: SHELL := /bin/sh
|
||||
_tmpdir-rm: ##@prepare Remove TMPDIR
|
||||
rm -fr "$(TMPDIR)"
|
||||
|
||||
_install-hooks: SHELL := /bin/sh
|
||||
_install-hooks: ##@prepare Create prepare-commit-msg git hook symlink
|
||||
@ln -s -f ../../scripts/hooks/prepare-commit-msg .git/hooks
|
||||
-include _install-hooks
|
||||
|
||||
# Remove directories and ignored files
|
||||
clean: SHELL := /bin/sh
|
||||
clean: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
|
||||
@@ -167,23 +165,7 @@ fdroid-nix-dir: ##@prepare Create /nix directory for F-Droid Vagrant builders
|
||||
mkdir -m 0755 /nix
|
||||
chown vagrant /nix
|
||||
|
||||
fdroid-fix-tmp: SHELL := /bin/sh
|
||||
fdroid-fix-tmp: ##@prepare Fix TMPDIR permissions so Vagrant user is the owner
|
||||
chown -R vagrant "$(TMPDIR)"
|
||||
|
||||
fdroid-build-env: fdroid-max-watches fdroid-nix-dir fdroid-fix-tmp ##@prepare Setup build environment for F-Droud build
|
||||
|
||||
fdroid-pr: export TARGET := android
|
||||
fdroid-pr: ##@prepare Create F-Droid release PR
|
||||
ifndef APK
|
||||
$(error APK env var not defined)
|
||||
endif
|
||||
scripts/fdroid-pr.sh "$(APK)"
|
||||
|
||||
xcode-clean: SHELL := /bin/sh
|
||||
xcode-clean: XCODE_HOME := $(HOME)/Library/Developer/Xcode
|
||||
xcode-clean: ##@prepare Clean XCode derived data and archives
|
||||
rm -fr $(XCODE_HOME)/DerivedData/StatusIm-* $(XCODE_HOME)/Archives/*/StatusIm*
|
||||
fdroid-build-env: fdroid-max-watches fdroid-nix-dir ##@prepare Setup build environment for F-Droud build
|
||||
|
||||
#----------------
|
||||
# Release builds
|
||||
@@ -205,9 +187,8 @@ release-fdroid: export BUILD_TYPE = release
|
||||
release-fdroid: export ANDROID_APK_SIGNED = false
|
||||
release-fdroid: export ANDROID_ABI_SPLIT = false
|
||||
release-fdroid: export ANDROID_ABI_INCLUDE = armeabi-v7a;arm64-v8a;x86;x86_64
|
||||
release-fdroid: export READER_FEATURES = google-free
|
||||
release-fdroid: ##@build Build release for F-Droid
|
||||
scripts/google-free.sh
|
||||
echo "GOOGLE_FREE=1" >> .env.release
|
||||
scripts/release-android.sh
|
||||
|
||||
release-ios: export TARGET := ios
|
||||
|
||||
@@ -1,201 +1,3 @@
|
||||
## 1.18.0 Release notes :package:
|
||||
|
||||
### Features
|
||||
* 🚦Online status indicator <https://github.com/status-im/status-react/issues/12547>
|
||||
* 👛 Add possibility to select wallet for ENS names <https://github.com/status-im/status-react/pull/12761>
|
||||
* 🐞 Bug reporting and logs sharing improvements <https://github.com/status-im/status-react/pull/12773>
|
||||
* 🍳 Simplify Keycard onboarding by using defaults for pairing password <https://github.com/status-im/status-react/issues/12685>
|
||||
* 💾 Backup contacts via Waku <https://github.com/status-im/status-react/issues/12550>
|
||||
* 🪙 Added ENS token <https://github.com/status-im/status-react/issues/12807>
|
||||
* 🌠 Using react-native-fast-image for stickers <https://github.com/status-im/status-react/pull/12769>
|
||||
#### Message reliability improvements
|
||||
* 𝌗 Show loading until all messages are processed <https://github.com/status-im/status-react/pull/12834>
|
||||
* 💪🏼 More robust message confirmations handling <https://github.com/status-im/status-react/pull/12824>
|
||||
* 📶 Allow sending messages when offline <https://github.com/status-im/status-react/issues/11889>
|
||||
#### Improvements on device pairing
|
||||
* 🔔💻 Notification in activity centre now sync across devices <https://github.com/status-im/status-react/issues/12571>
|
||||
* ✅💻 Sync read messages across devices <https://github.com/status-im/status-react/pull/12698>
|
||||
#### Network settings improvements
|
||||
* ✨ Add Binance Smart chain <https://github.com/status-im/status-react/pull/12809>
|
||||
* ♏︎ Added custom network symbol <https://github.com/status-im/status-react/commit/c16b0860ec921a61c119857de27c6f29e301e4f6>
|
||||
* 💰 Network fee on xDai chain <https://github.com/status-im/status-react/pull/12845>
|
||||
* 📇 Support tx history (in a way) when on BSC chains <https://github.com/status-im/status-react/pull/12843>
|
||||
* 🙅🏻 Remove POA network from the list <https://github.com/status-im/status-react/pull/12887>
|
||||
|
||||
### Bug Fixes
|
||||
* Fix activity center community invite preview <https://github.com/status-im/status-react/pull/12803>
|
||||
* Missing notifications for some contacts <https://github.com/status-im/status-react/issues/12776>
|
||||
* Fixes scrolling issues on the 'Max priority fee' bottom sheet <https://github.com/status-im/status-react/issues/12530>
|
||||
* Handle Keycard timeout on iOS 15 <https://github.com/status-im/status-react/pull/12826>
|
||||
* Allow user to be reinvited to the same group after leaving <https://github.com/status-im/status-react/pull/12814>
|
||||
* Fix for "TypeError: Network request failed" when switching to Goerli network <https://github.com/status-im/status-react/issues/11964>
|
||||
* Fix for Spin of death on adding custom NFT token contract <https://github.com/status-im/status-react/issues/12365>
|
||||
* Changing screen orientation results in breaking images / layout <https://github.com/status-im/status-react/issues/12858>
|
||||
|
||||
|
||||
## 1.17
|
||||
|
||||
### For iOS and Android
|
||||
|
||||
### Features
|
||||
|
||||
- 🖼️ Add ability to Share image from Status ([details](https://github.com/status-im/status-react/pull/12528))
|
||||
- 🕵️ Private Profile Photos ([details](https://github.com/status-im/status-react/pull/11768))
|
||||
- 🥥 Custom Emoji Thumbnails for Community Channels ([details](https://github.com/status-im/status-react/pull/12594))
|
||||
- 🔄 Sync deleted chats ([details](https://github.com/status-im/status-react/pull/12662))
|
||||
- 🔃 Sync removed/deleted/blocked contacts ([details](https://github.com/status-im/status-react/pull/12541))
|
||||
- 💸 Allow overriding nonce when sending transaction ([details](https://github.com/status-im/status-react/pull/12679))
|
||||
- 🗑️ Delete messages ([details](https://github.com/status-im/status-react/pull/12390))
|
||||
- 🎨 NFT Support via OpenSea ([details](https://github.com/status-im/status-react/pull/12485))
|
||||
- 🤳🏻 Enable collectibles and NFT as profile picture ([details](https://github.com/status-im/status-react/pull/12615))
|
||||
|
||||
### Improvements
|
||||
|
||||
- Move pull to refresh to the account overview screen ([details](https://github.com/status-im/status-react/pull/12479))
|
||||
- Add $RARE token to our default list ([details](https://github.com/status-im/status-react/pull/12521))
|
||||
- Small UI Design Improvements ([details](https://github.com/status-im/status-react/pull/12544))
|
||||
- Chats list performance ([details](https://github.com/status-im/status-react/pull/12554))
|
||||
- Add push notification on group chat invite ([details](https://github.com/status-im/status-react/pull/12440))
|
||||
- Contacts performance ([details](https://github.com/status-im/status-react/pull/12643))
|
||||
- Add profile image in push notifications ([details](https://github.com/status-im/status-react/pull/12427))
|
||||
- Enable UI for signing legacy txs on networks without eip1559 ([details](https://github.com/status-im/status-react/pull/12692))
|
||||
- Doubled the character limit on timeline posts ([details](https://github.com/status-im/status-react/commit/a9333ad52ca71f512d5306f802927d0c20d63944))
|
||||
|
||||
### Bugfixes
|
||||
|
||||
- Don't show notifications from self ([details](https://github.com/status-im/status-react/pull/12505))
|
||||
- Request permissions before saving images ([details](https://github.com/status-im/status-react/pull/12516))
|
||||
- Re-enable amount/fee validation on tx signing ([details](https://github.com/status-im/status-react/pull/12537))
|
||||
- Fix browser history sorting ([details](https://github.com/status-im/status-react/pull/12497))
|
||||
- Fix show/hide password on Android ([details](https://github.com/status-im/status-react/pull/12536))
|
||||
- Fix connecting autofarm.network dapps with status wallet freezes ([details](https://github.com/status-im/status-react/pull/12529))
|
||||
- RPC URL is lower-cased when entered in URL field when adding ([details](https://github.com/status-im/status-react/pull/12574))
|
||||
- Allow retrieving of profile updates after removing contact ([details](https://github.com/status-im/status-react/pull/12581))
|
||||
- Fetch history on receiving pubchat installation ([details](https://github.com/status-im/status-react/pull/12644))
|
||||
- Can't send funds to multisig - Out of gas ([details](https://github.com/status-im/status-react/pull/12648))
|
||||
- Fix handling errors on eth_gasPrice ([details](https://github.com/status-im/status-react/pull/12710))
|
||||
|
||||
## 1.16
|
||||
|
||||
### For iOS and Android
|
||||
|
||||
### Features
|
||||
|
||||
- EIP-1159 support ([#12369](https://github.com/status-im/status-react/pull/12369))
|
||||
- Hide/show option for accounts in the wallet ([#12438](https://github.com/status-im/status-react/pull/12438))
|
||||
- Delete accounts in wallet ([#12444](https://github.com/status-im/status-react/pull/12444))
|
||||
- Enable keeping database when migrating account to keycard ([#12306](https://github.com/status-im/status-react/pull/12306))
|
||||
- Replies from group chat in activity centre ([#12266](https://github.com/status-im/status-react/pull/12266))
|
||||
|
||||
### Improvements
|
||||
|
||||
- Remove clear history from non-public chats ([#12384](https://github.com/status-im/status-react/pull/12384))
|
||||
- Clearing push notifications on read (Android) ([#12464](https://github.com/status-im/status-react/pull/12464))
|
||||
- Enable migration to keycard from signed-in state ([#11778](https://github.com/status-im/status-react/issues/11778))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
#### Chat
|
||||
|
||||
- Fix Error when opening 1-1 chat in Activity center for blocked user ([#12399](https://github.com/status-im/status-react/pull/12399))
|
||||
- Long press is long and it makes the message disappear entirely ([#12445](https://github.com/status-im/status-react/pull/12445))
|
||||
- Sort pinned messages by time of pinning ([#12402](https://github.com/status-im/status-react/pull/12402))
|
||||
- Screens with overlapping long usernames ([#12471](https://github.com/status-im/status-react/pull/12471))
|
||||
|
||||
#### Browser (Dapp)
|
||||
|
||||
- Fix some token swap errors in Uniswap ([#12417](https://github.com/status-im/status-react/pull/12417))
|
||||
- Update react-native-webview for better SSL handling ([#12409](https://github.com/status-im/status-react/pull/12409))
|
||||
|
||||
#### Keycard
|
||||
|
||||
- App freezes until reopening when signing tx with frozen Keycard ([#12473](https://github.com/status-im/status-react/pull/12473))
|
||||
|
||||
#### Wallet
|
||||
|
||||
- Allow to add assets with same name ([#12466](https://github.com/status-im/status-react/pull/12466))
|
||||
- Update DATAcoin name ([#12454](https://github.com/status-im/status-react/pull/12454))
|
||||
|
||||
## 1.15
|
||||
|
||||
### For iOS and Android
|
||||
### Features
|
||||
- New improved native navigation, its very fast :dash: [[details](https://github.com/status-im/status-react/pull/12141)]
|
||||
- Pinned messages in chats :pushpin: [[details](https://github.com/status-im/status-react/issues/11699)]
|
||||
- Add support for ETH2x-FLI ERC20 token ⚫ [[details](https://github.com/status-im/status-react/issues/11885)]
|
||||
- Add support for HEZ ERC20 token ⚫ [[details](https://github.com/status-im/status-react/issues/12233)]
|
||||
- Show number of unread mentions in public and communities chats :bell: [[details](https://github.com/status-im/status-react/issues/12061)]
|
||||
- QR code scanner for browser :ticket: [[details](https://github.com/status-im/status-react/issues/12195)]
|
||||
- Edit messages after sending :pencil2: [[details](https://github.com/status-im/status-react/issues/12067)]
|
||||
- Allow password reset :abcd: [[details](https://github.com/status-im/status-react/pull/12245)]
|
||||
|
||||
### Improvements
|
||||
- Native modals and tabs :house_with_garden:
|
||||
- Improved time to show login screen :timer_clock:
|
||||
- New, human friendly, terms of use :pencil: [[details](https://github.com/status-im/status-react/issues/12206)]
|
||||
|
||||
### Bug Fixes
|
||||
- No contact request in Activity Center after 1-1 chat deleted of non-contact user :no_good: [[details](https://github.com/status-im/status-react/issues/12218)]
|
||||
|
||||
## 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
|
||||
|
||||
@@ -126,14 +126,7 @@ def enableHermes = project.ext.react.get("enableHermes", false);
|
||||
/**
|
||||
* Exclude google library so we can publish to external android stores
|
||||
*/
|
||||
def googleFree = project.env.get("GOOGLE_FREE", 0) == '1'
|
||||
|
||||
def getCommitHash = { ->
|
||||
if (project.hasProperty("commitHash")) {
|
||||
return project.commitHash
|
||||
}
|
||||
return "unknown"
|
||||
}
|
||||
def googleFree = project.env.get("GOOGLE_FREE", false)
|
||||
|
||||
def getVersionCode = { ->
|
||||
new ByteArrayOutputStream().withStream { stdOut ->
|
||||
@@ -191,7 +184,6 @@ android {
|
||||
versionCode getVersionCode()
|
||||
versionName getVersionName()
|
||||
missingDimensionStrategy 'react-native-camera', 'general'
|
||||
manifestPlaceholders = [commitHash: getCommitHash()]
|
||||
/* this needs to be empty if we want APKs split by ABIs */
|
||||
if (!getEnvOrConfig('ANDROID_ABI_SPLIT').toBoolean()) {
|
||||
ndk {
|
||||
@@ -341,8 +333,6 @@ dependencies {
|
||||
exclude group: 'com.google.android.gms'
|
||||
exclude group: 'com.android.installreferrer'
|
||||
}
|
||||
} else {
|
||||
implementation 'com.google.firebase:firebase-messaging:23.0.0'
|
||||
}
|
||||
|
||||
// react-native-screens
|
||||
@@ -358,9 +348,8 @@ dependencies {
|
||||
implementation project(':react-native-status')
|
||||
implementation project(':react-native-status-keycard')
|
||||
implementation 'com.github.status-im:function:0.0.1'
|
||||
implementation 'com.facebook.fresco:fresco:2.2.0'
|
||||
implementation 'com.facebook.fresco:animated-gif:2.2.0'
|
||||
implementation "com.squareup.okhttp3:okhttp-tls:3.12.12"
|
||||
implementation 'com.facebook.fresco:fresco:2.0.0'
|
||||
implementation 'com.facebook.fresco:animated-gif:2.0.0'
|
||||
}
|
||||
|
||||
def getLocalNDKDir = { ->
|
||||
@@ -382,7 +371,7 @@ task hemroidBuild(type: Exec) {
|
||||
def localNdkDir = getLocalNDKDir()
|
||||
def ndkDir = System.env.ANDROID_NDK_ROOT
|
||||
if (localNdkDir != null) {
|
||||
ndkDir = localNdkDir
|
||||
ndkDir = localNdkDir
|
||||
}
|
||||
|
||||
def execPath = "$ndkDir/ndk-build"
|
||||
@@ -396,7 +385,3 @@ task hemroidBuild(type: Exec) {
|
||||
preBuild.dependsOn hemroidBuild
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
|
||||
if (!googleFree) {
|
||||
apply plugin: "com.google.gms.google-services"
|
||||
}
|
||||
|
||||
@@ -1,119 +0,0 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "854811651919",
|
||||
"firebase_url": "https://status-react-app.firebaseio.com",
|
||||
"project_id": "status-react-app",
|
||||
"storage_bucket": "status-react-app.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:11ee7444ded8a00a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
|
||||
"client_type": 2,
|
||||
"ios_info": {
|
||||
"bundle_id": "im.status.ethereum"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:15dbe4af1e06ca3e005f3a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum.debug"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
|
||||
"client_type": 2,
|
||||
"ios_info": {
|
||||
"bundle_id": "im.status.ethereum"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:854811651919:android:1d0d69fe8c1bb89b005f3a",
|
||||
"android_client_info": {
|
||||
"package_name": "im.status.ethereum.pr"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAOF4W1j8GYeXzzVKRfNKlXywD6bx0rJtQ"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "854811651919-gua52csicclb5p9gr4eeu33ukk0aaphj.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "854811651919-30s20e3l0me0ins0vc4185jbnj7ja49o.apps.googleusercontent.com",
|
||||
"client_type": 2,
|
||||
"ios_info": {
|
||||
"bundle_id": "im.status.ethereum"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
||||
@@ -64,15 +64,3 @@
|
||||
-dontwarn java.nio.file.*
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
||||
-dontwarn okio.**
|
||||
|
||||
# fast-image
|
||||
|
||||
-keep public class com.dylanvann.fastimage.* {*;}
|
||||
-keep public class com.dylanvann.fastimage.** {*;}
|
||||
-keep public class * implements com.bumptech.glide.module.GlideModule
|
||||
-keep public class com.bumptech.glide.annotation.GlideModule
|
||||
-keep public class * extends com.bumptech.glide.module.AppGlideModule
|
||||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
|
||||
**[] $VALUES;
|
||||
public *;
|
||||
}
|
||||
@@ -17,13 +17,14 @@
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="28" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
||||
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
|
||||
<uses-permission android:name="com.android.vending.BILLING" />
|
||||
|
||||
<application
|
||||
tools:replace="android:allowBackup"
|
||||
android:allowBackup="false"
|
||||
@@ -32,8 +33,8 @@
|
||||
android:theme="@style/AppTheme"
|
||||
android:name=".MainApplication"
|
||||
android:largeHeap="true"
|
||||
android:usesCleartextTraffic="true">
|
||||
<meta-data android:name="commitHash" android:value="${commitHash}"/>
|
||||
android:usesCleartextTraffic="true"
|
||||
android:requestLegacyExternalStorage="true">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
@@ -81,12 +82,6 @@
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_provider_paths" />
|
||||
</provider>
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_icon"
|
||||
android:resource="@drawable/notification_icon" />
|
||||
<meta-data
|
||||
android:name="com.google.firebase.messaging.default_notification_color"
|
||||
android:resource="@color/notification_icon_color" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -23,21 +23,17 @@ import android.provider.Settings;
|
||||
import android.os.Bundle;
|
||||
import com.facebook.react.ReactActivityDelegate;
|
||||
import com.facebook.react.ReactRootView;
|
||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
|
||||
|
||||
import com.facebook.react.ReactFragmentActivity;
|
||||
import com.reactnativenavigation.NavigationActivity;
|
||||
import com.facebook.react.ReactActivity;
|
||||
import com.facebook.react.modules.core.PermissionListener;
|
||||
import org.devio.rn.splashscreen.SplashScreen;
|
||||
|
||||
import java.util.Properties;
|
||||
import im.status.ethereum.module.StatusThreadPoolExecutor;
|
||||
import im.status.ethereum.MainApplication;
|
||||
|
||||
public class MainActivity extends NavigationActivity
|
||||
public class MainActivity extends ReactFragmentActivity
|
||||
implements ActivityCompat.OnRequestPermissionsResultCallback{
|
||||
|
||||
|
||||
@@ -101,16 +97,6 @@ public class MainActivity extends NavigationActivity
|
||||
return intent;
|
||||
}
|
||||
|
||||
private void tryToEmit(String eventName, WritableMap event) {
|
||||
try {
|
||||
((MainApplication) getApplication()).getReactNativeHost()
|
||||
.getReactInstanceManager()
|
||||
.getCurrentReactContext()
|
||||
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
||||
.emit("url", event);
|
||||
} catch(Exception e) {/* we expect NPE on first start, which is OK because we have a fallback */}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNewIntent(final Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
@@ -181,16 +167,6 @@ public class MainActivity extends NavigationActivity
|
||||
@Override
|
||||
public void run() {
|
||||
System.loadLibrary("status-logs");
|
||||
|
||||
// when app is started but the Activity has been destroyed, the deep linking url event is
|
||||
// not emitted when coming back to foreground. This is a workaround. If the problem is
|
||||
// resolved in react-native this code should be removed
|
||||
if (getIntent().getData() != null) {
|
||||
WritableMap event = Arguments.createMap();
|
||||
event.putString("url", getIntent().getDataString());
|
||||
// on first start emit will (silently) fail, but the regular deep linking handler will work
|
||||
tryToEmit("url", event);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -202,7 +178,14 @@ public class MainActivity extends NavigationActivity
|
||||
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) {
|
||||
@@ -259,4 +242,14 @@ public class MainActivity extends NavigationActivity
|
||||
mPermissionListener = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ReactActivityDelegate createReactActivityDelegate() {
|
||||
return new ReactActivityDelegate(this, getMainComponentName()) {
|
||||
@Override
|
||||
protected ReactRootView createRootView() {
|
||||
return new RNGestureHandlerEnabledRootView(MainActivity.this);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,24 +9,20 @@ import com.facebook.react.PackageList;
|
||||
|
||||
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
|
||||
import com.facebook.react.ReactApplication;
|
||||
import cl.json.RNSharePackage;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.reactnativenavigation.NavigationApplication;
|
||||
import com.reactnativenavigation.react.NavigationReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import im.status.ethereum.keycard.RNStatusKeycardPackage;
|
||||
import im.status.ethereum.module.StatusPackage;
|
||||
import im.status.ethereum.pushnotifications.PushNotificationPackage;
|
||||
import im.status.ethereum.StatusOkHttpClientFactory;
|
||||
|
||||
public class MainApplication extends NavigationApplication {
|
||||
public class MainApplication extends MultiDexApplication implements ReactApplication {
|
||||
|
||||
private final ReactNativeHost mReactNativeHost = new NavigationReactNativeHost(this) {
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
@@ -58,9 +54,7 @@ public class MainApplication extends NavigationApplication {
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
||||
OkHttpClientProvider.setOkHttpClientFactory(new StatusOkHttpClientFactory());
|
||||
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1");
|
||||
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
}
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
package im.status.ethereum;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.facebook.react.modules.network.OkHttpClientFactory;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.tls.HandshakeCertificates;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.lang.RuntimeException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.security.cert.CertificateFactory;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
import im.status.ethereum.module.StatusPackage;
|
||||
|
||||
class StatusOkHttpClientFactory implements OkHttpClientFactory {
|
||||
public OkHttpClient createNewNetworkModuleClient() {
|
||||
String certPem = StatusPackage.getImageTLSCert();
|
||||
X509Certificate cert;
|
||||
|
||||
try {
|
||||
CertificateFactory cf = CertificateFactory.getInstance("X.509");
|
||||
cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(certPem.getBytes()));
|
||||
} catch(Exception e) {
|
||||
Log.e("StatusOkHttpClientFactory", "Could not parse certificate");
|
||||
cert = null;
|
||||
}
|
||||
|
||||
HandshakeCertificates clientCertificates = new HandshakeCertificates.Builder()
|
||||
.addPlatformTrustedCertificates()
|
||||
.addTrustedCertificate(cert)
|
||||
.build();
|
||||
|
||||
return OkHttpClientProvider.createClientBuilder()
|
||||
.sslSocketFactory(clientCertificates.sslSocketFactory(), clientCertificates.trustManager())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 482 B |
|
Before Width: | Height: | Size: 272 B |
|
After Width: | Height: | Size: 975 B |
|
Before Width: | Height: | Size: 495 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 826 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 826 B |
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="alert_background">#141414</color>
|
||||
<color name="alert_text">#ffffff</color>
|
||||
</resources>
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="alert_background">#ffffff</color>
|
||||
<color name="alert_text">#000000</color>
|
||||
<color name="notification_icon_color">#4360DF</color>
|
||||
</resources>
|
||||
@@ -8,7 +8,6 @@
|
||||
<item name="android:forceDarkAllowed">true</item>
|
||||
<item name="android:windowTranslucentStatus">false</item>
|
||||
<item name="android:statusBarColor">?attr/backgroundColor</item>
|
||||
<item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="LightTheme" parent="AppTheme">
|
||||
@@ -22,10 +21,4 @@
|
||||
<item name="backgroundColor">#000000</item>
|
||||
<item name="android:windowLightStatusBar">false</item>
|
||||
</style>
|
||||
|
||||
<style name="AlertDialogTheme" parent="Theme.AppCompat.DayNight.Dialog.Alert">
|
||||
<item name="android:textColor">@color/alert_text</item>
|
||||
<item name="android:textColorPrimary">@color/alert_text</item>
|
||||
<item name="android:background">@color/alert_background</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
* 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)
|
||||
@@ -20,9 +19,7 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"
|
||||
classpath "com.android.tools.build:gradle:${project.ext.gradlePluginVersion}"
|
||||
classpath "com.google.gms:google-services:4.3.10"
|
||||
// WARNING: Do not place your application dependencies here!
|
||||
// They belong in the individual module build.gradle files.
|
||||
}
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
# Version requirements used throughout the Gradle scripts
|
||||
kotlinVersion=1.3.50
|
||||
minSdkVersion=23
|
||||
compileSdkVersion=30
|
||||
targetSdkVersion=30
|
||||
buildToolsVersion=31.0.0
|
||||
compileSdkVersion=29
|
||||
targetSdkVersion=29
|
||||
buildToolsVersion=30.0.3
|
||||
supportLibVersion=28.0.0
|
||||
# This should match version from nix/mobile/android/maven-and-npm-deps/maven/default.nix
|
||||
gradlePluginVersion=3.5.4
|
||||
gradlePluginVersion=3.5.3
|
||||
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
@@ -48,7 +48,6 @@ ANDROID_APK_SIGNED=true
|
||||
org.gradle.jvmargs=-Xmx8704M
|
||||
|
||||
versionCode=9999
|
||||
commitHash=unknown
|
||||
|
||||
# Flipper
|
||||
FLIPPER_VERSION=0.54.0
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
pluginManagement {
|
||||
include ':react-native-share'
|
||||
project(':react-native-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share/android')
|
||||
repositories {
|
||||
mavenLocal() // Let's prioritize local Maven repos so that Nix can provide them offline
|
||||
gradlePluginPortal()
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
library 'status-jenkins-lib@v1.3.3'
|
||||
library 'status-jenkins-lib@v1.2.12'
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux && x86_64 && nix-2.3' }
|
||||
agent { label 'linux' }
|
||||
|
||||
options {
|
||||
timestamps()
|
||||
/* Prevent Jenkins jobs from running forever */
|
||||
timeout(time: 30, unit: 'MINUTES')
|
||||
timeout(time: 20, unit: 'MINUTES')
|
||||
/* Limit builds retained */
|
||||
buildDiscarder(logRotator(
|
||||
numToKeepStr: '10',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
library 'status-jenkins-lib@v1.3.3'
|
||||
library 'status-jenkins-lib@v1.2.12'
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux' }
|
||||
@@ -58,7 +58,7 @@ pipeline {
|
||||
//jenkins.copyArts(iose2e)
|
||||
jenkins.copyArts(apk)
|
||||
jenkins.copyArts(apke2e)
|
||||
sha = "pkg/${utils.pkgFilename(ext: 'sha256')}"
|
||||
sha = "pkg/${utils.pkgFilename('sha256')}"
|
||||
dir('pkg') {
|
||||
/* generate sha256 checksums for upload */
|
||||
sh "sha256sum * | tee ../${sha}"
|
||||
@@ -88,7 +88,7 @@ pipeline {
|
||||
case 'nightly':
|
||||
/* Create JSON file with newest build URLs */
|
||||
s3.updateBucketJSON(urls, 'latest.json');
|
||||
build(job: 'website/status.im', wait: false);
|
||||
build(job: 'misc/status.im', wait: false);
|
||||
break;
|
||||
case 'release':
|
||||
github.publishReleaseFiles(repo: 'status-react');
|
||||
@@ -97,11 +97,11 @@ pipeline {
|
||||
} }
|
||||
}
|
||||
stage('Run e2e') {
|
||||
when { expression { btype == 'nightly' && params.PUBLISH } }
|
||||
when { expression { btype == 'nightly' } }
|
||||
steps { script {
|
||||
e2eApk = utils.getEnv(apke2e, 'SAUCE_URL')
|
||||
build(
|
||||
job: 'status-react/e2e/status-app-nightly',
|
||||
job: 'end-to-end-tests/status-app-nightly',
|
||||
parameters: [string(name: 'APK_NAME', value: e2eApk)],
|
||||
wait: false
|
||||
)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
library 'status-jenkins-lib@v1.3.3'
|
||||
library 'status-jenkins-lib@v1.2.12'
|
||||
|
||||
pipeline {
|
||||
agent { label 'macos && x86_64 && nix-2.3 && xcode-12.5' }
|
||||
agent { label 'macos-xcode-12.3' }
|
||||
|
||||
parameters {
|
||||
string(
|
||||
|
||||
@@ -1,26 +1,16 @@
|
||||
library 'status-jenkins-lib@v1.3.3'
|
||||
library 'status-jenkins-lib@v1.2.12'
|
||||
|
||||
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 .profile;"
|
||||
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_CONF_DIR = "${env.WORKSPACE}/nix"
|
||||
}
|
||||
|
||||
@@ -39,7 +29,7 @@ pipeline {
|
||||
stages {
|
||||
stage('Setup') {
|
||||
steps { script {
|
||||
nix.shell('nix-env -i openssh', sandbox: false, pure: false)
|
||||
nix.shell('nix-env -i openssh', pure: false)
|
||||
/* some build targets don't build on MacOS */
|
||||
uname = sh(script: 'uname', returnStdout: true)
|
||||
} }
|
||||
@@ -98,8 +88,7 @@ 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 ${params.NIX_CACHE_USER}@${params.NIX_CACHE_HOST}
|
||||
| xargs nix-copy-closure -v --to ${NIX_CACHE_USER}@${NIX_CACHE_HOST}
|
||||
""",
|
||||
pure: false
|
||||
)
|
||||
|
||||
@@ -4,13 +4,13 @@ pipeline {
|
||||
|
||||
parameters {
|
||||
string(
|
||||
name: 'APK_NAME',
|
||||
description: 'Filename of APK uploaded to SauceLabs.',
|
||||
name: 'NETWORK',
|
||||
description: 'Name of test network to use.',
|
||||
defaultValue: 'ropsten',
|
||||
)
|
||||
string(
|
||||
name: 'KEYWORD_EXPRESSION',
|
||||
description: 'This will run tests which contain names that match the given string expression (Optional)',
|
||||
defaultValue: '',
|
||||
name: 'APK_NAME',
|
||||
description: 'Filename of APK uploaded to SauceLabs.',
|
||||
)
|
||||
}
|
||||
|
||||
@@ -48,22 +48,16 @@ pipeline {
|
||||
credentialsId: 'infura-e2e-token',
|
||||
variable: 'WEB3_INFURA_PROJECT_ID'
|
||||
),
|
||||
file(
|
||||
credentialsId: "mobile-tests-eth-accounts",
|
||||
variable: 'TEST_ETH_ACCOUNTS_FILE'
|
||||
),
|
||||
]) {
|
||||
dir('test/appium/tests') {
|
||||
/* Provide Eth test accounts secrets. */
|
||||
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
||||
sh """
|
||||
python3 -m pytest \
|
||||
--numprocesses 15 \
|
||||
--rerun_count=2 \
|
||||
--testrail_report=True \
|
||||
-m testrail_id \
|
||||
-m \"not upgrade\" \
|
||||
-k \"${params.KEYWORD_EXPRESSION}\" \
|
||||
-m "not upgrade" \
|
||||
--network=${params.NETWORK} \
|
||||
--apk=${params.APK_NAME}
|
||||
"""
|
||||
}
|
||||
|
||||
@@ -8,12 +8,16 @@ pipeline {
|
||||
description: 'Name of the branch to checkout and build.',
|
||||
defaultValue: 'develop',
|
||||
)
|
||||
/* Commented to use TEST_MARKERS values from job params
|
||||
string(
|
||||
name: 'NETWORK',
|
||||
description: 'Name of test network to use.',
|
||||
defaultValue: 'ropsten',
|
||||
)
|
||||
string(
|
||||
name: 'TEST_MARKERS',
|
||||
description: 'Marker expression for matching tests to run.',
|
||||
defaultValue: 'critical or high',
|
||||
) */
|
||||
)
|
||||
string(
|
||||
name: 'APK_NAME',
|
||||
description: 'Filename of APK uploaded to SauceLabs, path, or URL.',
|
||||
@@ -22,14 +26,9 @@ pipeline {
|
||||
name: 'PR_ID',
|
||||
description: 'ID of the Pull Request triggering this build.',
|
||||
)
|
||||
string(
|
||||
name: 'KEYWORD_EXPRESSION',
|
||||
description: 'This will run tests which contain names that match the given string expression (Optional)',
|
||||
defaultValue: '',
|
||||
)
|
||||
string(
|
||||
name: 'TR_CASE_IDS',
|
||||
description: 'IDs of the TestRail case, separated by a comma (Optional)',
|
||||
description: 'IDs of the TestRail case, separated by a comma. (Optional)',
|
||||
defaultValue: '',
|
||||
)
|
||||
}
|
||||
@@ -85,21 +84,15 @@ pipeline {
|
||||
credentialsId: 'infura-e2e-token',
|
||||
variable: 'WEB3_INFURA_PROJECT_ID'
|
||||
),
|
||||
file(
|
||||
credentialsId: "mobile-tests-eth-accounts",
|
||||
variable: 'TEST_ETH_ACCOUNTS_FILE'
|
||||
),
|
||||
]) {
|
||||
dir('test/appium/tests') {
|
||||
/* Provide Eth test account secrets. */
|
||||
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
||||
sh """
|
||||
python3 -m pytest \
|
||||
--numprocesses 15 \
|
||||
--rerun_count=2 \
|
||||
--testrail_report=True \
|
||||
-m \"${params.TEST_MARKERS}\" \
|
||||
-k \"${params.KEYWORD_EXPRESSION}\" \
|
||||
-m "${params.TEST_MARKERS}" \
|
||||
--network=${params.NETWORK} \
|
||||
--apk=${params.APK_NAME} \
|
||||
--build=PR-${params.PR_ID} \
|
||||
--pr_number=${params.PR_ID} \
|
||||
|
||||
@@ -3,6 +3,11 @@ pipeline {
|
||||
agent { label 'linux' }
|
||||
|
||||
parameters {
|
||||
string(
|
||||
name: 'NETWORK',
|
||||
description: 'Name of test network to use',
|
||||
defaultValue: 'ropsten',
|
||||
)
|
||||
string(
|
||||
name: 'APK_NAME',
|
||||
description: 'Filename of APK uploaded to SauceLabs (base for upgrade, usually release build)',
|
||||
@@ -11,16 +16,6 @@ pipeline {
|
||||
name: 'APK_NAME_UPGRADE',
|
||||
description: 'Filename of APK of upgraded application (installed on top of base)',
|
||||
)
|
||||
string(
|
||||
name: 'KEYWORD_EXPRESSION',
|
||||
description: 'This will run tests which contain names that match the given string expression (Optional)',
|
||||
defaultValue: '',
|
||||
)
|
||||
string(
|
||||
name: 'TR_CASE_IDS',
|
||||
description: 'IDs of the TestRail case, separated by a comma (Optional)',
|
||||
defaultValue: '',
|
||||
)
|
||||
}
|
||||
|
||||
options {
|
||||
@@ -37,12 +32,7 @@ pipeline {
|
||||
} }
|
||||
}
|
||||
stage('Test') {
|
||||
steps { script {
|
||||
/* for managing optional arguments */
|
||||
def extraPytestOpts = ''
|
||||
if (params.TR_CASE_IDS != '') {
|
||||
extraPytestOpts = "--run_testrail_ids='${params.TR_CASE_IDS}'"
|
||||
}
|
||||
steps {
|
||||
withCredentials([
|
||||
usernamePassword(
|
||||
credentialsId: 'test-rail-api',
|
||||
@@ -62,29 +52,22 @@ pipeline {
|
||||
credentialsId: 'infura-e2e-token',
|
||||
variable: 'WEB3_INFURA_PROJECT_ID'
|
||||
),
|
||||
file(
|
||||
credentialsId: "mobile-tests-eth-accounts",
|
||||
variable: 'TEST_ETH_ACCOUNTS_FILE'
|
||||
),
|
||||
]) {
|
||||
dir('test/appium/tests') {
|
||||
/* Provide Eth test accounts secrets. */
|
||||
sh 'cp -f $TEST_ETH_ACCOUNTS_FILE users.py'
|
||||
sh """
|
||||
python3 -m pytest \
|
||||
-m "upgrade" \
|
||||
-k \"${params.KEYWORD_EXPRESSION}\" \
|
||||
-m upgrade \
|
||||
--numprocesses 15 \
|
||||
--rerun_count=2 \
|
||||
--testrail_report=True \
|
||||
--network=${params.NETWORK} \
|
||||
--apk=${params.APK_NAME} \
|
||||
--apk_upgrade=${params.APK_NAME_UPGRADE} \
|
||||
${extraPytestOpts}
|
||||
--apk_upgrade=${params.APK_NAME_UPGRADE}
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
} }
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
library 'status-jenkins-lib@v1.3.3'
|
||||
library 'status-jenkins-lib@v1.2.12'
|
||||
|
||||
pipeline {
|
||||
agent { label 'macos' }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
library 'status-jenkins-lib@v1.3.3'
|
||||
library 'status-jenkins-lib@v1.2.12'
|
||||
|
||||
pipeline {
|
||||
agent { label 'linux' }
|
||||
|
||||
@@ -29,7 +29,7 @@ pipeline {
|
||||
name: 'HOST_LABEL',
|
||||
description: 'Label of host to run on',
|
||||
/* Using startTimeInMillis to randomize which host gets the update. */
|
||||
defaultValue: "maci7-0${(currentBuild.startTimeInMillis % 3) + 1}",
|
||||
defaultValue: "macos-0${(currentBuild.startTimeInMillis % 3) + 1}",
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -160,11 +160,3 @@ fixed because even bugfix version upgrade causes runtime errors with current ver
|
||||
## "web3-utils": "^1.2.1"
|
||||
|
||||
used for some abi encoding primitives
|
||||
|
||||
## "rn-emoji-keyboard": "https://github.com/status-im/rn-emoji-keyboard"
|
||||
|
||||
Used for taking emoji input, for custom emoji thumbnails for community channels
|
||||
|
||||
## "react-native-draggable-flatlist": "https://github.com/computerjazz/react-native-draggable-flatlist"
|
||||
|
||||
A drag-and-drop-enabled FlatList component for React Native
|
||||
|
||||
@@ -14,38 +14,6 @@ First release of Status app was merged in [fdroid/fdroiddata#7179](https://gitla
|
||||
|
||||
# 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:
|
||||
@@ -74,7 +42,6 @@ It contains a list of objects defining each release of the application. In order
|
||||
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:
|
||||
```
|
||||
> make shell TARGET=android
|
||||
> apkanalyzer manifest version-code StatusIm-Mobile-v1.12.0.apk
|
||||
2021022512
|
||||
```
|
||||
@@ -132,8 +99,6 @@ The original research was done in [#8512](https://github.com/status-im/status-re
|
||||
|
||||
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
|
||||
|
||||
@@ -1,46 +1,51 @@
|
||||
# Description
|
||||
|
||||
This document explains some of the steps that are involved in releases.
|
||||
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-react/job/tools/job/update-playstore-metadata/
|
||||
|
||||
# Release process
|
||||
|
||||
## Coordination
|
||||
|
||||
All the coordination is done in the `#release` channel on discord.
|
||||
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.
|
||||
## Using the script
|
||||
|
||||
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:
|
||||
You can use the script to cut a release branch:
|
||||
|
||||
`scripts/cut-release.sh`
|
||||
|
||||
Upon script call two branches will be created:
|
||||
- `release/a.b.x`
|
||||
- `chore/update-release-to-$version`
|
||||
This will create a branch:
|
||||
|
||||
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.
|
||||
`release/a.b.x`
|
||||
|
||||
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.
|
||||
Create a branch:
|
||||
|
||||
### Prepare branches manually
|
||||
`chore/update-release-to-$version`
|
||||
|
||||
#### Create a branch
|
||||
And if you have the `gh` command installed, it will automatically create a PR for you.
|
||||
|
||||
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.
|
||||
## Manual steps
|
||||
|
||||
### 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
|
||||
|
||||
### Update version
|
||||
|
||||
We need to update the `VERSION` file to reflect the release we want to build.
|
||||
|
||||
@@ -51,23 +56,20 @@ 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
|
||||
## Bugfixes before 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
|
||||
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)
|
||||
If that's 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.
|
||||
In order to change status-go, a similar workflow applies.
|
||||
First checkout the tag used in `status-go-version.json`.
|
||||
|
||||
`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)
|
||||
Create a branch on status-go named: `release/vx.y.z+hotfix.w` where
|
||||
|
||||
`x` is the `MAJOR` version
|
||||
`y` is the `MINOR` version
|
||||
@@ -83,13 +85,11 @@ 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`
|
||||
and push the tag to origin:
|
||||
|
||||
`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:
|
||||
Once that's done, update the status-react branch with the new tag:
|
||||
|
||||
`make shell`
|
||||
|
||||
@@ -99,17 +99,8 @@ And commit and push the changes
|
||||
|
||||
# Hotfix process
|
||||
|
||||
The hotfix process is basically identical to the workflow of a bugfix:
|
||||
The hotfix process is basically identical to the workflow above:
|
||||
|
||||
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:
|
||||
|
||||
https://ci.status.im/job/status-react/job/tools/job/update-playstore-metadata/
|
||||
|
||||
@@ -28,13 +28,6 @@ There are three steps necessary to start development, in this case for Android:
|
||||
The first two will continue watching for changes and keep re-building the app. They need to be ready first.
|
||||
The last one will exit once the app is up and ready.
|
||||
|
||||
# Updating Dependencies
|
||||
|
||||
* `make nix-update-pods` - iOS CocoaPods dependencies (updates `ios/Podfile` and `ios/Podfile.loc`)
|
||||
* `make nix-update-gradle` - Android Gradle/Maven dependencies (updates `nix/deps/gradle/deps.json`)
|
||||
* `make nix-update-clojure` - Clojure Maven dependencies (updates `nix/deps/clojure/deps.json`)
|
||||
* `make nix-update-gems` - Fastlane Ruby dependencies (updates `fastlane/Gemfile.lock` and `fastlane/gemset.nix`)
|
||||
|
||||
# Manual Steps
|
||||
|
||||
There are a few manual steps you might want to do in order to start contributing.
|
||||
|
||||
@@ -1,76 +1,62 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.4)
|
||||
rexml
|
||||
addressable (2.8.0)
|
||||
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.2.0)
|
||||
aws-partitions (1.525.0)
|
||||
aws-sdk-core (3.122.0)
|
||||
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.525.0)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-kms (1.51.0)
|
||||
aws-sdk-core (~> 3, >= 3.122.0)
|
||||
aws-sdk-kms (1.43.0)
|
||||
aws-sdk-core (~> 3, >= 3.112.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.105.1)
|
||||
aws-sdk-core (~> 3, >= 3.122.0)
|
||||
aws-sdk-s3 (1.93.0)
|
||||
aws-sdk-core (~> 3, >= 3.112.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.4)
|
||||
aws-sigv4 (1.4.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.2.3)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
claide (1.0.3)
|
||||
colored (1.2)
|
||||
colored2 (3.1.2)
|
||||
commander (4.6.0)
|
||||
highline (~> 2.0.0)
|
||||
commander-fastlane (4.4.6)
|
||||
highline (~> 1.7.2)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.4)
|
||||
declarative-option (0.1.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.2.3)
|
||||
excon (0.88.0)
|
||||
faraday (1.8.0)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0.1)
|
||||
emoji_regex (3.2.2)
|
||||
excon (0.79.0)
|
||||
faraday (1.3.0)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.1)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
ruby2_keywords
|
||||
faraday-cookie_jar (0.0.7)
|
||||
faraday (>= 0.8.0)
|
||||
http-cookie (~> 1.0.0)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday_middleware (1.2.0)
|
||||
faraday_middleware (1.0.0)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.2.5)
|
||||
fastlane (2.197.0)
|
||||
fastimage (2.2.3)
|
||||
fastlane (2.179.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.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)
|
||||
colored
|
||||
commander (~> 4.6)
|
||||
commander-fastlane (>= 4.4.6, < 5.0.0)
|
||||
dotenv (>= 2.1.1, < 3.0.0)
|
||||
emoji_regex (>= 0.1, < 4.0)
|
||||
excon (>= 0.71.0, < 1.0.0)
|
||||
@@ -79,20 +65,19 @@ GEM
|
||||
faraday_middleware (~> 1.0)
|
||||
fastimage (>= 2.1.0, < 3.0.0)
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-apis-androidpublisher_v3 (~> 0.3)
|
||||
google-apis-playcustomapp_v1 (~> 0.1)
|
||||
google-cloud-storage (~> 1.31)
|
||||
highline (~> 2.0)
|
||||
google-api-client (>= 0.37.0, < 0.39.0)
|
||||
google-cloud-storage (>= 1.15.0, < 2.0.0)
|
||||
highline (>= 1.7.2, < 2.0.0)
|
||||
json (< 3.0.0)
|
||||
jwt (>= 2.1.0, < 3)
|
||||
mini_magick (>= 4.9.4, < 5.0.0)
|
||||
multipart-post (~> 2.0.0)
|
||||
naturally (~> 2.2)
|
||||
optparse (~> 0.1.1)
|
||||
plist (>= 3.1.0, < 4.0.0)
|
||||
rubyzip (>= 2.0.0, < 3.0.0)
|
||||
security (= 0.1.3)
|
||||
simctl (~> 1.6.3)
|
||||
slack-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-table (>= 1.4.5, < 2.0.0)
|
||||
tty-screen (>= 0.6.3, < 1.0.0)
|
||||
@@ -105,71 +90,75 @@ GEM
|
||||
fastlane-plugin-diawi (2.1.0)
|
||||
rest-client (>= 2.0.0)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.13.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-core (0.4.1)
|
||||
google-api-client (0.38.0)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
httpclient (>= 2.8.1, < 3.a)
|
||||
googleauth (~> 0.9)
|
||||
httpclient (>= 2.8.1, < 3.0)
|
||||
mini_mime (~> 1.0)
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.a)
|
||||
retriable (>= 2.0, < 4.0)
|
||||
signet (~> 0.12)
|
||||
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.8.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.6.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-storage_v1 (0.9.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
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.5.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
google-cloud-errors (1.2.0)
|
||||
google-cloud-storage (1.34.1)
|
||||
google-cloud-errors (1.1.0)
|
||||
google-cloud-storage (1.31.0)
|
||||
addressable (~> 2.5)
|
||||
digest-crc (~> 0.4)
|
||||
google-apis-iamcredentials_v1 (~> 0.1)
|
||||
google-apis-storage_v1 (~> 0.1)
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
google-cloud-core (~> 1.2)
|
||||
googleauth (~> 0.9)
|
||||
mini_mime (~> 1.0)
|
||||
googleauth (1.1.0)
|
||||
googleauth (0.16.1)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
memoist (~> 0.16)
|
||||
multi_json (~> 1.11)
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
signet (~> 0.14)
|
||||
highline (1.7.10)
|
||||
http-accept (1.7.0)
|
||||
http-cookie (1.0.4)
|
||||
http-cookie (1.0.3)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.4.0)
|
||||
json (2.6.1)
|
||||
jwt (2.3.0)
|
||||
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.2021.0901)
|
||||
mime-types-data (3.2021.0225)
|
||||
mini_magick (4.11.0)
|
||||
mini_mime (1.1.2)
|
||||
mini_mime (1.1.0)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.0.0)
|
||||
nanaimo (0.3.0)
|
||||
naturally (2.2.1)
|
||||
netrc (0.11.0)
|
||||
optparse (0.1.1)
|
||||
os (1.1.4)
|
||||
os (1.1.1)
|
||||
plist (3.6.0)
|
||||
public_suffix (4.0.6)
|
||||
rake (13.0.6)
|
||||
representable (3.1.1)
|
||||
rake (13.0.3)
|
||||
representable (3.0.4)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
declarative-option (< 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
rest-client (2.1.0)
|
||||
http-accept (>= 1.7.0, < 2.0)
|
||||
@@ -179,21 +168,21 @@ GEM
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.5)
|
||||
rouge (2.0.7)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
ruby2_keywords (0.0.4)
|
||||
rubyzip (2.3.0)
|
||||
security (0.1.3)
|
||||
signet (0.16.0)
|
||||
addressable (~> 2.8)
|
||||
signet (0.15.0)
|
||||
addressable (~> 2.3)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
simctl (1.6.8)
|
||||
CFPropertyList
|
||||
naturally
|
||||
slack-notifier (2.3.2)
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
trailblazer-option (0.1.2)
|
||||
tty-cursor (0.7.1)
|
||||
tty-screen (0.8.1)
|
||||
tty-spinner (0.9.3)
|
||||
@@ -201,17 +190,16 @@ GEM
|
||||
uber (0.1.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8)
|
||||
unicode-display_width (1.8.0)
|
||||
unf_ext (0.0.7.7)
|
||||
unicode-display_width (1.7.0)
|
||||
webrick (1.7.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.21.0)
|
||||
xcodeproj (1.19.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (~> 3.2.4)
|
||||
xcpretty (0.3.0)
|
||||
rouge (~> 2.0.7)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, lib, bundlerEnv, ruby, makeWrapper }:
|
||||
{ stdenv, bundlerEnv, ruby, makeWrapper }:
|
||||
|
||||
let
|
||||
fastlane = stdenv.mkDerivation rec {
|
||||
@@ -28,7 +28,7 @@ let
|
||||
export FASTLANE_PLUGINFILE_PATH=$STATUS_REACT_HOME/fastlane/Pluginfile
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = with stdenv.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;
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
|
||||
sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.0";
|
||||
version = "2.7.0";
|
||||
};
|
||||
artifactory = {
|
||||
groups = ["default"];
|
||||
@@ -35,20 +35,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
|
||||
sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
version = "1.1.1";
|
||||
};
|
||||
aws-partitions = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "181a2xf9zs0hz77jkpmxidvkjzs65vsyqv1a31fcali7f0kvh4h9";
|
||||
sha256 = "0lm08fmahg3m87vbsfv73iswgvicdwcxfmkzr6v9qshlkg36lafd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.525.0";
|
||||
version = "1.442.0";
|
||||
};
|
||||
aws-sdk-core = {
|
||||
dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
|
||||
@@ -56,10 +56,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0krx8cfajc72gv6mpyb67vnhd2m2iya19846jgipgfris194gjm2";
|
||||
sha256 = "0i3x8p9gymc9977dcdkz5ca6mrmh7ym6p2mrscbh49nfd9gi5zg0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.122.0";
|
||||
version = "3.113.1";
|
||||
};
|
||||
aws-sdk-kms = {
|
||||
dependencies = ["aws-sdk-core" "aws-sigv4"];
|
||||
@@ -67,10 +67,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0qac9dd6qriz6ldghkr8ga74zz28jl109kmvhvag74a3qf7k9dwj";
|
||||
sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.51.0";
|
||||
version = "1.43.0";
|
||||
};
|
||||
aws-sdk-s3 = {
|
||||
dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
|
||||
@@ -78,10 +78,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12j7i6l52b6hsnj59grn0m1s9pn6l38zmra6ad8i12vdsvd185w7";
|
||||
sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.105.1";
|
||||
version = "1.93.0";
|
||||
};
|
||||
aws-sigv4 = {
|
||||
dependencies = ["aws-eventstream"];
|
||||
@@ -89,10 +89,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1wh1y79v0s4zgby2m79bnifk65hwf5pvk2yyrxzn2jkjjq8f8fqa";
|
||||
sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.0";
|
||||
version = "1.2.3";
|
||||
};
|
||||
babosa = {
|
||||
groups = ["default"];
|
||||
@@ -105,15 +105,14 @@
|
||||
version = "1.0.4";
|
||||
};
|
||||
CFPropertyList = {
|
||||
dependencies = ["rexml"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "00s388z1akvj2j77ylr1mgp02zxp4ybcgc4ds3bz4647dfk0cwxk";
|
||||
sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.4";
|
||||
version = "3.0.3";
|
||||
};
|
||||
claide = {
|
||||
groups = ["default"];
|
||||
@@ -145,16 +144,16 @@
|
||||
};
|
||||
version = "3.1.2";
|
||||
};
|
||||
commander = {
|
||||
commander-fastlane = {
|
||||
dependencies = ["highline"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1n8k547hqq9hvbyqbx2qi08g0bky20bbjca1df8cqq5frhzxq7bx";
|
||||
sha256 = "0y8d3ac9qwm1cg6rnpf8rcdsy1yxacrd2g2kl809xsp2vi973g65";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.6.0";
|
||||
version = "4.4.6";
|
||||
};
|
||||
declarative = {
|
||||
groups = ["default"];
|
||||
@@ -166,16 +165,26 @@
|
||||
};
|
||||
version = "0.0.20";
|
||||
};
|
||||
declarative-option = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.0";
|
||||
};
|
||||
digest-crc = {
|
||||
dependencies = ["rake"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1czaak53w8n13y1fr0q23gp0fhklvxjac5n562qj3xk6sh5ad0x2";
|
||||
sha256 = "118d5p02kdw6a5pi8af12dxma7q3b77zz5q5xjjf5kgp8qh1930a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.4";
|
||||
version = "0.6.3";
|
||||
};
|
||||
domain_name = {
|
||||
dependencies = ["unf"];
|
||||
@@ -203,31 +212,31 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0jsnrkfy345v66jlm2xrz8znivfnamg3mfzkddn414bndf2vxn7c";
|
||||
sha256 = "15xqimc9dr9yyrf09dy8g60s65bvgg6xyyr7q74352r9vhwyg357";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.3";
|
||||
version = "3.2.2";
|
||||
};
|
||||
excon = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15yrwawhvkjvfg0dsf8z81876ddj6161q0wh5s7pw4sim8z8pspr";
|
||||
sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.88.0";
|
||||
version = "0.79.0";
|
||||
};
|
||||
faraday = {
|
||||
dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"];
|
||||
dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi";
|
||||
sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
version = "1.3.0";
|
||||
};
|
||||
faraday-cookie_jar = {
|
||||
dependencies = ["faraday" "http-cookie"];
|
||||
@@ -240,46 +249,6 @@
|
||||
};
|
||||
version = "0.0.7";
|
||||
};
|
||||
faraday-em_http = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday-em_synchrony = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday-excon = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
faraday-httpclient = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday-net_http = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
@@ -290,67 +259,37 @@
|
||||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday-net_http_persistent = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
};
|
||||
faraday-patron = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday-rack = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday_middleware = {
|
||||
dependencies = ["faraday"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy";
|
||||
sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
version = "1.0.0";
|
||||
};
|
||||
fastimage = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "05i1fgqy4l40niwm9y56d04f876sm0cvc7q3w2rpddf8gya4lcs9";
|
||||
sha256 = "0lgr0vs9kg5622qaf2l3f37b238dncs037fisiygvkbq8sg11i68";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.2.5";
|
||||
version = "2.2.3";
|
||||
};
|
||||
fastlane = {
|
||||
dependencies = ["CFPropertyList" "addressable" "artifactory" "aws-sdk-s3" "babosa" "colored" "commander" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-apis-androidpublisher_v3" "google-apis-playcustomapp_v1" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multipart-post" "naturally" "optparse" "plist" "rubyzip" "security" "simctl" "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 = "1qlvg0sca8j1ryzxpvnmpjnh3fwmv6sk8l7mr9mv34z8rdy1iv3x";
|
||||
sha256 = "1wspwgc1q31049a20k2gnzmizdvq4jdmzyd2fnz7r4g68fygj3sj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.197.0";
|
||||
version = "2.179.0";
|
||||
};
|
||||
fastlane-plugin-clean_testflight_testers = {
|
||||
groups = ["default"];
|
||||
@@ -383,27 +322,27 @@
|
||||
};
|
||||
version = "1.1.3";
|
||||
};
|
||||
google-apis-androidpublisher_v3 = {
|
||||
dependencies = ["google-apis-core"];
|
||||
google-api-client = {
|
||||
dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1nxgda00y080xdavxs6nv5h2grwamds33b25nkjb4mij7385brs1";
|
||||
sha256 = "1jybks8i00rxrxx9mkx90dbdk6pczh2w757wchlavmrkrk0dp9s1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.13.0";
|
||||
version = "0.38.0";
|
||||
};
|
||||
google-apis-core = {
|
||||
dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "webrick"];
|
||||
dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet" "webrick"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1nzzj66clgr9ldmbjqkzgpvqmd6bjjmbw6khpgq80mp3gks4ycqy";
|
||||
sha256 = "1jx4jiyfjxd8pxlpi94f07cb5yvljb5rv7i8xzjq2xrrlvdf212a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.1";
|
||||
version = "0.3.0";
|
||||
};
|
||||
google-apis-iamcredentials_v1 = {
|
||||
dependencies = ["google-apis-core"];
|
||||
@@ -411,21 +350,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0slpmdjsxbjdqs7qwkyfk3sdnfy5wliwf89jy8hq7l87a31r7lvk";
|
||||
sha256 = "1gqpxcc0cjv4838q38g3mx9pgk7681w6irr6zwcygvnvbsvbbpsh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.0";
|
||||
};
|
||||
google-apis-playcustomapp_v1 = {
|
||||
dependencies = ["google-apis-core"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0v9y6avlnwxwv4vahhygrsmrpmric4zg8sxjd26vhhlxw6g8955b";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.0";
|
||||
version = "0.3.0";
|
||||
};
|
||||
google-apis-storage_v1 = {
|
||||
dependencies = ["google-apis-core"];
|
||||
@@ -433,10 +361,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0y6gyqj2cwsbdxk7wsrjzp9jz2hn2bk1zi1jjm5k311c3jlnj0r1";
|
||||
sha256 = "0q6d5grhrkyfxmzlv0y39i6wzq5ayq1lkp33vfcg9pm8jyzcz7b2";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.9.0";
|
||||
version = "0.3.0";
|
||||
};
|
||||
google-cloud-core = {
|
||||
dependencies = ["google-cloud-env" "google-cloud-errors"];
|
||||
@@ -465,10 +393,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0nakfswnck6grjpyhckzl40qccyys3sy999h5axk0rldx96fnivd";
|
||||
sha256 = "0q3h996b6vl2ryfbm9jwczjcbnwhkpqs6hingxp22rhzk7qxi9z0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.0";
|
||||
version = "1.1.0";
|
||||
};
|
||||
google-cloud-storage = {
|
||||
dependencies = ["addressable" "digest-crc" "google-apis-iamcredentials_v1" "google-apis-storage_v1" "google-cloud-core" "googleauth" "mini_mime"];
|
||||
@@ -476,10 +404,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1pvcpqx64cxm05dzr9q7zxrymjq4jk46ifd1p4b6c9v3v0c9ipb5";
|
||||
sha256 = "1bjkwnsii4svw2g09xjqpkq3mck820kj9nhx3vlv7rjmlh3bg68s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.34.1";
|
||||
version = "1.31.0";
|
||||
};
|
||||
googleauth = {
|
||||
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
|
||||
@@ -487,20 +415,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12zm6r7jxqv8k1a4iyijq2gcywk2d62nizbnabwsnhnzxwxwxc3s";
|
||||
sha256 = "1438alhx4n4rdgf6q7ni8qj1b10y8lr9z9spphhjyhacby1ifsjn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
version = "0.16.1";
|
||||
};
|
||||
highline = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
|
||||
sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.3";
|
||||
version = "1.7.10";
|
||||
};
|
||||
http-accept = {
|
||||
groups = ["default"];
|
||||
@@ -518,10 +446,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19370bc97gsy2j4hanij246hv1ddc85hw0xjb6sj7n1ykqdlx9l9";
|
||||
sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.4";
|
||||
version = "1.0.3";
|
||||
};
|
||||
httpclient = {
|
||||
groups = ["default"];
|
||||
@@ -548,20 +476,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
|
||||
sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.6.1";
|
||||
version = "2.5.1";
|
||||
};
|
||||
jwt = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0bg8pjx0mpvl10k6d8a6gc8dzlv2z5jkqcjbjcirnk032iriq838";
|
||||
sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.0";
|
||||
version = "2.2.2";
|
||||
};
|
||||
memoist = {
|
||||
groups = ["default"];
|
||||
@@ -589,10 +517,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1z5wvk6qi4ws1kjh7xn1rfirqw5m72bwvqacck1fjpbh33pcrwxv";
|
||||
sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2021.0901";
|
||||
version = "3.2021.0225";
|
||||
};
|
||||
mini_magick = {
|
||||
groups = ["default"];
|
||||
@@ -609,10 +537,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
|
||||
sha256 = "0kb7jq3wjgckmkzna799y5qmvn6vg52878bkgw35qay6lflcrwih";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.2";
|
||||
version = "1.1.0";
|
||||
};
|
||||
multi_json = {
|
||||
groups = ["default"];
|
||||
@@ -664,25 +592,15 @@
|
||||
};
|
||||
version = "0.11.0";
|
||||
};
|
||||
optparse = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0j9l5a1zszvrlggp1ldx82i4kkqx34g4g3amwp488s499w5l1cvj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.1";
|
||||
};
|
||||
os = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0gwd20smyhxbm687vdikfh1gpi96h8qb1x28s2pdcysf6dm6v0ap";
|
||||
sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.4";
|
||||
version = "1.1.1";
|
||||
};
|
||||
plist = {
|
||||
groups = ["default"];
|
||||
@@ -709,21 +627,21 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
|
||||
sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
|
||||
type = "gem";
|
||||
};
|
||||
version = "13.0.6";
|
||||
version = "13.0.3";
|
||||
};
|
||||
representable = {
|
||||
dependencies = ["declarative" "trailblazer-option" "uber"];
|
||||
dependencies = ["declarative" "declarative-option" "uber"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "09xwzz94ryp57wyjrqysiz1sslnxd4r4m9wayy63jb7f8qfx1kys";
|
||||
sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.1";
|
||||
version = "3.0.4";
|
||||
};
|
||||
rest-client = {
|
||||
dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
|
||||
@@ -771,20 +689,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
|
||||
sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.5";
|
||||
version = "0.0.4";
|
||||
};
|
||||
rubyzip = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
|
||||
sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.2";
|
||||
version = "2.3.0";
|
||||
};
|
||||
security = {
|
||||
groups = ["default"];
|
||||
@@ -802,10 +720,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0cgmadrpgkpcklvvm2cga9mnrfqwqlydwpask1wx617h5ha6954k";
|
||||
sha256 = "1vvxmfm9khxp35xs8qxc82i7hakylxbn7kx4apinvxaid6rlq60g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.16.0";
|
||||
version = "0.15.0";
|
||||
};
|
||||
simctl = {
|
||||
dependencies = ["CFPropertyList" "naturally"];
|
||||
@@ -818,6 +736,16 @@
|
||||
};
|
||||
version = "1.6.8";
|
||||
};
|
||||
slack-notifier = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.2";
|
||||
};
|
||||
terminal-notifier = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
@@ -839,16 +767,6 @@
|
||||
};
|
||||
version = "1.8.0";
|
||||
};
|
||||
trailblazer-option = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "18s48fndi2kfvrfzmq6rxvjfwad347548yby0341ixz1lhpg3r10";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.2";
|
||||
};
|
||||
tty-cursor = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
@@ -906,20 +824,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
|
||||
sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.8";
|
||||
version = "0.0.7.7";
|
||||
};
|
||||
unicode-display_width = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
|
||||
sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
version = "1.7.0";
|
||||
};
|
||||
webrick = {
|
||||
groups = ["default"];
|
||||
@@ -942,15 +860,15 @@
|
||||
version = "1.0.0";
|
||||
};
|
||||
xcodeproj = {
|
||||
dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo" "rexml"];
|
||||
dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xmzb1mdsnkpf7v07whz0n2wc8kg6785sc7i5zyawd8dl8517rp4";
|
||||
sha256 = "1411j6sfnz0cx4fiw52f0yqx4bgcn8cmpgi3i5rwmmahayyjz2fn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.21.0";
|
||||
version = "1.19.0";
|
||||
};
|
||||
xcpretty = {
|
||||
dependencies = ["rouge"];
|
||||
|
||||
@@ -1,26 +1,12 @@
|
||||
الحاله هي أداة اتصال خاصة وآمنة. يمكنك الدردشة مع الأصدقاء وتخزين الأصول واستكشاف مستقبل الويب دون استغلالها لبياناتك.
|
||||
|
||||
يجمع 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.
|
||||
|
||||
بثّ اﻷنشطة اﻹجتماعية
|
||||
شارك ما يدور في ذهنك وانشر التحديثات مع جهات الاتصال الخاصة بك في شبكة تواصل اجتماعية لامركزية حديثة ومقاومة للرقابة.
|
||||
|
||||
إنشاء حساب خاص
|
||||
حافظ على خصوصيتك مع إنشاء حساب مستعار. عند إنشاء حسابك المجاني ، لن تضطر أبدًا إلى إدخال رقم هاتف أو عنوان بريد إلكتروني أو حساب مصرفي. يتم إنشاء المفاتيح الخاصة بالمحفظة الخاصة بك وتخزينها على جهازك لضمان وصولك إلى أموالك ومعاملاتك المالية فقط.
|
||||
يكتشف
|
||||
الوصول إلى التطبيقات المستندة إلى الايثريوم على الويب٣ . لعب الألعاب وتبادل الأصول الرقمية وأكثر من ذلك.
|
||||
@@ -1 +1 @@
|
||||
Cryptocurrency wallet, Private messenger, and Ethereum DApp Browser
|
||||
الدردشة والتعامل بشكل آمن
|
||||
@@ -1 +1 @@
|
||||
Status: محفظة تشفير ، ماسنجر ، متصفح إيثريوم
|
||||
الحاله - الاتصالات الخاصة
|
||||
@@ -1,28 +1,12 @@
|
||||
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.
|
||||
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 ist Ihr Betriebssystem für Ethereum.
|
||||
In Status haben nur Sie die volle Kontrolle über Ihre Informationen.
|
||||
|
||||
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.
|
||||
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
|
||||
|
||||
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.
|
||||
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 +1 @@
|
||||
Wallet für Kryptowährungen, Privater Messenger und Ethereum DApp Browser - Alles in Einem
|
||||
Chatten und Transaktionen sicher tätigen
|
||||
@@ -1 +1 @@
|
||||
Status: Krypto-Wallet, Messenger, Ethereum-Browser
|
||||
Status - Private Kommunikation
|
||||
@@ -1,27 +1,12 @@
|
||||
Status combines a private messenger, secure crypto wallet, and Ethereum Web3 DApp browser into one powerful communication tool. Chat with friends and growing communities. Buy, sell, store, and exchange digital assets. Browse the decentralized internet without being exploited for your data.
|
||||
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.
|
||||
|
||||
Status is your operating system for Ethereum.
|
||||
With Status, you alone control your information.
|
||||
|
||||
PRIVATE MESSENGER
|
||||
Send private 1:1, private group, and public chats without unnecessary middlemen in your communication. Status is a text app that removes centralized choke points from your messages for greater privacy and secure messaging. An encrypted messaging app with end-to-end encryption and privacy by default so nobody other than you and your intended recipient can view your messages – not even Status. Some consider it a secret messenger.
|
||||
CHAT
|
||||
Status removes centralized third parties from your messages. Not only is your content protected, but so is your metadata – for ultimate privacy.
|
||||
|
||||
PEER-TO-PEER, BORDERLESS PAYMENTS
|
||||
Seamlessly integrated with the cryptocurrency wallet, the Status Messenger enables anyone, anywhere to send global payments directly in a chat.
|
||||
TRANSACT
|
||||
Store digital assets in your Status wallet. Send and request tokens from friends, or transact with decentralized applications.
|
||||
|
||||
SECURE ETHEREUM WALLET
|
||||
The Status crypto wallet allows you to securely send, store, trade, and exchange ethereum assets such as ETH, SNT, stable coins such as DAI, as well as NFTs. Confidently take control of your cryptocurrency and digital assets with this ethereum wallet app. The Status blockchain wallet currently only supports ERC-20 and ERC-721 assets; it does not support Bitcoin.
|
||||
|
||||
EARN WITH DEFI
|
||||
Put your crypto to work with the latest decentralized finance apps and decentralized exchanges (DEX) such as Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber and more.
|
||||
|
||||
WEB3 DAPP BROWSER
|
||||
Browse the secure web and access the growing ecosystem of decentralized applications with the secure browser. Status enables access to more than just DeFi – explore the latest marketplaces, collectibles, games, and social networks such as SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland and more.
|
||||
|
||||
CONNECT WITH YOUR COMMUNITY
|
||||
Explore, connect, and chat with your favorite communities and friends. Whether it is a small group of friends, an artist collective, crypto traders, or the next big organization - text and communicate with Status communities.
|
||||
|
||||
SOCIAL FEEDS
|
||||
Share what’s on your mind and post updates with your contacts in a truly censorship resistant, state-of-the-art decentralized social network.
|
||||
|
||||
PRIVATE ACCOUNT CREATION
|
||||
Stay private with pseudo-anonymous account creation. When creating your free account, you will NEVER have to enter a phone number, email address, or bank account. Your wallet private keys are locally generated and stored to ensure only you have access to your funds and financial transactions.
|
||||
EXPLORE
|
||||
Access Ethereum based applications on web3. Play games, exchange digital assets and more.
|
||||
|
After Width: | Height: | Size: 534 KiB |
|
Before Width: | Height: | Size: 389 KiB |
|
After Width: | Height: | Size: 458 KiB |
|
Before Width: | Height: | Size: 450 KiB |
|
After Width: | Height: | Size: 508 KiB |
|
Before Width: | Height: | Size: 878 KiB |
|
Before Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 928 KiB |
|
Before Width: | Height: | Size: 670 KiB |
|
Before Width: | Height: | Size: 583 KiB |
|
Before Width: | Height: | Size: 552 KiB |
@@ -1 +1 @@
|
||||
Cryptocurrency wallet, Private messenger, and Ethereum DApp Browser all in one
|
||||
Chat and transact securely
|
||||
@@ -1 +1 @@
|
||||
Status: Crypto Wallet, Messenger, Ethereum Browser
|
||||
Status - Private Communication
|
||||
@@ -1,27 +0,0 @@
|
||||
Status combina mensajería privada, una billetera criptográfica segura y el navegador Ethereum y Web3 de DApps en una poderosa herramienta de comunicación. Chatea con amigos y comunidades en crecimiento. Compra, vende, almacena e intercambia activos digitales. Navega por el Internet descentralizado sin ser explotado por tus datos.
|
||||
|
||||
Status es tu sistema operativo para Ethereum.
|
||||
|
||||
MENSAJERÍA PRIVADO
|
||||
Envía chats privados 1 a 1, grupales de carácter privado y públicos sin intermediarios innecesarios en tu comunicación. Status es una aplicación de chat que elimina los puntos de interferencia centralizados de tus mensajes para una mayor privacidad y seguridad. Una aplicación de mensajería cifrada con encriptación de extremo a extremo y privacidad de forma predeterminada para que nadie más que tú y el destinatario puedan ver los mensajes, ni siquiera Status puede hacerlo. Algunos lo consideran mensajería secreta.
|
||||
|
||||
PAGOS ENTRE PARES, SIN FRONTERAS
|
||||
Integrado a la perfección con la billetera de criptomonedas, la mensajería de Status permite a cualquier persona, en cualquier lugar, enviar pagos globales directamente en un chat.
|
||||
|
||||
BILLETERA SEGURA DE ETHEREUM
|
||||
La criptobilletera Status te permite enviar, almacenar, comerciar e intercambiar de forma segura activos de Ethereum como ETH, SNT, monedas estables como DAI y también NFTs. Toma con confianza el control de tus criptomonedas y activos digitales con esta aplicación de billetera Ethereum. La billetera Status blockchain actualmente solo admite activos ERC-20 y ERC-721; no es compatible con Bitcoin.
|
||||
|
||||
GANA CON DEFI
|
||||
Pon tu cripto a trabajar con las últimas aplicaciones de finanzas descentralizadas e intercambios descentralizados (DEX) como Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber y más.
|
||||
|
||||
NAVEGADOR DE DAPPS WEB3
|
||||
Navega por la web segura y accede al creciente ecosistema de aplicaciones descentralizadas con un navegador seguro. Status permite el acceso a más que sólo DeFi: explora los últimos mercados, coleccionables, juegos y redes sociales como SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland y más.
|
||||
|
||||
CONECTA CON TU COMUNIDAD
|
||||
Explora, conéctate y chatea con tus comunidades y amigos favoritos. Ya sea un pequeño grupo de amigos, un colectivo de artistas, comerciantes de criptomonedas o la próxima gran organización. Envía mensajes de texto y comunícate con las comunidades de Status.
|
||||
|
||||
FEEDS SOCIALES
|
||||
Actualiza tu estado y comparte lo que piensas con tus contactos en una red social a la vanguardia en descentralización y verdaderamente abierta.
|
||||
|
||||
CREACIÓN DE CUENTA PRIVADA
|
||||
Manténte en privado con la creación de cuentas pseudoanónimas. Al crear tu cuenta gratuita, NUNCA tendrás que ingresar un número de teléfono, dirección de correo electrónico o cuenta bancaria. Las claves privadas de tu billetera se generan y almacenan localmente para garantizar que solo tú tengas acceso a tus fondos y transacciones financieras.
|
||||
|
Before Width: | Height: | Size: 547 KiB |
|
Before Width: | Height: | Size: 466 KiB |
|
Before Width: | Height: | Size: 520 KiB |
@@ -1 +0,0 @@
|
||||
Billetera de Criptomonedas, Mensajería Privada y Navegador Ethereum de DApps, todo en uno
|
||||
@@ -1 +0,0 @@
|
||||
Status: Criptobilletera, Mensajería, Navegador Ethereum
|
||||
@@ -1,27 +0,0 @@
|
||||
Status combina un mensajero privado, una billetera criptográfica segura y el navegador Ethereum y Web3 de DApps en una poderosa herramienta de comunicación. Chateá con amigos y comunidades en crecimiento. Comprá, vendé, almacená e intercambiá activos digitales. Naveguá por Internet descentralizado sin ser explotado por tus datos.
|
||||
|
||||
Status es tu sistema operativo para Ethereum.
|
||||
|
||||
MENSAJERO PRIVADO
|
||||
Enviá chats privados 1: 1, grupales privados y públicos sin intermediarios innecesarios en tu comunicación. Status es una aplicación de texto que elimina los puntos de estrangulamiento centralizados de tus mensajes para una mayor privacidad y seguridad. Una aplicación de mensajería cifrada con cifrado de extremo a extremo y privacidad de forma predeterminada para que nadie más que vos y el destinatario previsto puedan ver sus mensajes, ni siquiera Status. Algunos lo consideran un mensajero secreto.
|
||||
|
||||
PAGOS COMUNES, SIN FRONTERAS
|
||||
Integrado a la perfección con la billetera de criptomonedas, Status Messenger permite a cualquier persona, en cualquier lugar, enviar pagos globales directamente en un chat.
|
||||
|
||||
CARTERA SEGURA DE ETHEREUM
|
||||
La billetera cripto Status te permite enviar, almacenar, comerciar e intercambiar de forma segura activos de Ethereum como ETH, SNT, monedas estables como DAI y NFT. Tomá con confianza el control de tus criptomonedas y activos digitales con esta aplicación de billetera Ethereum. La billetera Status blockchain actualmente solo admite activos ERC-20 y ERC-721; no es compatible con Bitcoin.
|
||||
|
||||
GANA CON DEFI
|
||||
Poné tu cripto a trabajar con las últimas aplicaciones de finanzas descentralizadas e intercambios descentralizados (DEX) como Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber y más.
|
||||
|
||||
NAVEGADOR WEB3 DAPP
|
||||
Navegá por la web segura y accedé al creciente ecosistema de aplicaciones descentralizadas con el navegador seguro. Status permite el acceso a más que solo DeFi: explorá los últimos mercados, coleccionables, juegos y redes sociales como SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland y más.
|
||||
|
||||
CONECTATE CON TU COMUNIDAD
|
||||
Explorá, conectate y chateá con tus comunidades y amigos favoritos. Ya sea un pequeño grupo de amigos, un colectivo de artistas, comerciantes de criptomonedas o la próxima gran organización, enviá mensajes de texto y comunicate con las comunidades de Status.
|
||||
|
||||
FEEDS SOCIALES
|
||||
Compartí lo que tenés en mente y publicá actualizaciones con tus contactos en una red social descentralizada, totalmente abierta y de última generación.
|
||||
|
||||
CREACIÓN DE CUENTA PRIVADA
|
||||
Mantenete privado con la creación de cuentas pseudoanónimas. Al crearte tu cuenta gratuita, NUNCA tendrás que ingresar un número de teléfono, dirección de correo electrónico o cuenta bancaria. Las claves privadas de tu billetera se generan y almacenan localmente para garantizar que solo vos tengas acceso a tus fondos y transacciones financieras.
|
||||
|
Before Width: | Height: | Size: 547 KiB |
|
Before Width: | Height: | Size: 466 KiB |
|
Before Width: | Height: | Size: 520 KiB |
@@ -1 +0,0 @@
|
||||
Billetera de Criptomonedas, Mensajería Privada y Navegador Ethereum de DApps, Todo en uno
|
||||
@@ -1 +0,0 @@
|
||||
Status: Criptobilletera, Mensajero, Navegador Ethereum
|
||||
@@ -1,26 +1,12 @@
|
||||
Status combina mensajería privada, monedero crypto seguro y un navegador Ethereum de Web3 para DApps en una potente herramienta de comunicación. Chatea con amigos y comunidades que crecen. Compra, vende, almacena e intercambia activos digitales. Navega por el Internet descentralizado sin abusos por tus datos.
|
||||
Status es tu sistema operativo para Ethereum.
|
||||
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.
|
||||
|
||||
MENSAJERÍA PRIVADA
|
||||
Envía chats privados 1 a 1, grupales tanto públicos como privados, sin intermediarios innecesarios en tu comunicación. Status es una aplicación de chat que elimina los intermediarios centralizados de tus mensajes para una mayor privacidad y seguridad. Una aplicación de mensajería cifrada con encriptación de extremo a extremo y privacidad por defecto, para que nadie más que tú y el destinatario puedan ver los mensajes. Ni siquiera Status puede hacerlo. Algunos lo consideran mensajería secreta.
|
||||
Solo tú controlas tu información, con Status.
|
||||
|
||||
PAGOS ENTRE PARES, SIN FRONTERAS
|
||||
Integrado a la perfección con la billetera de criptomonedas, la mensajería de Status permite a cualquier persona, en cualquier lugar, enviar pagos globales directamente en un chat.
|
||||
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.
|
||||
|
||||
MONEDERO ETHEREUM SEGURO
|
||||
La criptobilletera Status te permite enviar, almacenar, comerciar e intercambiar de forma segura activos de Ethereum como ETH, SNT, monedas estables como DAI y también NFTs. Toma con confianza el control de tus criptomonedas y activos digitales con esta aplicación de monedero Ethereum. El monedero blockchain Status actualmente solo admite activos ERC-20 y ERC-721; no es compatible con Bitcoin.
|
||||
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.
|
||||
|
||||
GANA CON DEFI
|
||||
Pon tu crypto a trabajar con las últimas aplicaciones de finanzas descentralizadas e intercambios descentralizados (DEX) como Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber y más.
|
||||
|
||||
NAVEGADOR DE DAPPS WEB3
|
||||
Navega por la web segura y accede al creciente ecosistema de aplicaciones descentralizadas con un navegador seguro. Status permite el acceso a mucho más que DeFi: explora los últimos mercados, coleccionables, juegos y redes sociales como SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland y más.
|
||||
|
||||
CONECTA CON TU COMUNIDAD
|
||||
Explora, conéctate y chatea con tus comunidades y amigos favoritos. Ya sea un pequeño grupo de amigos, un colectivo de artistas, comerciantes de criptomonedas o la próxima gran organización. Envía mensajes de texto y comunícate con las comunidades de Status.
|
||||
|
||||
FEEDS SOCIALES
|
||||
Actualiza tu estado y comparte lo que piensas con tus contactos en una red social a la vanguardia en descentralización y verdaderamente abierta.
|
||||
|
||||
CREACIÓN DE CUENTA PRIVADA
|
||||
Mantén tu privacidad con la creación de cuentas pseudoanónimas. Al crear tu cuenta gratuita, NUNCA tendrás que ingresar un número de teléfono, dirección de correo electrónico o cuenta bancaria. Las claves privadas de tu monedero se generan y almacenan localmente para garantizar que solo tú tengas acceso a tus fondos y transacciones financieras.
|
||||
EXPLORA
|
||||
Accede a aplicaciones basadas en Ethereum de la Web3. Juega, intercambia bienes digitales y más.
|
||||
@@ -1 +1 @@
|
||||
Monedero de Criptomonedas, Mensajería Privada y Navegador Ethereum de DApps, todo en uno
|
||||
Chatea y transfiere de forma segura
|
||||
@@ -1 +1 @@
|
||||
Status: Monedero Crypto, Mensajería, Navegador Ethereum
|
||||
Status - Comunicación Privada
|
||||
@@ -1,27 +1,12 @@
|
||||
Pinagsasama ng Status ang isang pribadong messenger, ligtas na crypto wallet, at browser ng Ethereum Web3 DApp sa isang malakasang tool sa komunikasyon. Makipag-chat sa mga kaibigan at sa lumalaking komunidad. Bumili, magbenta, mag-store, at makipagpalitan ng mga digital na assets. Mag-browse sa desentralisadong internet nang hindi sinasamantala ang iyong data.
|
||||
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.
|
||||
|
||||
Ang Status ay ang iyong operating system para sa Ethereum.
|
||||
Sa Status, ikaw lamang ang kumokontrol sa iyong impormasyon.
|
||||
|
||||
PRIBADONG MESSENGER
|
||||
Magpadala ng pribadong 1: 1, pribadong grupo, at mga pampublikong pakikipag-chat nang hindi kinakailangang mga middlemen sa iyong pakikipag-usap. Ang Status ay isang text app na nagtanggal ng sentralisadong mga choke points mula sa iyong mga mensahe para sa higit na pribado at ligtas na pagmemensahe. Isang naka-encrypt na app ng pagmemensahe na may end-to-end na pag-encrypt at pagka-pribado bilang default upang walang iba maliban sa iyo at ng iyong nilalayong tatanggap na maaaring tumingin ng iyong mga mensahe - kahit ang Status, hindi. Ang ilan ay itinuturing itong isang lihim na messenger.
|
||||
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.
|
||||
|
||||
PEER-TO-PEER, WALANG HANGGANAN NA PAGBABAYAD
|
||||
Mahusay na isinama sa cryptocurrency wallet, pinapayagan ng Status Messenger ang sinuman, kahit saan upang magpadala ng mga pandaigdigang pagbabayad nang direkta sa isang chat.
|
||||
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.
|
||||
|
||||
LIGTAS NA ETHEREUM WALLET
|
||||
Pinapayagan ka ng Status crypto wallet na ligtas na magpadala, mag-imbak, makipagkalakalan, at makipagpalitan ng mga Ethereum assets tulad ng ETH, SNT, stable coins tulad ng DAI, pati na rin ang mga NFT. May kumpiyansa na kontrolin ang iyong cryptocurrency at mga digital na assets gamit ang ethereum wallet app na ito. Ang Status blockchain wallet ay kasalukuyang sumusuporta lamang sa mga assets ng ERC-20 at ERC-721; hindi nito sinusuportahan ang Bitcoin.
|
||||
|
||||
KUMITA SA DEFI
|
||||
Gawin ang iyong crypto upang gumana sa pinakabagong desentralisadong mga apps sa pananalapi at desentralisadong palitan (DEX) tulad ng Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber at marami pa.
|
||||
|
||||
WEB3 DAPP BROWSER
|
||||
I-browse ang ligtas na web at i-access ang lumalaking ecosystem ng desentralisadong mga aplikasyon gamit ang ligtas na browser. Pinapayagan ng Status ang pag-access sa higit pa sa DeFi - siyasatin ang pinakabagong mga pamilihan, koleksiyon, laro, at mga social networks tulad ng SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland at marami pa.
|
||||
|
||||
KUMONEKTA SA IYONG KOMUNIDAD
|
||||
Magsiyasat, kumonekta, at makipag-chat sa iyong mga paboritong komunidad at kaibigan. Kung ito man ay isang maliit na pangkat ng mga kaibigan, kolektibong Artist, mga mangangalakal ng crypto, o ang susunod na malaking organisasyon - makipag-text at makipag-usap sa mga pamayanan ng Status.
|
||||
|
||||
SOCIAL FEEDS
|
||||
Ibahagi kung ano ang nasa isip mo at mag-post ng mga pag-update sa iyong mga contacts sa isang tunay na bukas na pamamaraan, state-of-the-art na desentralisadong social network.
|
||||
|
||||
PAGLIKHA NG PRIBADONG ACCOUNT
|
||||
Manatiling pribado sa paggawa ng pseudo-anonymous na account. Kapag lumilikha ng iyong libreng account, HINDI mo na kailangang ibigay ang numero ng telepono, email address, o bank account. Ang iyong wallet private keys ay lokal na nabuo at nakaimbak upang matiyak na ikaw lamang ang may access sa iyong mga pondo at mga transaksyong pampinansyal.
|
||||
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 +1 @@
|
||||
Crypto Wallet, Messenger at Ethereum Dapp Browser
|
||||
Makipag-chat at makipag-transaksyon nang ligtas
|
||||
@@ -1 +1 @@
|
||||
Status: Crypto Wallet, Messenger at Ethereum Browser
|
||||
Status - Pribadong Komunikasyon
|
||||
@@ -1,27 +1,14 @@
|
||||
Status combine une messagerie privée, un portefeuille crypto sécurisé et un navigateur Ethereum Web3 DApp en un seul outil de communication puissant. Discutez avec des amis et des communautés en expansion rapide. Achetez, vendez, stockez et échangez des actifs numériques. Naviguez sur l’internet décentralisé sans que vos données soient exploitées.
|
||||
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.
|
||||
|
||||
Status est votre système d'exploitation pour Ethereum.
|
||||
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.
|
||||
|
||||
MESSAGERIE PRIVÉE
|
||||
Envoyez des messages privés en tête-à-tête, en groupe privé et public sans intermédiaires inutiles dans votre communication. Status est une application de texte qui supprime les goulots d'étranglement centralisés de vos messages pour une plus grande confidentialité et une messagerie sécurisée. Une application de messagerie cryptée avec chiffrement de bout en bout et confidentialité par défaut afin que personne d'autre que vous et votre destinataire ne puisse voir vos messages, pas même Status. Certains le considèrent comme une messagerie secrète.
|
||||
TRANSACTIONNEZ
|
||||
Stockez des actifs numériques dans votre portefeuille Status. Échangez des tokens avec
|
||||
vos amis et effectuez des transactions à partir d’applications décentralisées.
|
||||
|
||||
PAIEMENTS PAIR-À-PAIR, SANS FRONTIÈRES
|
||||
Intégré de manière transparente au portefeuille de crypto-monnaie, Status Messenger permet à n'importe qui, n'importe où, d'envoyer des paiements globaux directement dans une conversation.
|
||||
|
||||
PORTEFEUILLE ETHEREUM SÉCURISÉ
|
||||
Le portefeuille crypto Status vous permet d'envoyer, de stocker, d'échanger et de faire des transactions avec des actifs Ethereum tels que ETH, SNT et des stablecoins telles que DAI, ainsi que des NFT, en toute sécurité. Prenez le contrôle de votre crypto-monnaie et de vos actifs numériques en toute confiance avec cette application de portefeuille Ethereum. Le portefeuille blockchain Status ne prend actuellement en charge que les actifs ERC-20 et ERC-721; il ne prend pas en charge Bitcoin.
|
||||
|
||||
GAGNEZ AVEC DEFI
|
||||
Utilisez votre crypto avec les dernières applications financières décentralisées et les échanges décentralisés (DEX) tels que Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber et plus encore.
|
||||
|
||||
NAVIGATEUR WEB3 DAPP
|
||||
Naviguez sur le web sécurisé et accédez à l'écosystème en croissance des applications décentralisées avec le navigateur sécurisé. Status permet d'accéder à plus que DeFi - explorez les derniers marchés, objets à collectionner, jeux et réseaux sociaux tels que SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland et plus encore.
|
||||
|
||||
CONNECTEZ-VOUS AVEC VOTRE COMMUNAUTÉ
|
||||
Explorez, connectez-vous et discutez avec vos communautés préférées et vos amis. Qu'il s'agisse d'un petit groupe d'amis, d'un collectif d'artistes, de négociants en crypto ou de la prochaine grande organisation, envoyez des SMS et communiquez avec les communautés Status.
|
||||
|
||||
RÉSEAUX SOCIAUX
|
||||
Partagez ce qui vous passe par la tête et publiez votre actualité pour vos contacts sur un réseau social décentralisé ultramoderne, résistant à la censure.
|
||||
|
||||
CRÉATION DE COMPTE PRIVÉ
|
||||
Restez privé avec la création de compte pseudo-anonyme. Lors de la création de votre compte gratuit, vous n'aurez JAMAIS à saisir de numéro de téléphone, d'adresse e-mail ou de compte bancaire. Les clés privées de votre portefeuille sont générées et stockées localement pour garantir que seul vous avez accès à vos fonds et à vos transactions financières.
|
||||
EXPLOREZ
|
||||
Accédez à des applications web3 basées sur Ethereum. Jouez, échangez des ressources
|
||||
numériques et plus encore.
|
||||
@@ -1 +1 @@
|
||||
Portefeuille de cryptomonnaie, messagerie privée et navigateur Ethereum DApp, tout en un
|
||||
Discutez et effectuez des transactions en toute sécurité
|
||||
@@ -1 +1 @@
|
||||
Status: portefeuille crypto, messagerie, navigateur Ethereum
|
||||
Status - Communication Privée
|
||||
@@ -1,29 +1,12 @@
|
||||
Status combina un’app di messaggistica privata, un portafoglio sicuro di criptovalute, e un Browser Ethereum Web3 DApp browser in un potente strumento di comunicazione. Chatta con amici e fai crescere comunità. Compra, vendi, conserva e scambia asset digitali. Esplora l’internet decentralizzato senza essere sfruttato per i tuoi dati.
|
||||
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.
|
||||
|
||||
Status è il tuo sistema operativo nel mondo di Ethereum.
|
||||
Con Status hai il pieno controllo delle informazioni che ti riguardano.
|
||||
|
||||
MESSAGGISTICA PRIVATA
|
||||
Invia messaggi privati a singoli utenti oppure imposta chat di gruppo private. Crea anche canali pubblici senza bisogno di superflui intermediari. Status è un’app di messaggistica che rimuove componenti centralizzati aumentando la privacy e la sicurezza intrinseca. L’app di messaggistica opera con una crittatura end-to-end e una elevata privacy impostata di default, e in questo modo nessun’altro se non tu e i tuoi destinatari potete visualizzare i vostri messaggi – perfino Status è escluso dall’accesso a questi contenuti. Alcuni la considerano per questa un’app di messaggistica segreta.
|
||||
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.
|
||||
|
||||
PAGAMENTI PEER-TO-PEER E SENZA CONFINI
|
||||
Grazie ad un portafoglio di criptovalute nativamente integrato, l’App di messaggistica Status permette ai suoi utilizzatori di inviare, ovunque nel mondo, dei pagamenti direttamente dall’interno delle chat.
|
||||
EFFETTUA TRANSAZIONI
|
||||
Conserva asset digitali nel portafoglio di Status. Scambia token con i tuoi amici o effettua transazioni con le applicazioni decentralizzate.
|
||||
|
||||
UN PORTAFOGLIO ETHEREUM SICURO
|
||||
Il portafoglio di criptovalute di Status ti permette di inviare, conservare, vendere e scambiare in sicurezza assets ethereum come token ETH, SNT, oltre alle stable coins come DAI o NFTs. Prendi controllo con fiducia delle tue cripto e dei tuoi asset digitali grazie a questo portafoglio. Il portafoglio di Status ad oggi consente e supporta solo token ERC-20 e ERC-721, quindi non può trattare Bitcoin.
|
||||
|
||||
GUADAGNA CON DEFI (FINANZA DECENTRALIZZATA)
|
||||
Fai lavorare le tue criptovalute grazie alle più recenti app di finanza decentralizzata e gli exchange (DEX) come Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber e altri.
|
||||
|
||||
BROWSER WEB3 DAPP
|
||||
Naviga sicuro sul web e accedi al crescente ecosistema di applicazioni decentralizzate con il browser sicuro nativo di Status. Status permette l'accesso a più di una semplice DeFi - esplora i più recenti marketplace, oggetti da collezione, giochi e social network come SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland e altri.
|
||||
|
||||
CONNETTITI CON LA TUA COMUNITA’
|
||||
Esplora, connettiti e chatta con le tue comunità preferite ed i tuoi amici. Che si tratti di un piccolo gruppo di amici, un collettivo di artisti, traders di criptovalute o la prossima grande azienda - scrivi e comunica con le comunità di Status.
|
||||
|
||||
|
||||
|
||||
FEED SOCIAL
|
||||
Condividi ciò che ti passa per la testa e pubblica aggiornamenti con i tuoi contatti in un autentico social network decentralizzato sviluppato secondo le più moderne tecnologie e resistente alla censura.
|
||||
|
||||
CREAZIONE DI PROFILI ANONIMIZZATI
|
||||
Mantieniti riservato con la creazione di un account pseudo-anonimo. Quando crei il tuo account gratuito, non dovrai MAI inserire un numero di telefono, un indirizzo email o un conto bancario. Le chiavi private del tuo portafoglio sono generate e conservate localmente per garantire che solo tu abbia accesso ai tuoi fondi e alle tue transazioni finanziarie.
|
||||
ESPLORA
|
||||
Accedi alle applicazioni Web3 basate su Ethereum. Gioca, scambia asset digitali e molto altro.
|
||||
@@ -1 +1 @@
|
||||
Portafoglio di criptovalute, App di messaggistica sicura e Browser per Dapp Ethereum in un unica soluzione integrata
|
||||
Chatta ed esegui transazioni in modo sicuro
|
||||
@@ -1 +1 @@
|
||||
Status: Portafoglio di criptovalute, App di messaggistica e Browser Ethereum
|
||||
Status - Comunicazione Privata
|
||||
@@ -1,27 +1,12 @@
|
||||
스테이터스는 비밀 메신저, 안전한 암호화폐 지갑, 이더리움 웹3 브라우저 모두를 하나로 모은 커뮤니케이션 도구입니다. 친구들과 안전하게 소통하고 다양한 관심사에 기반한 커뮤니티와 함께 하세요.
|
||||
스테이터스는 검열과 감시 없는 안전한 커뮤니케이션 도구입니다. 스테이터스와 함께 여러분의 친구들과 자유롭게 채팅하고, 디지털 자산을 안전하게 보관하거나, 데이터를 유출하지 않는 안전한 웹의 미래를 체험해보세요.
|
||||
|
||||
스테이터스는 여러분의 이더리움 운영체제입니다.
|
||||
스테이터스에서 사용되는 모든 데이터의 주권은 여러분에게 있습니다. 여러분의 데이터는 안전하게 보호됩니다.
|
||||
|
||||
비밀 메신저
|
||||
중앙화된 서버 없이 안전하게 소통할 수 있는 1:1, 그룹 채팅, 또는 오픈채팅에 참여해보세요. 스테이터스는 탈중앙화된 방법으로 여러분의 메시지를 전달하는 프라이버시와 보안에 특화된 메신저입니다. 모든 메시지는 기본적으로 종단간 암호화되어 여러분의 프라이버시를 안전하게 지킵니다. 여러분과 메시지 수신인 외에는, 스테이터스를 포함하여 그 누구도 여러분의 메시지를 볼 수 없습니다. 비밀 메신저로 생각할 수 도 있습니다.
|
||||
채팅
|
||||
스테이터스는 메시징 네트워크에서 제 3의 중개자나 중앙화된 요소를 제거했습니다. 여러분의 채팅은 컨텐츠 뿐만아니라 메타 데이터까지 안전하게 보호됩니다. 최고의 프라이버시를 보장하는 메신저를 활용해보세요.
|
||||
|
||||
국경없는 P2P 결제
|
||||
스테이터스 메신저는 암호화폐 지갑과 매끄럽게 연동되어, 언제든지 채팅창을 통해 전세계 사람들과 암호화폐를 주고 받을 수 있습니다.
|
||||
거래
|
||||
스테이터스 지갑에 여러분의 디지털 자산을 안전하게 보관해보세요. 친구에게 토큰을 요청하거나 전달할 수 있고, 탈중앙 앱으로 거래를 수행할 수 있습니다.
|
||||
|
||||
안전한 이더리움 지갑
|
||||
스테이터스 암호화폐 지갑은 ETH, SNT, DAI와 같은 스테이블 코인, NFT 등 다양한 이더리움 자산을 안전하게 보관하거나 입출금, 거래할 수 있습니다.여러분의 이더리움 자산을 안전한 지갑에 보관하세요. 스테이터스 블록체인 지갑은 현재 ERC-20 및 ERC-721 자산을 지원하며, 비트코인은 아직 지원하지 않습니다.
|
||||
|
||||
DeFi와 함께 하세요
|
||||
스테이터스와 함께 여러분의 암호화폐 자산을 탈중앙 금융(DeFi) 및 탈중앙 거래소(DEX)을 활용하여 투자해보세요. Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber 등 다양한 플랫폼을 활용하실 수 있습니다.
|
||||
|
||||
웹3 디앱 브라우저
|
||||
안전한 웹3 브라우저를 통해 탈중앙 애플리케이션 생태계를 브라우징 해보세요. 스테이터스는 DeFi 외에도 마켓플레이스, 게임, 소셜 네트워크, 수집 등 다양한 디앱 브라우징을 지원합니다. SuperRare, Gitcoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland 등 유명한 디앱들을 스테이터스와 함께 하세요!
|
||||
|
||||
커뮤니티와 소통하세요
|
||||
여러분의 관심사와 흥미에 맞는 커뮤니티를 찾아 안전한 공간에서 소통하세요. 친구, 아티스트, 암호화폐 투자자, 회사 등 다양한 그룹 및 커뮤니티와 모임을 만들어 함께 할 수 있습니다.
|
||||
|
||||
소셜 피드
|
||||
여러분의 생각을 완전히 탈중앙화 된 소셜 네트워크에 공유해보세요.
|
||||
|
||||
익명 계정 생성
|
||||
모든 스테이터스 계정은 무료로 생성되며, 스테이터스는 계정 생성 시 전화번호, 이메일 주소, 계좌번호와 같은 여러분의 소중한 개인정보를 절대 요구하지 않습니다. 여러분의 지갑 개인키는 기기의 로컬에서 안전하게 생성되어, 오로지 여러분만이 여러분의 자산에 접근할 수 있습니다.
|
||||
체험
|
||||
이더리움 및 Web 3 기반의 다양한 애플리케이션들을 활용해보세요. 게임, 거래소, 디지털 자산 관리 등 다양한 서비스들을 체험해볼 수 있습니다.
|
||||
@@ -1 +1 @@
|
||||
암호화폐 지갑, 비밀 메신저, 이더리움 디앱 브라우저 모두를 한번에
|
||||
검열과 감시 없는 채팅 및 거래
|
||||
@@ -1 +1 @@
|
||||
스테이터스: 암호화폐 지갑, 메신저, 이더리움 브라우저
|
||||
스테이터스 - 안전한 커뮤니케이션
|
||||
@@ -1,27 +1,12 @@
|
||||
Status combina um messenger privado, uma carteira de criptomoedas segura e um Navegador Ethereum Web3 em uma ferramenta de comunicação poderosa. Converse com amigos e comunidades em crescimento. Compre, venda, guarde e troque seus ativos digitais. Navegue pela internet descentralizada sem ter seus dados coletados e explorados.
|
||||
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.
|
||||
|
||||
Status é o seu sistema operacional para Ethereum.
|
||||
Com a Status, apenas você controlas as suas informações.
|
||||
|
||||
MESSENGER PRIVADO
|
||||
Envie mensagens privadas 1:1, grupos privados, e chats públicos sem intermediários desnecessários na sua comunicação. Status é um app de chat que remove os servidores centralizados por melhor privacidade e segurança nas suas mensagens. Um app de mensagens com criptografia ponta-a-ponta e utilizando privacidade como um padrão, de forma que ninguém além de você e seu destinatário consiga ver suas mensagens. – nem mesmo a própria Status. Algumas pessoas consideram isso um messenger secreto.
|
||||
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.
|
||||
|
||||
PAGAMENTOS P2P (PEER-TO-PEER), SEM FRONTEIRAS
|
||||
Perfeitamente integrado com a carteira de criptomoedas, o Messenger Status possibilita que qualquer pessoa, em qualquer lugar, possa enviar pagamentos globais diretamente pelo chat.
|
||||
TRANSACIONA
|
||||
Armazene ativos digitais na sua carteira Status. Envie e solicite tokens aos seus amigos, ou transacione com aplicações descentralizadas.
|
||||
|
||||
CARTEIRA ETHEREUM SEGURA
|
||||
A carteira de Criptomoedas da Status permite que você envie, guarde e troque de forma segura ativos ethereum como ETH, SNT, stable coins como DAI, bem como NFTs. Tome controle de suas criptomoedas e ativos digitais com este app de carteira para ethereum. A carteira da Status atualmente suporta apenas ativos ERC-20 e ERC-721; ela não suporta Bitcoin.
|
||||
|
||||
FATURE COM DEFI
|
||||
Coloque suas criptos para trabalhar com os mais atuais apps de finanças descentralizadas e corretoras descentralizadas (DEX) como Maker, Aave, Uniswap, Synthetic, PoolTogether, Zerion, Kyber e outros.
|
||||
|
||||
NAVEGADOR DE DAPPS WEB3
|
||||
Navegue pela web segura e acesse o crescente ecossistema de aplicações descentralizadas com o broser seguro. A Status possibilita acesso a mais do que apenas DeFi - explore os mais atuais marketplaces, colecionáveis, games, e mídias sociais como SuperRare, GitCoin, Dragonereum, Axie Infinity, Open Sea, CryptoKitties, Decentraland, e mais.
|
||||
|
||||
CONNECTE-SE COM A SUA COMUNIDADE
|
||||
Explore, connecte-se, e converse com sias comunidades favoritas e amigos. Seja apenas um pequeno grupo de amigos, uma entrevista com um artista, crypto traders, ou a próxima grande empresa - converse e se comunique com as comunidades da Status.
|
||||
|
||||
SOCIAL FEEDS
|
||||
Compartilhe o que está passando pela sua cabeça e publique atualizações com seus contatos em uma rede social descentralizada e realmente aberta.
|
||||
|
||||
CRIAÇÃO PRIVATIVA DE CONTA
|
||||
Mantenha a privacidade com a criação de conta pseudo-anônima. Quando criar sua conta grátis, nós NUNCA vamos pedir seu telefone, e-mail, ou conta bancária. As chaves privadas da sua carteira são geradas e guardadas localmente para garantir que apenas você tenha acesso aos seus fundos e transações financeiras.
|
||||
EXPLORA
|
||||
Acesse à aplicações baseadas na Ethereum na web3. Joge jogos, troce ativos digitais e muito mais.
|
||||
@@ -1 +1 @@
|
||||
Carteira de Criptomoedas, Messenger Privado e Browser de DApps em um único app
|
||||
Converse e faça transações de uma forma segura
|
||||