Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
edd50dfe18 | ||
|
|
d5fa11a918 | ||
|
|
6e5214da72 | ||
|
|
9e2f590e3c | ||
|
|
23d3a2db2a | ||
|
|
a85ca5bd3d | ||
|
|
0f036ca9c4 | ||
|
|
c19128e8b1 | ||
|
|
8d615801d1 | ||
|
|
4f6e1897fe | ||
|
|
93b5f8d180 | ||
|
|
0e607dc293 | ||
|
|
9ced0e4131 | ||
|
|
55ee800e18 | ||
|
|
676998b83b | ||
|
|
755ef19315 | ||
|
|
bc9b0f8c87 | ||
|
|
c8b063493b | ||
|
|
949e78a17e | ||
|
|
a821ec5a14 | ||
|
|
4648066ec7 | ||
|
|
e85bc539d3 | ||
|
|
c26d298573 | ||
|
|
cdde36ca28 | ||
|
|
3c3ef20769 | ||
|
|
2150f6db48 | ||
|
|
10101a23e6 | ||
|
|
f75fff9dd8 | ||
|
|
9aa31ddf02 | ||
|
|
9a61b30c50 | ||
|
|
f1652ee2c4 | ||
|
|
e1d2b9b1c1 | ||
|
|
e60c20bc10 | ||
|
|
1391c48e39 | ||
|
|
2343d9be1e | ||
|
|
7b85bfbd53 | ||
|
|
27bfbea6bd | ||
|
|
caaff74efe | ||
|
|
6ce58db7b9 | ||
|
|
fe788c3c26 | ||
|
|
1faa2e8f88 | ||
|
|
2b7430e008 | ||
|
|
62c8e73409 | ||
|
|
e0e9ab9adb | ||
|
|
b618f73063 | ||
|
|
8a88aac34d | ||
|
|
32ccca0912 | ||
|
|
2be78041e2 | ||
|
|
d941029661 | ||
|
|
f7c930964c | ||
|
|
0c25b77e54 | ||
|
|
d0deb94bf3 | ||
|
|
3a444f40f3 | ||
|
|
7537c6b033 | ||
|
|
e67f6c1cd3 | ||
|
|
1d7eb49c57 | ||
|
|
f6dfc64567 | ||
|
|
f08ac94596 | ||
|
|
52a8f8fc22 | ||
|
|
6859fb8f8e | ||
|
|
f45f96975e | ||
|
|
53d5ac4ea2 | ||
|
|
874f07bd77 | ||
|
|
4efb3c111a | ||
|
|
de2b5fb935 | ||
|
|
5f8d5fd57e | ||
|
|
763b291629 | ||
|
|
9f50686042 | ||
|
|
1652601a82 | ||
|
|
7a44db36fe | ||
|
|
338b241c8e | ||
|
|
91761a92c7 | ||
|
|
4b2a1db12f | ||
|
|
05d4b4b068 | ||
|
|
9c9b55fe3e | ||
|
|
6ec307a8bb | ||
|
|
86553eff14 | ||
|
|
60911a1dd1 |
@@ -35,4 +35,4 @@ TEST_NETWORKS_ENABLED=1
|
||||
SHOW_NOT_IMPLEMENTED_FEATURES=0
|
||||
ENABLE_ALERT_BANNER=0
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
LOG_REQUEST_GO=1
|
||||
API_LOGGING_ENABLED=1
|
||||
|
||||
@@ -39,4 +39,4 @@ 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
|
||||
API_LOGGING_ENABLED=1
|
||||
|
||||
@@ -36,4 +36,4 @@ FAST_CREATE_COMMUNITY_ENABLED=1
|
||||
TEST_NETWORKS_ENABLED=1
|
||||
ENABLE_ALERT_BANNER=1
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
LOG_REQUEST_GO=1
|
||||
API_LOGGING_ENABLED=1
|
||||
|
||||
@@ -23,4 +23,4 @@ FAST_CREATE_COMMUNITY_ENABLED=0
|
||||
TEST_NETWORKS_ENABLED=0
|
||||
ENABLE_ALERT_BANNER=1
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
LOG_REQUEST_GO=0
|
||||
API_LOGGING_ENABLED=0
|
||||
|
||||
@@ -20,4 +20,4 @@ FAST_CREATE_COMMUNITY_ENABLED=0
|
||||
TEST_NETWORKS_ENABLED=0
|
||||
STATUS_PROXY_STAGE_NAME=prod
|
||||
FLAG_WALLET_CONNECT_ENABLED=1
|
||||
LOG_REQUEST_GO=0
|
||||
API_LOGGING_ENABLED=0
|
||||
|
||||
@@ -150,7 +150,7 @@ This one is straightforward, just evaluate a navigation dispatch form from anywh
|
||||
|
||||
#### REPL-ing a component
|
||||
|
||||
This is also straighforward, but there are some small differences. Just like above, we only have to evaluate a dispatch form, as follows:
|
||||
This is also straightforward, but there are some small differences. Just like above, we only have to evaluate a dispatch form, as follows:
|
||||
|
||||
```cljs
|
||||
;; example debugging a quo component, although it could be any other component e.g. from the `status-im2` ns.
|
||||
|
||||
@@ -26,7 +26,7 @@ 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.
|
||||
All the db files and log files(api.log/geth.log) and keystore files etc will be stored in this directory.
|
||||
|
||||
### Start the status backend server:
|
||||
```shell
|
||||
|
||||
@@ -6,13 +6,13 @@ SECURE ETHEREUM WALLET
|
||||
The Status crypto wallet allows you to securely send, store, and exchange Ethereum assets such as ETH, SNT, stable coins such as DAI, as well as collectibles. Confidently take control of your cryptocurrency and digital assets with our multichain Ethereum wallet app, supporting mainnet, Arbitrum, and Optimism. The Status blockchain wallet currently only supports ETH, ERC-20, ERC-721, and ERC-1155 assets; it does not support Bitcoin.
|
||||
|
||||
PRIVATE MESSENGER
|
||||
Send private 1:1 and private group chats without anyone snooping on your communications. Status is a messenger app that eliminates centralised message relays for greater privacy and secure messaging. All messages are encrypted with end-to-end encryption. Additionally, no message exposes who the author or the intended recipient is, so nobody, not even Status, knows who is talking to who or what was said.
|
||||
Send private 1:1 and private group chats without anyone snooping on your communications. Status is a messenger app that eliminates centralized message relays for greater privacy and secure messaging. All messages are encrypted with end-to-end encryption. Additionally, no message exposes who the author or the intended recipient is, so nobody, not even Status, knows who is talking to who or what was said.
|
||||
|
||||
EARN WITH DEFI
|
||||
Put your crypto to work with the latest decentralised finance apps and decentralised exchanges (DEX) such as Maker, Aave, Uniswap, Synthetix, PoolTogether, Zerion, Kyber, and more.
|
||||
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.
|
||||
|
||||
CONNECT WITH YOUR COMMUNITY
|
||||
Explore, connect, and chat with your favourite 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.
|
||||
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.
|
||||
|
||||
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 securely stored to ensure only you have access to your funds and financial transactions.
|
||||
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 263 KiB |
|
Before Width: | Height: | Size: 396 KiB After Width: | Height: | Size: 396 KiB |
|
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 425 KiB After Width: | Height: | Size: 425 KiB |
@@ -57,10 +57,11 @@ abstract_target 'Status' do
|
||||
pod 'react-native-config', :path => '../node_modules/react-native-config'
|
||||
|
||||
pod 'SSZipArchive', '2.4.3'
|
||||
|
||||
# to fix [!] CocoaPods could not find compatible versions for pod "CryptoSwift"
|
||||
pod 'CryptoSwift', git: "https://github.com/krzyzanowskim/CryptoSwift", tag: '1.8.0'
|
||||
pod "react-native-status-keycard", path: "../node_modules/react-native-status-keycard"
|
||||
pod "react-native-status", path: "../modules/react-native-status"
|
||||
pod "Keycard", git: "https://github.com/status-im/Keycard.swift.git"
|
||||
pod "Keycard", git: "https://github.com/status-im/Keycard.swift.git", tag: '3.1.1'
|
||||
pod 'secp256k1', git: "https://github.com/status-im/secp256k1.swift.git", submodules: true
|
||||
|
||||
target 'StatusIm' do
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
PODS:
|
||||
- BigInt (5.2.0)
|
||||
- boost (1.83.0)
|
||||
- CryptoSwift (1.5.1)
|
||||
- CryptoSwift (1.8.0)
|
||||
- DoubleConversion (1.1.6)
|
||||
- FBLazyVector (0.73.5)
|
||||
- FBReactNativeSpec (0.73.5):
|
||||
@@ -16,7 +17,8 @@ PODS:
|
||||
- hermes-engine/Pre-built (= 0.73.5)
|
||||
- hermes-engine/Pre-built (0.73.5)
|
||||
- HMSegmentedControl (1.5.6)
|
||||
- Keycard (3.0.6):
|
||||
- Keycard (3.1.0):
|
||||
- BigInt
|
||||
- CryptoSwift
|
||||
- secp256k1
|
||||
- SSZipArchive
|
||||
@@ -943,7 +945,7 @@ PODS:
|
||||
- React
|
||||
- react-native-status (1.0.0):
|
||||
- React
|
||||
- react-native-status-keycard (2.5.39):
|
||||
- react-native-status-keycard (2.6.2):
|
||||
- Keycard
|
||||
- React
|
||||
- react-native-webview (13.6.3):
|
||||
@@ -1192,12 +1194,13 @@ PODS:
|
||||
|
||||
DEPENDENCIES:
|
||||
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
|
||||
- CryptoSwift (from `https://github.com/krzyzanowskim/CryptoSwift`, tag `1.8.0`)
|
||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
|
||||
- Keycard (from `https://github.com/status-im/Keycard.swift.git`)
|
||||
- Keycard (from `https://github.com/status-im/Keycard.swift.git`, tag `3.1.1`)
|
||||
- libevent (~> 2.1.12)
|
||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
@@ -1285,7 +1288,7 @@ DEPENDENCIES:
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- CryptoSwift
|
||||
- BigInt
|
||||
- fmt
|
||||
- HMSegmentedControl
|
||||
- libevent
|
||||
@@ -1299,6 +1302,9 @@ SPEC REPOS:
|
||||
EXTERNAL SOURCES:
|
||||
boost:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
|
||||
CryptoSwift:
|
||||
:git: https://github.com/krzyzanowskim/CryptoSwift
|
||||
:tag: 1.8.0
|
||||
DoubleConversion:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||
FBLazyVector:
|
||||
@@ -1312,6 +1318,7 @@ EXTERNAL SOURCES:
|
||||
:tag: hermes-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4
|
||||
Keycard:
|
||||
:git: https://github.com/status-im/Keycard.swift.git
|
||||
:tag: 3.1.1
|
||||
RCT-Folly:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
|
||||
RCTRequired:
|
||||
@@ -1475,17 +1482,21 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||
|
||||
CHECKOUT OPTIONS:
|
||||
CryptoSwift:
|
||||
:git: https://github.com/krzyzanowskim/CryptoSwift
|
||||
:tag: 1.8.0
|
||||
Keycard:
|
||||
:commit: 17381678bb981c3c553bb7202a26e642cecb1817
|
||||
:git: https://github.com/status-im/Keycard.swift.git
|
||||
:tag: 3.1.1
|
||||
secp256k1:
|
||||
:commit: 46a1fa30d9b8babeae85ff519050f42394ab5fcc
|
||||
:git: https://github.com/status-im/secp256k1.swift.git
|
||||
:submodules: true
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
BigInt: f668a80089607f521586bbe29513d708491ef2f7
|
||||
boost: d3f49c53809116a5d38da093a8aa78bf551aed09
|
||||
CryptoSwift: c4f2debceb38bf44c80659afe009f71e23e4a082
|
||||
CryptoSwift: 52aaf3fce7337552863b1d952e408085f0e65030
|
||||
DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953
|
||||
FBLazyVector: 56e0e498dbb513b96c40bac6284729ba4e62672d
|
||||
FBReactNativeSpec: 146c741a3f40361f6bc13a4ba284678cbedb5881
|
||||
@@ -1493,7 +1504,7 @@ SPEC CHECKSUMS:
|
||||
glog: c0eca6ffed0a6fde1965ef26dcc7bf528f052af4
|
||||
hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e
|
||||
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
|
||||
Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8
|
||||
Keycard: 3bd24405b9a875b3b3cf1ab1be69b5c30c5f28bc
|
||||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
||||
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
|
||||
RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0
|
||||
@@ -1534,7 +1545,7 @@ SPEC CHECKSUMS:
|
||||
react-native-shake: de052eaa3eadc4a326b8ddd7ac80c06e8d84528c
|
||||
react-native-slider: 12bd76d3d568c9c5500825db54123d44b48e4ad4
|
||||
react-native-status: 21f75d492fd311dc111303da38a7a2b23a8a8466
|
||||
react-native-status-keycard: f1c1227b2d5984c10fb44db68e4bfd2937f31e98
|
||||
react-native-status-keycard: 76a5c826352ee1d70de854b3e8b12670946bc1c8
|
||||
react-native-webview: 88293a0f23eca8465c0433c023ec632930e644d0
|
||||
React-nativeconfig: 1166714a4f7ea57a0df5c2cb44fbc70f98d580f9
|
||||
React-NativeModulesApple: 726664e9829eb5eed8170241000e46ead269a05f
|
||||
@@ -1582,6 +1593,6 @@ SPEC CHECKSUMS:
|
||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||
Yoga: a716eea57d0d3430219c0a5a233e1e93ee931eb7
|
||||
|
||||
PODFILE CHECKSUM: 5dd4a5279260d370bcdf016158c825ceb404ee06
|
||||
PODFILE CHECKSUM: 81a66b45adddb083171ade882c343deb4faf2a8b
|
||||
|
||||
COCOAPODS: 1.15.2
|
||||
|
||||
@@ -26,4 +26,4 @@ These log files are uploaded to Jenkins as CI job artifacts on failure using `ar
|
||||
* `set_xcode_version.log` - Output from `node_modules/react-native/scripts/react-native-xcode.sh`.
|
||||
- Created by redirecting output of `shellScript` in `ios/StatusIm.xcodeproj/project.pbxproj` for "Run Script" build Phase.
|
||||
* `Status PR-StatusImPR.log - Created by [Fastlane Gym](https://docs.fastlane.tools/actions/gym/).
|
||||
- Configred via [`Fastfile`](../Fastfile) using `buildlog_path` argument for `build_ios_app`.
|
||||
- Configured via [`Fastfile`](../Fastfile) using `buildlog_path` argument for `build_ios_app`.
|
||||
|
||||
@@ -248,10 +248,14 @@ class AccountManager(private val reactContext: ReactApplicationContext) : ReactC
|
||||
@ReactMethod
|
||||
private fun initializeApplication(request: String, callback: Callback) {
|
||||
Log.d(TAG, "initializeApplication")
|
||||
val jsonParams = JSONObject(request)
|
||||
// for ios, the log dir will be the same as the root data dir, status-go will default to root data dir if logDir is not provided
|
||||
jsonParams.put("logDir", utils.getPublicStorageDirectory()?.absolutePath)
|
||||
val jsonString = jsonParams.toString()
|
||||
StatusBackendClient.executeStatusGoRequestWithCallback(
|
||||
"InitializeApplication",
|
||||
request,
|
||||
{ Statusgo.initializeApplication(request) },
|
||||
jsonString,
|
||||
{ Statusgo.initializeApplication(jsonString) },
|
||||
callback
|
||||
)
|
||||
}
|
||||
|
||||
@@ -195,25 +195,6 @@ class LogManager(private val reactContext: ReactApplicationContext) : ReactConte
|
||||
}
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
fun initLogging(enabled: Boolean, mobileSystem: Boolean, logLevel: String, logRequestGo: Boolean, callback: Callback) {
|
||||
val jsonConfig = JSONObject().apply {
|
||||
put("Enabled", enabled)
|
||||
put("MobileSystem", mobileSystem)
|
||||
put("Level", logLevel)
|
||||
put("File", getGethLogFile().absolutePath)
|
||||
put("LogRequestGo", logRequestGo)
|
||||
put("LogRequestFile", getRequestLogFile().absolutePath)
|
||||
}
|
||||
val config = jsonConfig.toString()
|
||||
StatusBackendClient.executeStatusGoRequestWithCallback(
|
||||
endpoint = "InitLogging",
|
||||
requestBody = config,
|
||||
statusgoFunction = { Statusgo.initLogging(config) },
|
||||
callback = callback
|
||||
)
|
||||
}
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
fun logFileDirectory(): String? {
|
||||
return utils.getPublicStorageDirectory()?.absolutePath
|
||||
@@ -223,7 +204,7 @@ class LogManager(private val reactContext: ReactApplicationContext) : ReactConte
|
||||
private const val TAG = "LogManager"
|
||||
private const val gethLogFileName = "geth.log"
|
||||
private const val statusLogFileName = "Status.log"
|
||||
private const val requestsLogFileName = "requests.log"
|
||||
private const val requestsLogFileName = "api.log"
|
||||
private const val logsZipFileName = "Status-debug-logs.zip"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ RCT_EXPORT_METHOD(sendLogs:(NSString *)dbJson
|
||||
NSURL *mainGethLogsFile = [rootUrl URLByAppendingPathComponent:@"geth.log"];
|
||||
NSURL *mainLogsFile = [logsFolderName URLByAppendingPathComponent:@"geth.log"];
|
||||
|
||||
NSURL *requestsLogFile = [rootUrl URLByAppendingPathComponent:@"requests.log"];
|
||||
NSURL *requestsLogFile = [rootUrl URLByAppendingPathComponent:@"api.log"];
|
||||
|
||||
[dbJson writeToFile:dbFile.path atomically:YES encoding:NSUTF8StringEncoding error:nil];
|
||||
[jsLogs writeToFile:jsLogsFile.path atomically:YES encoding:NSUTF8StringEncoding error:nil];
|
||||
@@ -44,7 +44,7 @@ RCT_EXPORT_METHOD(sendLogs:(NSString *)dbJson
|
||||
[fileManager copyItemAtPath:mainGethLogsFile.path toPath:mainLogsFile.path error:nil];
|
||||
|
||||
if ([fileManager fileExistsAtPath:requestsLogFile.path]) {
|
||||
[fileManager copyItemAtPath:requestsLogFile.path toPath:[logsFolderName URLByAppendingPathComponent:@"requests.log"].path error:nil];
|
||||
[fileManager copyItemAtPath:requestsLogFile.path toPath:[logsFolderName URLByAppendingPathComponent:@"api.log"].path error:nil];
|
||||
}
|
||||
|
||||
[SSZipArchive createZipFileAtPath:zipFile.path withContentsOfDirectory:logsFolderName.path];
|
||||
@@ -53,43 +53,6 @@ RCT_EXPORT_METHOD(sendLogs:(NSString *)dbJson
|
||||
callback(@[zipFile.absoluteString]);
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(initLogging:(BOOL)enabled
|
||||
mobileSystem:(BOOL)mobileSystem
|
||||
logLevel:(NSString *)logLevel
|
||||
logRequestGo:(BOOL)logRequestGo
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
NSString *logDirectory = [self logFileDirectory];
|
||||
NSString *logFilePath = [logDirectory stringByAppendingPathComponent:@"geth.log"];
|
||||
NSString *logRequestFilePath = [logDirectory stringByAppendingPathComponent:@"requests.log"];
|
||||
|
||||
NSDictionary *config = @{
|
||||
@"Enabled": @(enabled),
|
||||
@"MobileSystem": @(mobileSystem),
|
||||
@"Level": logLevel,
|
||||
@"File": logFilePath,
|
||||
@"LogRequestGo": @(logRequestGo),
|
||||
@"LogRequestFile": logRequestFilePath
|
||||
};
|
||||
|
||||
NSError *error;
|
||||
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:config options:0 error:&error];
|
||||
|
||||
if (error) {
|
||||
NSLog(@"Error creating JSON: %@", [error localizedDescription]);
|
||||
return;
|
||||
}
|
||||
|
||||
NSString *configJson = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
||||
|
||||
[StatusBackendClient executeStatusGoRequestWithCallback:@"InitLogging"
|
||||
body:configJson
|
||||
statusgoFunction:^NSString *{
|
||||
return StatusgoInitLogging(configJson);
|
||||
}
|
||||
callback:callback];
|
||||
}
|
||||
|
||||
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(logFileDirectory) {
|
||||
NSURL *rootUrl = [Utils getRootUrl];
|
||||
return rootUrl.path;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
NSString *_statusGoEndpoint;
|
||||
NSString *_signalEndpoint;
|
||||
NSString *_rootDataDir;
|
||||
NSTimer *_pingTimer;
|
||||
}
|
||||
|
||||
RCT_EXPORT_MODULE();
|
||||
@@ -77,6 +78,8 @@ RCT_EXPORT_MODULE();
|
||||
|
||||
[self.webSocket resume];
|
||||
[self receiveMessage];
|
||||
|
||||
[self startPingTimer];
|
||||
}
|
||||
|
||||
- (void)receiveMessage {
|
||||
@@ -109,6 +112,7 @@ RCT_EXPORT_MODULE();
|
||||
}
|
||||
|
||||
- (void)disconnectWebSocket {
|
||||
[self stopPingTimer];
|
||||
if (self.webSocket) {
|
||||
[self.webSocket cancel];
|
||||
self.webSocket = nil;
|
||||
@@ -119,6 +123,7 @@ RCT_EXPORT_MODULE();
|
||||
body:(NSString *)body
|
||||
callback:(void (^)(NSString *response, NSError *error))callback {
|
||||
NSString *fullUrlString = [NSString stringWithFormat:@"%@%@", self.statusGoEndpoint, endpoint];
|
||||
NSLog(@"StatusGo server is enabled, executing request, endpoint: %@, body: %@", fullUrlString, body);
|
||||
NSURL *url = [NSURL URLWithString:fullUrlString];
|
||||
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
|
||||
request.HTTPMethod = @"POST";
|
||||
@@ -225,7 +230,6 @@ RCT_EXPORT_METHOD(configStatusBackendServer:(BOOL)serverEnabled
|
||||
if (client.serverEnabled) {
|
||||
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
|
||||
__block NSString *resultString = @"";
|
||||
|
||||
[client request:endpoint body:body callback:^(NSString *response, NSError *error) {
|
||||
if (error) {
|
||||
NSLog(@"request to %@ failed: %@", endpoint, error);
|
||||
@@ -243,4 +247,33 @@ RCT_EXPORT_METHOD(configStatusBackendServer:(BOOL)serverEnabled
|
||||
}
|
||||
}
|
||||
|
||||
- (void)startPingTimer {
|
||||
[self stopPingTimer];
|
||||
_pingTimer = [NSTimer scheduledTimerWithTimeInterval:30.0
|
||||
target:self
|
||||
selector:@selector(sendPing)
|
||||
userInfo:nil
|
||||
repeats:YES];
|
||||
}
|
||||
|
||||
- (void)stopPingTimer {
|
||||
if (_pingTimer) {
|
||||
[_pingTimer invalidate];
|
||||
_pingTimer = nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)sendPing {
|
||||
if (self.webSocket) {
|
||||
[self.webSocket sendPingWithPongReceiveHandler:^(NSError * _Nullable error) {
|
||||
if (error) {
|
||||
NSLog(@"WebSocket ping failed: %@", error);
|
||||
// Reconnect on ping failure
|
||||
[self disconnectWebSocket];
|
||||
[self connectWebSocket];
|
||||
}
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -1946,35 +1946,6 @@ void _ConnectionChange(const FunctionCallbackInfo<Value>& args) {
|
||||
ConnectionChange(arg0, arg1);
|
||||
}
|
||||
|
||||
void _InitLogging(const FunctionCallbackInfo<Value>& args) {
|
||||
Isolate* isolate = args.GetIsolate();
|
||||
Local<Context> context = isolate->GetCurrentContext();
|
||||
|
||||
if (args.Length() != 1) {
|
||||
// Throw an Error that is passed back to JavaScript
|
||||
isolate->ThrowException(Exception::TypeError(
|
||||
String::NewFromUtf8Literal(isolate, "Wrong number of arguments for InitLogging")));
|
||||
return;
|
||||
}
|
||||
|
||||
// Check the argument types
|
||||
if (!args[0]->IsString()) {
|
||||
isolate->ThrowException(Exception::TypeError(
|
||||
String::NewFromUtf8Literal(isolate, "Wrong argument type for 'logSettingsJSON'")));
|
||||
return;
|
||||
}
|
||||
|
||||
String::Utf8Value arg0Obj(isolate, args[0]->ToString(context).ToLocalChecked());
|
||||
char *arg0 = *arg0Obj;
|
||||
|
||||
// Call exported Go function, which returns a C string
|
||||
char *c = InitLogging(arg0);
|
||||
|
||||
Local<String> ret = String::NewFromUtf8(isolate, c).ToLocalChecked();
|
||||
args.GetReturnValue().Set(ret);
|
||||
delete c;
|
||||
}
|
||||
|
||||
void _RestoreAccountAndLogin(const FunctionCallbackInfo<Value>& args) {
|
||||
Isolate* isolate = args.GetIsolate();
|
||||
Local<Context> context = isolate->GetCurrentContext();
|
||||
@@ -2064,7 +2035,6 @@ void init(Local<Object> exports) {
|
||||
NODE_SET_METHOD(exports, "hashTransaction", _HashTransaction);
|
||||
NODE_SET_METHOD(exports, "connectionChange", _ConnectionChange);
|
||||
NODE_SET_METHOD(exports, "pollSignal", _PollSignal);
|
||||
NODE_SET_METHOD(exports, "initLogging", _InitLogging);
|
||||
NODE_SET_METHOD(exports, "restoreAccountAndLogin", _RestoreAccountAndLogin);
|
||||
}
|
||||
|
||||
|
||||
@@ -8789,31 +8789,31 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/github/status-im/status-keycard-java/android/3.1.1",
|
||||
"path": "com/github/status-im/status-keycard-java/android/3.1.2",
|
||||
"repo": "https://jitpack.io",
|
||||
"files": {
|
||||
"android-3.1.1.pom": {
|
||||
"sha1": "ac7e6699628e329dfc028345f32bc41c5d6c2f33",
|
||||
"sha256": "sha256-EvrtvGGyvB3Fxp72KXYl46pIsxgf8vDMXk9IZjkuEIs="
|
||||
"android-3.1.2.pom": {
|
||||
"sha1": "9afce579939bad3c2b6d15787a0c861f6dbd9afa",
|
||||
"sha256": "sha256-hNYvQQKfHNmbGQw5P0sssZAI11wfRhLir46QdukK0bs="
|
||||
},
|
||||
"android-3.1.1.jar": {
|
||||
"sha1": "26118061c0996fff357ae30cc360e5928c8dd455",
|
||||
"sha256": "sha256-4IjMQ6ZLAlsk4JC9sumOsRhdOF1F0L3Jl8dbEDOBoJY="
|
||||
"android-3.1.2.jar": {
|
||||
"sha1": "46fe72fb8fca5935c73e0df5c10ccdd5c64fca8e",
|
||||
"sha256": "sha256-QNpDWQ1TWvCWg3YdL4UWSEiafpoHavXSY3VWCN45rtE="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/github/status-im/status-keycard-java/lib/3.1.1",
|
||||
"path": "com/github/status-im/status-keycard-java/lib/3.1.2",
|
||||
"repo": "https://jitpack.io",
|
||||
"files": {
|
||||
"lib-3.1.1.pom": {
|
||||
"sha1": "63c7bbd55ddbf88d1b89941f78158aa07fb46873",
|
||||
"sha256": "sha256-ERsZGvECIQGlNusSk+13760//JU6SaONxOW9b3AHFvQ="
|
||||
"lib-3.1.2.pom": {
|
||||
"sha1": "0c0d8ef7318ba054457dea1e6624e0284aec91ca",
|
||||
"sha256": "sha256-Vs9p287YNgMD76/egyeHTqlIsENjwbZsspQbzs8QkeY="
|
||||
},
|
||||
"lib-3.1.1.jar": {
|
||||
"sha1": "07f0374f17160c8731350316226ffe0de50f6f31",
|
||||
"sha256": "sha256-oaolZh+Ad/Dq6byP3SU8z19gUjPdV8wM0Ryobj1Y260="
|
||||
"lib-3.1.2.jar": {
|
||||
"sha1": "5df9eef589a72c5a3143f59b0f547092aeb0c309",
|
||||
"sha256": "sha256-M0P6r96RkgaIjC912Z/VxJgHmfm/ftl7rqYOto8A0Ic="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9082,16 +9082,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-io/commons-io/2.17.0",
|
||||
"path": "commons-io/commons-io/2.18.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"commons-io-2.17.0.pom": {
|
||||
"sha1": "af3aa19bcc67a14e5d0dad042e7d985f733cdff4",
|
||||
"sha256": "sha256-SEqTn/9TELjLXGuQKcLc8VXT+TuLjWKF8/VrsroJ/Ek="
|
||||
"commons-io-2.18.0.pom": {
|
||||
"sha1": "cbd7a6fd54081f8e3d2a90c3cb74a91a31662a86",
|
||||
"sha256": "sha256-Y9lpQetE35yQ0q2yrYw/aZwuBl5wcEXF2vcT/KUrz8o="
|
||||
},
|
||||
"commons-io-2.17.0.jar": {
|
||||
"sha1": "ddcc8433eb019fb48fe25207c0278143f3e1d7e2",
|
||||
"sha256": "sha256-SqTKSPPf0wt4Igt4gdjLk+rECT7JQ2G2vvqUh5mKVQs="
|
||||
"commons-io-2.18.0.jar": {
|
||||
"sha1": "44084ef756763795b31c578403dd028ff4a22950",
|
||||
"sha256": "sha256-88oPjWPEDiOlbVQQHGDV7e4Ta0LYS/uFvHljCTEJz4s="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10987,20 +10987,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-annotations/2.18.0",
|
||||
"path": "com/fasterxml/jackson/core/jackson-annotations/2.18.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-annotations-2.18.0.pom": {
|
||||
"sha1": "15e211c936f255998ba87e8a80c14989f9895f08",
|
||||
"sha256": "sha256-pqA47zy3L8FXW5w4ZdpK2arX0COo1J3K0DeRBlVx6Bw="
|
||||
"jackson-annotations-2.18.2.pom": {
|
||||
"sha1": "40ab24a80879d82a46bd3653a43da88917e929c0",
|
||||
"sha256": "sha256-CyvWlOqJJn7qSBJqilskplI0xkM4dULSRGnRlb+6HPg="
|
||||
},
|
||||
"jackson-annotations-2.18.0.jar": {
|
||||
"sha1": "9bddcc56af9d90f902ef5dba7348102cd12b04e2",
|
||||
"sha256": "sha256-oJNn0u61Joc6v3N/91TFCF+CBzo4LucsO74VQSIXZx8="
|
||||
"jackson-annotations-2.18.2.jar": {
|
||||
"sha1": "985d77751ebc7fce5db115a986bc9aa82f973f4a",
|
||||
"sha256": "sha256-WBvWEADvdkiUP3gcoFaJ5W0D9gUnSDZajis6m10/oy8="
|
||||
},
|
||||
"jackson-annotations-2.18.0.module": {
|
||||
"sha1": "c84262b96118cbb3bc27bf127735b93b18728a6c",
|
||||
"sha256": "sha256-DwmMCDBXb8nHVdQ9fzFuinV8k4ErNXdRJbNo/rzWA10="
|
||||
"jackson-annotations-2.18.2.module": {
|
||||
"sha1": "9bd316d8447c1738d7bbfcc373693627c38eaea4",
|
||||
"sha256": "sha256-4Ruvm1NubflNqmNaEBPsPgabhmuOES3cKqBEahVQUNw="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11021,20 +11021,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-core/2.18.0",
|
||||
"path": "com/fasterxml/jackson/core/jackson-core/2.18.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-core-2.18.0.pom": {
|
||||
"sha1": "1d9d4da19eb2b14ba2975c254b6bfdd8ac4894fd",
|
||||
"sha256": "sha256-2u9SqBcSdESKRuwovBCgBQldduysz4Fbp6Y6AaiGf2c="
|
||||
"jackson-core-2.18.2.pom": {
|
||||
"sha1": "9a77a48adfca5182e9f8b3ee20ee2b186477b089",
|
||||
"sha256": "sha256-4GWwA50h9N/ORr1DEEx9dtWFa9cy4qqGDMWkonDtct4="
|
||||
},
|
||||
"jackson-core-2.18.0.jar": {
|
||||
"sha1": "65e8ead7de5d8f7a53e296c363bea3182f21f925",
|
||||
"sha256": "sha256-IVu9fI/WW+UEy5L/OqHEt5D8exTMpy9FRqrEFDwQG7U="
|
||||
"jackson-core-2.18.2.jar": {
|
||||
"sha1": "fb64ccac5c27dca8819418eb4e443a9f496d9ee7",
|
||||
"sha256": "sha256-2AVK58DRwtL1XSjkYCbr5YkogfP6tfQ5IzGEOBw7Sh8="
|
||||
},
|
||||
"jackson-core-2.18.0.module": {
|
||||
"sha1": "b7e0781f9c8f54d94d5e28bad1816c7a8c3a6799",
|
||||
"sha256": "sha256-xSmBTu77fwRPz2UL+lJ+60totpYGfLZMGmmUcvs1ZYc="
|
||||
"jackson-core-2.18.2.module": {
|
||||
"sha1": "6a97d687f4996c423f97dc56f7e63860581f0f05",
|
||||
"sha256": "sha256-ynjGBDZ2f8w2zhRrd05PUKnLn2MtExcsRLrojgwDz6I="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11055,20 +11055,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-databind/2.18.0",
|
||||
"path": "com/fasterxml/jackson/core/jackson-databind/2.18.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-databind-2.18.0.pom": {
|
||||
"sha1": "3e52a2c42c3824afc2e696dad92f94dd6c1067fb",
|
||||
"sha256": "sha256-+Mn0Od1EsdAkLWbmlB2pfFe6hONANu7peqHDr/vxugQ="
|
||||
"jackson-databind-2.18.2.pom": {
|
||||
"sha1": "65295373e682120eba7894bb6632d6f8d17d5d6c",
|
||||
"sha256": "sha256-STo9tkR7eo7Ls3JCNMbOZ31y20sE9roAjw6+rqe+Wp0="
|
||||
},
|
||||
"jackson-databind-2.18.0.jar": {
|
||||
"sha1": "8dba1f789a75fc30b59303574fe2b269afa4d3bc",
|
||||
"sha256": "sha256-K/GSe38yJGg+0BV6HsOw7edRedo+WX14xXLVbtAPnzw="
|
||||
"jackson-databind-2.18.2.jar": {
|
||||
"sha1": "deef8697b92141fb6caf7aa86966cff4eec9b04f",
|
||||
"sha256": "sha256-SzZOaFDciRcvzx1N0muP9UiO2kT/RlfiLdJlID3Vqzw="
|
||||
},
|
||||
"jackson-databind-2.18.0.module": {
|
||||
"sha1": "49c271f0ef5bb935ca797921904e7ebe138925e3",
|
||||
"sha256": "sha256-LEnsfnQwbUh/lVkbqJiQRhnDKi4/0bWG+z5jIskaTmI="
|
||||
"jackson-databind-2.18.2.module": {
|
||||
"sha1": "8bc88e1ebdc91d61f75e1dabb3cdeaca74ad0032",
|
||||
"sha256": "sha256-jH2sL3J4GNiEeoKqTqxrAXTXnPBN+Q3iJGBy5t005wA="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11100,12 +11100,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-base/2.18.0",
|
||||
"path": "com/fasterxml/jackson/jackson-base/2.18.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-base-2.18.0.pom": {
|
||||
"sha1": "d445ae58e3b3a15aa50a3e3707eaf46463b121e6",
|
||||
"sha256": "sha256-EFZMv/uFf5BlqhG1hJqMMIw1NfD1PG9Muytvt7NQf5c="
|
||||
"jackson-base-2.18.2.pom": {
|
||||
"sha1": "08e5c4c7f519a42a74dac257c922a7adbb4dda1b",
|
||||
"sha256": "sha256-71dLcvW0iUgET2g3a4dMiK4JoCncjgX2Shwwvftt4Uo="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11122,12 +11122,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-bom/2.18.0",
|
||||
"path": "com/fasterxml/jackson/jackson-bom/2.18.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-bom-2.18.0.pom": {
|
||||
"sha1": "02fecc45cb9609006d979cb8f06f8a571957a0b8",
|
||||
"sha256": "sha256-ut3oZMpztsoE3p9+5J5knhpeivj4x8FoLHRr5eI0xYc="
|
||||
"jackson-bom-2.18.2.pom": {
|
||||
"sha1": "b269a504e4c7d10af05db454c367fb03d6c434b6",
|
||||
"sha256": "sha256-UkfNwwFyXT9n9+8EkDconVr3CdaXK89LFwluRUjSlWs="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11144,12 +11144,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-parent/2.18",
|
||||
"path": "com/fasterxml/jackson/jackson-parent/2.18.1",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-parent-2.18.pom": {
|
||||
"sha1": "3696eb746d84dafc7933ec26f13f4fb407530ab0",
|
||||
"sha256": "sha256-Vp3ADWi05t993oVimeHANT+kC9rxI+DfVj7L7kFlhtk="
|
||||
"jackson-parent-2.18.1.pom": {
|
||||
"sha1": "fcd5c9c72aeebb63d13eb4330842fdb8ae4f9a1c",
|
||||
"sha256": "sha256-0IIvrBoCJoRLitRFySDEmk9hkWnQmxAQp9/u0ZkQmYw="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11166,12 +11166,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/module/jackson-modules-base/2.18.0",
|
||||
"path": "com/fasterxml/jackson/module/jackson-modules-base/2.18.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-modules-base-2.18.0.pom": {
|
||||
"sha1": "6c3a68a52acce7482ba68999bd9b06a076b4c0ce",
|
||||
"sha256": "sha256-vtjbLqeIGzWwOA9V+67R1Wv+P9o6AmB0Ww9dXqzteyk="
|
||||
"jackson-modules-base-2.18.2.pom": {
|
||||
"sha1": "a38a7c307ae9250be61ea90b86dab2b3b504f847",
|
||||
"sha256": "sha256-wVCoPSPNizMiqqSYmEh0J5vi3I1f4qN5B9P1arYOJpw="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11192,20 +11192,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.18.0",
|
||||
"path": "com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.18.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-module-jaxb-annotations-2.18.0.pom": {
|
||||
"sha1": "40eb69b3a20fb98faf66bee669b60e0fbda324ad",
|
||||
"sha256": "sha256-rOb/zJ9+f89Atu3uRVB6FQJdI5N6PbBSxDNSeVdJQ9c="
|
||||
"jackson-module-jaxb-annotations-2.18.2.pom": {
|
||||
"sha1": "36b8fbaf3577061bb92ecf23d6aa9d802558fdb4",
|
||||
"sha256": "sha256-T2FGzIFi5nDA1ERI8q1Iqf9WSeQHFmhM+gSua2Bm+fA="
|
||||
},
|
||||
"jackson-module-jaxb-annotations-2.18.0.jar": {
|
||||
"sha1": "62cc7b7517b752360fef4796e396363a2396d29c",
|
||||
"sha256": "sha256-WStXNngYHG2Te1dJnDqGrON3knBrVoRFc3FcC7muw30="
|
||||
"jackson-module-jaxb-annotations-2.18.2.jar": {
|
||||
"sha1": "048c96032e5a428739e28ff04973717c032df598",
|
||||
"sha256": "sha256-ZFyk3imYBHPxmubAjXws4OP9JzJE0xVbXao7yC+hPUE="
|
||||
},
|
||||
"jackson-module-jaxb-annotations-2.18.0.module": {
|
||||
"sha1": "7adb3648b6e45a0ce0afd75efca142268ca592a1",
|
||||
"sha256": "sha256-66HSqRlv9sC7h9CrfZ6Ta5i2y7eZH8DUShi2gtBDmns="
|
||||
"jackson-module-jaxb-annotations-2.18.2.module": {
|
||||
"sha1": "2c300d407906f321a9e3d3ecc01cc56696ffc660",
|
||||
"sha256": "sha256-wRlrUgwa7RJ88R3ka0l9gbxPNVquWqvIFwcwfX6x30U="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12215,16 +12215,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/errorprone/error_prone_annotations/2.35.1",
|
||||
"path": "com/google/errorprone/error_prone_annotations/2.36.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"error_prone_annotations-2.35.1.pom": {
|
||||
"sha1": "7b4b876b40f04941ede1e324f2af6261ad514a7b",
|
||||
"sha256": "sha256-un1clTzvrQU6AlOiJ46g1u+aiW4ZKgMnzHiO9EJBeBc="
|
||||
"error_prone_annotations-2.36.0.pom": {
|
||||
"sha1": "daf188a28315b31852ebd550f78f6b764972ee1f",
|
||||
"sha256": "sha256-15z9N8hfdta3VMdQHuHchEe3smQsI4LXeCUhZr0zHpw="
|
||||
},
|
||||
"error_prone_annotations-2.35.1.jar": {
|
||||
"sha1": "c36f9e12192226278c2b163bf61990b131e59903",
|
||||
"sha256": "sha256-A7Y/7jjjqG/aMRr1oDV+ZO6kSQmqtSUe0XgRknBQj/U="
|
||||
"error_prone_annotations-2.36.0.jar": {
|
||||
"sha1": "227d4d4957ccc3dc5761bd897e3a0ee587e750a7",
|
||||
"sha256": "sha256-d0QOJwsLyaJJkDxaB2w2pyLEiGyk9CZ18pA6HFPtYaU="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12362,12 +12362,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/errorprone/error_prone_parent/2.35.1",
|
||||
"path": "com/google/errorprone/error_prone_parent/2.36.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"error_prone_parent-2.35.1.pom": {
|
||||
"sha1": "ec496cb2eecb573bac52f53e75e677d21b7d79dd",
|
||||
"sha256": "sha256-vclIzC9eZtiTxFLrVEXgU1TS8PrejWxkUxDYJgEWu0k="
|
||||
"error_prone_parent-2.36.0.pom": {
|
||||
"sha1": "f280159378f00e9f428f10887e22f84ebb2c7e9f",
|
||||
"sha256": "sha256-Okz8imvtYetI6Wl5b8MeoNJwtj5nBZmUamGIOttwlNw="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12953,12 +12953,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/protobuf/protobuf-bom/4.29.0-RC2",
|
||||
"path": "com/google/protobuf/protobuf-bom/4.29.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"protobuf-bom-4.29.0-RC2.pom": {
|
||||
"sha1": "9a1d56ef3dcd903fe6188028b41a08cd95b7aed6",
|
||||
"sha256": "sha256-+fpeoeIYK8Z1Ug+VW8oKTMXIqjvw0QlYTlSXaC7Z268="
|
||||
"protobuf-bom-4.29.0.pom": {
|
||||
"sha1": "5542df7ac3708da8bf30756f4ee6d804d04b8c9b",
|
||||
"sha256": "sha256-3L/Apl6DmDAE0HFOmL8NIGBwEUVbYhk5cowAkmvIyZk="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13204,16 +13204,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/protobuf/protobuf-java/4.29.0-RC2",
|
||||
"path": "com/google/protobuf/protobuf-java/4.29.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"protobuf-java-4.29.0-RC2.pom": {
|
||||
"sha1": "6a3b8220cf0191d1cac58f518e8fe089105a6215",
|
||||
"sha256": "sha256-laBUKUQ7qipRaJ2LniTI0JIqMOTbBMbK2MPX5F6+G9A="
|
||||
"protobuf-java-4.29.0.pom": {
|
||||
"sha1": "27c4abe9c47f4aed31cf7acff86853a05f7e85f0",
|
||||
"sha256": "sha256-7cHftEVG5yel+sU/CQUGv6aN2DB65vEHbv+tVy+S16Q="
|
||||
},
|
||||
"protobuf-java-4.29.0-RC2.jar": {
|
||||
"sha1": "2c26bef798eaf3604cae2487cc7f98fbc30b34b2",
|
||||
"sha256": "sha256-7UEwvtFLpLMrQFVkcnZC1J3sqc14fsugWtO2/2377YQ="
|
||||
"protobuf-java-4.29.0.jar": {
|
||||
"sha1": "ffea90ab158435d68de76951857ef5f8b0f98365",
|
||||
"sha256": "sha256-FpAYUevl6J/oiqrTwmhmNzaVvC4wYnu4kyhH4vX8LnY="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13333,12 +13333,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/protobuf/protobuf-parent/4.29.0-RC2",
|
||||
"path": "com/google/protobuf/protobuf-parent/4.29.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"protobuf-parent-4.29.0-RC2.pom": {
|
||||
"sha1": "87f14265eeeddd4c78ccaed313fe4125e7681442",
|
||||
"sha256": "sha256-awus769PZSQsjKRKvb1PZe3Z0XoiZ1PetQE3m7dICzU="
|
||||
"protobuf-parent-4.29.0.pom": {
|
||||
"sha1": "c35e0844930aea715cc8f4335fee49223b1fe35c",
|
||||
"sha256": "sha256-jU6O2nh45revZuPCtvWHE839P7bNsHGS3My2HN0uSTA="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15259,16 +15259,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "io/netty/netty-tcnative-classes/2.0.66.Final",
|
||||
"path": "io/netty/netty-tcnative-classes/2.0.69.Final",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"netty-tcnative-classes-2.0.66.Final.pom": {
|
||||
"sha1": "75dca372aa373fac57023721582360f84c79e44c",
|
||||
"sha256": "sha256-SULNAuKRbB+094zKiEHw9yGbuQ+CirdImokCfC76kes="
|
||||
"netty-tcnative-classes-2.0.69.Final.pom": {
|
||||
"sha1": "ee65d639d3c5312a4b6369f0d59504ad0c8dfe0b",
|
||||
"sha256": "sha256-WdoPlJ4r7on1cR6z4Mb9jPeRTmtwwAfza56waIJDAVw="
|
||||
},
|
||||
"netty-tcnative-classes-2.0.66.Final.jar": {
|
||||
"sha1": "9588bd2f891157538a78d86c945aa34bf9308dda",
|
||||
"sha256": "sha256-ZpqBGhk9wefJ74bLVHpKuS8PNMzo+bhCuQKb9c+gfMU="
|
||||
"netty-tcnative-classes-2.0.69.Final.jar": {
|
||||
"sha1": "0f018f36b688bafabe4573af230a8b59cf3c0713",
|
||||
"sha256": "sha256-C7woSMsJnrP29Ow2UBs2AOGChFfNpB1TMGh/YB7gS+8="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15285,12 +15285,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "io/netty/netty-tcnative-parent/2.0.66.Final",
|
||||
"path": "io/netty/netty-tcnative-parent/2.0.69.Final",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"netty-tcnative-parent-2.0.66.Final.pom": {
|
||||
"sha1": "91784588e56a54734c698f08118b4f3b94a58ec1",
|
||||
"sha256": "sha256-KwF/s8He6rXR6uvsE0ZZt96ueMFNXr/D1JwLMITqc2U="
|
||||
"netty-tcnative-parent-2.0.69.Final.pom": {
|
||||
"sha1": "ba3c1cc69d48f0196ee84ecd3c5157c52a987931",
|
||||
"sha256": "sha256-KVMCcZZjdhDIlPMr2nBQk82HaDFcnxpXOVGnXxeGmvw="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15804,17 +15804,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy-parent/1.14.18",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-parent-1.14.18.pom": {
|
||||
"sha1": "6b0b1f08e2d2d8166176c80fd22ee3198a26a3cf",
|
||||
"sha256": "sha256-dpxdCxEV5z9oRSu6qjVrrZtzfV/ge4PUyeSDl1uB/jw="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy-parent/1.15.4",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
@@ -15826,6 +15815,17 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy-parent/1.15.10",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-parent-1.15.10.pom": {
|
||||
"sha1": "6f8c0f39f52c09fbf4df945ff563f5fd81130724",
|
||||
"sha256": "sha256-ZX1HwTcRTN8u0plv73gJYTgX3v9k2L4TI/QJiaO6BG4="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy/1.11.13",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
@@ -15856,21 +15856,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy/1.14.18",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-1.14.18.pom": {
|
||||
"sha1": "5f889814c247762909c7007bdf5ef72f2e7cea7a",
|
||||
"sha256": "sha256-IvsZB4/nBkirYFSSZscUaZaEciaqbm9+iP7MCBRySTk="
|
||||
},
|
||||
"byte-buddy-1.14.18.jar": {
|
||||
"sha1": "0081e9b9a20944626e6757b5950676af901c2485",
|
||||
"sha256": "sha256-UhF68WlqU6p3wTE1MHStolzL3y31EfKvM/rWcE+pUQQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy/1.15.4",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
@@ -15886,6 +15871,21 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy/1.15.10",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-1.15.10.pom": {
|
||||
"sha1": "c968dc18f092176badbc9bd389ce53cbb6f13aa5",
|
||||
"sha256": "sha256-BCz/E2+5FPl2I7oremhdmEuGnb+1tFIdx8kiejJZznA="
|
||||
},
|
||||
"byte-buddy-1.15.10.jar": {
|
||||
"sha1": "635c873fadd853c084f84fdc3cbd58c5dd8537f9",
|
||||
"sha256": "sha256-2DkNIGhaQaK9ymQPlYlCzZG8vyHEJHBJS99XUtmgexQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/java/dev/jna/jna-platform/5.6.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
@@ -16726,12 +16726,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/apache/commons/commons-parent/74",
|
||||
"path": "org/apache/commons/commons-parent/78",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"commons-parent-74.pom": {
|
||||
"sha1": "704abf062c1f6e03f8bcf6929b4777b9af5048a5",
|
||||
"sha256": "sha256-gOthsMh/3YJqBpMTsotnLaPxiFgy2kR7Uebophl+fss="
|
||||
"commons-parent-78.pom": {
|
||||
"sha1": "c59670d5fff6efd8b31013cb579732c75a250b4c",
|
||||
"sha256": "sha256-Ai0gLmVe3QTyoQ7L5FPZKXeSTTg4Ckyow1nxgXqAMg4="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -17471,20 +17471,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/checkerframework/checker-qual/3.48.1",
|
||||
"path": "org/checkerframework/checker-qual/3.48.2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"checker-qual-3.48.1.pom": {
|
||||
"sha1": "b6dca63179b1aedebea4b5eb877342e3f6ff8916",
|
||||
"sha256": "sha256-4vslCCqCrdKE9gwb/yXZMBzX6bJhOIEs3tGEXutCJ8k="
|
||||
"checker-qual-3.48.2.pom": {
|
||||
"sha1": "95acb8356a028eeb22171b7330f7bb78cf0f9506",
|
||||
"sha256": "sha256-Sk+LlzEYgyx4SrUIpzAJ2tAt5Nq/0dFJLWa45MC6HRE="
|
||||
},
|
||||
"checker-qual-3.48.1.jar": {
|
||||
"sha1": "7d8cf1c00aec0042df92f8d71d7f15baaf9773f4",
|
||||
"sha256": "sha256-Iejf6BA+El2WoyllPKgeh6xDAybb2/KZzqPcGuPwOaI="
|
||||
"checker-qual-3.48.2.jar": {
|
||||
"sha1": "2a4797df796b23026b8215545b0d2936bacc52af",
|
||||
"sha256": "sha256-ryPyDJlbL+3jWx66gRd6mmaUTsZ7jk3uGapMwLcQxrU="
|
||||
},
|
||||
"checker-qual-3.48.1.module": {
|
||||
"sha1": "f1e778df44d6ca615e580cf2bf3c0ad7ad898d6e",
|
||||
"sha256": "sha256-2By/MdXdg8qGleCloaRz6TS5mq3GpN2UnvT1ll8lYAM="
|
||||
"checker-qual-3.48.2.module": {
|
||||
"sha1": "cdf30d8d4b97e12fc85e65e1bd55210a1a084b10",
|
||||
"sha256": "sha256-D2RjlMmz5KL1aitsZ6C0NAkqxrq3pJvC/wGtjKf08NU="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -17820,27 +17820,27 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/easymock/easymock-parent/5.4.0",
|
||||
"path": "org/easymock/easymock-parent/5.5.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"easymock-parent-5.4.0.pom": {
|
||||
"sha1": "ac49fe5a7d9cfec46d7386f713c5cd5c5afed89f",
|
||||
"sha256": "sha256-sKGUgoX4OZNIqWxgWTXYJVCnVKTDNfw0SfogL74qAnI="
|
||||
"easymock-parent-5.5.0.pom": {
|
||||
"sha1": "a30937cb15aa72370d3841ca217dd04cd24d506c",
|
||||
"sha256": "sha256-e7FiABT3ApRLbKcywPIh6jLHwyfQ9fM6zuGf/gtAJ6A="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/easymock/easymock/5.4.0",
|
||||
"path": "org/easymock/easymock/5.5.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"easymock-5.4.0.pom": {
|
||||
"sha1": "d566a45d12ee304ab0fba3877ebd93ef64469ea8",
|
||||
"sha256": "sha256-v/kNdi/BrWVB5jCrgeBzJPVflbd5BhE6NKpnqn2HPhk="
|
||||
"easymock-5.5.0.pom": {
|
||||
"sha1": "a711c875746fa00d8c929824b0f99ed7f103ac75",
|
||||
"sha256": "sha256-0TuotyX47NbHANkl9v78MwXLkIGtzLN97cUxr9HzfQY="
|
||||
},
|
||||
"easymock-5.4.0.jar": {
|
||||
"sha1": "eb56bad81c203765f4a5c74aed28142fb0d79354",
|
||||
"sha256": "sha256-SDUEf+QbVDSRB8EaGEuhIvo8P8cIQHU0ZfdCtJ5+A6M="
|
||||
"easymock-5.5.0.jar": {
|
||||
"sha1": "b07e2bcbc7b6bcae190a18b9ced742b6fd9ceec3",
|
||||
"sha256": "sha256-vwW1axAr6Rx80LutFoTVgJrCzNA4DmhPlEW/3hRBj38="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -19901,16 +19901,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/jetbrains/kotlin/kotlin-reflect/2.1.0-Beta2",
|
||||
"path": "org/jetbrains/kotlin/kotlin-reflect/2.1.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"kotlin-reflect-2.1.0-Beta2.pom": {
|
||||
"sha1": "3e7baa22fcb4cc619f4bd40486276a93f3f2a0c3",
|
||||
"sha256": "sha256-Mh8VtvMp1G9QUK5EgUhLQ0nCEefVB7U0spO9fTwzNkg="
|
||||
"kotlin-reflect-2.1.0.pom": {
|
||||
"sha1": "6c72cb76dbf12249eec091d5a7d6ea27a27fcc87",
|
||||
"sha256": "sha256-nNhLPU9xfJYjXkujtydolcz/1V3kEcfOCz97q1Yu/kI="
|
||||
},
|
||||
"kotlin-reflect-2.1.0-Beta2.jar": {
|
||||
"sha1": "d776709bc948b0d4d1f06d0da76c3754d80d6f50",
|
||||
"sha256": "sha256-gBuxZsoD8bj+VXCQtpxdW3CeUiyFTSnSWyTW0JLqjRo="
|
||||
"kotlin-reflect-2.1.0.jar": {
|
||||
"sha1": "dc3753b59b67d79b7d2f546d51e22a0ec1f082d8",
|
||||
"sha256": "sha256-tfYI7fqYqM+iNyzBLRitqXS+HFbBCT7/BswGH0/AiLI="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -21579,24 +21579,24 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/2.1.0-Beta2",
|
||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/2.1.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"kotlin-stdlib-2.1.0-Beta2.pom": {
|
||||
"sha1": "9bf48efa052a62e8f741b1da18105848536e0b98",
|
||||
"sha256": "sha256-yK+DAGdGa23mj4Gpm5qTnpn65U2VBdfG8eXQKG9Ckuw="
|
||||
"kotlin-stdlib-2.1.0.pom": {
|
||||
"sha1": "b7c581edbfc43221bf7a18ea76cc482111bba949",
|
||||
"sha256": "sha256-E05IwXeWwcECfsvmyfHHXHkvU1mHq4nh4d2kP4w2b14="
|
||||
},
|
||||
"kotlin-stdlib-2.1.0-Beta2-all.jar": {
|
||||
"kotlin-stdlib-2.1.0-all.jar": {
|
||||
"sha1": "37a691f3c171dc54afc64aedcd63da3440df12d3",
|
||||
"sha256": "sha256-p0EvZtcbzSchw5gweXL7tflAn5RWQ+7gXRCAsomjOcs="
|
||||
},
|
||||
"kotlin-stdlib-2.1.0-Beta2.jar": {
|
||||
"sha1": "9b6eab04a97dfca8f091764bc5bc89604afc7b01",
|
||||
"sha256": "sha256-a+9Pxnj5YEdA0GUcZbg0Rw2GM8nxKfMZzNWstMvztLs="
|
||||
"kotlin-stdlib-2.1.0.jar": {
|
||||
"sha1": "85f8b81009cda5890e54ba67d64b5e599c645020",
|
||||
"sha256": "sha256-1vkbew8wbMopn+x0+3w05IdNb17FuSWgtN4hkB4RnD8="
|
||||
},
|
||||
"kotlin-stdlib-2.1.0-Beta2.module": {
|
||||
"sha1": "fc5281ea91c36234d3aa0de8e0c70e0f8892a677",
|
||||
"sha256": "sha256-3yeZ0iUo792hyfKjSIBL692eYtrGQGxNURFP++ylC2w="
|
||||
"kotlin-stdlib-2.1.0.module": {
|
||||
"sha1": "10243b69a055e7a0aac5eff98c9509f34b4b5d1e",
|
||||
"sha256": "sha256-3PvI6L8yzWen763ZHTEVK86YcJEdbsUIePT9tuA+cOI="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -22698,21 +22698,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/ow2/asm/asm/9.7",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"asm-9.7.pom": {
|
||||
"sha1": "e2568079bd69f0fdf35fe2d9e7cd9b16db8eff94",
|
||||
"sha256": "sha256-3gARXx2E86Cy7jpLb2GS0Gb4bRhdZ7nRUi8sgP6sXwA="
|
||||
},
|
||||
"asm-9.7.jar": {
|
||||
"sha1": "073d7b3086e14beb604ced229c302feff6449723",
|
||||
"sha256": "sha256-rfRtXjSUC98Ujs3Sap7o7qlElqcgNP9xQQZrPupcTp0="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/ow2/ow2/1.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
|
||||
@@ -559,8 +559,8 @@ com.github.bumptech.glide:glide:4.12.0
|
||||
com.github.bumptech.glide:okhttp3-integration:4.12.0
|
||||
com.github.clans:fab:1.6.4
|
||||
com.github.gundy:semver4j:0.16.4
|
||||
com.github.status-im.status-keycard-java:android:3.1.1
|
||||
com.github.status-im.status-keycard-java:lib:3.1.1
|
||||
com.github.status-im.status-keycard-java:android:3.1.2
|
||||
com.github.status-im.status-keycard-java:lib:3.1.2
|
||||
com.github.status-im:function:0.0.1
|
||||
com.github.wix-playground:ahbottomnavigation:3.3.0
|
||||
com.github.wix-playground:reflow-animator:1.0.6
|
||||
|
||||
@@ -545,8 +545,8 @@ https://dl.google.com/dl/android/maven2/com/google/testing/platform/launcher/0.0
|
||||
https://dl.google.com/dl/android/maven2/com/google/test/platform/core-proto/0.0.2-dev/core-proto-0.0.2-dev.pom
|
||||
https://jitpack.io/com/github/Dimezis/BlurView/version-2.0.4/BlurView-version-2.0.4.pom
|
||||
https://jitpack.io/com/github/status-im/function/0.0.1/function-0.0.1.pom
|
||||
https://jitpack.io/com/github/status-im/status-keycard-java/android/3.1.1/android-3.1.1.pom
|
||||
https://jitpack.io/com/github/status-im/status-keycard-java/lib/3.1.1/lib-3.1.1.pom
|
||||
https://jitpack.io/com/github/status-im/status-keycard-java/android/3.1.2/android-3.1.2.pom
|
||||
https://jitpack.io/com/github/status-im/status-keycard-java/lib/3.1.2/lib-3.1.2.pom
|
||||
https://jitpack.io/com/github/wix-playground/ahbottomnavigation/3.3.0/ahbottomnavigation-3.3.0.pom
|
||||
https://jitpack.io/com/github/wix-playground/reflow-animator/1.0.6/reflow-animator-1.0.6.pom
|
||||
https://jitpack.io/com/github/yalantis/ucrop/2.2.6-native/ucrop-2.2.6-native.pom
|
||||
@@ -564,7 +564,7 @@ https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.10/commons-co
|
||||
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.pom
|
||||
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.17.1/commons-codec-1.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.4/commons-io-2.4.pom
|
||||
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.17.0/commons-io-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.18.0/commons-io-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
|
||||
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
|
||||
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.3.4/commons-logging-1.3.4.pom
|
||||
@@ -667,22 +667,22 @@ https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.10.1/soloa
|
||||
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.10.5/soloader-0.10.5.pom
|
||||
https://repo.maven.apache.org/maven2/com/facebook/yoga/proguard-annotations/1.19.0/proguard-annotations-1.19.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.11.1/jackson-annotations-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.18.0/jackson-annotations-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.18.2/jackson-annotations-2.18.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.11.1/jackson-core-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.18.0/jackson-core-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.18.2/jackson-core-2.18.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.11.1/jackson-databind-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.18.0/jackson-databind-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.18.2/jackson-databind-2.18.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.1/jackson-dataformat-xml-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.11.1/jackson-base-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.18.0/jackson-base-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.18.2/jackson-base-2.18.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.11.1/jackson-bom-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.18.0/jackson-bom-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.18.2/jackson-bom-2.18.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2.11/jackson-parent-2.11.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2.18/jackson-parent-2.18.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2.18.1/jackson-parent-2.18.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-modules-base/2.11.1/jackson-modules-base-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-modules-base/2.18.0/jackson-modules-base-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-modules-base/2.18.2/jackson-modules-base-2.18.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.1/jackson-module-jaxb-annotations-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.18.0/jackson-module-jaxb-annotations-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.18.2/jackson-module-jaxb-annotations-2.18.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-kotlin/2.11.1/jackson-module-kotlin-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/oss-parent/38/oss-parent-38.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/oss-parent/61/oss-parent-61.pom
|
||||
@@ -751,7 +751,7 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotatio
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.10.0/error_prone_annotations-2.10.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.27.0/error_prone_annotations-2.27.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.35.1/error_prone_annotations-2.35.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.36.0/error_prone_annotations-2.36.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1.pom
|
||||
@@ -764,7 +764,7 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.10.0/error_prone_parent-2.10.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.11.0/error_prone_parent-2.11.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.27.0/error_prone_parent-2.27.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.35.1/error_prone_parent-2.35.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.36.0/error_prone_parent-2.36.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/flatbuffers/flatbuffers-java/1.12.0/flatbuffers-java-1.12.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom
|
||||
@@ -809,7 +809,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.13.0/pro
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.17.2/protobuf-bom-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.19.2/protobuf-bom-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.19.3/protobuf-bom-3.19.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/4.29.0-RC2/protobuf-bom-4.29.0-RC2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/4.29.0/protobuf-bom-4.29.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/3.17.2/protobuf-javalite-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/3.19.2/protobuf-javalite-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java-util/3.4.0/protobuf-java-util-3.4.0.pom
|
||||
@@ -826,7 +826,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.13.0/pr
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.17.2/protobuf-java-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.19.2/protobuf-java-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.19.3/protobuf-java-3.19.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.29.0-RC2/protobuf-java-4.29.0-RC2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.29.0/protobuf-java-4.29.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-lite/3.0.1/protobuf-lite-3.0.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.0.0/protobuf-parent-3.0.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.4.0/protobuf-parent-3.4.0.pom
|
||||
@@ -837,7 +837,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.13.0/
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.17.2/protobuf-parent-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.19.2/protobuf-parent-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.19.3/protobuf-parent-3.19.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.29.0-RC2/protobuf-parent-4.29.0-RC2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.29.0/protobuf-parent-4.29.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/truth/truth-parent/1.4.4/truth-parent-1.4.4.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/truth/truth/1.4.4/truth-1.4.4.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/zxing/core/3.4.1/core-3.4.1.pom
|
||||
@@ -971,9 +971,9 @@ https://repo.maven.apache.org/maven2/io/netty/netty-resolver/4.1.52.Final/netty-
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-resolver/4.1.72.Final/netty-resolver-4.1.72.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-resolver/5.0.0.Alpha2/netty-resolver-5.0.0.Alpha2.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-tcnative-classes/2.0.46.Final/netty-tcnative-classes-2.0.46.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-tcnative-classes/2.0.66.Final/netty-tcnative-classes-2.0.66.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-tcnative-classes/2.0.69.Final/netty-tcnative-classes-2.0.69.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-tcnative-parent/2.0.46.Final/netty-tcnative-parent-2.0.46.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-tcnative-parent/2.0.66.Final/netty-tcnative-parent-2.0.66.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-tcnative-parent/2.0.69.Final/netty-tcnative-parent-2.0.69.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.34.Final/netty-transport-4.1.34.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.52.Final/netty-transport-4.1.52.Final.pom
|
||||
https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.72.Final/netty-transport-4.1.72.Final.pom
|
||||
@@ -1009,12 +1009,12 @@ https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.11.19/byte
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.15.4/byte-buddy-agent-1.15.4.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.11.13/byte-buddy-parent-1.11.13.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.11.19/byte-buddy-parent-1.11.19.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.14.18/byte-buddy-parent-1.14.18.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.15.4/byte-buddy-parent-1.15.4.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.15.10/byte-buddy-parent-1.15.10.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.11.13/byte-buddy-1.11.13.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.11.19/byte-buddy-1.11.19.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.14.18/byte-buddy-1.14.18.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.15.4/byte-buddy-1.15.4.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.15.10/byte-buddy-1.15.10.pom
|
||||
https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.6.0/jna-platform-5.6.0.pom
|
||||
https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom
|
||||
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/1/jvnet-parent-1.pom
|
||||
@@ -1080,7 +1080,7 @@ https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/48/common
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/52/commons-parent-52.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/71/commons-parent-71.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/72/commons-parent-72.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/74/commons-parent-74.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/78/commons-parent-78.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.2.6/httpclient-4.2.6.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.pom
|
||||
@@ -1135,7 +1135,7 @@ https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.8.1/che
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.5.0/checker-qual-3.5.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.48.1/checker-qual-3.48.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.48.2/checker-qual-3.48.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-xml/3.0.9/groovy-xml-3.0.9.pom
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-xml/3.0.10/groovy-xml-3.0.10.pom
|
||||
@@ -1158,8 +1158,8 @@ https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/84/mojo-paren
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/easymock/easymockclassextension/3.2/easymockclassextension-3.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/easymock/easymock-parent/3.2/easymock-parent-3.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/easymock/easymock-parent/5.4.0/easymock-parent-5.4.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/easymock/easymock/5.4.0/easymock-5.4.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/easymock/easymock-parent/5.5.0/easymock-parent-5.5.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/easymock/easymock/5.5.0/easymock-5.5.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/eclipse/angus/angus-activation-project/2.0.2/angus-activation-project-2.0.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/eclipse/angus/angus-activation/2.0.2/angus-activation-2.0.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/eclipse/ee4j/project/1.0.2/project-1.0.2.pom
|
||||
@@ -1285,7 +1285,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.20/kotlin-reflect-1.6.20.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.10/kotlin-reflect-1.7.10.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.20-RC2/kotlin-reflect-1.8.20-RC2.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.1.0-Beta2/kotlin-reflect-2.1.0-Beta2.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.1.0/kotlin-reflect-2.1.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20/kotlin-scripting-common-1.6.20.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.8.0/kotlin-scripting-common-1.8.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.0/kotlin-scripting-common-1.9.0.pom
|
||||
@@ -1395,7 +1395,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.8.22/k
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.0/kotlin-stdlib-1.9.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.25/kotlin-stdlib-1.9.25.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.1.0-Beta2/kotlin-stdlib-2.1.0-Beta2.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.1.0/kotlin-stdlib-2.1.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.8.0/kotlin-tooling-core-1.8.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.0/kotlin-tooling-core-1.9.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-metadata/1.6.20/kotlin-tooling-metadata-1.6.20.pom
|
||||
@@ -1471,7 +1471,6 @@ https://repo.maven.apache.org/maven2/org/ow2/asm/asm/8.0.1/asm-8.0.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.1/asm-9.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.7.1/asm-9.7.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/ow2/asm/asm/9.7/asm-9.7.pom
|
||||
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.3/ow2-1.3.pom
|
||||
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.5.1/ow2-1.5.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/ow2/ow2/1.5/ow2-1.5.pom
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
"react-native-shake": "^3.3.1",
|
||||
"react-native-share": "10.0.2",
|
||||
"react-native-static-safe-area-insets": "^2.2.0",
|
||||
"react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#refs/tags/v2.5.39",
|
||||
"react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#refs/tags/v2.6.4",
|
||||
"react-native-svg": "13.10.0",
|
||||
"react-native-webview": "13.6.3",
|
||||
"react-syntax-highlighter": "^15.5.0"
|
||||
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 345 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 227 KiB |
|
After Width: | Height: | Size: 434 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 162 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 282 KiB |
|
After Width: | Height: | Size: 542 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
@@ -1,8 +1,8 @@
|
||||
import { useDerivedValue, withTiming, Easing } from 'react-native-reanimated';
|
||||
|
||||
const slideAnimationDuration = 300;
|
||||
const totalPages = 4;
|
||||
const pageSize = 100 / totalPages;
|
||||
const totalPages = 3;
|
||||
const pageSize = 25;
|
||||
|
||||
const easeOut = {
|
||||
duration: slideAnimationDuration,
|
||||
@@ -13,7 +13,7 @@ const easeOut = {
|
||||
export function dynamicProgressBarWidth(staticProgressBarWidth, progress) {
|
||||
return useDerivedValue(function () {
|
||||
'worklet';
|
||||
return (staticProgressBarWidth * (progress.value || 0)) / 100;
|
||||
return (staticProgressBarWidth * (progress.value || 0)) / 75;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -26,6 +26,6 @@ export function carouselLeftPosition(windowWidth, progress, isDragging, dragAmou
|
||||
const baseOffset = (Math.floor(progressValue / pageSize) % totalPages) * windowWidth;
|
||||
const adjustedOffset = baseOffset === 0 && dragAmountValue > 0 ? baseOffset : -baseOffset + dragAmountValue;
|
||||
|
||||
return isDragging.value ? withTiming(adjustedOffset, easeOut) : withTiming(-baseOffset, easeOut);
|
||||
return isDragging.value ? adjustedOffset : withTiming(-baseOffset, easeOut);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
(:require
|
||||
["react-native" :as rn]
|
||||
["react-native-status-keycard" :default status-keycard]
|
||||
[oops.core :as oops]
|
||||
[react-native.platform :as platform]
|
||||
[schema.core :as schema]
|
||||
[taoensso.timbre :as log]))
|
||||
|
||||
(defonce event-emitter
|
||||
@@ -69,6 +71,10 @@
|
||||
[callback]
|
||||
(.addListener ^js event-emitter "keyCardOnDisconnected" callback))
|
||||
|
||||
(defn on-card-new-pairing
|
||||
[callback]
|
||||
(.addListener ^js event-emitter "keyCardNewPairing" callback))
|
||||
|
||||
(defn on-nfc-user-cancelled
|
||||
[callback]
|
||||
(.addListener ^js event-emitter "keyCardOnNFCUserCancelled" callback))
|
||||
@@ -254,17 +260,19 @@
|
||||
(catch on-failure))))
|
||||
|
||||
(defn sign
|
||||
[{pin :pin path :path card-hash :hash on-success :on-success on-failure :on-failure}]
|
||||
(when (and pin card-hash)
|
||||
(if path
|
||||
(.. status-keycard
|
||||
(signWithPath pin path card-hash)
|
||||
(then on-success)
|
||||
(catch on-failure))
|
||||
(.. status-keycard
|
||||
(sign pin card-hash)
|
||||
(then on-success)
|
||||
(catch on-failure)))))
|
||||
[{:keys [pin path hash-data]}]
|
||||
(if path
|
||||
(oops/ocall status-keycard "signWithPath" pin path hash-data)
|
||||
(oops/ocall status-keycard "sign" pin hash-data)))
|
||||
|
||||
(schema/=> sign
|
||||
[:=>
|
||||
[:cat
|
||||
[:map
|
||||
[:pin :string]
|
||||
[:hash-data :string]
|
||||
[:path {:optional true} [:maybe :string]]]]
|
||||
:any])
|
||||
|
||||
(defn sign-typed-data
|
||||
[{card-hash :hash on-success :on-success on-failure :on-failure}]
|
||||
|
||||
@@ -18,25 +18,23 @@
|
||||
clock-value
|
||||
"0x0000000000000000000000000000000000000000000000000000000000000000"))
|
||||
|
||||
(rf/defn update-chats-in-app-db
|
||||
{:events [:chats-list/load-success]}
|
||||
[{:keys [db]} ^js new-chats-js]
|
||||
(let [{:keys [all-chats chats-home-list]}
|
||||
(reduce (fn [acc ^js chat-js]
|
||||
(let [{:keys [chat-id profile-public-key timeline? community-id active] :as chat}
|
||||
(data-store.chats/<-rpc-js chat-js)]
|
||||
(cond-> acc
|
||||
(and (not profile-public-key) (not timeline?) (not community-id) active)
|
||||
(update :chats-home-list conj chat-id)
|
||||
:always
|
||||
(assoc-in [:all-chats chat-id] chat))))
|
||||
{:all-chats {}
|
||||
:chats-home-list #{}}
|
||||
new-chats-js)]
|
||||
{:db (assoc db
|
||||
:chats all-chats
|
||||
:chats-home-list chats-home-list
|
||||
:chats/loading? false)}))
|
||||
(rf/reg-event-fx :chats-list/load-success
|
||||
(fn [{:keys [db]} [^js new-chats-js]]
|
||||
(let [{:keys [all-chats chats-home-list]}
|
||||
(reduce (fn [acc ^js chat-js]
|
||||
(let [{:keys [chat-id profile-public-key timeline? community-id active] :as chat}
|
||||
(data-store.chats/<-rpc-js chat-js)]
|
||||
(cond-> acc
|
||||
(and (not profile-public-key) (not timeline?) (not community-id) active)
|
||||
(update :chats-home-list conj chat-id)
|
||||
:always
|
||||
(assoc-in [:all-chats chat-id] chat))))
|
||||
{:all-chats {}
|
||||
:chats-home-list #{}}
|
||||
new-chats-js)]
|
||||
{:db (-> db
|
||||
(update :chats merge all-chats)
|
||||
(update :chats-home-list into chats-home-list))})))
|
||||
|
||||
(rf/defn load-chat-success
|
||||
{:events [:chats-list/load-chat-success]}
|
||||
|
||||
@@ -134,9 +134,9 @@
|
||||
unmarshal-members))
|
||||
|
||||
(re-frame/reg-fx :fetch-chats-preview
|
||||
(fn [{:keys [on-success]}]
|
||||
(fn [{:keys [on-success chat-preview-type]}]
|
||||
(json-rpc/call {:method "wakuext_chatsPreview"
|
||||
:params []
|
||||
:params [chat-preview-type]
|
||||
:js-response true
|
||||
:on-success #(on-success ^js %)
|
||||
:on-error #(log/error "failed to fetch chats" 0 -1 %)})))
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.about-app.views
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.copyable-text :as copyable-text]
|
||||
[legacy.status-im.ui.components.icons.icons :as icons]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[quo.core :as quo]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(views/defview about-app
|
||||
[]
|
||||
(views/letsubs [app-version [:get-app-short-version]
|
||||
commit-hash [:get-commit-hash]
|
||||
node-version [:get-app-node-version]]
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/about-app)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[react/scroll-view
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text app-version}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :app-version
|
||||
:title (i18n/label :t/version)
|
||||
:accessory :text
|
||||
:accessory-text app-version}]]
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text commit-hash}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :commit-hash
|
||||
:title (i18n/label :t/app-commit)
|
||||
:accessory :text
|
||||
:accessory-text commit-hash}]]
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text node-version}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :node-version
|
||||
:title (i18n/label :t/node-version)
|
||||
:accessory :text
|
||||
:accessory-text node-version}]]]]))
|
||||
|
||||
(views/defview learn-more-sheet
|
||||
[]
|
||||
(views/letsubs [{:keys [title content]} [:bottom-sheet/options]]
|
||||
[react/view
|
||||
{:style {:padding-left 16
|
||||
:padding-top 16
|
||||
:padding-right 34
|
||||
:padding-bottom 0}}
|
||||
[react/view {:style {:align-items :center :flex-direction :row :margin-bottom 16}}
|
||||
[icons/icon :main-icons/info
|
||||
{:color colors/blue
|
||||
:container-style {:margin-right 13}}]
|
||||
[react/text {:style {:typography :title-bold}} title]]
|
||||
[react/text {:style {:color colors/gray}} content]]))
|
||||
|
||||
(def learn-more
|
||||
{:content learn-more-sheet})
|
||||
@@ -1,7 +1,6 @@
|
||||
(ns legacy.status-im.ui.screens.screens
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.screens.about-app.views :as about-app]
|
||||
[legacy.status-im.ui.screens.advanced-settings.views :as advanced-settings]
|
||||
[legacy.status-im.ui.screens.appearance.views :as appearance]
|
||||
[legacy.status-im.ui.screens.backup-settings.view :as backup-settings]
|
||||
@@ -93,12 +92,6 @@
|
||||
:insets {:top? platform/android?}}
|
||||
:component sync-settings/sync-settings}
|
||||
|
||||
;; ABOUT
|
||||
{:name :about-app
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component about-app/about-app}
|
||||
|
||||
;; STATUS HELP
|
||||
{:name :help-center
|
||||
:options {:topBar {:visible false}
|
||||
|
||||
@@ -135,7 +135,6 @@
|
||||
:chat/cooldowns
|
||||
:chat/last-outgoing-message-sent-at
|
||||
:chat/spam-messages-frequency
|
||||
:chats/loading?
|
||||
:dimensions/window]))]
|
||||
{:logs/archive-logs [db-json
|
||||
(if (= transport :email)
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
(ns legacy.status-im.utils.prices
|
||||
(:require
|
||||
[status-im.common.json-rpc.events :as json-rpc]))
|
||||
|
||||
(defn- format-price-resp
|
||||
[resp to mainnet?]
|
||||
(if mainnet?
|
||||
resp
|
||||
{:ETH (into {}
|
||||
(for [[_ price] resp]
|
||||
{(keyword to) price}))}))
|
||||
|
||||
(defn get-prices
|
||||
[from to mainnet? on-success on-error]
|
||||
(json-rpc/call {:method "wallet_fetchPrices"
|
||||
:params [from to]
|
||||
:on-success (fn [resp] (on-success (format-price-resp resp to mainnet?)))
|
||||
:on-error on-error}))
|
||||
@@ -535,10 +535,6 @@
|
||||
[]
|
||||
(.logFileDirectory ^js (log-manager)))
|
||||
|
||||
(defn init-status-go-logging
|
||||
[{:keys [enable? mobile-system? log-level log-request-go? callback]}]
|
||||
(.initLogging ^js (log-manager) enable? mobile-system? log-level log-request-go? callback))
|
||||
|
||||
(defn get-random-mnemonic
|
||||
[callback]
|
||||
(.getRandomMnemonic ^js (account-manager) #(callback (types/json->clj %))))
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
(ns quo.components.cards.wallet-card.component-spec
|
||||
(:require
|
||||
[quo.components.cards.wallet-card.view :as wallet-card]
|
||||
[quo.foundations.resources :as resources]
|
||||
[test-helpers.component :as h]))
|
||||
|
||||
(def ^:private base-props
|
||||
{:image (resources/get-image :keycard-logo)
|
||||
:title "Buy"
|
||||
:subtitle "Start investing now"})
|
||||
|
||||
(h/describe "cards: wallet card"
|
||||
(h/test "Test default render"
|
||||
(let [event (h/mock-fn)]
|
||||
(h/render-with-theme-provider [wallet-card/view
|
||||
(assoc base-props
|
||||
:on-press
|
||||
event)])
|
||||
(h/is-truthy (h/get-by-label-text :wallet-card))
|
||||
(h/is-truthy (h/get-by-text "Buy"))
|
||||
(h/is-truthy (h/get-by-text "Start investing now"))
|
||||
(h/is-truthy (h/get-by-label-text :image))
|
||||
(h/fire-event :press (h/get-by-label-text :wallet-card))
|
||||
(h/was-called event)))
|
||||
|
||||
(h/test "Test render with dismissible prop"
|
||||
(let [event (h/mock-fn)]
|
||||
(h/render-with-theme-provider [wallet-card/view
|
||||
(assoc base-props
|
||||
:dismissible? true
|
||||
:on-press-close event)])
|
||||
(h/is-truthy (h/get-by-label-text :close-icon))
|
||||
(h/fire-event :press (h/get-by-label-text :icon-container))
|
||||
(h/was-called event))))
|
||||
@@ -0,0 +1,15 @@
|
||||
(ns quo.components.cards.wallet-card.schema)
|
||||
|
||||
(def ?schema
|
||||
[:=>
|
||||
[:catn
|
||||
[:props
|
||||
[:map {:closed true}
|
||||
[:image :schema.common/image-source]
|
||||
[:title :string]
|
||||
[:subtitle :string]
|
||||
[:dismissible? {:optional true} :boolean]
|
||||
[:on-press {:optional true} fn?]
|
||||
[:on-press-close {:optional true} fn?]
|
||||
[:container-style {:optional true} :map]]]]
|
||||
:any])
|
||||
@@ -0,0 +1,31 @@
|
||||
(ns quo.components.cards.wallet-card.style
|
||||
(:require [quo.foundations.colors :as colors]
|
||||
[quo.foundations.shadows :as shadows]))
|
||||
|
||||
(defn root-container
|
||||
[theme container-style]
|
||||
(merge (shadows/get 2 theme)
|
||||
{:border-radius 16
|
||||
:padding-vertical 10
|
||||
:padding-horizontal 12
|
||||
:width 161
|
||||
:background-color (colors/theme-colors colors/white colors/neutral-90 theme)}
|
||||
container-style))
|
||||
|
||||
(def top-container
|
||||
{:flex-direction :row
|
||||
:height 32
|
||||
:justify-content :space-between
|
||||
:margin-bottom 8})
|
||||
|
||||
(def image
|
||||
{:height 32
|
||||
:width 32})
|
||||
|
||||
(defn title
|
||||
[theme]
|
||||
{:color (colors/theme-colors colors/neutral-100 colors/white theme)})
|
||||
|
||||
(defn subtitle
|
||||
[theme]
|
||||
{:color (colors/theme-colors colors/neutral-50 colors/neutral-40 theme)})
|
||||
@@ -0,0 +1,44 @@
|
||||
(ns quo.components.cards.wallet-card.view
|
||||
(:require [quo.components.cards.wallet-card.schema :as component-schema]
|
||||
[quo.components.cards.wallet-card.style :as style]
|
||||
[quo.components.icon :as icon]
|
||||
[quo.components.markdown.text :as text]
|
||||
[quo.theme :as quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[react-native.fast-image :as fast-image]
|
||||
[schema.core :as schema]))
|
||||
|
||||
(defn- view-internal
|
||||
[{:keys [image title subtitle dismissible? on-press on-press-close container-style]}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[rn/view {:style (style/root-container theme container-style)}
|
||||
[rn/pressable
|
||||
{:on-press on-press
|
||||
:accessibility-label :wallet-card}
|
||||
[rn/view {:style style/top-container}
|
||||
[fast-image/fast-image
|
||||
{:style style/image
|
||||
:source image
|
||||
:accessibility-label :image}]
|
||||
(when dismissible?
|
||||
[rn/pressable
|
||||
{:on-press on-press-close
|
||||
:accessibility-label :icon-container
|
||||
:hit-slop {:top 5 :bottom 5 :left 5 :right 5}}
|
||||
[icon/icon :i/close
|
||||
{:size 12
|
||||
:accessibility-label :close-icon}]])]
|
||||
[text/text
|
||||
{:style (style/title theme)
|
||||
:size :paragraph-1
|
||||
:weight :semi-bold
|
||||
:number-of-lines 1}
|
||||
title]
|
||||
[text/text
|
||||
{:style (style/subtitle theme)
|
||||
:size :paragraph-2
|
||||
:weight :regular
|
||||
:number-of-lines 1}
|
||||
subtitle]]]))
|
||||
|
||||
(def view (schema/instrument #'view-internal component-schema/?schema))
|
||||
@@ -2,11 +2,12 @@
|
||||
|
||||
(defn container
|
||||
[container-style]
|
||||
(merge container-style
|
||||
{:padding-vertical 7
|
||||
:padding-horizontal 20
|
||||
:flex-direction :row
|
||||
:align-items :flex-start}))
|
||||
(merge
|
||||
{:padding-vertical 7
|
||||
:padding-horizontal 20
|
||||
:flex-direction :row
|
||||
:align-items :flex-start}
|
||||
container-style))
|
||||
|
||||
(def index
|
||||
{:margin-left 5})
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
(defn view
|
||||
[{:keys [title description tag-picture tag-name description-after-tag step-number
|
||||
customization-color type blur? container-style]
|
||||
customization-color type blur? container-style icon icon-props]
|
||||
:or {type :bullet}}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[rn/view {:style (style/container container-style)}
|
||||
@@ -54,6 +54,8 @@
|
||||
:type (if customization-color :complete :neutral)} step-number]
|
||||
:lock
|
||||
[icon/icon :i/locked {:color (get-colors theme blur?)}]
|
||||
:custom-icon
|
||||
[icon/icon icon icon-props]
|
||||
[icon/icon :i/bullet {:color (get-colors theme blur?)}])]
|
||||
[rn/view {:style style/text-container}
|
||||
(when title
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
[react-native.core :as rn]))
|
||||
|
||||
(defn view
|
||||
[{:keys [number-of-pins number-of-filled-pins error? info]
|
||||
[{:keys [number-of-pins number-of-filled-pins error? info info-error?]
|
||||
:or {number-of-pins 6 number-of-filled-pins 0}}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[rn/view {:style {:align-items :center}}
|
||||
@@ -20,7 +20,7 @@
|
||||
(= i (inc number-of-filled-pins)) :active)}])]
|
||||
(when info
|
||||
[text/text
|
||||
{:style {:color (if error?
|
||||
{:style {:color (if (or error? info-error?)
|
||||
(colors/theme-colors colors/danger-50 colors/danger-60 theme)
|
||||
(colors/theme-colors colors/neutral-50 colors/neutral-40 theme))}
|
||||
:size :paragraph-2}
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
[rn/view {:style (style/loading-container size blur? theme)}]))
|
||||
|
||||
(defn- left-subtitle
|
||||
[{:keys [size subtitle-type subtitle-color icon icon-color blur? subtitle customization-color emoji
|
||||
[{:keys [size subtitle-text-props subtitle-type subtitle-color icon icon-color blur? subtitle
|
||||
customization-color emoji
|
||||
network-image]
|
||||
:or {subtitle-type :default}}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
@@ -39,9 +40,10 @@
|
||||
:style style/image}]
|
||||
nil)])
|
||||
[text/text
|
||||
{:weight :medium
|
||||
:size :paragraph-2
|
||||
:style (style/description subtitle-color blur? theme)}
|
||||
(merge {:weight :medium
|
||||
:size :paragraph-2
|
||||
:style (style/description subtitle-color blur? theme)}
|
||||
subtitle-text-props)
|
||||
subtitle]
|
||||
(when (= subtitle-type :editable)
|
||||
[icons/icon :i/edit
|
||||
@@ -75,7 +77,8 @@
|
||||
|
||||
(defn- left-side
|
||||
"The description can either be given as a string `subtitle-type` or a component `custom-subtitle`"
|
||||
[{:keys [title status size blur? custom-subtitle icon subtitle subtitle-type subtitle-color icon-color
|
||||
[{:keys [title subtitle-text-props status size blur? custom-subtitle icon subtitle subtitle-type
|
||||
subtitle-color icon-color
|
||||
customization-color network-image emoji title-icon]
|
||||
:as props}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
@@ -94,6 +97,7 @@
|
||||
[custom-subtitle props]
|
||||
[left-subtitle
|
||||
{:theme theme
|
||||
:subtitle-text-props subtitle-text-props
|
||||
:size size
|
||||
:subtitle-type subtitle-type
|
||||
:subtitle-color subtitle-color
|
||||
@@ -140,6 +144,7 @@
|
||||
[:size {:optional true} [:maybe [:enum :default :small :large]]]
|
||||
[:title :string]
|
||||
[:subtitle {:optional true} [:maybe [:or :string :double]]]
|
||||
[:subtitle-text-props {:optional true} [:maybe :map]]
|
||||
[:custom-subtitle {:optional true} [:maybe fn?]]
|
||||
[:icon {:optional true} [:maybe :keyword]]
|
||||
[:title-icon {:optional true} [:maybe :keyword]]
|
||||
|
||||
@@ -79,11 +79,11 @@
|
||||
[rn/view {:style style/community-logo-ring}]])
|
||||
|
||||
(defn- description-container
|
||||
[{:keys [description description-text collection-text community-text
|
||||
collection-image community-image blur?]
|
||||
[{:keys [description description-text collection-text community-text blur?
|
||||
collection-image community-image description-accessibility-label]
|
||||
context-tag-props :context-tag
|
||||
summary-props :summary}]
|
||||
[rn/view
|
||||
[rn/view {:accessibility-label description-accessibility-label}
|
||||
(cond
|
||||
(and (= description :text) (not (string/blank? description-text)))
|
||||
[text/text
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
(ns quo.components.utilities.token.view
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[quo.components.markdown.text :as quo]
|
||||
[quo.components.utilities.token.loader :as token-loader]
|
||||
[react-native.core :as rn]
|
||||
[schema.core :as schema]
|
||||
@@ -33,22 +32,7 @@
|
||||
:height size-number)))
|
||||
|
||||
(def ^:private b64-png-image-prefix "data:image/png;base64,")
|
||||
|
||||
(defn temp-empty-symbol
|
||||
[token size style]
|
||||
[rn/view
|
||||
{:style (token-style (merge {:justify-content :center
|
||||
:align-items :center
|
||||
:border-radius 20
|
||||
:border-width 1
|
||||
:border-color :grey}
|
||||
style)
|
||||
size)}
|
||||
[quo/text {:style {:color :grey}}
|
||||
(some-> token
|
||||
name
|
||||
first
|
||||
string/capitalize)]])
|
||||
(def ^:const default-token-image (js/require "../resources/images/tokens/default-token.png"))
|
||||
|
||||
(defn- normalize-b64-string
|
||||
[b64-image]
|
||||
@@ -69,13 +53,12 @@
|
||||
"
|
||||
[{:keys [token size style image-source]
|
||||
:or {size 32}}]
|
||||
(let [img-src (if (string? image-source)
|
||||
(normalize-b64-string image-source)
|
||||
image-source)]
|
||||
(if-let [existing-source (or img-src (token-loader/get-token-image token))]
|
||||
[rn/image
|
||||
{:style (token-style style size)
|
||||
:source existing-source}]
|
||||
[temp-empty-symbol token size style])))
|
||||
(let [img-src (if (string? image-source)
|
||||
(normalize-b64-string image-source)
|
||||
image-source)
|
||||
token-image (or img-src (token-loader/get-token-image token) default-token-image)]
|
||||
[rn/image
|
||||
{:style (token-style style size)
|
||||
:source token-image}]))
|
||||
|
||||
(def view (schema/instrument #'view-internal ?schema))
|
||||
|
||||
@@ -121,33 +121,38 @@
|
||||
[linear-gradient/linear-gradient
|
||||
{:start {:x 0 :y 0}
|
||||
:end {:x 1 :y 0}
|
||||
:colors [(colors/theme-colors colors/white colors/neutral-100 theme)
|
||||
(colors/theme-colors colors/white-opa-10 colors/neutral-100-opa-10 theme)]
|
||||
:colors [(colors/theme-colors colors/white colors/neutral-95 theme)
|
||||
(colors/theme-colors colors/white-opa-10 colors/neutral-95-opa-10 theme)]
|
||||
:style style/gradient-start}])
|
||||
(when (and overflow? disabled?)
|
||||
[linear-gradient/linear-gradient
|
||||
{:start {:x 0 :y 0}
|
||||
:end {:x 1 :y 0}
|
||||
:colors [(colors/theme-colors colors/white-opa-10 colors/neutral-100-opa-10 theme)
|
||||
(colors/theme-colors colors/white colors/neutral-100 theme)]
|
||||
:colors [(colors/theme-colors colors/white-opa-10 colors/neutral-95-opa-10 theme)
|
||||
(colors/theme-colors colors/white colors/neutral-95 theme)]
|
||||
:style style/gradient-end}])
|
||||
[rn/text-input
|
||||
(cond-> {:ref set-input-ref
|
||||
:style (style/input disabled? error? theme)
|
||||
:placeholder-text-color (colors/theme-colors colors/neutral-40
|
||||
colors/neutral-50
|
||||
theme)
|
||||
:keyboard-type :numeric
|
||||
:editable (not input-disabled?)
|
||||
:auto-focus auto-focus?
|
||||
:on-focus on-input-focus
|
||||
:on-change-text on-change-text
|
||||
:on-layout on-layout-text-input
|
||||
:on-selection-change on-selection-change
|
||||
:show-soft-input-on-focus show-keyboard?
|
||||
:default-value default-value
|
||||
:placeholder "0"}
|
||||
controlled-input? (assoc :value value))]]
|
||||
(if-not input-disabled?
|
||||
[rn/text-input
|
||||
(cond-> {:ref set-input-ref
|
||||
:style (style/input disabled? error? theme)
|
||||
:placeholder-text-color (colors/theme-colors colors/neutral-40
|
||||
colors/neutral-50
|
||||
theme)
|
||||
:keyboard-type :numeric
|
||||
:editable (not input-disabled?)
|
||||
:auto-focus auto-focus?
|
||||
:on-focus on-input-focus
|
||||
:on-change-text on-change-text
|
||||
:on-layout on-layout-text-input
|
||||
:on-selection-change on-selection-change
|
||||
:show-soft-input-on-focus show-keyboard?
|
||||
:default-value default-value
|
||||
:placeholder "0"}
|
||||
controlled-input? (assoc :value value))]
|
||||
[rn/text
|
||||
{:style (style/input disabled? error? theme)
|
||||
:on-layout on-layout-text-input}
|
||||
(or value "0")])]
|
||||
[text/text
|
||||
{:size :paragraph-2
|
||||
:weight :semi-bold
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
[:catn
|
||||
[:props
|
||||
[:map
|
||||
[:transaction {:optional true} [:maybe [:enum :receive :send :swap :bridge :buy :destroy :mint]]]
|
||||
[:transaction {:optional true}
|
||||
[:maybe [:enum :receive :send :swap :bridge :buy :destroy :mint :approval]]]
|
||||
[:status {:optional true} [:maybe [:enum :pending :confirmed :finalised :failed]]]
|
||||
[:counter {:optional true} [:maybe :int]]
|
||||
[:timestamp {:optional true} [:maybe :string]]
|
||||
|
||||
@@ -41,7 +41,8 @@
|
||||
colors/white-opa-10)})
|
||||
|
||||
(def timestamp-container
|
||||
{:margin-left 4})
|
||||
{:margin-left 4
|
||||
:flex 1})
|
||||
|
||||
(defn timestamp
|
||||
[theme blur?]
|
||||
|
||||
@@ -12,22 +12,24 @@
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(def transaction-translation
|
||||
{:receive [i18n/label :t/receive]
|
||||
:send [i18n/label :t/send]
|
||||
:swap [i18n/label :t/swap]
|
||||
:bridge [i18n/label :t/bridge]
|
||||
:buy [i18n/label :t/buy]
|
||||
:destroy [i18n/label :t/destroy]
|
||||
:mint [i18n/label :t/mint]})
|
||||
{:receive [i18n/label :t/receive]
|
||||
:send [i18n/label :t/send]
|
||||
:swap [i18n/label :t/swap]
|
||||
:bridge [i18n/label :t/bridge]
|
||||
:buy [i18n/label :t/buy]
|
||||
:destroy [i18n/label :t/destroy]
|
||||
:mint [i18n/label :t/mint]
|
||||
:approval [i18n/label :t/set-spending-cap]})
|
||||
|
||||
(def transaction-icon
|
||||
{:receive :i/receive
|
||||
:send :i/send
|
||||
:swap :i/transaction
|
||||
:bridge :i/bridge
|
||||
:buy :i/buy
|
||||
:destroy :i/destroy
|
||||
:mint :i/mint})
|
||||
{:receive :i/receive
|
||||
:send :i/send
|
||||
:swap :i/transaction
|
||||
:bridge :i/bridge
|
||||
:buy :i/buy
|
||||
:destroy :i/destroy
|
||||
:mint :i/mint
|
||||
:approval :i/token-sales})
|
||||
|
||||
(def status-icon
|
||||
{:pending :i/pending-state
|
||||
@@ -39,7 +41,8 @@
|
||||
[{:keys [transaction
|
||||
timestamp
|
||||
counter
|
||||
blur?]
|
||||
blur?
|
||||
on-press-options]
|
||||
:or {transaction :receive
|
||||
counter 1}}
|
||||
theme]
|
||||
@@ -64,7 +67,13 @@
|
||||
:size :label
|
||||
:style (style/timestamp theme blur?)
|
||||
:accessibility-label :transaction-timestamp}
|
||||
timestamp]]])
|
||||
timestamp]]
|
||||
(when on-press-options
|
||||
[rn/pressable
|
||||
{:on-press on-press-options
|
||||
:hit-slop {:top 10 :bottom 10 :left 10 :right 10}}
|
||||
[icon/icon :i/options
|
||||
{:size 20}]])])
|
||||
|
||||
(defn transaction-icon-view
|
||||
[{:keys [blur? transaction status]
|
||||
@@ -120,8 +129,8 @@
|
||||
:accessibility-label :wallet-activity
|
||||
:disabled (= state :disabled)
|
||||
:on-press on-press
|
||||
:on-press-in on-press-in
|
||||
:on-press-out on-press-out}
|
||||
:on-press-in (when on-press on-press-in)
|
||||
:on-press-out (when on-press on-press-out)}
|
||||
[rn/view {:style style/container}
|
||||
[transaction-icon-view props theme]
|
||||
[rn/view {:style {:flex 1}}
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
quo.components.calendar.calendar-day.view
|
||||
quo.components.calendar.calendar-year.view
|
||||
quo.components.calendar.calendar.view
|
||||
quo.components.cards.wallet-card.view
|
||||
quo.components.code.snippet-preview.view
|
||||
quo.components.code.snippet.view
|
||||
quo.components.colors.color-picker.view
|
||||
@@ -241,6 +242,7 @@
|
||||
;;;; Cards
|
||||
(def small-option-card quo.components.onboarding.small-option-card.view/small-option-card)
|
||||
(def keycard quo.components.keycard.view/keycard)
|
||||
(def wallet-card quo.components.cards.wallet-card.view/view)
|
||||
|
||||
;;;; Colors
|
||||
(def color-picker quo.components.colors.color-picker.view/view)
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
|
||||
;;95 with transparency
|
||||
(def neutral-95-opa-0 (alpha neutral-95 0))
|
||||
(def neutral-95-opa-10 (alpha neutral-95 0.1))
|
||||
(def neutral-95-opa-60 (alpha neutral-95 0.6))
|
||||
(def neutral-95-opa-70 (alpha neutral-95 0.7))
|
||||
(def neutral-95-opa-80 (alpha neutral-95 0.8))
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
gestureHandlerRootHOC
|
||||
FlatList
|
||||
ScrollView)]
|
||||
[react-native.core :as rn]
|
||||
[react-native.flat-list :as rn-flat-list]
|
||||
[reagent.core :as reagent]))
|
||||
|
||||
@@ -112,17 +113,21 @@
|
||||
render-fn]
|
||||
:or {sticky-section-headers-enabled true}
|
||||
:as props}]
|
||||
(let [data (flatten-sections sections)]
|
||||
(let [data (flatten-sections sections)
|
||||
render-item (rn/use-callback
|
||||
(fn [p1 p2 p3 p4]
|
||||
[:<>
|
||||
(if (:header? p1)
|
||||
[render-section-header-fn p1 p2 p3 p4]
|
||||
[render-fn p1 p2 p3 p4])
|
||||
(when (and render-section-footer-fn
|
||||
(is-last-item-in-section data p2))
|
||||
[render-section-footer-fn p1 p2 p3 p4])])
|
||||
[render-fn render-section-header-fn render-section-footer-fn])]
|
||||
[flat-list
|
||||
(merge props
|
||||
{:data data
|
||||
:render-fn (fn [p1 p2 p3 p4]
|
||||
[:<>
|
||||
(if (:header? p1)
|
||||
[render-section-header-fn p1 p2 p3 p4]
|
||||
[render-fn p1 p2 p3 p4])
|
||||
(when (and render-section-footer-fn
|
||||
(is-last-item-in-section data p2))
|
||||
[render-section-footer-fn p1 p2 p3 p4])])
|
||||
:sticky-header-indices (when sticky-section-headers-enabled
|
||||
(find-sticky-indices data))})]))
|
||||
{:data data
|
||||
:render-fn render-item
|
||||
:sticky-header-indices
|
||||
(when sticky-section-headers-enabled
|
||||
(find-sticky-indices data))})]))
|
||||
|
||||
@@ -47,7 +47,8 @@
|
||||
animating? (reagent/atom true)
|
||||
set-animating-true #(reset! animating? true)
|
||||
set-animating-false (fn [ms]
|
||||
(js/setTimeout #(reset! animating? false) ms))]
|
||||
(js/setTimeout #(reset! animating? false) ms))
|
||||
on-scroll-update #(on-scroll % curr-scroll)]
|
||||
(fn [{:keys [content skip-background?]}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
{:keys [top] :as insets} (safe-area/get-insets)
|
||||
@@ -94,5 +95,5 @@
|
||||
:close close
|
||||
:scroll-enabled? scroll-enabled?
|
||||
:current-scroll curr-scroll
|
||||
:on-scroll #(on-scroll % curr-scroll)
|
||||
:on-scroll on-scroll-update
|
||||
:sheet-animating? animating?}]]]]))))
|
||||
|
||||
@@ -150,15 +150,19 @@
|
||||
|
||||
(defn- fiat->crypto
|
||||
[value conversion-rate]
|
||||
(-> value
|
||||
(money/fiat->crypto conversion-rate)
|
||||
(wallet-utils/cut-crypto-decimals-to-fit-usd-cents conversion-rate)))
|
||||
(if-not (string/blank? value)
|
||||
(-> value
|
||||
(money/fiat->crypto conversion-rate)
|
||||
(wallet-utils/cut-crypto-decimals-to-fit-usd-cents conversion-rate))
|
||||
""))
|
||||
|
||||
(defn- crypto->fiat
|
||||
[value conversion-rate]
|
||||
(-> value
|
||||
(money/crypto->fiat conversion-rate)
|
||||
(wallet-utils/cut-fiat-balance-to-two-decimals)))
|
||||
(if-not (string/blank? value)
|
||||
(-> value
|
||||
(money/crypto->fiat conversion-rate)
|
||||
(wallet-utils/cut-fiat-balance-to-two-decimals))
|
||||
""))
|
||||
|
||||
(defn ->crypto
|
||||
[state conversion-rate]
|
||||
|
||||
@@ -61,14 +61,17 @@
|
||||
(defn view
|
||||
[{:keys [header footer customization-color footer-container-padding header-container-style
|
||||
content-container-style gradient-cover? keyboard-should-persist-taps shell-overlay?
|
||||
blur-options content-avoid-keyboard? automatically-adjust-keyboard-insets]
|
||||
blur-options content-avoid-keyboard? automatically-adjust-keyboard-insets
|
||||
;; Note: Provide `initial-header-height` to avoid a jump due to the on-layout 1-frame
|
||||
;; delay. Revisit this on RN 0.76 since the on-layout delay has been fixed.
|
||||
initial-header-height]
|
||||
:or {footer-container-padding (safe-area/get-top)}}
|
||||
& children]
|
||||
(reagent/with-let [scroll-view-ref (atom nil)
|
||||
set-scroll-ref #(reset! scroll-view-ref %)
|
||||
window-height (:height (rn/get-window))
|
||||
footer-container-height (reagent/atom 0)
|
||||
header-height (reagent/atom 0)
|
||||
header-height (reagent/atom nil)
|
||||
content-container-height (reagent/atom 0)
|
||||
content-scroll-y (reagent/atom 0)
|
||||
keyboard-height (reagent/atom 0)
|
||||
@@ -112,7 +115,7 @@
|
||||
{:style
|
||||
(if content-avoid-keyboard?
|
||||
(style/content-keyboard-avoiding-view
|
||||
{:top @header-height
|
||||
{:top (or @header-height initial-header-height)
|
||||
:bottom (if keyboard-shown?
|
||||
@footer-container-height
|
||||
(+ bottom-safe-area @footer-container-height))})
|
||||
|
||||
@@ -159,10 +159,10 @@
|
||||
:add-divider? needs-divider?}))
|
||||
|
||||
(defn clear-history-entry
|
||||
[chat-id needs-divider?]
|
||||
[chat needs-divider?]
|
||||
(entry {:icon :i/delete
|
||||
:label (i18n/label :t/clear-history)
|
||||
:on-press #(clear-history-action chat-id)
|
||||
:on-press #(clear-history-action chat)
|
||||
:danger? true
|
||||
:sub-label nil
|
||||
:accessibility-label :clear-history
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
(ns status-im.common.log
|
||||
(:require
|
||||
[clojure.pprint :as promesa]
|
||||
[clojure.pprint :as pprint]
|
||||
[clojure.string :as string]
|
||||
[native-module.core :as native-module]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.config :as config]
|
||||
[taoensso.timbre :as log]
|
||||
[utils.transforms :as transforms]))
|
||||
[taoensso.timbre :as log]))
|
||||
|
||||
(def logs-queue (atom #queue []))
|
||||
(def max-log-entries 1000)
|
||||
@@ -21,33 +18,21 @@
|
||||
|
||||
(defn setup
|
||||
[level]
|
||||
(let [handle-error (fn [res]
|
||||
(let [{:keys [error]} (transforms/json->clj res)]
|
||||
(when-not (string/blank? error)
|
||||
(log/error "init statusgo logging failed" error))))
|
||||
logging-params {:enable? true
|
||||
:mobile-system? false
|
||||
:log-level level
|
||||
:log-request-go? config/log-request-go
|
||||
:callback handle-error}]
|
||||
(log/merge-config! {:ns-filter {:allow #{"*"} :deny #{"taoensso.sente"}}})
|
||||
(if (string/blank? level)
|
||||
(native-module/init-status-go-logging (merge logging-params {:log-level "WARN"}))
|
||||
(do
|
||||
(log/set-min-level! (-> level
|
||||
string/lower-case
|
||||
keyword))
|
||||
(log/merge-config!
|
||||
{:output-fn (fn [& data]
|
||||
(let [res (apply log/default-output-fn data)]
|
||||
(add-log-entry res)
|
||||
res))
|
||||
:middleware [(fn [data]
|
||||
(update data
|
||||
:vargs
|
||||
(partial mapv
|
||||
#(if (string? %) % (with-out-str (promesa/pprint %))))))]})
|
||||
(native-module/init-status-go-logging logging-params)))))
|
||||
(log/merge-config! {:ns-filter {:allow #{"*"} :deny #{"taoensso.sente"}}})
|
||||
(when-not (string/blank? level)
|
||||
(log/set-min-level! (-> level
|
||||
string/lower-case
|
||||
keyword))
|
||||
(log/merge-config!
|
||||
{:output-fn (fn [& data]
|
||||
(let [res (apply log/default-output-fn data)]
|
||||
(add-log-entry res)
|
||||
res))
|
||||
:middleware [(fn [data]
|
||||
(update data
|
||||
:vargs
|
||||
(partial mapv
|
||||
#(if (string? %) % (with-out-str (pprint/pprint %))))))]})))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:logs/set-level
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
(ns status-im.common.metrics-confirmation-modal.style)
|
||||
|
||||
(def points-wrapper
|
||||
{:margin-top 11
|
||||
:margin-horizontal 20
|
||||
:gap 21
|
||||
:margin-bottom 8})
|
||||
|
||||
(def item-text
|
||||
{:margin-left -24})
|
||||
|
||||
(def info-text
|
||||
{:margin-top -5})
|
||||
|
||||
(def privacy-policy
|
||||
{:margin-top 4
|
||||
:margin-horizontal 20
|
||||
:margin-bottom 20
|
||||
:align-items :center})
|
||||
@@ -1,119 +0,0 @@
|
||||
(ns status-im.common.metrics-confirmation-modal.view
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[quo.foundations.colors :as colors]
|
||||
[quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[status-im.common.metrics-confirmation-modal.style :as style]
|
||||
[status-im.common.privacy.view :as privacy]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn- dismiss-keyboard
|
||||
[]
|
||||
(rf/dispatch [:dismiss-keyboard]))
|
||||
|
||||
(defn- hide-bottom-sheet
|
||||
[]
|
||||
(rf/dispatch [:hide-bottom-sheet]))
|
||||
|
||||
(def ^:private will-receive-for-current-points
|
||||
[:t/number-of-messages-sent
|
||||
:t/connected-peers
|
||||
:t/successful-messages-rate
|
||||
:t/connection-type
|
||||
:t/os-app-version-bandwidth])
|
||||
|
||||
(def ^:private will-receive-for-all-points
|
||||
[:t/action-logs
|
||||
:t/ip-addresses-uuid])
|
||||
|
||||
(def ^:private not-receive-points
|
||||
[:t/your-profile-information
|
||||
:t/your-addresses
|
||||
:t/information-you-input-and-send])
|
||||
|
||||
(defn- bullet-points
|
||||
[{:keys [title points lock?]}]
|
||||
[rn/view
|
||||
[quo/text {:weight :semi-bold}
|
||||
title]
|
||||
(for [label points]
|
||||
^{:key label}
|
||||
[quo/markdown-list
|
||||
{:description (i18n/label label)
|
||||
:blur? true
|
||||
:type (when lock? :lock)
|
||||
:container-style style/item-text}])])
|
||||
|
||||
(defn- on-share-usage
|
||||
[]
|
||||
(rf/dispatch [:centralized-metrics/toggle-centralized-metrics true true])
|
||||
(hide-bottom-sheet))
|
||||
|
||||
(defn- on-do-not-share
|
||||
[]
|
||||
(rf/dispatch [:centralized-metrics/toggle-centralized-metrics false true])
|
||||
(hide-bottom-sheet))
|
||||
|
||||
(declare view)
|
||||
|
||||
(defn- on-privacy-policy-press
|
||||
[]
|
||||
(rf/dispatch
|
||||
[:show-bottom-sheet
|
||||
{:content privacy/privacy-statement
|
||||
:on-close (fn []
|
||||
(rf/dispatch [:show-bottom-sheet
|
||||
{:content view
|
||||
:theme :dark
|
||||
:shell? true}]))
|
||||
:theme :dark
|
||||
:shell? true}]))
|
||||
|
||||
(defn- privacy-policy-text
|
||||
[]
|
||||
[rn/view {:style style/privacy-policy}
|
||||
[quo/text
|
||||
[quo/text
|
||||
{:style {:color colors/white-opa-50}
|
||||
:size :paragraph-2}
|
||||
(i18n/label :t/more-details-in-privacy-policy-1)]
|
||||
[quo/text
|
||||
{:size :paragraph-2
|
||||
:weight :bold
|
||||
:on-press on-privacy-policy-press}
|
||||
(i18n/label :t/more-details-in-privacy-policy-2)]]])
|
||||
|
||||
(defn view
|
||||
[]
|
||||
(rn/use-mount #(dismiss-keyboard))
|
||||
[:<>
|
||||
[quo/drawer-top
|
||||
{:title (i18n/label :t/help-us-improve-status)
|
||||
:description (i18n/label :t/collecting-usage-data)}]
|
||||
[rn/scroll-view
|
||||
[rn/view {:style style/points-wrapper}
|
||||
[bullet-points
|
||||
{:title (i18n/label :t/we-will-receive-from-all-profiles)
|
||||
:points will-receive-for-all-points}]
|
||||
[bullet-points
|
||||
{:title (i18n/label :t/we-will-receive-from-the-current-profile)
|
||||
:points will-receive-for-current-points}]
|
||||
[bullet-points
|
||||
{:title (i18n/label :t/what-we-wont-receive)
|
||||
:points not-receive-points
|
||||
:lock? true}]
|
||||
[quo/text
|
||||
{:size :paragraph-2
|
||||
:style style/info-text}
|
||||
(i18n/label :t/sharing-usage-data-can-be-turned-off)]]]
|
||||
[quo/bottom-actions
|
||||
{:actions :two-actions
|
||||
:blur? true
|
||||
:button-one-label (i18n/label :t/help-us-improve-status)
|
||||
:button-one-props {:on-press on-share-usage}
|
||||
:button-two-label (i18n/label :t/not-now)
|
||||
:button-two-props {:type :grey
|
||||
:on-press on-do-not-share}}]
|
||||
[privacy-policy-text]])
|
||||
@@ -1,11 +1,20 @@
|
||||
(ns status-im.common.privacy.view
|
||||
(:require-macros [legacy.status-im.utils.slurp :refer [slurp]])
|
||||
(:require [quo.core :as quo]
|
||||
[react-native.gesture :as gesture]))
|
||||
[react-native.gesture :as gesture]
|
||||
[status-im.contexts.settings.common.header :as header]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(def privacy-statement-text (slurp "resources/privacy.mdwn"))
|
||||
|
||||
(defn privacy-statement
|
||||
[]
|
||||
[gesture/scroll-view {:margin 20}
|
||||
[gesture/scroll-view {:style {:margin 20}}
|
||||
[quo/text privacy-statement-text]])
|
||||
|
||||
(defn view
|
||||
[]
|
||||
[quo/overlay {:type :shell}
|
||||
[header/view {:title (i18n/label :t/privacy-policy)}]
|
||||
[gesture/scroll-view {:style {:padding-horizontal 20}}
|
||||
[quo/text privacy-statement-text]]])
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
(def ui
|
||||
{:add-new-contact (js/require "../resources/images/ui2/add-contact.png")
|
||||
:biometrics (js/require "../resources/images/ui2/biometrics.png")
|
||||
:usage-data (js/require "../resources/images/ui2/usage-data.png")
|
||||
:login-syncing (js/require "../resources/images/ui2/login-syncing.png")
|
||||
:chat-privately-with-friends (js/require "../resources/images/ui2/chat-privately-with-friends.png")
|
||||
:desktop-how-to-pair-sign-in (js/require "../resources/images/ui2/desktop-how-to-pair-sign-in.png")
|
||||
:desktop-how-to-pair-logged-in (js/require
|
||||
"../resources/images/ui2/desktop-how-to-pair-logged-in.png")
|
||||
@@ -17,8 +20,8 @@
|
||||
:generate-keys1 (js/require "../resources/images/ui2/generating-keys-1.png")
|
||||
:ethereum-address (js/require "../resources/images/ui2/ethereum-address.png")
|
||||
:use-keycard (js/require "../resources/images/ui2/keycard.png")
|
||||
:use-recovery-phrase (js/require "../resources/images/ui2/recovery-phrase.png")
|
||||
:check-your-keycard (js/require "../resources/images/ui2/check-your-keycard.png")
|
||||
:onboarding-illustration (js/require "../resources/images/ui2/onboarding_illustration.png")
|
||||
:qr-code (js/require "../resources/images/ui2/qr-code.png")
|
||||
:keycard-logo (js/require "../resources/images/ui2/keycard-logo.png")
|
||||
:keycard-watermark (js/require "../resources/images/ui2/keycard-watermark.png")
|
||||
@@ -34,9 +37,13 @@
|
||||
:notifications (js/require "../resources/images/ui2/notifications.png")
|
||||
:nfc-prompt (js/require "../resources/images/ui2/nfc-prompt.png")
|
||||
:nfc-success (js/require "../resources/images/ui2/nfc-success.png")
|
||||
:own-buy-and-swap-your-crypto (js/require "../resources/images/ui2/own-buy-and-swap-your-crypto.png")
|
||||
:preparing-status (js/require "../resources/images/ui2/preparing-status.png")
|
||||
:store-your-assets-on-keycard (js/require "../resources/images/ui2/store-your-assets-on-keycard.png")
|
||||
:syncing-devices (js/require "../resources/images/ui2/syncing_devices.png")
|
||||
:syncing-wrong (js/require "../resources/images/ui2/syncing_wrong.png")})
|
||||
:syncing-wrong (js/require "../resources/images/ui2/syncing_wrong.png")
|
||||
:buy (js/require "../resources/images/ui2/buy.png")
|
||||
:receive (js/require "../resources/images/ui2/receive.png")})
|
||||
|
||||
(def ui-themed
|
||||
{:angry-man
|
||||
|
||||
@@ -36,15 +36,15 @@
|
||||
"wallet"
|
||||
{:fx [[:dispatch [:wallet/signal-received event-js]]]}
|
||||
|
||||
"wallet.sign.transactions"
|
||||
{:fx [[:dispatch
|
||||
[:standard-auth/authorize-with-keycard
|
||||
{:on-complete #(rf/dispatch [:keycard/sign-hash %
|
||||
(first (transforms/js->clj event-js))])}]]]}
|
||||
|
||||
"wallet.suggested.routes"
|
||||
{:fx [[:dispatch [:wallet/handle-suggested-routes (transforms/js->clj event-js)]]]}
|
||||
|
||||
"wallet.router.sign-transactions"
|
||||
{:fx [[:dispatch [:wallet/sign-transactions-signal-received (transforms/js->clj event-js)]]]}
|
||||
|
||||
"wallet.router.transactions-sent"
|
||||
{:fx [[:dispatch [:wallet/transactions-sent-signal-received (transforms/js->clj event-js)]]]}
|
||||
|
||||
"envelope.sent"
|
||||
(messages.transport/update-envelopes-status
|
||||
cofx
|
||||
|
||||
@@ -10,24 +10,43 @@
|
||||
[utils.re-frame :as rf]
|
||||
[utils.security.core :as security]))
|
||||
|
||||
(rf/reg-fx :effects.keycard/call-on-auth-success
|
||||
(fn [on-auth-success]
|
||||
(when on-auth-success (on-auth-success ""))))
|
||||
(defn- handle-password-success
|
||||
[has-partially-operable-accounts? on-auth-success masked-password]
|
||||
(let [on-auth-success-callback #(on-auth-success masked-password)]
|
||||
(rf/dispatch [:standard-auth/set-success true])
|
||||
(rf/dispatch [:standard-auth/reset-login-password])
|
||||
(if has-partially-operable-accounts?
|
||||
(rf/dispatch [:wallet/make-partially-operable-accounts-fully-operable
|
||||
{:password masked-password
|
||||
:on-success on-auth-success-callback
|
||||
:on-error on-auth-success-callback}])
|
||||
(on-auth-success-callback))))
|
||||
|
||||
(defn authorize
|
||||
[{:keys [db]} [{:keys [on-auth-success keycard-supported?] :as args}]]
|
||||
(let [key-uid (get-in db [:profile/profile :key-uid])
|
||||
keycard? (get-in db [:profile/profile :keycard-pairing])]
|
||||
[{:keys [db]} [{:keys [on-auth-success] :as args}]]
|
||||
(let [key-uid (get-in db [:profile/profile :key-uid])
|
||||
keycard-profile? (get-in db [:profile/profile :keycard-pairing])]
|
||||
{:fx
|
||||
[(if keycard?
|
||||
(if keycard-supported?
|
||||
[:effects.keycard/call-on-auth-success on-auth-success]
|
||||
[:effects.utils/show-popup
|
||||
{:title "This feature is not supported yet "
|
||||
:content
|
||||
"Keycard support is limited to logging in
|
||||
and signing the sending transaction.
|
||||
Use Status Desktop to access all functions."}])
|
||||
[(if keycard-profile?
|
||||
[:dispatch
|
||||
[:standard-auth/authorize-with-keycard
|
||||
{:on-complete
|
||||
(fn [pin]
|
||||
(rf/dispatch
|
||||
[:keycard/connect
|
||||
{:key-uid key-uid
|
||||
:on-success
|
||||
(fn []
|
||||
(rf/dispatch
|
||||
[:keycard/get-keys
|
||||
{:pin pin
|
||||
:on-success (fn [{:keys [encryption-public-key]}]
|
||||
(rf/dispatch [:keycard/disconnect])
|
||||
(handle-password-success false
|
||||
on-auth-success
|
||||
(security/mask-data encryption-public-key)))
|
||||
:on-failure #(rf/dispatch [:keycard/on-action-with-pin-error
|
||||
%])}]))}]))}]]
|
||||
[:effects.biometric/check-if-available
|
||||
{:key-uid key-uid
|
||||
:on-success #(rf/dispatch [:standard-auth/authorize-with-biometric args])
|
||||
@@ -89,21 +108,12 @@
|
||||
(defn- bottom-sheet-password-view
|
||||
[{:keys [on-press-biometric on-auth-success auth-button-icon-left auth-button-label]}]
|
||||
(fn []
|
||||
(let [has-partially-operable-accounts? (rf/sub [:wallet/has-partially-operable-accounts?])
|
||||
handle-password-success
|
||||
(fn [password]
|
||||
(let [sha3-pwd (security/hash-masked-password password)
|
||||
on-auth-success-callback #(on-auth-success sha3-pwd)]
|
||||
(rf/dispatch [:standard-auth/set-success true])
|
||||
(rf/dispatch [:standard-auth/reset-login-password])
|
||||
(if has-partially-operable-accounts?
|
||||
(rf/dispatch [:wallet/make-partially-operable-accounts-fully-operable
|
||||
{:password sha3-pwd
|
||||
:on-success on-auth-success-callback
|
||||
:on-error on-auth-success-callback}])
|
||||
(on-auth-success-callback))))]
|
||||
(let [has-partially-operable-accounts? (rf/sub [:wallet/has-partially-operable-accounts?])]
|
||||
[enter-password/view
|
||||
{:on-enter-password handle-password-success
|
||||
{:on-enter-password #(handle-password-success
|
||||
has-partially-operable-accounts?
|
||||
on-auth-success
|
||||
(security/hash-masked-password %))
|
||||
:on-press-biometrics on-press-biometric
|
||||
:button-icon-left auth-button-icon-left
|
||||
:button-label auth-button-label}])))
|
||||
@@ -116,6 +126,7 @@
|
||||
:on-close #(rf/dispatch [:standard-auth/reset-login-password])
|
||||
:content (fn []
|
||||
[keycard.pin/auth {:on-complete on-complete}])}]]]})
|
||||
|
||||
(rf/reg-event-fx :standard-auth/authorize-with-keycard authorize-with-keycard)
|
||||
|
||||
(defn authorize-with-password
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
(def error-message
|
||||
{:margin-top 8
|
||||
:flex-direction :row
|
||||
:gap 4
|
||||
:align-items :center})
|
||||
|
||||
(def auth-button
|
||||
|
||||
@@ -9,31 +9,35 @@
|
||||
|
||||
(defn view
|
||||
[{:keys [track-text customization-color auth-button-label on-auth-success on-auth-fail
|
||||
auth-button-icon-left size blur? container-style disabled? dependencies keycard-supported?]
|
||||
auth-button-icon-left size blur? container-style disabled? dependencies on-complete]
|
||||
:or {container-style {:flex 1}}}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
auth-method (rf/sub [:auth-method])
|
||||
biometric-auth? (= auth-method constants/auth-method-biometric)
|
||||
on-complete (rn/use-callback
|
||||
(fn [reset]
|
||||
(rf/dispatch [:standard-auth/authorize
|
||||
{:on-close (fn [success?]
|
||||
(js/setTimeout #(reset success?) 200))
|
||||
:auth-button-icon-left auth-button-icon-left
|
||||
:theme theme
|
||||
:blur? blur?
|
||||
:keycard-supported? keycard-supported?
|
||||
:biometric-auth? biometric-auth?
|
||||
:on-auth-success on-auth-success
|
||||
:on-auth-fail on-auth-fail
|
||||
:auth-button-label auth-button-label}]))
|
||||
(vec (conj dependencies on-auth-success on-auth-fail)))
|
||||
biometric-type (rf/sub [:biometrics/supported-type])]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
auth-method (rf/sub [:auth-method])
|
||||
biometric-auth? (= auth-method constants/auth-method-biometric)
|
||||
on-complete-callback (rn/use-callback
|
||||
(fn []
|
||||
(rf/dispatch [:standard-auth/authorize
|
||||
{:auth-button-icon-left auth-button-icon-left
|
||||
:theme theme
|
||||
:blur? blur?
|
||||
:biometric-auth? biometric-auth?
|
||||
:on-auth-success on-auth-success
|
||||
:on-auth-fail on-auth-fail
|
||||
:auth-button-label auth-button-label}]))
|
||||
(vec (conj dependencies on-auth-success on-auth-fail)))
|
||||
on-slider-complete (rn/use-callback
|
||||
(fn [reset-slider-fn]
|
||||
(js/setTimeout #(reset-slider-fn false) 500)
|
||||
(if (fn? on-complete)
|
||||
(on-complete)
|
||||
(on-complete-callback)))
|
||||
[on-complete on-complete-callback])
|
||||
biometric-type (rf/sub [:biometrics/supported-type])]
|
||||
[quo/slide-button
|
||||
{:container-style container-style
|
||||
:size size
|
||||
:customization-color customization-color
|
||||
:on-complete on-complete
|
||||
:on-complete on-slider-complete
|
||||
:track-icon (if biometric-auth?
|
||||
(biometric/get-icon-by-type biometric-type)
|
||||
:password)
|
||||
|
||||
@@ -1,11 +1,20 @@
|
||||
(ns status-im.common.terms.view
|
||||
(:require-macros [legacy.status-im.utils.slurp :refer [slurp]])
|
||||
(:require [quo.core :as quo]
|
||||
[react-native.gesture :as gesture]))
|
||||
[react-native.gesture :as gesture]
|
||||
[status-im.contexts.settings.common.header :as header]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(def terms-of-use-text (slurp "resources/terms-of-use.mdwn"))
|
||||
|
||||
(defn terms-of-use
|
||||
[]
|
||||
[gesture/scroll-view {:margin 20}
|
||||
[gesture/scroll-view {:style {:margin 20}}
|
||||
[quo/text terms-of-use-text]])
|
||||
|
||||
(defn view
|
||||
[]
|
||||
[quo/overlay {:type :shell}
|
||||
[header/view {:title (i18n/label :t/terms-of-service)}]
|
||||
[gesture/scroll-view {:style {:padding-horizontal 20}}
|
||||
[quo/text terms-of-use-text]]])
|
||||
|
||||
@@ -28,9 +28,10 @@
|
||||
:long-enough?
|
||||
:short-enough?)))))
|
||||
|
||||
(def password-tip? (set constants/password-tips))
|
||||
|
||||
(defn strength
|
||||
[validations]
|
||||
(->> (select-keys validations constants/password-tips)
|
||||
(vals)
|
||||
(filter true?)
|
||||
count))
|
||||
(->> validations
|
||||
(filter #(and (password-tip? (key %)) (val %)))
|
||||
(count)))
|
||||
|
||||
@@ -35,6 +35,12 @@
|
||||
(def sepolia-chain-explorer-link "https://sepolia.etherscan.io/address/")
|
||||
(def optimism-sepolia-chain-explorer-link "https://sepolia-optimistic.etherscan.io/address/")
|
||||
(def arbitrum-sepolia-chain-explorer-link "https://sepolia.arbiscan.io/address/")
|
||||
(def mainnet-tx-details-base-link "https://etherscan.io/tx")
|
||||
(def optimism-mainnet-tx-details-base-link "https://optimistic.etherscan.io/tx")
|
||||
(def arbitrum-mainnet-tx-details-base-link "https://arbiscan.io/tx")
|
||||
(def mainnet-sepolia-tx-details-base-link "https://sepolia.etherscan.io/tx")
|
||||
(def optimism-sepolia-tx-details-base-link "https://sepolia-optimistic.etherscan.io/tx")
|
||||
(def arbitrum-sepolia-tx-details-base-link "https://sepolia.arbiscan.io/tx")
|
||||
(def opensea-link "https://opensea.io")
|
||||
(def opensea-tesnet-link "https://testnets.opensea.io")
|
||||
|
||||
@@ -71,7 +77,7 @@
|
||||
|
||||
;; CONFIG VALUES
|
||||
(def log-level (string/upper-case (get-config :LOG_LEVEL "")))
|
||||
(def log-request-go (enabled? (get-config :LOG_REQUEST_GO "0")))
|
||||
(def api-logging-enabled? (enabled? (get-config :API_LOGGING_ENABLED "0")))
|
||||
(def fleet (get-config :FLEET ""))
|
||||
(def apn-topic (get-config :APN_TOPIC "im.status.ethereum"))
|
||||
(def max-installations 2)
|
||||
|
||||
@@ -76,6 +76,9 @@
|
||||
(def ^:const timeline-chat-type 5)
|
||||
(def ^:const community-chat-type 6)
|
||||
|
||||
(def ^:const chat-preview-type-community 0)
|
||||
(def ^:const chat-preview-type-non-community 1)
|
||||
|
||||
(def ^:const contact-request-message-state-none 0)
|
||||
(def ^:const contact-request-message-state-pending 1)
|
||||
(def ^:const contact-request-message-state-accepted 2)
|
||||
@@ -331,6 +334,7 @@
|
||||
(def ^:const privacy-policy-link "https://status.im/privacy-policy/")
|
||||
(def ^:const terms-of-service-link "https://status.im/terms-of-use")
|
||||
(def ^:const create-account-link "https://status.app/help/wallet/create-wallet-accounts")
|
||||
(def ^:const mobile-upvote-link "https://status-mobile.featureupvote.com")
|
||||
|
||||
(def ^:const visibility-status-unknown 0)
|
||||
(def ^:const visibility-status-automatic 1)
|
||||
@@ -636,3 +640,11 @@
|
||||
:more-than-five-minutes 4})
|
||||
|
||||
(def ^:const wallet-connect-transaction-refresh-interval-ms 10000)
|
||||
|
||||
(def ^:const native-token-symbol "ETH")
|
||||
|
||||
;; About app links
|
||||
(def ^:const status-app-url "http://status.app")
|
||||
(def ^:const go-waku-url "https://github.com/waku-org/go-waku")
|
||||
(def ^:const status-go-url "https://github.com/status-im/status-go")
|
||||
(def ^:const status-mobile-url "https://github.com/status-im/status-mobile")
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
[re-frame.interceptor :as interceptor]
|
||||
status-im.contexts.centralized-metrics.effects
|
||||
[status-im.contexts.centralized-metrics.tracking :as tracking]
|
||||
[taoensso.timbre :as log]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn push-event?
|
||||
@@ -16,7 +15,6 @@
|
||||
[context]
|
||||
(when (push-event? (interceptor/get-coeffect context :db))
|
||||
(when-let [event (tracking/metrics-event (interceptor/get-coeffect context :event))]
|
||||
(log/debug "tracking event" event)
|
||||
(if (or (seq? event) (vector? event))
|
||||
(doseq [e event]
|
||||
(native-module/add-centralized-metric e))
|
||||
@@ -36,18 +34,10 @@
|
||||
(assoc :centralized-metrics/enabled? enabled?)
|
||||
(assoc :centralized-metrics/onboarding-enabled? (and onboarding? enabled?)))}))
|
||||
|
||||
(rf/reg-event-fx :centralized-metrics/check-modal
|
||||
(fn [{:keys [db]} [modal-view]]
|
||||
(rf/reg-event-fx :centralized-metrics/check-user-confirmation
|
||||
(fn [{:keys [db]}]
|
||||
(when-not (:centralized-metrics/user-confirmed? db)
|
||||
{:fx [[:dispatch
|
||||
[:show-bottom-sheet
|
||||
{:content (fn [] [modal-view])
|
||||
;; When in the profiles screen do biometric auth after the metrics sheet is dismissed
|
||||
;; https://github.com/status-im/status-mobile/issues/20932
|
||||
:on-close (when (= (:view-id db) :screen/profile.profiles)
|
||||
#(rf/dispatch [:profile.login/login-with-biometric-if-available
|
||||
(get-in db [:profile/login :key-uid])]))
|
||||
:shell? true}]]]})))
|
||||
{:fx [[:dispatch [:navigate-to :screen/onboarding.share-usage]]]})))
|
||||
|
||||
(rf/reg-fx :effects.centralized-metrics/track
|
||||
(fn [event]
|
||||
|
||||
@@ -6,12 +6,15 @@
|
||||
[status-im.navigation.screens :as screens]))
|
||||
|
||||
(defn key-value-event
|
||||
[event-name event-value]
|
||||
{:metric
|
||||
{:eventName event-name
|
||||
:platform platform/os
|
||||
:appVersion build/app-short-version
|
||||
:eventValue event-value}})
|
||||
([event-name]
|
||||
(key-value-event event-name nil))
|
||||
([event-name event-value]
|
||||
(cond-> {:metric
|
||||
{:eventName event-name
|
||||
:platform platform/os
|
||||
:appVersion build/app-short-version}}
|
||||
event-value
|
||||
(assoc-in [:metric :eventValue] event-value))))
|
||||
|
||||
(defn user-journey-event
|
||||
[action]
|
||||
@@ -41,11 +44,22 @@
|
||||
|
||||
(defn track-view-id-event
|
||||
[view-id]
|
||||
(if-let [screen (get screens/screens-by-name view-id)]
|
||||
(when (get-in screen [:metrics :track?])
|
||||
(screen-event screen {}))
|
||||
(when (contains? view-ids-to-track view-id)
|
||||
(navigation-event (name view-id)))))
|
||||
(let [screen (get screens/screens-by-name view-id)]
|
||||
(cond-> []
|
||||
(get-in screen [:metrics :track?])
|
||||
(conj (screen-event screen {}))
|
||||
|
||||
(contains? view-ids-to-track view-id)
|
||||
(conj (navigation-event (name view-id)))
|
||||
|
||||
(= :screen/onboarding.syncing-results view-id)
|
||||
(conj (key-value-event "onboarding-completed"))
|
||||
|
||||
(= :screen/keycard.migrate.success view-id)
|
||||
(conj (key-value-event "keycard-migration-succeeded"))
|
||||
|
||||
(= :screen/keycard.migrate.fail view-id)
|
||||
(conj (key-value-event "keycard-migration-failed")))))
|
||||
|
||||
(defn navigated-to-collectibles-tab-event
|
||||
[location]
|
||||
@@ -60,6 +74,13 @@
|
||||
:centralized-metrics/toggle-centralized-metrics
|
||||
(key-value-event "events.metrics-enabled" {:enabled rf-event-parameter})
|
||||
|
||||
:profile.login/non-critical-initialization
|
||||
(key-value-event "user-logged-in")
|
||||
|
||||
(:profile.create/create-and-login
|
||||
:profile.recover/recover-and-login)
|
||||
(key-value-event "onboarding-completed")
|
||||
|
||||
:set-view-id
|
||||
(track-view-id-event rf-event-parameter)
|
||||
|
||||
|
||||
@@ -42,19 +42,19 @@
|
||||
|
||||
(deftest track-view-id-event-test
|
||||
(testing "returns correct navigation event for view-id"
|
||||
(is (= {:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "communities-stack"}}}
|
||||
(is (= [{:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "communities-stack"}}}]
|
||||
(tracking/track-view-id-event :communities-stack)))
|
||||
(is (= {:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "onboarding.create-profile-info"}}}
|
||||
(tracking/track-view-id-event :screen/onboarding.create-profile)))
|
||||
(is (nil? (tracking/track-view-id-event :unknown-stack)))))
|
||||
(is (= [{:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "onboarding.create-profile-password"}}}]
|
||||
(tracking/track-view-id-event :screen/onboarding.create-profile-password)))
|
||||
(is (= [] (tracking/track-view-id-event :unknown-stack)))))
|
||||
|
||||
(deftest tracked-event-test
|
||||
(testing "returns correct event for given inputs"
|
||||
@@ -70,16 +70,16 @@
|
||||
:appVersion app-version
|
||||
:eventValue {:enabled true}}}
|
||||
(tracking/metrics-event [:centralized-metrics/toggle-centralized-metrics true])))
|
||||
(is (= {:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "wallet-stack"}}}
|
||||
(is (= [{:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "wallet-stack"}}}]
|
||||
(tracking/metrics-event [:set-view-id :wallet-stack])))
|
||||
(is (nil? (tracking/metrics-event [:unknown-event])))
|
||||
(is (= {:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "onboarding.intro"}}}
|
||||
(is (= [{:metric
|
||||
{:eventName "navigation"
|
||||
:platform platform-os
|
||||
:appVersion app-version
|
||||
:eventValue {:viewId "onboarding.intro"}}}]
|
||||
(tracking/metrics-event [:set-view-id :screen/onboarding.intro])))))
|
||||
|
||||
@@ -280,17 +280,31 @@
|
||||
{:style (merge style/container {:margin-horizontal 0})}
|
||||
[chat-item item]])
|
||||
|
||||
(defn- bottom-sheet-options
|
||||
[chat-id chat-type]
|
||||
(cond-> {:content (fn []
|
||||
(let [chat (rf/sub [:chats/chat-by-id chat-id])]
|
||||
[actions/chat-actions chat false]))}
|
||||
(= chat-type constants/one-to-one-chat-type)
|
||||
(assoc :selected-item
|
||||
(fn []
|
||||
(let [chat (rf/sub [:chats/chat-by-id chat-id])]
|
||||
[chat-user chat])))))
|
||||
|
||||
(defn chat-list-item
|
||||
[{:keys [chat-id chat-type]
|
||||
:as item} theme]
|
||||
(let [customization-color (rf/sub [:profile/customization-color])]
|
||||
[{:keys [chat-id]}]
|
||||
(let [{:keys [chat-type]
|
||||
:as chat} (rf/sub [:chats/chat-by-id chat-id])
|
||||
customization-color (rf/sub [:profile/customization-color])
|
||||
theme (quo.theme/use-theme)
|
||||
on-long-press (rn/use-callback
|
||||
(fn []
|
||||
(rf/dispatch [:show-bottom-sheet
|
||||
(bottom-sheet-options chat-id chat-type)]))
|
||||
[chat-id chat-type])]
|
||||
[rn/touchable-highlight
|
||||
{:style style/container
|
||||
:on-press (open-chat chat-id)
|
||||
:underlay-color (colors/resolve-color customization-color theme 5)
|
||||
:on-long-press #(rf/dispatch [:show-bottom-sheet
|
||||
(cond-> {:content (fn [] [actions/chat-actions item false])}
|
||||
(= chat-type constants/one-to-one-chat-type)
|
||||
(assoc :selected-item
|
||||
(fn [] [chat-user item])))])}
|
||||
[chat-item item]]))
|
||||
:on-long-press on-long-press}
|
||||
[chat-item chat]]))
|
||||
|
||||