Merge branch 'master' into feat/bip47

This commit is contained in:
abhishandy 2023-02-09 20:24:44 -05:00
commit 9d24f6fb34
35 changed files with 856 additions and 736 deletions

View file

@ -3,7 +3,7 @@ jobs:
lint:
docker:
- image: cimg/node:16.17.1
- image: cimg/node:16.19.0
working_directory: ~/repo
@ -26,7 +26,7 @@ jobs:
unit:
docker:
- image: cimg/node:16.17.1
- image: cimg/node:16.19.0
working_directory: ~/repo
@ -50,7 +50,7 @@ jobs:
integration:
docker:
- image: cimg/node:16.17.1
- image: cimg/node:16.19.0
working_directory: ~/repo

View file

@ -1,42 +1,43 @@
[main]
host = https://www.transifex.com
[bluewallet.loc-en-json--master]
file_filter = loc/<lang>.json
[o:bluewallet:p:bluewallet-fastlane:r:ios-fastlane-metadata-en-us-description-txt--master]
file_filter = ios/fastlane/metadata/<lang>/description.txt
source_file = ios/fastlane/metadata/en-US/description.txt
source_lang = en_US
type = TXT
minimum_perc = 10
lang_map = fr_FR: fr-FR, nl_NL: nl-NL, pt_BR: pt-BR, zh_CN: zh-Hans, zh_HK: zh-Hant, ar_SA: ar-SA, es_MX: es-MX, fr_CA: fr-CA, pt_PT: pt-PT, de_DE: de-DE, es_ES: es-ES
[o:bluewallet:p:bluewallet-fastlane:r:ios-fastlane-metadata-en-us-keywords-txt--master]
file_filter = ios/fastlane/metadata/<lang>/keywords.txt
source_file = ios/fastlane/metadata/en-US/keywords.txt
source_lang = en_US
type = TXT
minimum_perc = 10
lang_map = es_ES: es-ES, es_MX: es-MX, fr_CA: fr-CA, fr_FR: fr-FR, nl_NL: nl-NL, pt_BR: pt-BR, zh_CN: zh-Hans, ar_SA: ar-SA, de_DE: de-DE, pt_PT: pt-PT, zh_HK: zh-Hant
[o:bluewallet:p:bluewallet-fastlane:r:ios-fastlane-metadata-en-us-name-txt--master]
file_filter = ios/fastlane/metadata/<lang>/name.txt
source_file = ios/fastlane/metadata/en-US/name.txt
source_lang = en_US
type = TXT
minimum_perc = 10
lang_map = zh_HK: zh-Hant, ar_SA: ar-SA, es_MX: es-MX, fr_FR: fr-FR, nl_NL: nl-NL, pt_BR: pt-BR, pt_PT: pt-PT, zh_CN: zh-Hans, de_DE: de-DE, es_ES: es-ES, fr_CA: fr-CA
[o:bluewallet:p:bluewallet-fastlane:r:ios-fastlane-metadata-en-us-promotional-text-txt--master]
file_filter = ios/fastlane/metadata/<lang>/promotional_text.txt
source_file = ios/fastlane/metadata/en-US/promotional_text.txt
source_lang = en_US
type = TXT
minimum_perc = 10
lang_map = zh_CN: zh-Hans, zh_HK: zh-Hant, ar_SA: ar-SA, es_MX: es-MX, fr_CA: fr-CA, fr_FR: fr-FR, pt_PT: pt-PT, de_DE: de-DE, es_ES: es-ES, nl_NL: nl-NL, pt_BR: pt-BR
[o:bluewallet:p:bluewallet:r:loc-en-json--master]
file_filter = loc/<lang>.json
source_file = loc/en.json
source_lang = en
type = KEYVALUEJSON
minimum_perc = 30
source_file = loc/en.json
source_lang = en
type = KEYVALUEJSON
lang_map = af_ZA: zar_afr, bg_BG: bg_bg, ca: ca, cs_CZ: cs_cz, cy: cy, da_DK: da_dk, de_DE: de_de, el: el, es_ES: es, fa_IR: fa, fi_FI: fi_fi, fr_FR: fr_fr, hr_HR: hr_hr, hu_HU: hu_hu, id_ID: id_id, ja_JP: jp_jp, nb_NO: nb_no, nl_NL: nl_nl, pt_BR: pt_br, pt_PT: pt_pt, ro: ro, sk_SK: sk_sk, sv_SE: sv_se, th_TH: th_th, tr_TR: tr_tr, uk_UA: ua, vi_VN: vi_vn, xh: zar_xho, zh_CN: zh_cn, zh_TW: zh_tw
lang_map = vi_VN: vi_vn, zh_TW: zh_tw, af_ZA: zar_afr, id_ID: id_id, sk_SK: sk_sk, ja_JP: jp_jp, uk_UA: ua, zh_CN: zh_cn, hr_HR: hr_hr, tr_TR: tr_tr, sv_SE: sv_se, th_TH: th_th, pt_BR: pt_br, es_ES: es, fr_FR: fr_fr, hu_HU: hu_hu, nl_NL: nl_nl, ro: ro, ca: ca, cy: cy, de_DE: de_de, nb_NO: nb_no, pt_PT: pt_pt, xh: zar_xho, bg_BG: bg_bg, cs_CZ: cs_cz, da_DK: da_dk, el: el, fa_IR: fa, fi_FI: fi_fi
[bluewallet-fastlane.ios-fastlane-metadata-en-us-description-txt--master]
file_filter = ios/fastlane/metadata/<lang>/description.txt
minimum_perc = 10
source_file = ios/fastlane/metadata/en-US/description.txt
source_lang = en_US
type = TXT
lang_map = ar_SA: ar-SA, de_DE: de-DE, es_ES: es-ES, es_MX: es-MX, fr_CA: fr-CA, fr_FR: fr-FR, nl_NL: nl-NL, pt_BR: pt-BR, pt_PT: pt-PT, zh_CN: zh-Hans, zh_HK: zh-Hant
[bluewallet-fastlane.ios-fastlane-metadata-en-us-keywords-txt--master]
file_filter = ios/fastlane/metadata/<lang>/keywords.txt
minimum_perc = 10
source_file = ios/fastlane/metadata/en-US/keywords.txt
source_lang = en_US
type = TXT
lang_map = ar_SA: ar-SA, de_DE: de-DE, es_ES: es-ES, es_MX: es-MX, fr_CA: fr-CA, fr_FR: fr-FR, nl_NL: nl-NL, pt_BR: pt-BR, pt_PT: pt-PT, zh_CN: zh-Hans, zh_HK: zh-Hant
[bluewallet-fastlane.ios-fastlane-metadata-en-us-name-txt--master]
file_filter = ios/fastlane/metadata/<lang>/name.txt
minimum_perc = 10
source_file = ios/fastlane/metadata/en-US/name.txt
source_lang = en_US
type = TXT
lang_map = ar_SA: ar-SA, de_DE: de-DE, es_ES: es-ES, es_MX: es-MX, fr_CA: fr-CA, fr_FR: fr-FR, nl_NL: nl-NL, pt_BR: pt-BR, pt_PT: pt-PT, zh_CN: zh-Hans, zh_HK: zh-Hant
[bluewallet-fastlane.ios-fastlane-metadata-en-us-promotional-text-txt--master]
file_filter = ios/fastlane/metadata/<lang>/promotional_text.txt
minimum_perc = 10
source_file = ios/fastlane/metadata/en-US/promotional_text.txt
source_lang = en_US
type = TXT
lang_map = ar_SA: ar-SA, de_DE: de-DE, es_ES: es-ES, es_MX: es-MX, fr_CA: fr-CA, fr_FR: fr-FR, nl_NL: nl-NL, pt_BR: pt-BR, pt_PT: pt-PT, zh_CN: zh-Hans, zh_HK: zh-Hant

View file

@ -1,6 +1,5 @@
apply plugin: "com.android.application"
apply plugin: "kotlin-android"
apply plugin: "kotlin-android-extensions"
import com.android.build.OutputFile

View file

@ -14,6 +14,7 @@
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:largeHeap="true"
android:extractNativeLibs="true"
android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="true"

View file

@ -12,8 +12,6 @@ import java.lang.reflect.InvocationTargetException;
import com.facebook.react.modules.i18nmanager.I18nUtil;
import java.util.List;
import com.bugsnag.android.Bugsnag;
import com.facebook.react.bridge.JSIModulePackage;
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
public class MainApplication extends Application implements ReactApplication {
@ -37,11 +35,6 @@ public class MainApplication extends Application implements ReactApplication {
protected String getJSMainModuleName() {
return "index";
}
@Override
protected JSIModulePackage getJSIModulePackage() {
return new ReanimatedJSIModulePackage();
}
};
@Override

View file

@ -12,7 +12,7 @@ buildscript {
firebaseVersion = "17.3.4"
firebaseMessagingVersion = "21.1.0"
ndkVersion = "23.0.7599858"
kotlin_version = '1.7.20'
kotlin_version = '1.8.0'
}
repositories {
google()

View file

@ -31,4 +31,5 @@ org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.127.0
FLIPPER_VERSION=0.127.0
org.gradle.jvmargs=-XX\:MaxHeapSize\=2999m -Xmx4608m

View file

@ -832,7 +832,7 @@ module.exports.estimateFees = async function () {
const _slow = await module.exports.estimateFee(144);
// calculating fast fees from mempool:
const fast = module.exports.calcEstimateFeeFromFeeHistorgam(1, histogram);
const fast = Math.max(2, module.exports.calcEstimateFeeFromFeeHistorgam(1, histogram));
// recalculating medium and slow fees using bitcoincore estimations only like relative weights:
// (minimum 1 sat, just for any case)
const medium = Math.max(1, Math.round((fast * _medium) / _fast));

View file

@ -53,6 +53,9 @@ async function _restoreSavedPreferredFiatCurrencyFromStorage() {
if (preferredFiatCurrency === null) {
throw Error('No Preferred Fiat selected');
}
preferredFiatCurrency = FiatUnit[preferredFiatCurrency.endPointKey] || preferredFiatCurrency;
// ^^^ in case configuration in json file changed (and is different from what we stored) we reload it
} catch (_) {
const deviceCurrencies = RNLocalize.getCurrencies();
if (Object.keys(FiatUnit).some(unit => unit === deviceCurrencies[0])) {

View file

@ -67,7 +67,7 @@ export class AppStorage {
*/
setItem = (key, value) => {
if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
return RNSecureKeyStore.set(key, value, { accessible: ACCESSIBLE.WHEN_UNLOCKED });
return RNSecureKeyStore.set(key, value, { accessible: ACCESSIBLE.WHEN_UNLOCKED_THIS_DEVICE_ONLY });
} else {
return AsyncStorage.setItem(key, value);
}

View file

@ -390,7 +390,8 @@ class DeeplinkSchemaMatch {
break;
}
} else if (value.startsWith('lightning')) {
lndInvoice = `lightning:${txInfo[index + 1]}`;
const lnpart = txInfo[index + 1].split('&').find(el => el.toLowerCase().startsWith('ln'));
lndInvoice = `lightning:${lnpart}`;
if (!this.isLightningInvoice(lndInvoice)) {
lndInvoice = false;
break;

View file

@ -567,11 +567,11 @@ export class MultisigHDWallet extends AbstractHDElectrumWallet {
}
if (secret.indexOf('sortedmulti(') !== -1 && json.descriptor) {
if (json.label) this.setLabel(json.label);
if (json.descriptor.startsWith('wsh(')) {
this.setNativeSegwit();
} else if (json.descriptor.startsWith('sh(wsh(')) {
if (json.descriptor.includes('sh(wsh(')) {
this.setWrappedSegwit();
} else if (json.descriptor.startsWith('sh(')) {
} else if (json.descriptor.includes('wsh(')) {
this.setNativeSegwit();
} else if (json.descriptor.includes('sh(')) {
this.setLegacy();
}

View file

@ -1,19 +1,19 @@
PODS:
- boost (1.76.0)
- BugsnagReactNative (7.18.0):
- BugsnagReactNative (7.18.2):
- React-Core
- BVLinearGradient (2.6.2):
- React-Core
- CocoaAsyncSocket (7.6.5)
- DoubleConversion (1.1.6)
- FBLazyVector (0.67.4)
- FBReactNativeSpec (0.67.4):
- FBLazyVector (0.67.5)
- FBReactNativeSpec (0.67.5):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.67.4)
- RCTTypeSafety (= 0.67.4)
- React-Core (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- RCTRequired (= 0.67.5)
- RCTTypeSafety (= 0.67.5)
- React-Core (= 0.67.5)
- React-jsi (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- Flipper (0.99.0):
- Flipper-Folly (~> 2.6)
- Flipper-RSocket (~> 1.4)
@ -77,7 +77,7 @@ PODS:
- fmt (6.2.1)
- glog (0.3.5)
- libevent (2.1.12)
- lottie-ios (3.4.3)
- lottie-ios (3.4.4)
- lottie-react-native (5.1.4):
- lottie-ios (~> 3.4.0)
- React-Core
@ -95,203 +95,195 @@ PODS:
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCTRequired (0.67.4)
- RCTTypeSafety (0.67.4):
- FBLazyVector (= 0.67.4)
- RCTRequired (0.67.5)
- RCTTypeSafety (0.67.5):
- FBLazyVector (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.67.4)
- React-Core (= 0.67.4)
- React (0.67.4):
- React-Core (= 0.67.4)
- React-Core/DevSupport (= 0.67.4)
- React-Core/RCTWebSocket (= 0.67.4)
- React-RCTActionSheet (= 0.67.4)
- React-RCTAnimation (= 0.67.4)
- React-RCTBlob (= 0.67.4)
- React-RCTImage (= 0.67.4)
- React-RCTLinking (= 0.67.4)
- React-RCTNetwork (= 0.67.4)
- React-RCTSettings (= 0.67.4)
- React-RCTText (= 0.67.4)
- React-RCTVibration (= 0.67.4)
- React-callinvoker (0.67.4)
- React-Core (0.67.4):
- RCTRequired (= 0.67.5)
- React-Core (= 0.67.5)
- React (0.67.5):
- React-Core (= 0.67.5)
- React-Core/DevSupport (= 0.67.5)
- React-Core/RCTWebSocket (= 0.67.5)
- React-RCTActionSheet (= 0.67.5)
- React-RCTAnimation (= 0.67.5)
- React-RCTBlob (= 0.67.5)
- React-RCTImage (= 0.67.5)
- React-RCTLinking (= 0.67.5)
- React-RCTNetwork (= 0.67.5)
- React-RCTSettings (= 0.67.5)
- React-RCTText (= 0.67.5)
- React-RCTVibration (= 0.67.5)
- React-callinvoker (0.67.5)
- React-Core (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-Core/Default (= 0.67.5)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/CoreModulesHeaders (0.67.4):
- React-Core/CoreModulesHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/Default (0.67.4):
- React-Core/Default (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/DevSupport (0.67.4):
- React-Core/DevSupport (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.67.4)
- React-Core/RCTWebSocket (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-jsinspector (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-Core/Default (= 0.67.5)
- React-Core/RCTWebSocket (= 0.67.5)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-jsinspector (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTActionSheetHeaders (0.67.4):
- React-Core/RCTActionSheetHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTAnimationHeaders (0.67.4):
- React-Core/RCTAnimationHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTBlobHeaders (0.67.4):
- React-Core/RCTBlobHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTImageHeaders (0.67.4):
- React-Core/RCTImageHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTLinkingHeaders (0.67.4):
- React-Core/RCTLinkingHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTNetworkHeaders (0.67.4):
- React-Core/RCTNetworkHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTSettingsHeaders (0.67.4):
- React-Core/RCTSettingsHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTTextHeaders (0.67.4):
- React-Core/RCTTextHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTVibrationHeaders (0.67.4):
- React-Core/RCTVibrationHeaders (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-Core/RCTWebSocket (0.67.4):
- React-Core/RCTWebSocket (0.67.5):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsiexecutor (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-Core/Default (= 0.67.5)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsiexecutor (= 0.67.5)
- React-perflogger (= 0.67.5)
- Yoga
- React-CoreModules (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- React-CoreModules (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.67.4)
- React-Core/CoreModulesHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- React-RCTImage (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-cxxreact (0.67.4):
- RCTTypeSafety (= 0.67.5)
- React-Core/CoreModulesHeaders (= 0.67.5)
- React-jsi (= 0.67.5)
- React-RCTImage (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-cxxreact (0.67.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.67.4)
- React-jsi (= 0.67.4)
- React-jsinspector (= 0.67.4)
- React-logger (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-runtimeexecutor (= 0.67.4)
- React-jsi (0.67.4):
- React-callinvoker (= 0.67.5)
- React-jsi (= 0.67.5)
- React-jsinspector (= 0.67.5)
- React-logger (= 0.67.5)
- React-perflogger (= 0.67.5)
- React-runtimeexecutor (= 0.67.5)
- React-jsi (0.67.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsi/Default (= 0.67.4)
- React-jsi/Default (0.67.4):
- React-jsi/Default (= 0.67.5)
- React-jsi/Default (0.67.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsiexecutor (0.67.4):
- React-jsiexecutor (0.67.5):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-jsinspector (0.67.4)
- React-logger (0.67.4):
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-perflogger (= 0.67.5)
- React-jsinspector (0.67.5)
- React-logger (0.67.5):
- glog
- react-native-blue-crypto (1.0.0):
- React
- react-native-camera (4.2.1):
- React-Core
- react-native-camera/RCT (= 4.2.1)
- react-native-camera/RN (= 4.2.1)
- react-native-camera/RCT (4.2.1):
- React-Core
- react-native-camera/RN (4.2.1):
- React-Core
- react-native-document-picker (7.1.3):
- React-Core
- react-native-fingerprint-scanner (6.0.0):
@ -311,75 +303,77 @@ PODS:
- React-Core
- react-native-tor (0.1.8):
- React
- react-native-webview (11.23.1):
- react-native-webview (11.26.1):
- React-Core
- react-native-widget-center (0.0.8):
- React
- React-perflogger (0.67.4)
- React-RCTActionSheet (0.67.4):
- React-Core/RCTActionSheetHeaders (= 0.67.4)
- React-RCTAnimation (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- React-perflogger (0.67.5)
- React-RCTActionSheet (0.67.5):
- React-Core/RCTActionSheetHeaders (= 0.67.5)
- React-RCTAnimation (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTAnimationHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTBlob (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCTTypeSafety (= 0.67.5)
- React-Core/RCTAnimationHeaders (= 0.67.5)
- React-jsi (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-RCTBlob (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/RCTBlobHeaders (= 0.67.4)
- React-Core/RCTWebSocket (= 0.67.4)
- React-jsi (= 0.67.4)
- React-RCTNetwork (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTImage (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- React-Core/RCTBlobHeaders (= 0.67.5)
- React-Core/RCTWebSocket (= 0.67.5)
- React-jsi (= 0.67.5)
- React-RCTNetwork (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-RCTImage (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTImageHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- React-RCTNetwork (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTLinking (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- React-Core/RCTLinkingHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTNetwork (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCTTypeSafety (= 0.67.5)
- React-Core/RCTImageHeaders (= 0.67.5)
- React-jsi (= 0.67.5)
- React-RCTNetwork (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-RCTLinking (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- React-Core/RCTLinkingHeaders (= 0.67.5)
- React-jsi (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-RCTNetwork (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTNetworkHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTSettings (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCTTypeSafety (= 0.67.5)
- React-Core/RCTNetworkHeaders (= 0.67.5)
- React-jsi (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-RCTSettings (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.67.4)
- React-Core/RCTSettingsHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-RCTText (0.67.4):
- React-Core/RCTTextHeaders (= 0.67.4)
- React-RCTVibration (0.67.4):
- FBReactNativeSpec (= 0.67.4)
- RCTTypeSafety (= 0.67.5)
- React-Core/RCTSettingsHeaders (= 0.67.5)
- React-jsi (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-RCTText (0.67.5):
- React-Core/RCTTextHeaders (= 0.67.5)
- React-RCTVibration (0.67.5):
- FBReactNativeSpec (= 0.67.5)
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/RCTVibrationHeaders (= 0.67.4)
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (= 0.67.4)
- React-runtimeexecutor (0.67.4):
- React-jsi (= 0.67.4)
- ReactCommon/turbomodule/core (0.67.4):
- React-Core/RCTVibrationHeaders (= 0.67.5)
- React-jsi (= 0.67.5)
- ReactCommon/turbomodule/core (= 0.67.5)
- React-runtimeexecutor (0.67.5):
- React-jsi (= 0.67.5)
- ReactCommon/turbomodule/core (0.67.5):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.67.4)
- React-Core (= 0.67.4)
- React-cxxreact (= 0.67.4)
- React-jsi (= 0.67.4)
- React-logger (= 0.67.4)
- React-perflogger (= 0.67.4)
- React-callinvoker (= 0.67.5)
- React-Core (= 0.67.5)
- React-cxxreact (= 0.67.5)
- React-jsi (= 0.67.5)
- React-logger (= 0.67.5)
- React-perflogger (= 0.67.5)
- ReactNativeCameraKit (13.0.0):
- React-Core
- RealmJS (10.20.0-beta.5):
- React
- RemobileReactNativeQrcodeLocalImage (1.0.4):
@ -398,7 +392,7 @@ PODS:
- React-Core
- RNFS (2.19.0):
- React-Core
- RNGestureHandler (2.6.2):
- RNGestureHandler (2.8.0):
- React-Core
- RNHandoff (0.0.3):
- React
@ -410,11 +404,11 @@ PODS:
- React
- RNQuickAction (0.3.13):
- React
- RNRate (1.2.9):
- RNRate (1.2.12):
- React-Core
- RNReactNativeHapticFeedback (1.14.0):
- React-Core
- RNReanimated (2.9.1):
- RNReanimated (2.13.0):
- DoubleConversion
- FBLazyVector
- FBReactNativeSpec
@ -441,12 +435,12 @@ PODS:
- React-RCTText
- ReactCommon/turbomodule/core
- Yoga
- RNScreens (3.17.0):
- RNScreens (3.19.0):
- React-Core
- React-RCTImage
- RNSecureKeyStore (1.0.0):
- React
- RNShare (7.9.0):
- RNShare (7.9.1):
- React-Core
- RNSVG (12.4.4):
- React-Core
@ -508,7 +502,6 @@ DEPENDENCIES:
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
- react-native-blue-crypto (from `../node_modules/react-native-blue-crypto`)
- react-native-camera (from `../node_modules/react-native-camera`)
- react-native-document-picker (from `../node_modules/react-native-document-picker`)
- react-native-fingerprint-scanner (from `../node_modules/react-native-fingerprint-scanner`)
- react-native-idle-timer (from `../node_modules/react-native-idle-timer`)
@ -532,6 +525,7 @@ DEPENDENCIES:
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- ReactNativeCameraKit (from `../node_modules/react-native-camera-kit`)
- RealmJS (from `../node_modules/realm`)
- "RemobileReactNativeQrcodeLocalImage (from `../node_modules/@remobile/react-native-qrcode-local-image`)"
- rn-ldk (from `../node_modules/rn-ldk`)
@ -623,8 +617,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/logger"
react-native-blue-crypto:
:path: "../node_modules/react-native-blue-crypto"
react-native-camera:
:path: "../node_modules/react-native-camera"
react-native-document-picker:
:path: "../node_modules/react-native-document-picker"
react-native-fingerprint-scanner:
@ -671,6 +663,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
ReactNativeCameraKit:
:path: "../node_modules/react-native-camera-kit"
RealmJS:
:path: "../node_modules/realm"
RemobileReactNativeQrcodeLocalImage:
@ -732,12 +726,12 @@ CHECKOUT OPTIONS:
SPEC CHECKSUMS:
boost: a7c83b31436843459a1961bfd74b96033dc77234
BugsnagReactNative: 90db2ee1ae4e7b04c56ce0bd00c098c818fc1ee7
BugsnagReactNative: e3debe54be51169ae09c653b059f1c1b0e594e39
BVLinearGradient: 34a999fda29036898a09c6a6b728b0b4189e1a44
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
FBLazyVector: f7b0632c6437e312acf6349288d9aa4cb6d59030
FBReactNativeSpec: 0f4e1f4cfeace095694436e7c7fcc5bf4b03a0ff
FBLazyVector: d2db9d00883282819d03bbd401b2ad4360d47580
FBReactNativeSpec: 94da4d84ba3b1acf459103320882daa481a2b62d
Flipper: 30e8eeeed6abdc98edaf32af0cda2f198be4b733
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
@ -750,24 +744,23 @@ SPEC CHECKSUMS:
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 85ecdd10ee8d8ec362ef519a6a45ff9aa27b2e85
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
lottie-ios: 9ae750cdc7820fecbd3c2f0cfc493038208fcdc4
lottie-ios: 8f97d3271e155c2d688875c29cd3c74908aef5f8
lottie-react-native: b702fab740cdb952a8e2354713d3beda63ff97b0
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
PasscodeAuth: 3e88093ff46c31a952d8b36c488240de980517be
RCT-Folly: 803a9cfd78114b2ec0f140cfa6fa2a6bafb2d685
RCTRequired: 0aa6c1c27e1d65920df35ceea5341a5fe76bdb79
RCTTypeSafety: d76a59d00632891e11ed7522dba3fd1a995e573a
React: ab8c09da2e7704f4b3ebad4baa6cfdfcc852dcb5
React-callinvoker: 216fb96b482da516b8aba4142b145938f6ea92f0
React-Core: af99b93aff83599485e0e0879879aafa35ceae32
React-CoreModules: 137a054ce8c547e81dc3502933b1bc0fd08df05d
React-cxxreact: ec5ee6b08664f5b8ac71d8ad912f54d540c4f817
React-jsi: 3e084c80fd364cee64668d5df46d40c39f7973e1
React-jsiexecutor: cbdf37cebdc4f5d8b3d0bf5ccaa6147fd9de9f3d
React-jsinspector: f4775ea9118cbe1f72b834f0f842baa7a99508d8
React-logger: a1f028f6d8639a3f364ef80419e5e862e1115250
RCTRequired: 412e994c1e570cf35378a32c18fd46e50634938b
RCTTypeSafety: ef27340c728e6d673af345ed69e479a010c8a2d8
React: 36b9f5116572e5b80f01e562bb1f1451e8848e47
React-callinvoker: 91e62870884d3db3a0db33bbb1ba4e53fa5210ca
React-Core: 765ccc3861be1b93c7d5ca37f6b06e2efd6e7999
React-CoreModules: da2ddff50a92576b6d58fbfc80a62ba3f81d8a4e
React-cxxreact: b54cffd4feb550c3213cd38db4a2a4bdd896f715
React-jsi: 103674913e4159a07df20ef214c6b563e90e7b2e
React-jsiexecutor: e9895ccae253323ca70f693945fecbba091f0abd
React-jsinspector: ec4fe4f65ccf9d67c8429dda955d3412db8a25ef
React-logger: 85f4ef06b9723714b2dfa5b0e5502b673b271b58
react-native-blue-crypto: 23f1558ad3d38d7a2edb7e2f6ed1bc520ed93e56
react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f
react-native-document-picker: ec07866a30707f23660c0f3ae591d669d3e89096
react-native-fingerprint-scanner: ac6656f18c8e45a7459302b84da41a44ad96dbbe
react-native-idle-timer: f7f651542b39dce9b9473e4578cb64a255075f17
@ -777,20 +770,21 @@ SPEC CHECKSUMS:
react-native-safe-area-context: 9e40fb181dac02619414ba1294d6c2a807056ab9
react-native-tcp-socket: c1b7297619616b4c9caae6889bcb0aba78086989
react-native-tor: 3b14e9160b2eb7fa3f310921b2dee71a5171e5b7
react-native-webview: d33e2db8925d090871ffeb232dfa50cb3a727581
react-native-webview: 9f111dfbcfc826084d6c507f569e5e03342ee1c1
react-native-widget-center: 6bf4d5aa5ab10a9dbbf7ddf9192f06cc1d66ccd5
React-perflogger: 0afaf2f01a47fd0fc368a93bfbb5bd3b26db6e7f
React-RCTActionSheet: 59f35c4029e0b532fc42114241a06e170b7431a2
React-RCTAnimation: aae4f4bed122e78bdab72f7118d291d70a932ce2
React-RCTBlob: f6fb23394b4f28cd86fa7e9f5f6ae45c23669fda
React-RCTImage: 638815cf96124386dd296067246d91441932ae3f
React-RCTLinking: 254dd06283dd6fdb784285f95e7cec8053c3270f
React-RCTNetwork: 8a4c2d4f357268e520b060572d02bc69a9b991fb
React-RCTSettings: 35d44cbb9972ab933bd0a59ea3e6646dcb030ba3
React-RCTText: cc5315df8458cfa7b537e621271ef43273955a97
React-RCTVibration: 3b52a7dced19cdb025b4f88ab26ceb2d85f30ba2
React-runtimeexecutor: a9d3c82ddf7ffdad9fbe6a81c6d6f8c06385464d
ReactCommon: 07d0c460b9ba9af3eaf1b8f5abe7daaad28c9c4e
React-perflogger: d32ee13196f4ae2e4098fb7f8e7ed4f864c6fb0f
React-RCTActionSheet: 81779c09e34a6a3d6b15783407ba9016a774f535
React-RCTAnimation: b778eaaa42a884abcc5719035a7a0b2f54672658
React-RCTBlob: 8edfc04c117decb0e7d4e6ab32bec91707e63ecb
React-RCTImage: 2022097f1291bfebd0003e477318c72b07853578
React-RCTLinking: bd8d889c65695181342541ce4420e9419845084c
React-RCTNetwork: eae64b805d967bf3ece2cec3ad09218eeb32cb74
React-RCTSettings: 0645af8aec5f40726e98d434a07ff58e75a81aa9
React-RCTText: e55de507cda263ff58404c3e7d75bf76c2b80813
React-RCTVibration: c3b8a3245267a3849b0c7cb91a37606bf5f3aa65
React-runtimeexecutor: 434efc9e5b6d0f14f49867f130b39376c971c1aa
ReactCommon: a30c2448e5a88bae6fcb0e3da124c14ae493dac1
ReactNativeCameraKit: 9d46a5d7dd544ca64aa9c03c150d2348faf437eb
RealmJS: 772520fb85c19b65c2ea0c8f9aa6e790a905a377
RemobileReactNativeQrcodeLocalImage: 57aadc12896b148fb5e04bc7c6805f3565f5c3fa
rn-ldk: fe694aaca0c661e7eb32cd9989dade5fe7e9c4e9
@ -800,23 +794,23 @@ SPEC CHECKSUMS:
RNDefaultPreference: 08bdb06cfa9188d5da97d4642dac745218d7fb31
RNDeviceInfo: aad3c663b25752a52bf8fce93f2354001dd185aa
RNFS: fc610f78fdf8bfc89a9e5cc2f898519f4dba1002
RNGestureHandler: 4defbd70b2faf3d6761b82fa7880285241762cb0
RNGestureHandler: 62232ba8f562f7dea5ba1b3383494eb5bf97a4d3
RNHandoff: d3b0754cca3a6bcd9b25f544f733f7f033ccf5fa
RNKeychain: 4f63aada75ebafd26f4bc2c670199461eab85d94
RNLocalize: 0df7970cfc60389f00eb62fd7c097dc75af3fb4f
RNPrivacySnapshot: 71919dde3c6a29dd332115409c2aec564afee8f4
RNQuickAction: 6d404a869dc872cde841ad3147416a670d13fa93
RNRate: 94f57c773e155ca0d0aeeba9c10a32bce9030daf
RNRate: ef3bcff84f39bb1d1e41c5593d3eea4aab2bd73a
RNReactNativeHapticFeedback: 1e3efeca9628ff9876ee7cdd9edec1b336913f8c
RNReanimated: b5b17149593e7c05e4ec5c0efea1f21e05829510
RNScreens: 0df01424e9e0ed7827200d6ed1087ddd06c493f9
RNReanimated: 42b5b57609de75e270722e27d2b94ade03c49931
RNScreens: ea4cd3a853063cda19a4e3c28d2e52180c80f4eb
RNSecureKeyStore: f1ad870e53806453039f650720d2845c678d89c8
RNShare: be91a5c149585affb02c25b351bd07ba927c7006
RNShare: a5dc3b9c53ddc73e155b8cd9a94c70c91913c43c
RNSVG: ecd661f380a07ba690c9c5929c475a44f432d674
RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8
RNWatch: fd30ca40a5b5ef58dcbc195638e68219bc455236
SwiftSocket: c8d482e867ae4d3eb4c769e9382e123c1f1f833b
Yoga: d6b6a80659aa3e91aaba01d0012e7edcbedcbecd
Yoga: 099a946cbf84c9b32ffdc4278d72db26710ecf92
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: 53c058f42bf11a3d01891a40676ea8f9c6a9ecf9

View file

@ -9,14 +9,14 @@
"disabled": "معطّل",
"of": "{number} من {total}",
"ok": "موافق",
"storage_is_encrypted": "وحدة التخزين الخاصة بك مشفرة. أنت بحاجة إلى كلمة المرور لفك تشفيرها",
"storage_is_encrypted": "وحدة التخزين مشفرة. أنت بحاجة إلى كلمة المرور لفك تشفيرها",
"yes": "نعم",
"no": "لا",
"save": "حفظ",
"seed": "عبارة الاسترداد",
"success": "نجاح",
"wallet_key": "مفتاح المحفظة",
"invalid_animated_qr_code_fragment": "قطعة من رمز الـ QRcode المتحرك غير صحيحة، حاول مرة اخرى.",
"invalid_animated_qr_code_fragment" : "قطعة من رمز الـ QRcode المتحرك غير صحيحة، حاول مرة اخرى.",
"file_saved": "تم حفظ الملف {filePath} في {destination}.",
"downloads_folder": "مجلد التنزيلات"
},
@ -25,7 +25,7 @@
},
"azteco": {
"codeIs": "رمز القسيمة الخاص بك هو",
"errorBeforeRefeem": "يجب عليك إضافة محفظة Bitcoin أولًا قبل الاسترداد.",
"errorBeforeRefeem": "يجب عليك إضافة محفظة بتكوين أولًا قبل الاسترداد.",
"errorSomething": "حدث خطأ. هل ما زالت هذه القسيمة صالحة؟",
"redeem": "الاسترداد إلى المحفظة",
"redeemButton": "الاسترداد",
@ -43,32 +43,32 @@
"network": "خطأ في الشبكة"
},
"lnd": {
"active": "نشط",
"inactive": "غير نشط",
"active":"نشط",
"inactive":"غير نشط",
"channels": "القنوات",
"no_channels": "لا يوجد قنوات",
"claim_balance": "المطالبة برصيد {balance}",
"close_channel": "اغلق القناة",
"new_channel": "قناة جديدة",
"new_channel" : "قناة جديدة",
"errorInvoiceExpired": "انتهت صلاحية الفاتورة",
"force_close_channel": "هل تود فرض اغلاق القناة؟",
"expired": "منتهية الصلاحية",
"node_alias": "الاسم المستعار للعقدة",
"expiresIn": "تنتهي بعد {time} دقيقة",
"payButton": "دفع",
"placeholder": "فاتورة",
"placeholder": "برقية",
"open_channel": "فتح قناة",
"funding_amount_placeholder": "مبلغ التمويل، على سبيل المثال 0.001",
"opening_channnel_for_from": "جارِ فتح قناة للمحفظة {forWalletLabel} بتمويل من {fromWalletLabel}",
"opening_channnel_for_from":"جارِ فتح قناة للمحفظة {forWalletLabel} بتمويل من {fromWalletLabel}",
"are_you_sure_open_channel": "هل أنت متأكد أنك تريد فتح هذه القناة؟",
"potentialFee": "الرسوم المحتملة: {fee}",
"remote_host": "المضيف البعيد",
"refill": "إعادة التعبئة",
"reconnect_peer": "إعادة الاتصال بالأقران",
"refill_create": "للمتابعة، يُرجى إنشاء محفظة Bitcoin لإعادة التعبئة باستخدامها.",
"refill_create": "للمتابعة، يُرجى إنشاء محفظة بتكوين لإعادة التعبئة باستخدامها.",
"refill_external": "إعادة التعبئة باستخدام محفظة خارجية",
"refill_lnd_balance": "إعادة تعبئة رصيد محفظة البرق (Lightning)",
"sameWalletAsInvoiceError": "لا يمكنك دفع فاتورة بنفس المحفظة المستخدمة لإنشائها.",
"sameWalletAsInvoiceError": "لا يمكنك دفع البرقية بنفس المحفظة المستخدمة لإنشائها.",
"title": "إدارة الأموال",
"can_send": "يمكن أن ترسل",
"can_receive": "يمكن ان تستقبل",
@ -78,12 +78,12 @@
"additional_info": "معلومة إضافية",
"for": "إلى:",
"lightning_invoice": "فاتورة برق (Lightning)",
"open_direct_channel": "فتح قناة مباشرة مع هذه العقدة:",
"open_direct_channel": "فتح قناة مباشرة مع هذه النود:",
"please_pay_between_and": "يرجى دفع ما بين {min} و{max}",
"please_pay": "يُرجى الدفع",
"preimage": "الصورة الأصلية",
"sats": "بالساتوشي",
"wasnt_paid_and_expired": "لم يتم دفع هذه الفاتورة وانتهت صلاحيتها"
"wasnt_paid_and_expired": "لم يتم دفع هذه البرقية وانتهت صلاحيتها"
},
"plausibledeniability": {
"create_fake_storage": "إنشاء وحدة تخزين مشفرة",
@ -93,7 +93,7 @@
"help2": "ستعمل وحدة التخزين الجديدة بكامل طاقتها، ويمكنك تخزين بعض المبالغ البسيطة هناك بحيث تبدو أكثر مصداقية ومنطقية.",
"password_should_not_match": "كلمة المرور قيد الاستخدام حاليًا. يُرجى تجربة كلمة مرور مختلفة.",
"passwords_do_not_match": "كلمات المرور غير متطابقة، حاول مرة أخرى.",
"retype_password": "إعادة إدخال كلمة المرور",
"retype_password": "أعد إدخال كلمة المرور",
"success": "نجحت العملية",
"title": "الإنكار المقبول"
},
@ -110,7 +110,7 @@
"receive": {
"details_create": "إنشاء",
"details_label": "الوصف",
"details_setAmount": "استلام مبلغ",
"details_setAmount": "استلام مبلغ محدد",
"details_share": "مشاركة",
"header": "استلام",
"maxSats": "الحد الأقصى للمبلغ هو {min} ساتوشي",
@ -134,23 +134,23 @@
"create_fee": "الرسوم",
"create_memo": "مذكرة",
"create_satoshi_per_vbyte": "ساتوشي لكل ف بايت",
"create_this_is_hex": "هذا هو التنسيق السداسي لمعاملتك، موقَّع وجاهز للبث على الشبكة.",
"create_this_is_hex": "هذا هو رقم العملية بصيغة ست عشرية (Hex) ، موقَّع وجاهز للبث على الشبكة.",
"create_to": "إلى",
"create_tx_size": "حجم المعاملة",
"create_verify": "التحقق على coinb.in",
"details_add_rec_add": "إضافة المستلم",
"details_add_rec_rem": "إزالة المستلم",
"details_address": "العنوان",
"details_address_field_is_not_valid": "حقل العنوان غير صالح",
"details_address_field_is_not_valid": "العنوان غير صالح",
"details_adv_fee_bump": "السماح بزيادة الرسوم",
"details_adv_full": "استخدام الرصيد الكامل",
"details_adv_full_sure": "هل أنت متأكد أنك تريد استخدام الرصيد الكامل لمحفظتك لهذه المعاملة؟",
"details_adv_full_sure_frozen": "هل أنت متأكد انك ترغب بإستخدام الرصيد الكامل لمحفظتك لهذة المعاملة؟ يرجى ملاحظة انه تم استبعاد العملات المجمدة.",
"details_adv_import": "استيراد المعاملة",
"details_adv_import": "استيراد العملية",
"details_adv_import_qr": "استيراد معاملة (QR)",
"details_amount_field_is_not_valid": "حقل المبلغ غير صالح",
"details_amount_field_is_not_valid": "المبلغ غير صالح",
"details_amount_field_is_less_than_minimum_amount_sat": "المبلغ المحدد صغير جدًا. الرجاء إدخال مبلغ أكبر من 500 ساتوشي.",
"details_create": "إنشاء فاتورة",
"details_create": "إنشاء برقية",
"details_error_decode": "يتعذَّر فك تشفير عنوان Bitcoin",
"details_fee_field_is_not_valid": "حقل الرسوم غير صالح",
"details_frozen": "{amount} بتكوين تم تجميدها",
@ -162,7 +162,7 @@
"details_total_exceeds_balance": "مبلغ الإرسال يتجاوز الرصيد المتاح.",
"details_total_exceeds_balance_frozen": "مبلغ الإرسال يتجاوز الرصيد المتاح، يرجى ملاحظة انه تم استبعاد العملات المجمدة.",
"details_unrecognized_file_format": "تنسيق ملف غير معروف",
"details_wallet_before_tx": "يجب عليك إضافة محفظة Bitcoin أولًا قبل إنشاء معاملة.",
"details_wallet_before_tx": "يجب عليك إضافة محفظة بتكوين أولًا قبل إنشاء معاملة.",
"dynamic_init": "جارٍ التهيئة...",
"dynamic_next": "التالي",
"dynamic_prev": "السابق",
@ -183,7 +183,6 @@
"input_paste": "اللصق",
"input_total": "الإجمالي:",
"permission_camera_message": "نحتاج إلى إذنك لاستخدام الكاميرا الخاصة بك",
"permission_camera_title": "إذن باستخدام الكاميرا",
"psbt_sign": "وقّع معاملة",
"open_settings": "فتح الإعدادات",
"permission_storage_later": "اسألني لاحقًا",
@ -191,13 +190,13 @@
"permission_storage_denied_message": "BlueWallet غير قادر على حفظ هذا الملف. يرجى فتح إعدادات جهازك وتمكين إذن التخزين.",
"permission_storage_title": "إذن وصول BlueWallet إلى وحدة التخزين",
"psbt_clipboard": "النسخ إلى الحافظة",
"psbt_this_is_psbt": "هذه معاملة Bitcoin موقَّعة جزئيًا (PSBT). يُرجى الانتهاء من توقيعها باستخدام محفظة الجهاز الخاصة بك.",
"psbt_this_is_psbt": "هذه معاملة بتكوين موقَّعة جزئيًا (PSBT). يُرجى توقيعها باستخدام المحفظة الخارجية.",
"psbt_tx_export": "التصدير إلى ملف",
"no_tx_signing_in_progress": "لا يوجد معاملة توقيع قيد التقدم.",
"outdated_rate": "تم تحديث السعر آخر مرة في {date}",
"psbt_tx_open": "فتح معاملة موقَّعة",
"psbt_tx_scan": "المسح الضوئي معاملة موقَّعة",
"qr_error_no_qrcode": "لم نتمكن من العثور على كود QR في الصورة المحددة. تأكد من أن الصورة تحتوي فقط على كود QR ولا تحتوي على محتوى إضافي مثل النص أو الأزرار.",
"psbt_tx_scan": "المسح الضوئي لمعاملة موقَّعة",
"qr_error_no_qrcode": "لم نتمكن من قراءة رمز الاستجابة السريع (QR) في الصورة المحددة. تأكد أن الصورة تحتوي فقط على رمز (QR) دون أي محتوى إضافي آخر مثل النص أو الأزرار.",
"reset_amount": "إعادة تعيين المبلغ",
"reset_amount_confirm": "هل تريد إعادة تعيين المبلغ؟",
"success_done": "تم",
@ -210,14 +209,16 @@
"about_backup": "احتفظ دائمًا بنسخة احتياطية من مفاتيحك!",
"about_free": "محفظة BlueWallet هي مشروع مجاني ومفتوح المصدر، أنشأه مستخدمو Bitcoin.",
"about_license": "ترخيص MIT",
"about_release_notes": "ملاحظات الإصدار",
"about_review": "اترك لنا مراجعتك",
"about_release_notes": "معلومات الإصدار",
"about_review": "اترك لنا مراجعة",
"performance_score": "معدل الأداء: {num}",
"run_performance_test": "اختبار الأداء",
"about_selftest": "تشغيل اختبار ذاتي",
"about_selftest_electrum_disabled": "لا يتوفر الاختبار الذاتي مع وضع Electrum الغير متصل بالانترنت. يرجى تعطيل وضع عدم اتصال الشبكة والمحاولة مرة أخرى.",
"about_selftest_ok": "تم اجتياز جميع الاختبارات الداخلية بنجاح. المحفظة تعمل بشكل جيد.",
"about_sm_github": "GitHub",
"about_sm_discord": "سيرفر Discord",
"about_sm_telegram": "دردشة Telegram",
"about_sm_telegram": "قناة تيليجرام",
"about_sm_twitter": "تابعنا على تويتر",
"advanced_options": "الخيارات المتقدمة",
"biometrics": "القياسات الحيوية",
@ -226,6 +227,7 @@
"biom_no_passcode": "جهازك ليس لديه رمز مرور. للمتابعة ، يرجى اضافة رمز مرور من إعدادات الجهاز.",
"biom_remove_decrypt": "ستتم إزالة جميع محافظك وفك تشفير التخزين الخاص بك. هل انت متأكد انك تريد المتابعة؟",
"currency": "العملة",
"currency_source": "تم الاستعلام عن السعر عن طريق",
"currency_fetch_error": "حدث خطأ أثناء الحصول على سعر العملة المحددة.",
"default_desc": "عند تعطيل هذا الإعداد، ستفتح BlueWallet المحفظة المحدَّدة فور التشغيل.",
"default_info": "المعلومات الافتراضية",
@ -267,10 +269,10 @@
"encrypt_use_expl": "سيتم استخدام {type} لتأكيد هويتك قبل إجراء معاملة أو فتح محفظة أو تصديرها أو حذفها. ولن يتم استخدام {type} لفتح وحدة تخزين مشفرة.",
"general": "عام",
"general_adv_mode": "الوضع المتقدم",
"general_adv_mode_e": "عند تمكين هذا الإعداد، سترى خيارات متقدمة في أثناء إنشاء المحفظة، مثل أنواع المحافظ المختلفة، والقدرة على تحديد مثيل LNDHub الذي ترغب في الاتصال به، وإنتروبيا (عشوائية) مخصصة.",
"general_continuity": "الارتباط",
"general_continuity_e": "عند تمكين هذا الإعداد، ستتمكن من عرض المحافظ والمعاملات المحدَّدة باستخدام أجهزتك الأخرى المتصلة بحساب Apple iCloud.",
"groundcontrol_explanation": "GroundControl هو خادم إشعارات فورية مجاني مفتوح المصدر لمحافظ Bitcoin. يمكنك تثبيت خادم GroundControl الخاص بك ووضع عنوان URL له هنا لعدم الاعتماد على البنية التحتية لمحفظة BlueWallet. اترك الحقل فارغًا لاستخدام الإعدادات الافتراضية",
"general_adv_mode_e": "عند تمكين هذا الإعداد، سترى خيارات متقدمة أثناء إنشاء المحفظة، مثل أنواع محافظ مختلفة، القدرة على الاتصال ب LNDHub محدد، وإنتروبيا (عشوائية) مخصصة.",
"general_continuity": "الاتساق",
"general_continuity_e": "عند تمكين هذا الإعداد، ستتمكن من عرض المحافظ والعمليات المحدَّدة باستخدام أجهزتك الأخرى المتصلة بنفس حساب Apple iCloud.",
"groundcontrol_explanation": "GroundControl هو خادم إشعارات فورية مجاني مفتوح المصدر لمحافظ البتكوين. يمكنك تثبيت خادم GroundControl الخاص بك ووضع عنوان (URL) له هنا لعدم الاعتماد على البنية التحتية لمحفظة BlueWallet. اترك الحقل فارغًا لاستخدام الإعدادات الافتراضية",
"header": "الإعدادات",
"language": "اللغة",
"last_updated": "آخر تحديث",
@ -279,13 +281,13 @@
"lightning_saved": "تم حفظ تغييراتك بنجاح",
"lightning_settings": "إعدادات البرق (Lightning)",
"tor_settings": "اعدادات tor",
"lightning_settings_explain": "للاتصال بعقدة LND الخاصة بك، يُرجى تثبيت LndHub ثم وضع رابطه هنا في الإعدادات. اترك الحقل فارغًا لاستخدام LNDHub (lndhub.io) لمحفظة BlueWallet. ستتصل المحافظ التي يتم إنشاؤها بعد حفظ التغييرات بنفس عقدة LNDHub التي قمت بتحديدها.",
"lightning_settings_explain": "للاتصال بنود LND الخاصة بك، يُرجى تثبيت LNDHub ثم وضع رابطه هنا في الإعدادات. اترك الحقل فارغًا لاستخدام (lndhub.io) المشغل من قبل BlueWallet. تذكر: فقط المحافظ التي يتم إنشاؤها بعد حفظ التغييرات ستتصل بنود LNDHub التي قمت بإضافتها.",
"network": "الشبكة",
"network_broadcast": "بث المعاملة",
"network_broadcast": "بث العملية",
"network_electrum": "خادم Electrum",
"not_a_valid_uri": "معرِّف URI غير صالح",
"notifications": "الإشعارات",
"open_link_in_explorer": "فتح الرابط في المتصفح",
"open_link_in_explorer" : "فتح الرابط في المتصفح",
"password": "كلمه المرور",
"password_explain": "أنشئ كلمة المرور التي ستستخدمها لفك تشفير وحدة التخزين",
"passwords_do_not_match": "كلمتا المرور لا تتطابقان",
@ -304,7 +306,7 @@
"selfTest": "اختبار ذاتي",
"save": "حفظ",
"saved": "تم الحفظ",
"success_transaction_broadcasted": "تمت بنجاح! لقد تم نشر معاملتك!",
"success_transaction_broadcasted" : "تمت بنجاح! لقد تم نشر معاملتك!",
"total_balance": "الرصيد الاجمالي",
"total_balance_explanation": "اعرض الرصيد الإجمالي لجميع محافظك على ويدجيت الشاشة الرئيسية الخاصة بك.",
"widgets": "ويدجيت",
@ -323,7 +325,7 @@
"copy_link": "نسخ الرابط",
"expand_note": "توسيع الملاحظة",
"cpfp_create": "إنشاء",
"cpfp_exp": "سننشئ معاملة أخرى تستبدل معاملتك غير المؤكدة. وسيكون إجمالي الرسوم أعلى من رسوم المعاملة الأصلية؛ حتى يجري تعدينها بشكلٍ أسرع. وهذا ما يُسمَّى CPFP؛ أي دعم المعاملة الرئيسية بمعاملة فرعية.",
"cpfp_exp": "سننشئ عملية أخرى تستبدل عمليتك غير المؤكدة. وسيكون إجمالي الرسوم أعلى من رسوم العملية الأصلية؛ حتى يجري تعدينها بشكلٍ أسرع. وهذا ما يُسمَّى CPFP؛ أي التحكم بالعملية الرئيسية بمعاملة فرعية.",
"cpfp_no_bump": "هذه المعاملة غير قابلة للتسريع",
"cpfp_title": "تسريع المعاملة (CPFP)",
"details_balance_hide": "إخفاء الرصيد",
@ -337,10 +339,11 @@
"details_from": "من",
"details_inputs": "المدخلات",
"details_outputs": "المخرجات",
"date": "التاريخ",
"details_received": "التاريخ",
"transaction_note_saved": "تم حفظ مذكرة المعاملة بنجاح.",
"details_show_in_block_explorer": "العرض في مستكشف الكتل",
"details_title": "المعاملة",
"details_title": "العملية",
"details_to": "إلى",
"enable_offline_signing": "هذه المحفظة لا يتم استعمالها مع التوقيع دون اتصال. هل ترغب في تمكينه الآن؟",
"list_conf": "تأكيد: {number}",
@ -351,13 +354,13 @@
"eta_3h": "الوقت المقدر للتأكيد: في حوالي 3 ساعات",
"eta_1d": "الوقت المقدر للتأكيد: في حوالي يوم واحد",
"view_wallet": "لمشاهدة {walletLabel}",
"list_title": "المعاملات",
"list_title": "العمليات",
"open_url_error": "تعذر فتح الرابط باستخدام المتصفح الافتراضي. يرجى تغيير المتصفح الافتراضي الخاص بك وحاول مرة أخرى.",
"rbf_explain": "سنستبدل هذه المعاملة بمعاملة جديدة تدفع رسوم اعلى؛ حتى يجري تعدينها بشكلٍ أسرع. وهذا ما يُسمَّى RBF؛ أي الاستبدال بالرسوم.",
"rbf_title": "تسريع المعاملة (RBF)",
"status_bump": "تسريع المعاملة",
"status_cancel": "إلغاء المعاملة",
"transactions_count": "عدد المعاملات",
"status_cancel": "إلغاء العملية",
"transactions_count": "عدد العمليات",
"txid": "معرّف المعاملة",
"updating": "جارٍ التحديث ..."
},
@ -371,9 +374,9 @@
"add_import_wallet": "استيراد محفظة",
"add_lightning": "البرق",
"add_lightning_explain": "لإرسال المعاملات بشكل فوري عبر شبكة البرق Lightning ",
"add_lndhub": "اتصل ببرنامج تضمين LNDHub الخاص بك",
"add_lndhub_error": "عنوان العقدة المقدَّم هو عقدة LNDHub صالحة.",
"add_lndhub_placeholder": "عنوان العقدة الخاص بك",
"add_lndhub": "اتصل ب LNDHub الخاص بك",
"add_lndhub_error": "عنوان النود المقدَّم غير صالح.",
"add_lndhub_placeholder": "عنوان النود الخاص بك",
"add_placeholder": "محفظتي الأولى",
"add_title": "إضافة محفظة",
"add_wallet_name": "الاسم",
@ -392,7 +395,8 @@
"details_derivation_path": "مسار الاشتقاق (derivation path)",
"details_display": "العرض في قائمة المحافظ",
"details_export_backup": "التصدير/النسخ الاحتياطي",
"details_master_fingerprint": "بصمة الإصبع الرئيسية",
"details_export_history": "تصدير السجل ل ملف CSV",
"details_master_fingerprint": "البصمة الرئيسية",
"details_multisig_type": "متعدد التواقيع",
"details_no_cancel": "لا، إلغاء",
"details_save": "حفظ",
@ -415,6 +419,7 @@
"import_imported": "تم الاستيراد",
"import_scan_qr": "المسح الضوئي أو استيراد ملف",
"import_success": "تم استيراد محفظتك بنجاح.",
"import_success_watchonly": "تم استيراد محفظتك بنجاح. تنويه: هذه محفظة مراقبة فقط. لا يمكنك تنفيذ العمليات.",
"import_search_accounts": "البحث عن حسابات",
"import_title": "الاستيراد",
"import_discovery_title": "اكتشاف",
@ -435,11 +440,11 @@
"list_empty_txs1_lightning": "يجب استخدام محفظة البرق (Lightning) في معاملاتك اليومية. الرسوم رخيصة جدًا والسرعة كبيرة حقًا.",
"list_empty_txs2": "ابدأ بمحفظتك",
"list_empty_txs2_lightning": "\nللبدء في استخدامها، اضغط على \"إدارة الأموال\" واشحن رصيدك.",
"list_latest_transaction": "آخر معاملة",
"list_latest_transaction": "آخر عملية",
"list_ln_browser": "متصفح LApp",
"list_long_choose": "اختيار صورة",
"list_long_clipboard": "النسخ من الحافظة",
"list_long_scan": "مسح رمز الاستجابة السرعة ضوئيًا",
"list_long_scan": "مسح رمز الاستجابة (QR) ضوئيًا",
"list_title": "المحافظ",
"list_tryagain": "إعادة المحاولة",
"no_ln_wallet_error": "قبل دفع فاتورة برق (Lightning) ، يجب عليك أولاً إضافة محفظة برق (Lightning).",
@ -447,7 +452,7 @@
"reorder_title": "إعادة ترتيب المحافظ",
"reorder_instructions": "اضغط باستمرار على اي محفظة لتحريكها عبر القائمة",
"please_continue_scanning": "الرجاء متابعة الفحص.",
"select_no_bitcoin": "لا توجد محافظ Bitcoin متاحة حاليًا.",
"select_no_bitcoin": "لا توجد محافظ بتكوين متاحة حاليًا.",
"select_no_bitcoin_exp": "تحتاج إلى محفظة بيتكوين لإعادة تعبئة محافظ البرق (Lightning). يُرجى إنشاء محفظة أو استيراد واحدة.",
"select_wallet": "اختيار محفظة",
"take_photo": "التقاط صورة",

View file

@ -337,6 +337,7 @@
"details_from": "Vstup",
"details_inputs": "Vstupy",
"details_outputs": "Výstupy",
"date": "Datum",
"details_received": "Přijato",
"transaction_note_saved": "Transakční poznámka byla úspěšně uložena.",
"details_show_in_block_explorer": "Ukázat v block exploreru",
@ -392,6 +393,7 @@
"details_derivation_path": "derivační cesta",
"details_display": "Zobrazit v seznamu peněženek",
"details_export_backup": "Exportovat / zálohovat",
"details_export_history": "Export historie do CSV",
"details_master_fingerprint": "Hlavní otisk",
"details_multisig_type": "multisig",
"details_no_cancel": "Ne, zrušit",

View file

@ -211,6 +211,8 @@
"about_license": "MIT License",
"about_release_notes": "Release notes",
"about_review": "Leave us a review",
"performance_score": "Performance score: {num}",
"run_performance_test": "Test performance",
"about_selftest": "Run self-test",
"about_selftest_electrum_disabled": "Self-testing is not available with Electrum Offline Mode. Please disable offline mode and try again.",
"about_selftest_ok": "All internal tests have passed successfully. The wallet works well.",

View file

@ -16,7 +16,7 @@
"seed": "Semilla",
"success": "Éxito",
"wallet_key": "Clave de la billetera",
"invalid_animated_qr_code_fragment" : "Fragmento inválido de Código QR animado. Por favor intenta de nuevo.",
"invalid_animated_qr_code_fragment": "Fragmento inválido de Código QR animado. Por favor intenta de nuevo.",
"file_saved": "El archivo {filePath} se ha guardado en tu {destination}.",
"downloads_folder": "Carpeta de descargas"
},
@ -43,13 +43,13 @@
"network": "Error de red"
},
"lnd": {
"active":"Activo",
"inactive":"Inactivo",
"active": "Activo",
"inactive": "Inactivo",
"channels": "Canales",
"no_channels": "Sin canales",
"claim_balance": "Reclamar saldo {balance}",
"close_channel": "Cerrar canal",
"new_channel" : "Nuevo canal",
"new_channel": "Nuevo canal",
"errorInvoiceExpired": "Factura expirada",
"force_close_channel": "¿Forzar el cierre del canal?",
"expired": "Expirado",
@ -59,7 +59,7 @@
"placeholder": "Factura",
"open_channel": "Abrir canal",
"funding_amount_placeholder": "Importe de la financiación, por ejemplo 0,001",
"opening_channnel_for_from":"Abrir canal para la billetera {forWalletLabel}, por la financiación de {fromWalletLabel}",
"opening_channnel_for_from": "Abrir canal para la billetera {forWalletLabel}, por la financiación de {fromWalletLabel}",
"are_you_sure_open_channel": "¿Estás seguro de que quieres abrir este canal?",
"potentialFee": "Tasas potenciales: {fee}",
"remote_host": "Host remoto",
@ -211,6 +211,8 @@
"about_license": "Licencia MIT",
"about_release_notes": "Notas de lanzamiento",
"about_review": "Déjanos un comentario",
"performance_score": "Puntuación de rendimiento: {num}",
"run_performance_test": "Prueba de rendimiento",
"about_selftest": "Ejecutar auto-prueba",
"about_selftest_electrum_disabled": "La autocomprobación no está disponible con el modo sin conexión de Electrum. Desactiva el modo sin conexión y vuelve a intentarlo. ",
"about_selftest_ok": "Todas las pruebas internas han pasado satisfactoriamente. La billetera funciona bien.",
@ -285,7 +287,7 @@
"network_electrum": "Servidor Electrum",
"not_a_valid_uri": "URI inválido",
"notifications": "Notificaciones",
"open_link_in_explorer" : "Abrir enlace en el explorador",
"open_link_in_explorer": "Abrir enlace en el explorador",
"password": "Contraseña",
"password_explain": "Crea la contraseña que usarás para desencriptar el almacenamiento",
"passwords_do_not_match": "Las contraseñas no coinciden.",
@ -304,7 +306,7 @@
"selfTest": "Auto-Test",
"save": "Guardar",
"saved": "Guardado",
"success_transaction_broadcasted" : "¡Genial! ¡Tu transacción ha sido retransmitida!",
"success_transaction_broadcasted": "¡Genial! ¡Tu transacción ha sido retransmitida!",
"total_balance": "Balance Total",
"total_balance_explanation": "Muestra el saldo total de todas tus billeteras en los widgets de tu pantalla de inicio.",
"widgets": "Widgets",
@ -417,6 +419,7 @@
"import_imported": "Importado",
"import_scan_qr": "Escanear o importar un archivo",
"import_success": "Tu billetera se ha importado correctamente.",
"import_success_watchonly": "Tu billetera se ha importado correctamente. ADVERTENCIA: Esta es una billetera de solo-ver, NO puedes gastar desde él.",
"import_search_accounts": "Buscar cuentas",
"import_title": "Importar",
"import_discovery_title": "Descubrimiento",

View file

@ -179,7 +179,6 @@
"input_paste": "הדבק",
"input_total": "סך הכל:",
"permission_camera_message": "אנחנו צריכים את הרשאתך לשימוש במצלמה שלך.",
"permission_camera_title": "הרשאה לשימוש במצלמה",
"psbt_sign": "חתימה על פעולה",
"open_settings": "פתח הגדרות",
"permission_storage_later": "שאל אותי מאוחר יותר",
@ -222,6 +221,7 @@
"biom_no_passcode": "למכשירכם אין סיסמה. במטרה להמשיך אנא הגדירו סיסמה בהגדרות המכשיר.",
"biom_remove_decrypt": "כל ארנקיכם ימחקו והאחסון יפוענח. האם אתם בטוחים שברצונכם להמשיך?",
"currency": "מטבע",
"currency_source": "מחיר מתקבל מ- ",
"currency_fetch_error": "התרחשה שגיאה בזמן השגת התעריף למטבע הנבחר.",
"default_desc": "כאשר מבוטל, BlueWallet יפתח אוטומטית את הארנק הנבחר בפתיחה.",
"default_info": "פתיחת ברירת מחדל",
@ -333,6 +333,7 @@
"details_from": "קלט",
"details_inputs": "קלטים",
"details_outputs": "פלטים",
"date": "תאריך",
"details_received": "התקבל",
"transaction_note_saved": "הערת פעולה נשמרה בהצלחה.",
"details_show_in_block_explorer": "צפייה בסייר בלוקים",
@ -387,6 +388,7 @@
"details_derivation_path": "נתיב גזירה",
"details_display": "הצגה ברשימת ארנקים",
"details_export_backup": "יצוא / גיבוי",
"details_export_history": "יצוא היסטוריה ל- CSV",
"details_master_fingerprint": "טביעת אצבע ראשית",
"details_multisig_type": "רב-חתימות",
"details_no_cancel": "לא, בטל",

View file

@ -26,7 +26,7 @@ export const AvailableLanguages = Object.freeze([
{ label: 'Nederlands (NL)', value: 'nl_nl' },
{ label: 'नेपाली (NE)', value: 'ne' },
{ label: 'Norsk (NB)', value: 'nb_no' },
{ label: 'Polskie (PL)', value: 'pl' },
{ label: 'Polski (PL)', value: 'pl' },
{ label: 'Português (BR)', value: 'pt_br' },
{ label: 'Português (PT)', value: 'pt_pt' },
{ label: 'Română (RO)', value: 'ro' },

View file

@ -5,7 +5,7 @@
"continue": "Doorgaan",
"clipboard": "Klembord",
"enter_password": "Voer wachtwoord in",
"never": "nooit",
"never": "Nooit",
"disabled": "Uitgeschakeld",
"of": "{number} van {total}",
"ok": "Oké",
@ -175,7 +175,6 @@
"input_paste": "Plak",
"input_total": "Totaal:",
"permission_camera_message": "We hebben toestemming nodig om uw camera te gebruiken",
"permission_camera_title": "Toestemming om camera te gebruiken",
"psbt_sign": "Onderteken een transactie",
"open_settings": "Open instellingen",
"permission_storage_later": "Vraag mij later",

View file

@ -211,6 +211,8 @@
"about_license": "Licencja MIT",
"about_release_notes": "Informacje o wydaniu",
"about_review": "Wystaw nam opinię",
"performance_score": "Wynik wydajności: {num}",
"run_performance_test": "Test wydajności",
"about_selftest": "Wykonaj autotest",
"about_selftest_electrum_disabled": "Autotest nie jest dostępny z Electrum w trybie Offline. Wyłącz tryb offline i spróbuj ponownie.",
"about_selftest_ok": "Wszystkie testy wewnętrzne przebiegły pomyślnie. Portfel działa dobrze.",
@ -417,6 +419,7 @@
"import_imported": "Zaimportowano",
"import_scan_qr": "Skanuj lub importuj plik",
"import_success": "Twój portfel został pomyślnie zaimportowany.",
"import_success_watchonly": "Twój portfel został zaimportowany. UWAGA: To jest portfel tylko do odczytu, nie możesz z niego wydawać.",
"import_search_accounts": "Szukaj kont",
"import_title": "Importuj",
"import_discovery_title": "Wyszukiwanie",

View file

@ -16,7 +16,7 @@
"seed": "Seed",
"success": "Sucesso",
"wallet_key": "Chave da Carteira",
"invalid_animated_qr_code_fragment" : "Código QR animado inválido, por favor tente novamente,",
"invalid_animated_qr_code_fragment" : "Código QR animado inválido, por favor tente novamente.",
"file_saved": "Arquivo {filePath} foi salvo em {destination}.",
"downloads_folder": "Pasta de Downloads"
},
@ -78,7 +78,7 @@
"additional_info": "Informação adicional",
"for": "Para:",
"lightning_invoice": "Fatura Lightning",
"open_direct_channel": "Abrir canal direto com este node:",
"open_direct_channel": "Abrir canal direto com este nó:",
"please_pay_between_and": "Por favor, pague entre {min} e {max}",
"please_pay": "Por favor, pague",
"preimage": "Preimage",
@ -171,7 +171,7 @@
"fee_10m": "10m",
"fee_1d": "1d",
"fee_3h": "3h",
"fee_custom": "Personalizado(a)",
"fee_custom": "Personalizada",
"fee_fast": "Rápida",
"fee_medium": "Normal",
"fee_replace_minvb": "A taxa total (satoshi per vByte) que você deseja pagar deve ser maior que {min} sat/vByte.",
@ -209,8 +209,10 @@
"about_backup": "Sempre faça backup de suas chaves!",
"about_free": "BlueWallet é um projeto de código aberto e gratuito. Criado por usuários de Bitcoin.",
"about_license": "Licença MIT",
"about_release_notes": "Notas de lançamento",
"about_release_notes": "Notas de versão",
"about_review": "Avalie a gente",
"performance_score": "Pontuação de performance: {num}",
"run_performance_test": "Teste de performance",
"about_selftest": "Executar autoteste",
"about_selftest_electrum_disabled": "Autoteste indisponível no modo Offline da Electrum. Desative o modo Offline e tente novamente.",
"about_selftest_ok": "Todos os testes internos passaram com sucesso. A carteira funciona bem.",
@ -275,13 +277,13 @@
"language": "Idioma",
"last_updated": "Última Atualização",
"language_isRTL": "É necessário reiniciar a BlueWallet para que a nova orientação linguística seja ativada.",
"lightning_error_lndhub_uri": "URI LNDHub inválido",
"lightning_error_lndhub_uri": "URI LNDHub inválida",
"lightning_saved": "Suas alterações foram salvas com sucesso.",
"lightning_settings": "Configurações Lightning",
"tor_settings": "Configurações Tor",
"lightning_settings_explain": "Para se conectar ao seu próprio node LND, instale a LNDHub e copie o URL para cá. Deixe em branco para usar a LNDHub padrão fornecida pela BlueWallet (lndhub.io). Apenas carteiras criadas após mudanças nestas preferências ficarão ligadas ao LNDHub especificado.",
"lightning_settings_explain": "Para conectar-se ao seu próprio nó LND, instale a LNDHub e copie o URL para cá. Deixe em branco para usar a LNDHub padrão fornecida pela BlueWallet (lndhub.io). Apenas carteiras criadas após mudanças nestas preferências ficarão ligadas ao LNDHub especificado.",
"network": "Rede",
"network_broadcast": "Transmitir transação",
"network_broadcast": "Transmitir Transação",
"network_electrum": "Servidor Electrum",
"not_a_valid_uri": "URI inválida",
"notifications": "Notificações",
@ -328,7 +330,7 @@
"cpfp_title": "Aumento de taxa (CPFP)",
"details_balance_hide": "Esconder Saldo",
"details_balance_show": "Mostrar Saldo",
"details_block": "Block Height",
"details_block": "Altura dos Blocos",
"details_copy": "Copiar",
"details_copy_amount": "Copiar Quantia",
"details_copy_block_explorer_link": "Copiar Link do Explorador de Blocos",
@ -340,7 +342,7 @@
"date": "Data",
"details_received": "Recebido",
"transaction_note_saved": "A anotação da transação foi salva com sucesso.",
"details_show_in_block_explorer": "Ver no Navegador",
"details_show_in_block_explorer": "Ver no Explorador de Blocos",
"details_title": "Transação",
"details_to": "Saída",
"enable_offline_signing": "Esta carteira não está sendo usada em conjunto com uma para assinar offline. Deseja ativar agora?",
@ -353,7 +355,7 @@
"eta_1d": "Tempo estimado de chegada: Em ~1 dia",
"view_wallet": "Ver {walletLabel}",
"list_title": "Transações",
"open_url_error": "Incapaz de abrir o link com o navegador padrão. Por Favor, mude o seu navegador padrão e tente novamente.",
"open_url_error": "Incapaz de abrir o link com o navegador padrão. Por favor, mude o seu navegador padrão e tente novamente.",
"rbf_explain": "Substituiremos essa transação por uma com uma taxa maior, assim ela será alocada mais rapidamente em um bloco. Isso é chamado de RBF—Replace by Fee.",
"rbf_title": "Aumentar Taxa (RBF)",
"status_bump": "Aumentar Taxa",
@ -367,7 +369,7 @@
"add_bitcoin_explain": "Carteira Bitcoin simples e poderosa",
"add_create": "Criar",
"add_entropy_generated": "{gen} bytes de entropia gerada",
"add_entropy_provide": "Entropia por meio de jogadas de dados",
"add_entropy_provide": "Fornecer entropia por meio da rolagem de dados",
"add_entropy_remain": "{gen} bytes de entropia gerada. Os bytes {rem} restantes serão obtidos do gerador de números aleatórios do Sistema.",
"add_import_wallet": "Importar carteira",
"add_lightning": "Lightning",
@ -387,7 +389,7 @@
"details_are_you_sure": "Tem certeza?",
"details_connected_to": "Conectado a",
"details_del_wb_err": "O valor do saldo fornecido não corresponde ao saldo desta carteira. Tente novamente.",
"details_del_wb_q": "Esta carteira tem um saldo. Antes de continuar, esteja ciente de que você não será capaz de recuperar os seus fundos sem a frase-semente desta carteira. Para evitar a remoção acidental, insira o saldo de sua carteira de {balance} satoshis.",
"details_del_wb_q": "Esta carteira tem um saldo. Antes de continuar, esteja ciente de que você não será capaz de recuperar os seus fundos sem a seed desta carteira. Para evitar a remoção acidental, insira o saldo de sua carteira de {balance} satoshis.",
"details_delete": "Apagar",
"details_delete_wallet": "Apagar Carteira",
"details_derivation_path": "caminho de derivação",
@ -412,11 +414,12 @@
"import_passphrase_title": "Senha",
"import_passphrase_message": "Digite a senha, caso você tenha usado alguma",
"import_error": "Erro ao importar. Por favor, confira se os dados que você passou são válidos.",
"import_explanation": "Insira aqui palavras de seed, chave pública, WIF ou o que você tiver. A BlueWallet vai fazer o possível para decifrar o formato correto e importar a sua carteira.",
"import_explanation": "Insira aqui sua seed, chave pública, WIF ou o que você tiver. A BlueWallet vai fazer o possível para decifrar o formato correto e importar a sua carteira.",
"import_file": "Importar arquivo",
"import_imported": "Importada",
"import_scan_qr": "Ler código ou importar arquivo",
"import_success": "Sua carteira foi importada com sucesso.",
"import_success_watchonly": "Sua carteira foi importada com sucesso. AVISO: Esta é uma carteira apenas para ver, você NÃO pode gastar com ela.",
"import_search_accounts": "Procurar contas",
"import_title": "Importar",
"import_discovery_title": "Descoberta",
@ -486,16 +489,16 @@
"wrapped_segwit_title": "Melhor compatibilidade",
"legacy_title": "Antigo",
"co_sign_transaction": "Assinar uma transação",
"what_is_vault": "Um Cofre é um",
"what_is_vault_numberOfWallets": "{m}-de-{n} multisig",
"what_is_vault_wallet": "wallet",
"what_is_vault": "Um Cofre é uma",
"what_is_vault_numberOfWallets": "carteira",
"what_is_vault_wallet": "multisig {m}-de-{n}.",
"vault_advanced_customize": "Configurações do Cofre",
"needs": "Necessita",
"what_is_vault_description_number_of_vault_keys": "{m} chaves do cofre",
"what_is_vault_description_to_spend": "para gastar e uma terceira que você\npode usar como backup.",
"what_is_vault_description_to_spend_other": "para gastar.",
"quorum": "Quantidade mínima {m} de máxima {n}",
"quorum_header": "Quantidade mínima ou máxima",
"quorum_header": "Quantidade",
"of": "de",
"wallet_type": "Tipo da Carteira",
"invalid_mnemonics": "Esta frase mnemônica não parece ser válida.",
@ -509,7 +512,7 @@
"this_is_cosigners_xpub": "Esta é a XPUB do cossignatário, pronta para ser importada para outra carteira. É seguro compartilhá-la.",
"wallet_key_created": "Sua chave do Cofre foi criada. Reserve um momento para fazer backup com segurança de sua seed.",
"are_you_sure_seed_will_be_lost": "Você tem certeza? Sua seed mnemônica será perdida se você não tiver um backup",
"forget_this_seed": "Esquecer esta seed e usar XPUB no lugar.",
"forget_this_seed": "Esquecer esta seed e usar a XPUB no lugar.",
"view_edit_cosigners": "Ver/Editar cossignatários",
"this_cosigner_is_already_imported": "Este cossignatário já foi importado.",
"export_signed_psbt": "Exportar PSBT Assinado",
@ -527,9 +530,9 @@
"ms_help_title3": "Backups do Cofre",
"ms_help_3": "Nas opções da carteira, você encontrará o backup do seu Cofre e o backup somente-leitura. O backup serve como um mapa para sua carteira. É essencial para a recuperação da carteira caso você perca alguma seed.",
"ms_help_title4": "Importando Cofres",
"ms_help_4": "Para importar uma Multisig, use o arquivo de backup da sua multisig e o recurso de importação. Se você só tem chaves estendidas (XPUBs) e seeds, você pode usar os campos de importação individuais na interface de Adicionar Cofre.",
"ms_help_4": "Para importar uma Multisig, use o arquivo de backup da sua multisig e o recurso de importação. Se você só tem seeds e XPUBs, você pode usar os campos de importação individuais quando estiver criando as chaves do Cofre.",
"ms_help_title5": "Modo Avançado",
"ms_help_5": "Por padrão, a BlueWallet vai gerar um Cofre 2 de 3. Para alterar a quantidade mínima ou máxima do número de assinaturas ou alterar o tipo de endereço, ative as opções avançadas nas Configurações."
"ms_help_5": "Por padrão, a BlueWallet vai gerar um Cofre 2 de 3. Para alterar a quantidade mínima ou máxima do número de assinaturas ou alterar o tipo de endereço, ative o Modo Avançado nas Configurações."
},
"is_it_my_address": {
"title": "É o meu endereço?",

View file

@ -182,7 +182,6 @@
"input_paste": "Prilepi",
"input_total": "Skupaj:",
"permission_camera_message": "Za uporabo kamere potrebujemo dovoljenje.",
"permission_camera_title": "Dovoljenje za uporabo kamere",
"psbt_sign": "Podpiši transakcijo",
"open_settings": "Odpri Nastavitve",
"permission_storage_later": "Vprašaj me kasneje",
@ -225,6 +224,7 @@
"biom_no_passcode": "Vaša naprava ni zaščitena z geslom. Če želite nadaljevati, v aplikaciji Nastavitve nastavite svoje geslo.",
"biom_remove_decrypt": "Shramba bo ponastavljena, pri tem bodo odstranjene vse denarnice. Ali ste prepričani, da želite nadaljevati?",
"currency": "Valuta",
"currency_source": "Tečaji so pridobljeni iz",
"currency_fetch_error": "Pri pridobivanju tečaja za izbrano valuto je prišlo do napake.",
"default_desc": "Ko je onemogočeno, bo BlueWallet ob zagonu takoj odprl izbrano denarnico.",
"default_info": "Privzeto v",
@ -336,6 +336,7 @@
"details_from": "Vhod",
"details_inputs": "Vhodi",
"details_outputs": "Izhodi",
"date": "Datum",
"details_received": "Prejeto",
"transaction_note_saved": "Opomba transakcije je bila uspešno shranjena.",
"details_show_in_block_explorer": "Prikaži v raziskovalcu blokov",
@ -390,6 +391,7 @@
"details_derivation_path": "pot izpeljave (derivation path)",
"details_display": "Prikaži na seznamu denarnic",
"details_export_backup": "Izvozi / Varnostna kopija",
"details_export_history": "Izvozi zgodovino v CSV",
"details_master_fingerprint": "Glavni prstni odtis (fingerprint)",
"details_multisig_type": "multisig",
"details_no_cancel": "Ne, prekliči",
@ -569,5 +571,8 @@
"type_receive": "Prejemni",
"type_used": "Uporabljen",
"transactions": "Transakcije"
},
"lnurl_auth": {
"register_question_part_1": "Bi želeli odpreti račun pri"
}
}

View file

@ -6,6 +6,7 @@ export const FiatUnitSource = {
YadioConvert: 'YadioConvert',
Exir: 'Exir',
wazirx: 'wazirx',
Bitstamp: 'Bitstamp',
} as const;
const RateExtractors = {
@ -25,6 +26,27 @@ const RateExtractors = {
return rate;
},
Bitstamp: async (ticker: string): Promise<number> => {
let json;
try {
const res = await fetch(`https://www.bitstamp.net/api/v2/ticker/btc${ticker.toLowerCase()}`);
json = await res.json();
} catch (e: any) {
throw new Error(`Could not update rate from Bitstamp for ${ticker}: ${e.message}`);
}
if (Array.isArray(json)) {
throw new Error(`Unsupported ticker for Bitstamp: ${ticker}`);
}
let rate = +json?.last;
if (!rate) throw new Error(`Could not update rate from Bitstamp for ${ticker}: data is wrong`);
rate = Number(rate);
if (!(rate >= 0)) throw new Error(`Could not update rate from Bitstamp for ${ticker}: data is wrong`);
return rate;
},
Yadio: async (ticker: string): Promise<number> => {
let json;
try {
@ -95,7 +117,7 @@ type FiatUnit = {
endPointKey: string;
symbol: string;
locale: string;
source: 'CoinDesk' | 'Yadio' | 'Exir' | 'wazirx';
source: 'CoinDesk' | 'Yadio' | 'Exir' | 'wazirx' | 'Bitstamp';
};
};
export const FiatUnit = untypedFiatUnit as FiatUnit;

View file

@ -2,7 +2,7 @@
"USD": {
"endPointKey": "USD",
"locale": "en-US",
"source": "CoinDesk",
"source": "Bitstamp",
"symbol": "$"
},
"AED": {
@ -62,7 +62,7 @@
"CLP": {
"endPointKey": "CLP",
"locale": "es-CL",
"source": "CoinDesk",
"source": "Yadio",
"symbol": "$"
},
"CNY": {
@ -92,13 +92,13 @@
"EUR": {
"endPointKey": "EUR",
"locale": "en-IE",
"source": "CoinDesk",
"source": "Bitstamp",
"symbol": "€"
},
"GBP": {
"endPointKey": "GBP",
"locale": "en-GB",
"source": "CoinDesk",
"source": "Bitstamp",
"symbol": "£"
},
"HRK": {
@ -323,4 +323,4 @@
"source": "CoinDesk",
"symbol": "R"
}
}
}

View file

@ -10,7 +10,7 @@ export const NetworkTransactionFeeType = Object.freeze({
export class NetworkTransactionFee {
static StorageKey = 'NetworkTransactionFee';
constructor(fastestFee = 1, mediumFee = 1, slowFee = 1) {
constructor(fastestFee = 2, mediumFee = 1, slowFee = 1) {
this.fastestFee = fastestFee;
this.mediumFee = mediumFee;
this.slowFee = slowFee;
@ -31,12 +31,12 @@ export default class NetworkTransactionFees {
const networkFee = new NetworkTransactionFee(response.fast, response.medium, response.slow);
resolve(networkFee);
} else {
const networkFee = new NetworkTransactionFee(1, 1, 1);
const networkFee = new NetworkTransactionFee(2, 1, 1);
resolve(networkFee);
}
} catch (err) {
console.warn(err);
const networkFee = new NetworkTransactionFee(1, 1, 1);
const networkFee = new NetworkTransactionFee(2, 1, 1);
resolve(networkFee);
}
});

665
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -99,7 +99,7 @@
"@babel/preset-env": "7.19.4",
"@bugsnag/react-native": "7.18.2",
"@bugsnag/source-maps": "2.3.1",
"@keystonehq/bc-ur-registry": "0.5.3",
"@keystonehq/bc-ur-registry": "0.5.4",
"@ngraveio/bc-ur": "1.1.6",
"@react-native-async-storage/async-storage": "1.17.10",
"@react-native-clipboard/clipboard": "1.10.0",
@ -113,7 +113,7 @@
"base-x": "3.0.9",
"bc-bech32": "file:blue_modules/bc-bech32",
"bech32": "2.0.0",
"bignumber.js": "9.1.0",
"bignumber.js": "9.1.1",
"bip21": "2.0.3",
"bip32": "3.0.1",
"bip38": "github:BlueWallet/bip38",
@ -125,7 +125,7 @@
"buffer-reverse": "1.0.1",
"coinselect": "3.1.13",
"crypto-js": "4.1.1",
"dayjs": "1.11.6",
"dayjs": "1.11.7",
"detox": "19.12.5",
"ecpair": "2.0.1",
"ecurve": "1.0.6",
@ -136,7 +136,7 @@
"junderw-crc32c": "1.2.0",
"lottie-ios": "3.4.4",
"lottie-react-native": "5.1.4",
"metro-react-native-babel-preset": "0.73.3",
"metro-react-native-babel-preset": "0.74.1",
"path-browserify": "1.0.1",
"payjoin-client": "1.0.1",
"process": "0.11.10",
@ -169,13 +169,13 @@
"react-native-privacy-snapshot": "https://github.com/BlueWallet/react-native-privacy-snapshot#529e4627d93f67752a27e82a040ff7b64dca0783",
"react-native-prompt-android": "https://github.com/BlueWallet/react-native-prompt-android#ed168d66fed556bc2ed07cf498770f058b78a376",
"react-native-push-notification": "8.1.1",
"react-native-qrcode-svg": "6.1.2",
"react-native-qrcode-svg": "6.2.0",
"react-native-quick-actions": "0.3.13",
"react-native-randombytes": "3.6.1",
"react-native-rate": "1.2.9",
"react-native-rate": "1.2.12",
"react-native-reanimated": "2.13.0",
"react-native-safe-area-context": "3.4.1",
"react-native-screens": "3.18.2",
"react-native-screens": "3.19.0",
"react-native-secure-key-store": "https://github.com/BlueWallet/react-native-secure-key-store#63ab38c9d382a819844a086a69cc204c46aa93f9",
"react-native-share": "7.9.1",
"react-native-svg": "12.4.4",
@ -183,16 +183,15 @@
"react-native-tor": "0.1.8",
"react-native-vector-icons": "9.2.0",
"react-native-watch-connectivity": "1.1.0",
"react-native-webview": "11.24.0",
"react-native-webview": "11.26.1",
"react-native-widget-center": "https://github.com/BlueWallet/react-native-widget-center#b80630cc8894ce479275d6dd3a5183f41f220237",
"react-native-windows": "0.70.4",
"react-native-windows": "0.70.10",
"react-test-render": "1.1.2",
"readable-stream": "3.6.0",
"realm": "^10.20.0-beta.5",
"rn-ldk": "github:BlueWallet/rn-ldk#v0.8.4",
"rn-nodeify": "10.3.0",
"scryptsy": "2.1.0",
"secure-random": "1.1.2",
"slip39": "https://github.com/BlueWallet/slip39-js",
"stream-browserify": "3.0.0",
"tiny-secp256k1": "1.1.6",

View file

@ -1,5 +1,5 @@
import React, { useContext } from 'react';
import { TouchableOpacity, ScrollView, Linking, Image, View, Text, StyleSheet, useWindowDimensions, Platform } from 'react-native';
import { TouchableOpacity, ScrollView, Linking, Image, View, Text, StyleSheet, useWindowDimensions, Platform, Alert } from 'react-native';
import { useNavigation, useTheme } from '@react-navigation/native';
import { Icon } from 'react-native-elements';
import { getApplicationName, getVersion, getBundleId, getBuildNumber, getUniqueId, hasGmsSync } from 'react-native-device-info';
@ -10,6 +10,7 @@ import loc, { formatStringAddTwoWhiteSpaces } from '../../loc';
import Clipboard from '@react-native-clipboard/clipboard';
import { BlueStorageContext } from '../../blue_modules/storage-context';
import alert from '../../components/Alert';
import { HDSegwitBech32Wallet } from '../../class';
const A = require('../../blue_modules/analytics');
const branch = require('../../current-branch.json');
@ -208,6 +209,31 @@ const About = () => {
testID="RunSelfTestButton"
title={loc.settings.about_selftest}
/>
<BlueListItem
leftIcon={{
name: 'flask',
type: 'font-awesome',
color: '#FC0D44',
}}
chevron
onPress={async () => {
const secret = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about';
const w = new HDSegwitBech32Wallet();
w.setSecret(secret);
const start = Date.now();
let num;
for (num = 0; num < 1000; num++) {
w._getExternalAddressByIndex(num);
if (Date.now() - start > 10 * 1000) {
break;
}
}
Alert.alert(loc.formatString(loc.settings.performance_score, { num }));
}}
title={loc.settings.run_performance_test}
/>
<BlueSpacing20 />
<BlueSpacing20 />
<BlueTextCentered>

View file

@ -229,7 +229,11 @@ const WalletDetails = () => {
const navigateToOverviewAndDeleteWallet = () => {
setIsLoading(true);
Notifications.unsubscribe(wallet.getAllExternalAddresses(), [], []);
let externalAddresses = [];
try {
externalAddresses = wallet.getAllExternalAddresses();
} catch (_) {}
Notifications.unsubscribe(externalAddresses, [], []);
popToTop();
deleteWallet(wallet);
saveToDisk(true);

View file

@ -4,9 +4,26 @@ import mockClipboard from '@react-native-clipboard/clipboard/jest/clipboard-mock
const consoleWarnOrig = console.warn;
console.warn = (...args) => {
if (typeof args[0] === 'string' && !args[0].startsWith('WARNING: Sending to a future segwit version address can lead to loss of funds')) {
consoleWarnOrig.apply(consoleWarnOrig, args);
if (
args[0]?.startsWith('WARNING: Sending to a future segwit version address can lead to loss of funds') ||
args[0]?.startsWith('only compressed public keys are good')
) {
return;
}
consoleWarnOrig.apply(consoleWarnOrig, args);
};
const consoleLogOrig = console.log;
console.log = (...args) => {
if (
args[0]?.startsWith('updating exchange rate') ||
args[0]?.startsWith('begin connection') ||
args[0]?.startsWith('TLS Connected to') ||
args[0]?.startsWith('connected to')
) {
return;
}
consoleLogOrig.apply(consoleLogOrig, args);
};
global.net = require('net'); // needed by Electrum client. For RN it is proviced in shim.js

View file

@ -64,6 +64,34 @@ describe.each(['', '//'])('unit - DeepLinkSchemaMatch', function (suffix) {
rez.lndInvoice,
'lightning:lnbc1u1pwry044pp53xlmkghmzjzm3cljl6729cwwqz5hhnhevwfajpkln850n7clft4sdqlgfy4qv33ypmj7sj0f32rzvfqw3jhxaqcqzysxq97zvuq5zy8ge6q70prnvgwtade0g2k5h2r76ws7j2926xdjj2pjaq6q3r4awsxtm6k5prqcul73p3atveljkn6wxdkrcy69t6k5edhtc6q7lgpe4m5k4',
);
const rez2 = DeeplinkSchemaMatch.isBothBitcoinAndLightning(
`bitcoin:${suffix}bc1q8flg3jcnv6x6mpjrqty8h8h9mg0shgp5jc9smk?lightning=LNBC1P3WKFY3DQQPP5030V53XSDHSGJKZELYLE7EKTMEM38974498VNQDT2JAZ24TRW39QSP502JQJ4K6NR7AXQYMHKF3AX70JXFX6JZA4JYGVC66NJZHFS4TSA2Q9QRSGQCQPCXQY8AYQRZJQV06K0M23T593PNGL0JT7N9WZNP64FQNGVCTZ7VTS8NQ4TUKVTLJQZ2ZHYQQXQGQQSQQQQQQQQQQQQQQ9GRZJQTSJY9P55GDCEEVP36FVDMRKXQVZFHY8AK2TGC5ZGTJTRA9XLAZ97ZKCYVQQPRSQQVQQQQQQQQQQQQQQ9GY3X4N6RV6RCN53LDEV96AURLS3C66KPX74WA4UWCWU92JGKTPQE8NCQPZJ8JG6SUNYGZM320CDUTNVGSRC6XV286EVHRXEFSXXUZ0SSQWTM6DQ&amount=0`,
);
assert.strictEqual(rez2.bitcoin, 'bitcoin:bc1q8flg3jcnv6x6mpjrqty8h8h9mg0shgp5jc9smk?');
assert.strictEqual(
rez2.lndInvoice,
'lightning:LNBC1P3WKFY3DQQPP5030V53XSDHSGJKZELYLE7EKTMEM38974498VNQDT2JAZ24TRW39QSP502JQJ4K6NR7AXQYMHKF3AX70JXFX6JZA4JYGVC66NJZHFS4TSA2Q9QRSGQCQPCXQY8AYQRZJQV06K0M23T593PNGL0JT7N9WZNP64FQNGVCTZ7VTS8NQ4TUKVTLJQZ2ZHYQQXQGQQSQQQQQQQQQQQQQQ9GRZJQTSJY9P55GDCEEVP36FVDMRKXQVZFHY8AK2TGC5ZGTJTRA9XLAZ97ZKCYVQQPRSQQVQQQQQQQQQQQQQQ9GY3X4N6RV6RCN53LDEV96AURLS3C66KPX74WA4UWCWU92JGKTPQE8NCQPZJ8JG6SUNYGZM320CDUTNVGSRC6XV286EVHRXEFSXXUZ0SSQWTM6DQ',
);
const rez3 = DeeplinkSchemaMatch.isBothBitcoinAndLightning(
`bitcoin:bc1q8flg3jcnv6x6mpjrqty8h8h9mg0shgp5jc9smk?lightning=lnbc1p3wkfy3dqqpp5030v53xsdhsgjkzelyle7ektmem38974498vnqdt2jaz24trw39qsp502jqj4k6nr7axqymhkf3ax70jxfx6jza4jygvc66njzhfs4tsa2q9qrsgqcqpcxqy8ayqrzjqv06k0m23t593pngl0jt7n9wznp64fqngvctz7vts8nq4tukvtljqz2zhyqqxqgqqsqqqqqqqqqqqqqq9grzjqtsjy9p55gdceevp36fvdmrkxqvzfhy8ak2tgc5zgtjtra9xlaz97zkcyvqqprsqqvqqqqqqqqqqqqqq9gy3x4n6rv6rcn53ldev96aurls3c66kpx74wa4uwcwu92jgktpqe8ncqpzj8jg6sunygzm320cdutnvgsrc6xv286evhrxefsxxuz0ssqwtm6dq&amount=0`,
);
assert.strictEqual(rez3.bitcoin, 'bitcoin:bc1q8flg3jcnv6x6mpjrqty8h8h9mg0shgp5jc9smk?');
assert.strictEqual(
rez3.lndInvoice,
'lightning:lnbc1p3wkfy3dqqpp5030v53xsdhsgjkzelyle7ektmem38974498vnqdt2jaz24trw39qsp502jqj4k6nr7axqymhkf3ax70jxfx6jza4jygvc66njzhfs4tsa2q9qrsgqcqpcxqy8ayqrzjqv06k0m23t593pngl0jt7n9wznp64fqngvctz7vts8nq4tukvtljqz2zhyqqxqgqqsqqqqqqqqqqqqqq9grzjqtsjy9p55gdceevp36fvdmrkxqvzfhy8ak2tgc5zgtjtra9xlaz97zkcyvqqprsqqvqqqqqqqqqqqqqq9gy3x4n6rv6rcn53ldev96aurls3c66kpx74wa4uwcwu92jgktpqe8ncqpzj8jg6sunygzm320cdutnvgsrc6xv286evhrxefsxxuz0ssqwtm6dq',
);
// no amount
const rez4 = DeeplinkSchemaMatch.isBothBitcoinAndLightning(
`bitcoin:bc1q8flg3jcnv6x6mpjrqty8h8h9mg0shgp5jc9smk?lightning=lnbc1p3wkfy3dqqpp5030v53xsdhsgjkzelyle7ektmem38974498vnqdt2jaz24trw39qsp502jqj4k6nr7axqymhkf3ax70jxfx6jza4jygvc66njzhfs4tsa2q9qrsgqcqpcxqy8ayqrzjqv06k0m23t593pngl0jt7n9wznp64fqngvctz7vts8nq4tukvtljqz2zhyqqxqgqqsqqqqqqqqqqqqqq9grzjqtsjy9p55gdceevp36fvdmrkxqvzfhy8ak2tgc5zgtjtra9xlaz97zkcyvqqprsqqvqqqqqqqqqqqqqq9gy3x4n6rv6rcn53ldev96aurls3c66kpx74wa4uwcwu92jgktpqe8ncqpzj8jg6sunygzm320cdutnvgsrc6xv286evhrxefsxxuz0ssqwtm6dq`,
);
assert.strictEqual(rez4.bitcoin, 'bitcoin:bc1q8flg3jcnv6x6mpjrqty8h8h9mg0shgp5jc9smk?');
assert.strictEqual(
rez4.lndInvoice,
'lightning:lnbc1p3wkfy3dqqpp5030v53xsdhsgjkzelyle7ektmem38974498vnqdt2jaz24trw39qsp502jqj4k6nr7axqymhkf3ax70jxfx6jza4jygvc66njzhfs4tsa2q9qrsgqcqpcxqy8ayqrzjqv06k0m23t593pngl0jt7n9wznp64fqngvctz7vts8nq4tukvtljqz2zhyqqxqgqqsqqqqqqqqqqqqqq9grzjqtsjy9p55gdceevp36fvdmrkxqvzfhy8ak2tgc5zgtjtra9xlaz97zkcyvqqprsqqvqqqqqqqqqqqqqq9gy3x4n6rv6rcn53ldev96aurls3c66kpx74wa4uwcwu92jgktpqe8ncqpzj8jg6sunygzm320cdutnvgsrc6xv286evhrxefsxxuz0ssqwtm6dq',
);
});
it('isLnurl', () => {

View file

@ -0,0 +1,4 @@
BSMS 1.0
wsh(sortedmulti(2,[3f5e4e09/48'/0'/0']xpub6BtEVX9WezWA2EYa8Wf1rJTokXpF96Rmqr4JKoR3SbjGw1vCa3Qb91mKN1AqJnBzSpqy44tEMB27Khne6KBmNzurXigfis7F28X5dRLWGoY/**,[b96bc7c7/48'/0'/0']xpub6CzCTuwFmAcBoxsfPLgiKfkJ2W3GbW1zxFKvCamZQ1J2XMobJR1gMNqP64pcFsy65ST4WcZtrCn99WXgLcWM6bqw6iFneAPTgJuLHggHD5S/**,[44437f41/48'/0'/0']xpub6Cn4cYgRhXKnvNjE4ULP2mzWHFw4WtCyp1nBuE97SyZVTPwq5xWkKsTVe9c16XSTr6V9AKMDgizav7z69j4AREaMKoFzUDbdcZhVq5xaKMU/**))
/0/*,/1/*
bc1qjppd555998lvpgdew30kdrvu2qg90n5gg684khrc2u5g7kj8cnuqujvz3p

View file

@ -5,12 +5,6 @@ const ECPair = ECPairFactory(ecc);
const bitcoin = require('bitcoinjs-lib');
const assert = require('assert');
const consoleWarnOrig = console.warn;
console.warn = function () {
if (arguments[0].startsWith('WARNING: Sending to a future segwit version address can lead to loss of funds')) return;
return consoleWarnOrig.apply(arguments);
};
describe('Legacy wallet', () => {
it('can validate addresses', () => {
const w = new LegacyWallet();

View file

@ -2146,6 +2146,24 @@ describe('multisig-cosigner', () => {
}
});
it('can parse files from Nunchuck', () => {
const secrets = [[require('fs').readFileSync('./tests/unit/fixtures/nunchuck-bsms.txt', 'ascii'), true]];
for (const [s, verifyFingerprints] of secrets) {
const w = new MultisigHDWallet();
w.setSecret(s);
if (verifyFingerprints) {
assert.strictEqual(w.getFingerprint(1), '3F5E4E09');
assert.strictEqual(w.getFingerprint(2), 'B96BC7C7');
assert.strictEqual(w.getFingerprint(3), '44437F41');
}
assert.ok(w.isNativeSegwit());
assert.strictEqual(w._getExternalAddressByIndex(0), 'bc1qjppd555998lvpgdew30kdrvu2qg90n5gg684khrc2u5g7kj8cnuqujvz3p');
}
});
it('can export to json', () => {
const result = MultisigCosigner.exportToJson(fp1cobo, Zpub1, "m/48'/0'/0'/2'");
assert.strictEqual(