Compare commits

..
829 changed files with 11705 additions and 19733 deletions
-2
View File
@@ -35,5 +35,3 @@ FAST_CREATE_COMMUNITY_ENABLED=1
TEST_NETWORKS_ENABLED=1
SHOW_NOT_IMPLEMENTED_FEATURES=0
ENABLE_ALERT_BANNER=0
FLAG_WALLET_CONNECT_ENABLED=1
LOG_REQUEST_GO=1
-3
View File
@@ -38,6 +38,3 @@ SHOW_NOT_IMPLEMENTED_FEATURES=1
DELETE_MESSAGE_FOR_ME_UNDO_TIME_LIMIT=10000
DELETE_MESSAGE_UNDO_TIME_LIMIT=10000
ENABLE_ALERT_BANNER=0
FLAG_WALLET_CONNECT_ENABLED=1
MOBILE_DATA_SYNCING_TOGGLE_ENABLE=0
LOG_REQUEST_GO=1
-2
View File
@@ -36,5 +36,3 @@ LOCAL_PAIRING_ENABLED=1
FAST_CREATE_COMMUNITY_ENABLED=1
TEST_NETWORKS_ENABLED=1
ENABLE_ALERT_BANNER=1
FLAG_WALLET_CONNECT_ENABLED=1
LOG_REQUEST_GO=1
-2
View File
@@ -23,5 +23,3 @@ DELETE_MESSAGE_ENABLED=1
FAST_CREATE_COMMUNITY_ENABLED=0
TEST_NETWORKS_ENABLED=0
ENABLE_ALERT_BANNER=1
FLAG_WALLET_CONNECT_ENABLED=1
LOG_REQUEST_GO=0
-3
View File
@@ -19,6 +19,3 @@ MAX_IMAGES_BATCH=1
DELETE_MESSAGE_ENABLED=1
FAST_CREATE_COMMUNITY_ENABLED=0
TEST_NETWORKS_ENABLED=0
STATUS_PROXY_STAGE_NAME=prod
FLAG_WALLET_CONNECT_ENABLED=1
LOG_REQUEST_GO=0
+3 -3
View File
@@ -1,8 +1,8 @@
---
name: Bug Report
about: Bug Report
name: MVPBug Report
about: MVPBug Report
title: ''
labels: ['bug', ':1234: low prio']
labels: ['E:Mobile Bug MVP', ':1234: low prio']
assignees: ''
---
+5 -7
View File
@@ -97,8 +97,6 @@ nix-purge: ##@nix Completely remove Nix setup, including /nix directory
nix/scripts/purge.sh
nix-update-gradle: export TARGET := gradle
nix-update-gradle: export ORG_GRADLE_PROJECT_hermesEnabled := false
nix-update-gradle: export ORG_GRADLE_PROJECT_universalApk := false
nix-update-gradle: ##@nix Update maven nix expressions based on current gradle setup
nix/deps/gradle/generate.sh
@@ -217,13 +215,15 @@ build-fdroid: ##@build Build release for F-Droid
build-android: export BUILD_ENV ?= prod
build-android: export BUILD_TYPE ?= nightly
build-android: export ORG_GRADLE_PROJECT_versionCode ?= $(TMP_BUILD_NUMBER)
build-android: export ANDROID_ABI_SPLIT ?= false
build-android: export ANDROID_ABI_INCLUDE ?= armeabi-v7a;arm64-v8a;x86
build-android: ##@build Build unsigned Android APK
@scripts/build-android.sh
release-android: export TARGET := keytool
release-android: export KEYSTORE_PATH ?= $(HOME)/.gradle/status-im.keystore
release-android: keystore build-android ##@build Build signed Android APK
@scripts/sign-android.sh result/app-arm64-v8a-release-unsigned.apk
@scripts/sign-android.sh result/app-release-unsigned.apk
release-ios: export TARGET := ios
release-ios: export IOS_STATUS_GO_TARGETS := ios/arm64
@@ -278,7 +278,6 @@ run-android: export TARGET := android
# Disabled for debug builds to avoid 'maximum call stack exceeded' errors.
# https://github.com/status-im/status-mobile/issues/18493
run-android: export ORG_GRADLE_PROJECT_hermesEnabled := false
run-android: export ORG_GRADLE_PROJECT_universalApk := false
run-android: ##@run Build Android APK and start it on the device
@scripts/run-android.sh
@@ -439,11 +438,10 @@ android-clean: ##@prepare Clean Gradle state
rm -rf ~/.gradle
android-ports: export FLOWSTORM_PORT ?= 7722
android-ports: export FLOWSTORM_PORT := 7722
android-ports: export TARGET := android-sdk
android-ports: export RCT_METRO_PORT ?= 8081
android-ports: ##@other Add proxies to Android Device/Simulator
adb reverse tcp:$(RCT_METRO_PORT) tcp:$(RCT_METRO_PORT) && \
adb reverse tcp:8081 tcp:8081 && \
adb reverse tcp:3449 tcp:3449 && \
adb reverse tcp:4567 tcp:4567 && \
adb reverse tcp:$(FLOWSTORM_PORT) tcp:$(FLOWSTORM_PORT) && \
+1 -1
View File
@@ -1 +1 @@
2.30.0
2.29.0
+1 -3
View File
@@ -211,7 +211,7 @@ android {
reset()
enable getEnvOrConfig('ANDROID_ABI_SPLIT').toBoolean()
include getEnvOrConfig('ANDROID_ABI_INCLUDE').split(";")
universalApk getEnvOrConfig('ORG_GRADLE_PROJECT_universalApk').toBoolean()
universalApk true
}
}
signingConfigs {
@@ -299,8 +299,6 @@ dependencies {
implementation("com.squareup.okhttp3:okhttp-tls:4.11.0")
implementation("com.google.prefab:cli:2.0.0")
implementation("com.android.tools.build:aapt2:8.1.1-10154469")
implementation "com.github.bumptech.glide:okhttp3-integration:4.12.0"
annotationProcessor "com.github.bumptech.glide:compiler:4.12.0"
}
-1
View File
@@ -36,7 +36,6 @@
android:allowBackup="false"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AppSplash"
android:name=".MainApplication"
android:largeHeap="true"
@@ -1,45 +0,0 @@
package im.status.ethereum
import android.content.Context
import android.os.Handler
import android.os.Looper
import com.bumptech.glide.Glide
import com.bumptech.glide.Registry
import com.bumptech.glide.module.GlideModule
import com.bumptech.glide.GlideBuilder
import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader
import com.bumptech.glide.load.model.GlideUrl
import java.io.InputStream
import java.util.concurrent.Executors
class CustomGlideModule : GlideModule {
override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
// Create a single thread executor for background operations
val executor = Executors.newSingleThreadExecutor()
val mainHandler = Handler(Looper.getMainLooper())
// Execute network operation in background
executor.execute {
val client = StatusOkHttpClientFactory().createNewNetworkModuleClient()
// Post results back to main thread
mainHandler.post {
client?.let {
val factory = OkHttpUrlLoader.Factory(it)
registry.replace(
GlideUrl::class.java,
InputStream::class.java,
factory
)
}
}
}
// Clean up executor
executor.shutdown()
}
override fun applyOptions(context: Context, builder: GlideBuilder) {
// No additional options needed
}
}
@@ -15,10 +15,8 @@ import cl.json.RNSharePackage
import com.reactnativecommunity.blurview.BlurViewPackage
import im.status.ethereum.keycard.RNStatusKeycardPackage
import im.status.ethereum.module.StatusPackage
import im.status.ethereum.module.StatusBackendClient
import im.status.ethereum.pushnotifications.PushNotificationPackage
import im.status.ethereum.StatusOkHttpClientFactory
import android.util.Log
class MainApplication : NavigationApplication() {
@@ -41,26 +39,6 @@ class MainApplication : NavigationApplication() {
override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
override fun createReactInstanceManager() =
super.createReactInstanceManager().apply {
addReactInstanceEventListener {
val serverEnabledEnv = true
val statusGoEndpointEnv = "127.0.0.1:60000"
val rootDataDirEnv = "/Users/frank/Downloads/tmp"
val statusGoEndpoint = "http://${statusGoEndpointEnv}/statusgo/"
val signalEndpoint = "ws://${statusGoEndpointEnv}/signals"
Log.d("MainApplication", "Configuring StatusBackendServer with serverEnabled=$serverEnabledEnv, statusGoEndpoint=$statusGoEndpoint, signalEndpoint=$signalEndpoint, rootDataDir=$rootDataDirEnv")
StatusBackendClient.getInstance()?.configStatusBackendServer(
serverEnabled = serverEnabledEnv,
statusGoEndpoint = statusGoEndpoint,
signalEndpoint = signalEndpoint,
rootDataDir = rootDataDirEnv
)
OkHttpClientProvider.setOkHttpClientFactory(StatusOkHttpClientFactory())
Log.d("MainApplication", "StatusBackendServer configured")
}
}
}
override val reactNativeHost: ReactNativeHost
@@ -69,7 +47,7 @@ class MainApplication : NavigationApplication() {
override fun onCreate() {
super.onCreate()
//OkHttpClientProvider.setOkHttpClientFactory(StatusOkHttpClientFactory())
OkHttpClientProvider.setOkHttpClientFactory(StatusOkHttpClientFactory())
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 940 B

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 B

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 825 B

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 69 KiB

@@ -2,5 +2,4 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_background"/>
<foreground android:drawable="@mipmap/ic_foreground"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome" />
</adaptive-icon>
</adaptive-icon>
@@ -2,5 +2,4 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_background"/>
<foreground android:drawable="@mipmap/ic_foreground"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome" />
</adaptive-icon>
</adaptive-icon>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 737 B

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 10 KiB

+4 -4
View File
@@ -38,10 +38,10 @@ KEYSTORE_PASSWORD=password
KEYSTORE_ALIAS=status
KEYSTORE_KEY_PASSWORD=password
# Splitting by CPU Architecture produces smaller APKs.
ANDROID_ABI_SPLIT=true
# By default its better to only build apk for most recent devices.
ANDROID_ABI_INCLUDE=arm64-v8a
# By default we build a mostly universal APK
ANDROID_ABI_SPLIT=false
# Some platforms are excluded though
ANDROID_ABI_INCLUDE=armeabi-v7a;arm64-v8a;x86;x86_64
org.gradle.jvmargs=-Xmx8704M -XX:+UseParallelGC
-9
View File
@@ -1,9 +0,0 @@
initscript {
repositories {
gradlePluginPortal()
}
dependencies {
classpath "org.gradle:github-dependency-graph-gradle-plugin:+"
}
}
apply plugin: org.gradle.dependencygraph.simple.SimpleDependencyGraphPlugin
+3 -3
View File
@@ -1,12 +1,12 @@
pluginManagement {
includeBuild('../node_modules/@react-native/gradle-plugin')
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()
}
}
include ':react-native-share'
project(':react-native-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-share/android')
rootProject.name = 'StatusIm'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':react-native-nfc-manager'
+6 -2
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
/* Options section can't access functions in objects. */
def isPRBuild = utils.isPRBuild()
@@ -72,7 +72,11 @@ pipeline {
stage('Upload') {
steps { script {
def urls = apks.collect { s5cmd.upload(it) }
env.PKG_URL = urls.first()
if (urls.size() > 1) { /* Return only the universal APK. */
env.PKG_URL = urls.find { it.contains('universal') }
} else { /* If no universal is available pick first. */
env.PKG_URL = urls.first()
}
jenkins.setBuildDesc(APK: env.PKG_URL)
} }
}
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
import groovy.json.JsonBuilder
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
agent { label 'linux' }
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
/* Options section can't access functions in objects. */
def isPRBuild = utils.isPRBuild()
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
/* Options section can't access functions in objects. */
def isPRBuild = utils.isPRBuild()
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
agent { label 'macos' }
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
agent { label params.AGENT_LABEL }
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
agent { label 'linux' }
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env groovy
library 'status-jenkins-lib@v1.9.13'
library 'status-jenkins-lib@v1.9.1'
pipeline {
agent {
+1 -1
View File
@@ -33,7 +33,7 @@
## Misc
- [Importing assets from Figma into project](import-assets.md)
- [Importing icons from Figma into project](export-icons.md)
- [Updating Status APK builds for the F-Droid Android application catalogue](fdroid.md)
- [Troubleshooting for known errors](troubleshooting.md)
+2 -10
View File
@@ -1,6 +1,6 @@
# Importing assets from Figma into project
# new icons
## Icons
## Export icons
![](images/export-icons/export-icons.gif)
@@ -13,11 +13,3 @@
```
2x@2x
4. If you want platform specific icon use `.android` or `.ios` suffixes. Example `icon_name@2x.android.png`.:w
## Images
Make sure to compress images before using into project.
```
make shell
./scripts/compress_image.sh image_path
```
-35
View File
@@ -1,35 +0,0 @@
## Solution to use Status Backend Server
`StatusBackendClient` is the entry point to use Status Backend Server. We need always to call `status-im.setup.status-backend-client/init` whether `STATUS_BACKEND_SERVER_ENABLED` is `1` or not. If it's not enabled, the invocation to functions in `native-module.core` will be delegated to built-in status-go library, otherwise it will be delegated to status-go running in status-backend server. Currently, all functions has usages in `native-module.core` should be supported delegated to.
related [PR](https://github.com/status-im/status-mobile/pull/21550)
## Usage
### Add environment variables to your local machine:
```shell
# enable using status backend server or not, otherwise it will use built-in status-go library
export STATUS_BACKEND_SERVER_ENABLED=1
#The host should contain an IP address and a port separated by a colon.
#The port comes from your running status backend server.
#If you run it by PORT=60000 make run-status-backend , then host will likely be 127.0.0.1:60000
export STATUS_BACKEND_SERVER_HOST="127.0.0.1:60000"
export STATUS_BACKEND_SERVER_ROOT_DATA_DIR="/path/to/your/root/data/dir"
```
You need to change `STATUS_BACKEND_SERVER_ROOT_DATA_DIR` to your preferred directory and ensure it exists, it should be in absolute path.
All the db files and log files(requests.log/geth.log) and keystore files etc will be stored in this directory.
### Start the status backend server:
```shell
PORT=60000 make run-status-backend
```
MAKE SURE the status-backend is checked out to a revision that's at least compatible with the revision in status-mobile/status-go-version.json before starting the server.
For the Android simulator, you need to reverse the port:
```shell
adb reverse tcp:60000 tcp:60000
```
### Known issues
- Android devices may not display images due to TLS certificate validation issues with the image server
- exportUnencryptedDatabaseV2/import-multiaccount does not work for android, probably cause of tech debt, I found it during creating the draft PR.
-1
View File
@@ -217,7 +217,6 @@ GEM
PLATFORMS
arm64-darwin-22
arm64-darwin-23
x86_64-darwin-22
DEPENDENCIES
@@ -1,19 +1,26 @@
يجمع Status بين تطبيق مراسلة يركز على الخصوصية تحت اسم مستعار ومحفظة للعملات المشفرة آمنة في أداة تواصل قوية واحدة. تحدث مع الأصدقاء والمجتمعات المتنامية. قم بشراء وتخزين وتبادل الأصول الرقمية.
يجمع Status بين برنامج المراسلة الخاص ومحفظة التشفير الآمنة ومتصفح لتطبيقات إيثريوم اللامركزية في أداة اتصال واحدة قوية. الدردشة مع الأصدقاء والمجتمعات المتزايدة. شراء الأصول الرقمية وبيعها وتخزينها وتبادلها. تصفح الإنترنت اللامركزي دون استغلال بياناتك.
Status هو نظام تشغيل إيثريوم الخاص بك
برنامج المراسلة الخاص
أرسل دردشات خاصة 1: 1 ، ومجموعات خاصة ، ودردشات عامة دون وسطاء غير ضروريين في اتصالاتك. Status عبارة عن تطبيق نصي يزيل نقاط الاختناق المركزية من رسائلك يمنحك لمزيد من الخصوصية والمراسلة الآمنة. تطبيق مراسلة مشفر مع تشفير شامل وخصوصية بشكل افتراضي بحيث لا يمكن لأي شخص آخر غيرك والمرسل إليه استعراض رسائلك - ولا حتى Status. يعتبره البعض برنامج مراسلات سريًه.
Status هو نظام التشغيل الخاص بك على Ethereum.
مدفوعات بلا حدود، من النظير إلى النظير
يتيح ماسنجر Status لأي شخص في أي مكان إرسال مدفوعات عالمية مباشرة في الدردشة حيث انه متكامل بسلاسة مع محفظة العملات المشفرة.
المُرَاسِل الخاص
أرسل محادثات خاصة 1:1 ومحادثات مجموعات خاصة دون أن يتجسس أحد على اتصالاتك. يعد Status تطبيق مراسلة يلغي الحاجة إلى نقاط التوجيه المركزية للرسائل من أجل خصوصية أكبر ومراسلة آمنة. يتم تشفير جميع الرسائل بتشفير من طرف إلى طرف. بالإضافة إلى ذلك، لا تكشف أي رسالة عن هوية المؤلف أو المستلم المستهدف، لذا لا أحد، حتى Status، يعرف من يتحدث مع من أو ماذا قيل.
محفظة إيثريوم آمنة
تتيح لك محفظة تشفير Status إرسال أصول إيثريوم وتخزينها وتداولها وتبادلها بأمان مثل ETH و SNT والعملات المستقرة القيمة مثل DAI و NFTs. يمكنك التحكم بكل ثقة في عملتك المشفرة والأصول الرقمية باستخدام تطبيق محفظة إيثريوم هذه . تدعم محفظة البلوكتشين الخاصة Status حاليًا أصول ERC-20 و ERC-721 فقط ؛ لا تدعم البيتكوين.
اكسب مع DEFI
دع عملاتك المشفرة تعمل مع أحدث تطبيقات التمويل اللامركزية والتبادلات اللامركزية (DEX) مثل Maker و Aave و Uniswap و Synthetix و PoolTogether و Zerion و Kyber وغيرهم الكثير.
محفظة Ethereum الآمنة
تتيح لك محفظة Status للعملات المشفرة إرسال وتخزين وتبادل أصول Ethereum مثل ETH و SNT والعملات المستقرة مثل DAI، بالإضافة إلى الأصول الرقمية القابلة للتحصيل بأمان. تحكم بثقة في عملاتك الرقمية وأصولك الرقمية باستخدام تطبيق محفظة Ethereum متعدد السلاسل الخاص بنا، الذي يدعم mainnet و Arbitrum و Optimism. تدعم محفظة Status حاليًا فقط أصول ETH و ERC-20 و ERC-721 و ERC-1155؛ لا تدعم Bitcoin.
متصفح تطبيقات الويب 3 اللامركزية
تصفح الويب الآمن وأدنو من النظام الإيكولوجي المتنامي للتطبيقات اللامركزية باستخدام المتصفح الآمن. يتيح Status الوصول إلى أكثر من مجرد DeFi - اكتشف أحدث الأسواق والمقتنيات والألعاب والشبكات الاجتماعية مثل SuperRare و Gitcoin و Dragonereum و Axie Infinity و Open Sea و CryptoKitties و Decentraland وغيرهم الكثير.
اكسب مع DeFi
ضع عملاتك الرقمية في العمل مع أحدث تطبيقات التمويل اللامركزي وتبادلات العملات اللامركزية (DEX) مثل Maker و Aave و Uniswap و Synthetix و PoolTogether و Zerion و Kyber وغيرها.
تواصل مع مجتمعك
استكشف وتواصل وتحدث مع أصدقائك ومجتمعاتك المفضلة. سواء كان ذلك مع مجموعة صغيرة من الأصدقاء، أو مجموعة فنية، أو متداولي العملات المشفرة، أو المنظمة الكبيرة التالية - قم بإرسال النصوص والتواصل مع مجتمعات Status.
استكشف وتواصل ودردش مع مجتمعاتك و أصدقائك المفضلين لديك. سواء كانت مجموعة صغيرة من الأصدقاء ، أو مجموعة فنانين ، أو تجار تشفير ، أو المؤسسة الكبيرة التالية - أرسل رسائل نصية وتواصل مع مجتمعات Status.
بثّ اﻷنشطة اﻹجتماعية
شارك ما يدور في ذهنك وانشر التحديثات مع جهات الاتصال الخاصة بك في شبكة تواصل اجتماعية لامركزية حديثة ومقاومة للرقابة.
إنشاء حساب خاص
ابقَ خاصًا مع إنشاء حساب تحت اسم مستعار. عند إنشاء حسابك المجاني، لن تضطر أبدًا إلى إدخال رقم هاتف أو عنوان بريد إلكتروني أو حساب مصرفي. يتم توليد مفاتيح محفظتك الخاصة محليًا وتخزينها بشكل آمن لضمان أنك الوحيد الذي لديه حق الوصول إلى أموالك ومعاملاتك المالية.
حافظ على خصوصيتك مع إنشاء حساب مستعار. عند إنشاء حسابك المجاني ، لن تضطر أبدًا إلى إدخال رقم هاتف أو عنوان بريد إلكتروني أو حساب مصرفي. يتم إنشاء المفاتيح الخاصة بالمحفظة الخاصة بك وتخزينها على جهازك لضمان وصولك إلى أموالك ومعاملاتك المالية فقط.
Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

@@ -1 +1 @@
محفظة مشفرة و ماسنجر خاص
Cryptocurrency wallet, Private messenger, and Ethereum DApp Browser
+1
View File
@@ -0,0 +1 @@
Status: محفظة تشفير ، ماسنجر ، متصفح إيثريوم
@@ -0,0 +1,28 @@
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 Ihr Betriebssystem für Ethereum.
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.
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.

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