mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2025-03-26 08:55:56 +01:00
Merge branch 'master' into complicationprice
This commit is contained in:
commit
657f7a0918
21 changed files with 396 additions and 319 deletions
|
@ -1265,7 +1265,7 @@ export const BlueReceiveButtonIcon = props => {
|
|||
);
|
||||
};
|
||||
|
||||
export const BlueTransactionListItem = React.memo(({ item, itemPriceUnit = BitcoinUnit.BTC, timeElapsed }) => {
|
||||
export const BlueTransactionListItem = React.memo(({ item, itemPriceUnit = BitcoinUnit.BTC, walletID }) => {
|
||||
const [subtitleNumberOfLines, setSubtitleNumberOfLines] = useState(1);
|
||||
const { colors } = useTheme();
|
||||
const { navigate } = useNavigation();
|
||||
|
@ -1422,46 +1422,38 @@ export const BlueTransactionListItem = React.memo(({ item, itemPriceUnit = Bitco
|
|||
|
||||
const onPress = useCallback(async () => {
|
||||
if (item.hash) {
|
||||
navigate('TransactionStatus', { hash: item.hash });
|
||||
navigate('TransactionStatus', { hash: item.hash, walletID });
|
||||
} else if (item.type === 'user_invoice' || item.type === 'payment_request' || item.type === 'paid_invoice') {
|
||||
const lightningWallet = wallets.filter(wallet => {
|
||||
if (typeof wallet === 'object') {
|
||||
if ('secret' in wallet) {
|
||||
return wallet.getSecret() === item.fromWallet;
|
||||
}
|
||||
try {
|
||||
// is it a successful lnurl-pay?
|
||||
const LN = new Lnurl(false, AsyncStorage);
|
||||
let paymentHash = item.payment_hash;
|
||||
if (typeof paymentHash === 'object') {
|
||||
paymentHash = Buffer.from(paymentHash.data).toString('hex');
|
||||
}
|
||||
});
|
||||
if (lightningWallet.length === 1) {
|
||||
try {
|
||||
// is it a successful lnurl-pay?
|
||||
const LN = new Lnurl(false, AsyncStorage);
|
||||
let paymentHash = item.payment_hash;
|
||||
if (typeof paymentHash === 'object') {
|
||||
paymentHash = Buffer.from(paymentHash.data).toString('hex');
|
||||
}
|
||||
const loaded = await LN.loadSuccessfulPayment(paymentHash);
|
||||
if (loaded) {
|
||||
NavigationService.navigate('ScanLndInvoiceRoot', {
|
||||
screen: 'LnurlPaySuccess',
|
||||
params: {
|
||||
paymentHash,
|
||||
justPaid: false,
|
||||
fromWalletID: lightningWallet[0].getID(),
|
||||
},
|
||||
});
|
||||
return;
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
const loaded = await LN.loadSuccessfulPayment(paymentHash);
|
||||
if (loaded) {
|
||||
NavigationService.navigate('ScanLndInvoiceRoot', {
|
||||
screen: 'LnurlPaySuccess',
|
||||
params: {
|
||||
paymentHash,
|
||||
justPaid: false,
|
||||
fromWalletID: walletID,
|
||||
},
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
navigate('LNDViewInvoice', {
|
||||
invoice: item,
|
||||
walletID: lightningWallet[0].getID(),
|
||||
isModal: false,
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
navigate('LNDViewInvoice', {
|
||||
invoice: item,
|
||||
walletID,
|
||||
isModal: false,
|
||||
});
|
||||
}
|
||||
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [item, wallets]);
|
||||
|
||||
|
@ -1484,7 +1476,7 @@ export const BlueTransactionListItem = React.memo(({ item, itemPriceUnit = Bitco
|
|||
onPress={onPress}
|
||||
onLongPress={onLongPress}
|
||||
chevron={false}
|
||||
Component={TouchableOpacity}
|
||||
Component={item.type === 'bitcoind_tx' ? View : TouchableOpacity}
|
||||
rightTitle={rowTitle}
|
||||
rightTitleStyle={rowTitleStyle}
|
||||
containerStyle={containerStyle}
|
||||
|
|
|
@ -21,7 +21,6 @@ export const BlueStorageProvider = ({ children }) => {
|
|||
const [language, _setLanguage] = useState();
|
||||
const getPreferredCurrencyAsyncStorage = useAsyncStorage(AppStorage.PREFERRED_CURRENCY).getItem;
|
||||
const getLanguageAsyncStorage = useAsyncStorage(AppStorage.LANG).getItem;
|
||||
const [newWalletAdded, setNewWalletAdded] = useState(false);
|
||||
const [isHandOffUseEnabled, setIsHandOffUseEnabled] = useState(false);
|
||||
const [isDrawerListBlurred, _setIsDrawerListBlurred] = useState(false);
|
||||
|
||||
|
@ -213,8 +212,6 @@ export const BlueStorageProvider = ({ children }) => {
|
|||
sleep,
|
||||
setHodlHodlApiKey,
|
||||
createFakeStorage,
|
||||
newWalletAdded,
|
||||
setNewWalletAdded,
|
||||
resetWallets,
|
||||
getHodlHodlApiKey,
|
||||
decryptStorage,
|
||||
|
|
|
@ -567,6 +567,7 @@ export class AppStorage {
|
|||
const walletTransactions = wallet.getTransactions();
|
||||
for (const t of walletTransactions) {
|
||||
t.walletPreferredBalanceUnit = wallet.getPreferredBalanceUnit();
|
||||
t.walletID = wallet.getID();
|
||||
}
|
||||
txs = txs.concat(walletTransactions);
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ const wif = require('wif');
|
|||
const prompt = require('../blue_modules/prompt');
|
||||
|
||||
function WalletImport() {
|
||||
const { wallets, pendingWallets, setPendingWallets, saveToDisk, addWallet, setNewWalletAdded } = useContext(BlueStorageContext);
|
||||
const { wallets, pendingWallets, setPendingWallets, saveToDisk, addWallet } = useContext(BlueStorageContext);
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -53,7 +53,6 @@ function WalletImport() {
|
|||
}
|
||||
addWallet(w);
|
||||
await saveToDisk();
|
||||
setNewWalletAdded(true);
|
||||
A(A.ENUM.CREATED_WALLET);
|
||||
alert(loc.wallets.import_success);
|
||||
Notifications.majorTomToGroundControl(w.getAllExternalAddresses(), [], []);
|
||||
|
|
|
@ -164,12 +164,25 @@ export class AbstractWallet {
|
|||
}
|
||||
|
||||
try {
|
||||
const parsedSecret = JSON.parse(this.secret);
|
||||
let parsedSecret;
|
||||
// regex might've matched invalid data. if so, parse newSecret.
|
||||
if (this.secret.trim().length > 0) {
|
||||
try {
|
||||
parsedSecret = JSON.parse(this.secret);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
parsedSecret = JSON.parse(newSecret);
|
||||
}
|
||||
} else {
|
||||
parsedSecret = JSON.parse(newSecret);
|
||||
}
|
||||
if (parsedSecret && parsedSecret.keystore && parsedSecret.keystore.xpub) {
|
||||
let masterFingerprint = false;
|
||||
if (parsedSecret.keystore.ckcc_xfp) {
|
||||
// It is a ColdCard Hardware Wallet
|
||||
masterFingerprint = Number(parsedSecret.keystore.ckcc_xfp);
|
||||
} else if (parsedSecret.keystore.root_fingerprint) {
|
||||
masterFingerprint = Number(parsedSecret.keystore.root_fingerprint);
|
||||
}
|
||||
if (parsedSecret.keystore.label) {
|
||||
this.setLabel(parsedSecret.keystore.label);
|
||||
|
|
|
@ -480,7 +480,7 @@ export class MultisigHDWallet extends AbstractHDElectrumWallet {
|
|||
}
|
||||
|
||||
// is it electrum json?
|
||||
if (json && json.wallet_type) {
|
||||
if (json && json.wallet_type && json.wallet_type !== 'standard') {
|
||||
const mofn = json.wallet_type.split('of');
|
||||
this.setM(parseInt(mofn[0].trim()));
|
||||
const n = parseInt(mofn[1].trim());
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
6DEB4C3B254FBF4800E9F9AA /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DEB4C3A254FBF4800E9F9AA /* Colors.swift */; };
|
||||
6DEB4C3C254FBF4800E9F9AA /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DEB4C3A254FBF4800E9F9AA /* Colors.swift */; };
|
||||
6DF25A9F249DB97E001D06F5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6DF25A9E249DB97E001D06F5 /* LaunchScreen.storyboard */; };
|
||||
6DFC807024EA0B6C007B8700 /* EFQRCode in Frameworks */ = {isa = PBXBuildFile; productRef = 6DFC806F24EA0B6C007B8700 /* EFQRCode */; };
|
||||
6DFC807024EA0B6C007B8700 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; productRef = 6DFC806F24EA0B6C007B8700 /* SwiftPackageProductDependency */; };
|
||||
6DFC807224EA2FA9007B8700 /* ViewQRCodefaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DFC807124EA2FA9007B8700 /* ViewQRCodefaceController.swift */; };
|
||||
764B49B1420D4AEB8109BF62 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B468CC34D5B41F3950078EF /* libsqlite3.0.tbd */; };
|
||||
782F075B5DD048449E2DECE9 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B9D9B3A7B2CB4255876B67AF /* libz.tbd */; };
|
||||
|
@ -501,7 +501,7 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6DFC807024EA0B6C007B8700 /* EFQRCode in Frameworks */,
|
||||
6DFC807024EA0B6C007B8700 /* BuildFile in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -849,6 +849,7 @@
|
|||
2130DE983D1D45AC8FC45F7E /* Upload Debug Symbols to Sentry */,
|
||||
3271B0B6236E2E0700DA766F /* Embed App Extensions */,
|
||||
C18D00A61007A84C9887DEDE /* [CP] Copy Pods Resources */,
|
||||
68CD4C52AC5B27E333599B5C /* [CP] Embed Pods Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -1003,7 +1004,7 @@
|
|||
);
|
||||
name = "BlueWalletWatch Extension";
|
||||
packageProductDependencies = (
|
||||
6DFC806F24EA0B6C007B8700 /* EFQRCode */,
|
||||
6DFC806F24EA0B6C007B8700 /* SwiftPackageProductDependency */,
|
||||
);
|
||||
productName = "BlueWalletWatch Extension";
|
||||
productReference = B40D4E3C225841ED00428FCC /* BlueWalletWatch Extension.appex */;
|
||||
|
@ -1098,7 +1099,7 @@
|
|||
);
|
||||
mainGroup = 83CBB9F61A601CBA00E9B192;
|
||||
packageReferences = (
|
||||
6DFC806E24EA0B6C007B8700 /* XCRemoteSwiftPackageReference "EFQRCode" */,
|
||||
6DFC806E24EA0B6C007B8700 /* RemoteSwiftPackageReference */,
|
||||
);
|
||||
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
|
||||
projectDirPath = "";
|
||||
|
@ -1250,6 +1251,24 @@
|
|||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
68CD4C52AC5B27E333599B5C /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-BlueWallet/Pods-BlueWallet-frameworks.sh",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BlueWallet/Pods-BlueWallet-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
6F7747C31A9EE6DDC5108476 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
|
@ -2537,7 +2556,7 @@
|
|||
/* End XCConfigurationList section */
|
||||
|
||||
/* Begin XCRemoteSwiftPackageReference section */
|
||||
6DFC806E24EA0B6C007B8700 /* XCRemoteSwiftPackageReference "EFQRCode" */ = {
|
||||
6DFC806E24EA0B6C007B8700 /* RemoteSwiftPackageReference */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/EFPrefix/EFQRCode.git";
|
||||
requirement = {
|
||||
|
@ -2548,9 +2567,9 @@
|
|||
/* End XCRemoteSwiftPackageReference section */
|
||||
|
||||
/* Begin XCSwiftPackageProductDependency section */
|
||||
6DFC806F24EA0B6C007B8700 /* EFQRCode */ = {
|
||||
6DFC806F24EA0B6C007B8700 /* SwiftPackageProductDependency */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 6DFC806E24EA0B6C007B8700 /* XCRemoteSwiftPackageReference "EFQRCode" */;
|
||||
package = 6DFC806E24EA0B6C007B8700 /* RemoteSwiftPackageReference */;
|
||||
productName = EFQRCode;
|
||||
};
|
||||
/* End XCSwiftPackageProductDependency section */
|
||||
|
|
|
@ -12,11 +12,12 @@ target 'BlueWallet' do
|
|||
#
|
||||
# Note that if you have use_frameworks! enabled, Flipper will not work and
|
||||
# you should disable these next few lines.
|
||||
use_flipper!
|
||||
use_flipper!({ 'Flipper' => '0.74.0' })
|
||||
post_install do |installer|
|
||||
flipper_post_install(installer)
|
||||
installer.pods_project.targets.each do |target|
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
|
||||
if ['React-Core-AccessibilityResources'].include? target.name
|
||||
config.build_settings['CODE_SIGN_STYLE'] = "Manual"
|
||||
config.build_settings['CODE_SIGN_IDENTITY'] = "Apple Distribution: Bluewallet Services, S. R. L. (A7W54YZ4WU)"
|
||||
|
|
134
ios/Podfile.lock
134
ios/Podfile.lock
|
@ -2,8 +2,7 @@ PODS:
|
|||
- boost-for-react-native (1.63.0)
|
||||
- BVLinearGradient (2.5.6):
|
||||
- React
|
||||
- CocoaAsyncSocket (7.6.4)
|
||||
- CocoaLibEvent (1.0.0)
|
||||
- CocoaAsyncSocket (7.6.5)
|
||||
- DoubleConversion (1.1.6)
|
||||
- FBLazyVector (0.63.3)
|
||||
- FBReactNativeSpec (0.63.3):
|
||||
|
@ -13,50 +12,50 @@ PODS:
|
|||
- React-Core (= 0.63.3)
|
||||
- React-jsi (= 0.63.3)
|
||||
- ReactCommon/turbomodule/core (= 0.63.3)
|
||||
- Flipper (0.54.0):
|
||||
- Flipper-Folly (~> 2.2)
|
||||
- Flipper-RSocket (~> 1.1)
|
||||
- Flipper (0.74.0):
|
||||
- Flipper-Folly (~> 2.5)
|
||||
- Flipper-RSocket (~> 1.3)
|
||||
- Flipper-DoubleConversion (1.1.7)
|
||||
- Flipper-Folly (2.3.0):
|
||||
- Flipper-Folly (2.5.1):
|
||||
- boost-for-react-native
|
||||
- CocoaLibEvent (~> 1.0)
|
||||
- Flipper-DoubleConversion
|
||||
- Flipper-Glog
|
||||
- OpenSSL-Universal (= 1.0.2.20)
|
||||
- libevent (~> 2.1.12)
|
||||
- OpenSSL-Universal (= 1.1.180)
|
||||
- Flipper-Glog (0.3.6)
|
||||
- Flipper-PeerTalk (0.0.4)
|
||||
- Flipper-RSocket (1.1.0):
|
||||
- Flipper-Folly (~> 2.2)
|
||||
- FlipperKit (0.54.0):
|
||||
- FlipperKit/Core (= 0.54.0)
|
||||
- FlipperKit/Core (0.54.0):
|
||||
- Flipper (~> 0.54.0)
|
||||
- Flipper-RSocket (1.3.0):
|
||||
- Flipper-Folly (~> 2.5)
|
||||
- FlipperKit (0.74.0):
|
||||
- FlipperKit/Core (= 0.74.0)
|
||||
- FlipperKit/Core (0.74.0):
|
||||
- Flipper (~> 0.74.0)
|
||||
- FlipperKit/CppBridge
|
||||
- FlipperKit/FBCxxFollyDynamicConvert
|
||||
- FlipperKit/FBDefines
|
||||
- FlipperKit/FKPortForwarding
|
||||
- FlipperKit/CppBridge (0.54.0):
|
||||
- Flipper (~> 0.54.0)
|
||||
- FlipperKit/FBCxxFollyDynamicConvert (0.54.0):
|
||||
- Flipper-Folly (~> 2.2)
|
||||
- FlipperKit/FBDefines (0.54.0)
|
||||
- FlipperKit/FKPortForwarding (0.54.0):
|
||||
- FlipperKit/CppBridge (0.74.0):
|
||||
- Flipper (~> 0.74.0)
|
||||
- FlipperKit/FBCxxFollyDynamicConvert (0.74.0):
|
||||
- Flipper-Folly (~> 2.5)
|
||||
- FlipperKit/FBDefines (0.74.0)
|
||||
- FlipperKit/FKPortForwarding (0.74.0):
|
||||
- CocoaAsyncSocket (~> 7.6)
|
||||
- Flipper-PeerTalk (~> 0.0.4)
|
||||
- FlipperKit/FlipperKitHighlightOverlay (0.54.0)
|
||||
- FlipperKit/FlipperKitLayoutPlugin (0.54.0):
|
||||
- FlipperKit/FlipperKitHighlightOverlay (0.74.0)
|
||||
- FlipperKit/FlipperKitLayoutPlugin (0.74.0):
|
||||
- FlipperKit/Core
|
||||
- FlipperKit/FlipperKitHighlightOverlay
|
||||
- FlipperKit/FlipperKitLayoutTextSearchable
|
||||
- YogaKit (~> 1.18)
|
||||
- FlipperKit/FlipperKitLayoutTextSearchable (0.54.0)
|
||||
- FlipperKit/FlipperKitNetworkPlugin (0.54.0):
|
||||
- FlipperKit/FlipperKitLayoutTextSearchable (0.74.0)
|
||||
- FlipperKit/FlipperKitNetworkPlugin (0.74.0):
|
||||
- FlipperKit/Core
|
||||
- FlipperKit/FlipperKitReactPlugin (0.54.0):
|
||||
- FlipperKit/FlipperKitReactPlugin (0.74.0):
|
||||
- FlipperKit/Core
|
||||
- FlipperKit/FlipperKitUserDefaultsPlugin (0.54.0):
|
||||
- FlipperKit/FlipperKitUserDefaultsPlugin (0.74.0):
|
||||
- FlipperKit/Core
|
||||
- FlipperKit/SKIOSNetworkPlugin (0.54.0):
|
||||
- FlipperKit/SKIOSNetworkPlugin (0.74.0):
|
||||
- FlipperKit/Core
|
||||
- FlipperKit/FlipperKitNetworkPlugin
|
||||
- Folly (2020.01.13.00):
|
||||
|
@ -72,13 +71,12 @@ PODS:
|
|||
- GCDWebServer/Core (= 3.5.4)
|
||||
- GCDWebServer/Core (3.5.4)
|
||||
- glog (0.3.5)
|
||||
- libevent (2.1.12)
|
||||
- lottie-ios (3.1.8)
|
||||
- lottie-react-native (3.5.0):
|
||||
- lottie-ios (~> 3.1.8)
|
||||
- React
|
||||
- OpenSSL-Universal (1.0.2.20):
|
||||
- OpenSSL-Universal/Static (= 1.0.2.20)
|
||||
- OpenSSL-Universal/Static (1.0.2.20)
|
||||
- OpenSSL-Universal (1.1.180)
|
||||
- PasscodeAuth (1.0.0):
|
||||
- React
|
||||
- RCTRequired (0.63.3)
|
||||
|
@ -251,13 +249,13 @@ PODS:
|
|||
- React
|
||||
- react-native-blur (0.8.0):
|
||||
- React
|
||||
- react-native-camera (3.40.0):
|
||||
- react-native-camera (3.42.0):
|
||||
- React-Core
|
||||
- react-native-camera/RCT (= 3.40.0)
|
||||
- react-native-camera/RN (= 3.40.0)
|
||||
- react-native-camera/RCT (3.40.0):
|
||||
- react-native-camera/RCT (= 3.42.0)
|
||||
- react-native-camera/RN (= 3.42.0)
|
||||
- react-native-camera/RCT (3.42.0):
|
||||
- React-Core
|
||||
- react-native-camera/RN (3.40.0):
|
||||
- react-native-camera/RN (3.42.0):
|
||||
- React-Core
|
||||
- react-native-document-picker (3.5.4):
|
||||
- React
|
||||
|
@ -342,7 +340,7 @@ PODS:
|
|||
- React-Core (= 0.63.3)
|
||||
- React-cxxreact (= 0.63.3)
|
||||
- React-jsi (= 0.63.3)
|
||||
- RealmJS (6.1.4):
|
||||
- RealmJS (10.2.0):
|
||||
- GCDWebServer
|
||||
- React
|
||||
- RemobileReactNativeQrcodeLocalImage (1.0.4):
|
||||
|
@ -367,7 +365,7 @@ PODS:
|
|||
- React
|
||||
- RNInAppBrowser (3.5.1):
|
||||
- React-Core
|
||||
- RNLocalize (1.4.2):
|
||||
- RNLocalize (2.0.1):
|
||||
- React-Core
|
||||
- RNPrivacySnapshot (1.0.0):
|
||||
- React
|
||||
|
@ -379,14 +377,14 @@ PODS:
|
|||
- React-Core
|
||||
- RNReanimated (1.13.1):
|
||||
- React
|
||||
- RNScreens (2.11.0):
|
||||
- React
|
||||
- RNScreens (2.16.1):
|
||||
- React-Core
|
||||
- RNSecureKeyStore (1.0.0):
|
||||
- React
|
||||
- RNSentry (1.9.0):
|
||||
- React-Core
|
||||
- Sentry (~> 5.2.0)
|
||||
- RNShare (4.0.2):
|
||||
- RNShare (5.1.0):
|
||||
- React-Core
|
||||
- RNSVG (12.1.0):
|
||||
- React
|
||||
|
@ -409,25 +407,25 @@ DEPENDENCIES:
|
|||
- 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/Libraries/FBReactNativeSpec`)
|
||||
- Flipper (~> 0.54.0)
|
||||
- Flipper (= 0.74.0)
|
||||
- Flipper-DoubleConversion (= 1.1.7)
|
||||
- Flipper-Folly (~> 2.2)
|
||||
- Flipper-Glog (= 0.3.6)
|
||||
- Flipper-PeerTalk (~> 0.0.4)
|
||||
- Flipper-RSocket (~> 1.1)
|
||||
- FlipperKit (~> 0.54.0)
|
||||
- FlipperKit/Core (~> 0.54.0)
|
||||
- FlipperKit/CppBridge (~> 0.54.0)
|
||||
- FlipperKit/FBCxxFollyDynamicConvert (~> 0.54.0)
|
||||
- FlipperKit/FBDefines (~> 0.54.0)
|
||||
- FlipperKit/FKPortForwarding (~> 0.54.0)
|
||||
- FlipperKit/FlipperKitHighlightOverlay (~> 0.54.0)
|
||||
- FlipperKit/FlipperKitLayoutPlugin (~> 0.54.0)
|
||||
- FlipperKit/FlipperKitLayoutTextSearchable (~> 0.54.0)
|
||||
- FlipperKit/FlipperKitNetworkPlugin (~> 0.54.0)
|
||||
- FlipperKit/FlipperKitReactPlugin (~> 0.54.0)
|
||||
- FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.54.0)
|
||||
- FlipperKit/SKIOSNetworkPlugin (~> 0.54.0)
|
||||
- FlipperKit (= 0.74.0)
|
||||
- FlipperKit/Core (= 0.74.0)
|
||||
- FlipperKit/CppBridge (= 0.74.0)
|
||||
- FlipperKit/FBCxxFollyDynamicConvert (= 0.74.0)
|
||||
- FlipperKit/FBDefines (= 0.74.0)
|
||||
- FlipperKit/FKPortForwarding (= 0.74.0)
|
||||
- FlipperKit/FlipperKitHighlightOverlay (= 0.74.0)
|
||||
- FlipperKit/FlipperKitLayoutPlugin (= 0.74.0)
|
||||
- FlipperKit/FlipperKitLayoutTextSearchable (= 0.74.0)
|
||||
- FlipperKit/FlipperKitNetworkPlugin (= 0.74.0)
|
||||
- FlipperKit/FlipperKitReactPlugin (= 0.74.0)
|
||||
- FlipperKit/FlipperKitUserDefaultsPlugin (= 0.74.0)
|
||||
- FlipperKit/SKIOSNetworkPlugin (= 0.74.0)
|
||||
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- lottie-ios (from `../node_modules/lottie-ios`)
|
||||
|
@ -502,7 +500,6 @@ SPEC REPOS:
|
|||
trunk:
|
||||
- boost-for-react-native
|
||||
- CocoaAsyncSocket
|
||||
- CocoaLibEvent
|
||||
- Flipper
|
||||
- Flipper-DoubleConversion
|
||||
- Flipper-Folly
|
||||
|
@ -511,6 +508,7 @@ SPEC REPOS:
|
|||
- Flipper-RSocket
|
||||
- FlipperKit
|
||||
- GCDWebServer
|
||||
- libevent
|
||||
- OpenSSL-Universal
|
||||
- Sentry
|
||||
- YogaKit
|
||||
|
@ -668,24 +666,24 @@ CHECKOUT OPTIONS:
|
|||
SPEC CHECKSUMS:
|
||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||
BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
|
||||
CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845
|
||||
CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f
|
||||
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
|
||||
DoubleConversion: cde416483dac037923206447da6e1454df403714
|
||||
FBLazyVector: 878b59e31113e289e275165efbe4b54fa614d43d
|
||||
FBReactNativeSpec: 7da9338acfb98d4ef9e5536805a0704572d33c2f
|
||||
Flipper: be611d4b742d8c87fbae2ca5f44603a02539e365
|
||||
Flipper: c1ad50344bffdce628b1906b48f6e7cd06724236
|
||||
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
|
||||
Flipper-Folly: e4493b013c02d9347d5e0cb4d128680239f6c78a
|
||||
Flipper-Folly: f7a3caafbd74bda4827954fd7a6e000e36355489
|
||||
Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
|
||||
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
|
||||
Flipper-RSocket: 64e7431a55835eb953b0bf984ef3b90ae9fdddd7
|
||||
FlipperKit: ab353d41aea8aae2ea6daaf813e67496642f3d7d
|
||||
Flipper-RSocket: 602921fee03edacf18f5d6f3d3594ba477f456e5
|
||||
FlipperKit: f42987ea58737ac0fb3fbc38f8e703452ba56940
|
||||
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
|
||||
GCDWebServer: 2c156a56c8226e2d5c0c3f208a3621ccffbe3ce4
|
||||
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
|
||||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
||||
lottie-ios: 48fac6be217c76937e36e340e2d09cf7b10b7f5f
|
||||
lottie-react-native: 1fb4ce21d6ad37dab8343eaff8719df76035bd93
|
||||
OpenSSL-Universal: ff34003318d5e1163e9529b08470708e389ffcdd
|
||||
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
|
||||
PasscodeAuth: 1cc99b13d8e4de4716d7e2b4069af2f1a9de30b2
|
||||
RCTRequired: 48884c74035a0b5b76dbb7a998bd93bcfc5f2047
|
||||
RCTTypeSafety: edf4b618033c2f1c5b7bc3d90d8e085ed95ba2ab
|
||||
|
@ -699,7 +697,7 @@ SPEC CHECKSUMS:
|
|||
React-jsinspector: 8e68ffbfe23880d3ee9bafa8be2777f60b25cbe2
|
||||
react-native-blue-crypto: 23f1558ad3d38d7a2edb7e2f6ed1bc520ed93e56
|
||||
react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c
|
||||
react-native-camera: 5c1fbfecf63b802b8ca4a71c60d30a71550fb348
|
||||
react-native-camera: d145df27a9178041b48b839b80ad79c9ef373fbd
|
||||
react-native-document-picker: c5752781fbc0c126c627c1549b037c139444a4cf
|
||||
react-native-fingerprint-scanner: c68136ca57e3704d7bdf5faa554ea535ce15b1d0
|
||||
react-native-idle-timer: 97b8283237d45146a7a5c25bdebe9e1e85f3687b
|
||||
|
@ -721,7 +719,7 @@ SPEC CHECKSUMS:
|
|||
React-RCTText: 65a6de06a7389098ce24340d1d3556015c38f746
|
||||
React-RCTVibration: 8e9fb25724a0805107fc1acc9075e26f814df454
|
||||
ReactCommon: 4167844018c9ed375cc01a843e9ee564399e53c3
|
||||
RealmJS: 899b4839a8bee46e248bc277995ad58da855e41f
|
||||
RealmJS: 5195064e9aeccf94ae3756bd9d0f2301b9074b07
|
||||
RemobileReactNativeQrcodeLocalImage: 57aadc12896b148fb5e04bc7c6805f3565f5c3fa
|
||||
RNCAsyncStorage: 32c7cbe1d43dff5f03f3d0b9e9d2c44d8ec91a3a
|
||||
RNCClipboard: 5e299c6df8e0c98f3d7416b86ae563d3a9f768a3
|
||||
|
@ -733,16 +731,16 @@ SPEC CHECKSUMS:
|
|||
RNGestureHandler: 7a5833d0f788dbd107fbb913e09aa0c1ff333c39
|
||||
RNHandoff: d3b0754cca3a6bcd9b25f544f733f7f033ccf5fa
|
||||
RNInAppBrowser: 3733c1aa6699983a1c9b4963e85d5e5a48ad297e
|
||||
RNLocalize: 4071198b59b461f3b74eebc5fee8c50f13e39e79
|
||||
RNLocalize: dcf0fdb332b37b0d24178e876a7ce4dbbc9c838d
|
||||
RNPrivacySnapshot: 71919dde3c6a29dd332115409c2aec564afee8f4
|
||||
RNQuickAction: 6d404a869dc872cde841ad3147416a670d13fa93
|
||||
RNRate: 2b31dad120cd1b78e33c6034808561c386a3dddf
|
||||
RNReactNativeHapticFeedback: 653a8c126a0f5e88ce15ffe280b3ff37e1fbb285
|
||||
RNReanimated: dd8c286ab5dd4ba36d3a7fef8bff7e08711b5476
|
||||
RNScreens: 0e91da98ab26d5d04c7b59a9b6bd694124caf88c
|
||||
RNScreens: 45c457af3d2ee9e08fc01e70da87e653d46b1198
|
||||
RNSecureKeyStore: f1ad870e53806453039f650720d2845c678d89c8
|
||||
RNSentry: 1adaa43b01c6a3ab5091d4d1add66b7c58558898
|
||||
RNShare: 7a7277f3c313652422d9de072ac50714dff5e8a4
|
||||
RNShare: fed99fd743f80ca255903c1da46fc9a6430efab6
|
||||
RNSVG: ce9d996113475209013317e48b05c21ee988d42e
|
||||
RNVectorIcons: bc69e6a278b14842063605de32bec61f0b251a59
|
||||
RNWatch: e4c5d19506c94506860032fb68aedd5991beb985
|
||||
|
@ -752,6 +750,6 @@ SPEC CHECKSUMS:
|
|||
Yoga: 7d13633d129fd179e01b8953d38d47be90db185a
|
||||
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
|
||||
|
||||
PODFILE CHECKSUM: b3a4c68ed1fc7dace2357d96ad07c3e104e0afe2
|
||||
PODFILE CHECKSUM: 0a9cc46978a031458f110f72f4b1f21d675a659a
|
||||
|
||||
COCOAPODS: 1.10.0
|
||||
|
|
206
loc/en.json
206
loc/en.json
|
@ -9,7 +9,7 @@
|
|||
"ok": "OK",
|
||||
"storage_is_encrypted": "Your storage is encrypted. Password is required to decrypt it.",
|
||||
"allow": "Allow",
|
||||
"dont_allow": "Don't Allow",
|
||||
"dont_allow": "Don’t Allow",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"save": "Save",
|
||||
|
@ -35,67 +35,67 @@
|
|||
"undo": "Undo"
|
||||
},
|
||||
"errors": {
|
||||
"broadcast": "Broadcast failed",
|
||||
"broadcast": "Broadcast failed.",
|
||||
"error": "Error",
|
||||
"network": "Network Error"
|
||||
},
|
||||
"hodl": {
|
||||
"are_you_sure_you_want_to_logout": "Are you sure you want to logout from HodlHodl?",
|
||||
"are_you_sure_you_want_to_logout": "Are you sure you want to log out from Hodl Hodl?",
|
||||
"cont_address_escrow": "Escrow",
|
||||
"cont_address_to": "To",
|
||||
"cont_buying": "Buying",
|
||||
"cont_cancel": "Cancel contract",
|
||||
"cont_cancel_q": "Are you sure you want to cancel this contract?",
|
||||
"cont_cancel_y": "Yes, cancel contract",
|
||||
"cont_chat": "Open chat with counterparty",
|
||||
"cont_chat": "Open chat with the counterparty",
|
||||
"cont_how": "How to pay",
|
||||
"cont_no": "You don't have any contracts in progress.",
|
||||
"cont_paid": "Mark contract as Paid",
|
||||
"cont_paid_e": "Do this only if you sent funds to the seller via agreed payment method",
|
||||
"cont_no": "You don’t have any contracts in progress.",
|
||||
"cont_paid": "Mark contract as paid",
|
||||
"cont_paid_e": "Do this only if you sent funds to the seller via the agreed payment method",
|
||||
"cont_paid_q": "Are you sure you want to mark this contract as paid?",
|
||||
"cont_selling": "Selling",
|
||||
"cont_st_completed": "All done!",
|
||||
"cont_st_in_progress_buyer": "Coins are in escrow. Please pay seller.",
|
||||
"cont_st_paid_enought": "Bitcoins are in escrow. Please pay seller\nvia agreed payment method.",
|
||||
"cont_st_paid_waiting": "Waiting for seller to release coins from escrow",
|
||||
"cont_st_waiting": "Waiting for seller to deposit bitcoins to escrow",
|
||||
"cont_title": "My contracts",
|
||||
"cont_st_in_progress_buyer": "Coins are in escrow. Please pay the seller.",
|
||||
"cont_st_paid_enought": "Bitcoins are in escrow. Please pay the seller\nvia the agreed payment method.",
|
||||
"cont_st_paid_waiting": "Waiting for the seller to release the coins from escrow",
|
||||
"cont_st_waiting": "Waiting for the seller to deposit bitcoins to escrow",
|
||||
"cont_title": "My Contracts",
|
||||
"filter_any": "Any",
|
||||
"filter_buying": "Buying",
|
||||
"filter_country_global": "Global Offers",
|
||||
"filter_currency": "Currency",
|
||||
"filter_detail": "Detail",
|
||||
"filter_filters": "Filters",
|
||||
"filter_iambuying": "I'm buying bitcoin",
|
||||
"filter_iamselling": "I'm selling bitcoin",
|
||||
"filter_iambuying": "I’m buying bitcoin",
|
||||
"filter_iamselling": "I’m selling bitcoin",
|
||||
"filter_method": "Payment Method",
|
||||
"filter_search": "Search",
|
||||
"filter_selling": "Selling",
|
||||
"item_minmax": "Min/Max",
|
||||
"item_nooffers": "No offers. Try to change \"Near me\" to Global offers.",
|
||||
"item_nooffers": "No offers. Try to change “Near me” to “Global Offers.”",
|
||||
"item_rating": "{rating} trades",
|
||||
"item_rating_no": "No rating",
|
||||
"local_trader": "Local Trader",
|
||||
"local_trader_new": "New",
|
||||
"login": "Login",
|
||||
"logout": "logout",
|
||||
"mycont": "My contracts",
|
||||
"logout": "Logout",
|
||||
"mycont": "My Contracts",
|
||||
"offer_accept": "Accept offer",
|
||||
"offer_account_finish": "Looks like you didn't finish setting up account on HodlHodl. Would you like to finish setup now?",
|
||||
"offer_choosemethod": "Choose payment method",
|
||||
"offer_account_finish": "It looks like you didn’t finish setting up an account on Hodl Hodl. Would you like to finish setup now?",
|
||||
"offer_choosemethod": "Choose Payment Method",
|
||||
"offer_confirmations": "confirmations",
|
||||
"offer_minmax": "Min/Max",
|
||||
"offer_minutes": "Min",
|
||||
"offer_promt_fiat": "How much {currency} do you want to buy?",
|
||||
"offer_promt_fiat_e": "For example, 100",
|
||||
"offer_window": "window",
|
||||
"p2p": "Buy Bitcoin on a p2p exchange"
|
||||
"offer_window": "Window",
|
||||
"p2p": "Buy Bitcoin on a Peer-to-Peer Exchange"
|
||||
},
|
||||
"lnd": {
|
||||
"errorInvoiceExpired": "Invoice expired",
|
||||
"exchange": "Exchange",
|
||||
"expired": "Expired",
|
||||
"expiredLow": "expired",
|
||||
"expiredLow": "Expired",
|
||||
"expiresIn": "Expires: {time}",
|
||||
"payButton": "Pay",
|
||||
"placeholder": "Invoice",
|
||||
|
@ -105,26 +105,26 @@
|
|||
"refill_create": "In order to proceed, please create a Bitcoin wallet to refill with.",
|
||||
"refill_external": "Refill with External Wallet",
|
||||
"refill_lnd_balance": "Refill Lightning Wallet Balance",
|
||||
"sameWalletAsInvoiceError": "You cannot pay an invoice with the same wallet used to create it.",
|
||||
"sameWalletAsInvoiceError": "You can’t pay an invoice with the same wallet used to create it.",
|
||||
"title": "Manage Funds"
|
||||
},
|
||||
"lndViewInvoice": {
|
||||
"additional_info": "Additional Information",
|
||||
"for": "For:",
|
||||
"lightning_invoice": "Lightning Invoice",
|
||||
"has_been_paid": "This invoice has been paid for",
|
||||
"has_been_paid": "This invoice has been paid.",
|
||||
"open_direct_channel": "Open direct channel with this node:",
|
||||
"please_pay": "Please pay",
|
||||
"preimage": "Preimage",
|
||||
"sats": "sats",
|
||||
"wasnt_paid_and_expired": "This invoice was not paid for and has expired."
|
||||
"sats": "sats.",
|
||||
"wasnt_paid_and_expired": "This invoice was not paid and has expired."
|
||||
},
|
||||
"plausibledeniability": {
|
||||
"create_fake_storage": "Create Encrypted Storage",
|
||||
"create_password": "Create a password",
|
||||
"create_password_explanation": "Password for fake storage should not match the password for your main storage.",
|
||||
"help": "Under certain circumstances, you might be forced to disclose a password. To keep your coins safe, BlueWallet can create another encrypted storage with a different password. Under pressure, you can disclose this password to a 3rd party. If entered in BlueWallet, it will unlock a new “fake” storage. This will seem legit to the third party, but it will secretly keep your main storage with coins safe.",
|
||||
"help2": "The new storage will be fully functional, and you can store some minimum amounts there so it looks more believable.",
|
||||
"create_password_explanation": "Password for the fake storage should not match the password for your main storage.",
|
||||
"help": "Under certain circumstances, you might be forced to disclose a password. To keep your coins safe, BlueWallet can create another encrypted storage with a different password. Under pressure, you may disclose this password to a third party. If entered in BlueWallet, it will unlock a new “fake” storage. This will seem legit to the third party, but it will secretly keep your main storage with coins safe.",
|
||||
"help2": "The new storage will be fully functional, and you can store some minimum amounts there so that it looks more believable.",
|
||||
"password_should_not_match": "Password is currently in use. Please try a different password.",
|
||||
"passwords_do_not_match": "Passwords do not match. Please try again.",
|
||||
"retype_password": "Re-type password",
|
||||
|
@ -132,21 +132,21 @@
|
|||
"title": "Plausible Deniability"
|
||||
},
|
||||
"pleasebackup": {
|
||||
"ask": "Have you saved your wallet's backup phrase? This backup phrase is required to access your funds in case you lose this device. Without the backup phrase, your funds will be permanently lost.",
|
||||
"ask": "Have you saved your wallet’s backup phrase? This backup phrase is required to access your funds in case you lose this device. Without the backup phrase, your funds will be permanently lost.",
|
||||
"ask_no": "No, I have not",
|
||||
"ask_yes": "Yes, I have",
|
||||
"ok": "OK, I wrote this down.",
|
||||
"ok_lnd": "OK, I have saved it.",
|
||||
"text": "Please take a moment to write down this mnemonic phrase on a piece of paper. It's your backup you can use to restore the wallet on other device.",
|
||||
"text": "Please take a moment to write down this mnemonic phrase on a piece of paper. It’s your backup you can use to restore the wallet on other device.",
|
||||
"text_lnd": "Please save this wallet backup. It allows you to restore the wallet in case of loss.",
|
||||
"text_lnd2": "This wallet is hosted by BlueWallet.",
|
||||
"title": "Your wallet is created"
|
||||
"title": "Your wallet has been created."
|
||||
},
|
||||
"receive": {
|
||||
"details_create": "Create",
|
||||
"details_label": "Description",
|
||||
"details_setAmount": "Receive with amount",
|
||||
"details_share": "share",
|
||||
"details_share": "Share",
|
||||
"header": "Receive"
|
||||
},
|
||||
"send": {
|
||||
|
@ -164,28 +164,28 @@
|
|||
"create_fee": "Fee",
|
||||
"create_memo": "Memo",
|
||||
"create_satoshi_per_byte": "Satoshi per byte",
|
||||
"create_this_is_hex": "This is your transaction's hex—signed and ready to be broadcasted to the network.",
|
||||
"create_this_is_hex": "This is your transaction’s hex—signed and ready to be broadcasted to the network.",
|
||||
"create_to": "To",
|
||||
"create_tx_size": "Transaction Size",
|
||||
"create_verify": "Verify on coinb.in",
|
||||
"details_add_rec_add": "Add Recipient",
|
||||
"details_add_rec_rem": "Remove Recipient",
|
||||
"details_address": "Address",
|
||||
"details_address_field_is_not_valid": "Address field is not valid",
|
||||
"details_address_field_is_not_valid": "The address is not valid.",
|
||||
"details_adv_fee_bump": "Allow Fee Bump",
|
||||
"details_adv_full": "Use Full Balance",
|
||||
"details_adv_full_remove": "Your other recipients will be removed from this transaction.",
|
||||
"details_adv_full_sure": "Are you sure you want to use your wallet's full balance for this transaction?",
|
||||
"details_adv_full_sure": "Are you sure you want to use your wallet’s full balance for this transaction?",
|
||||
"details_adv_import": "Import Transaction",
|
||||
"details_amount_field_is_not_valid": "Amount field is not valid",
|
||||
"details_amount_field_is_not_valid": "The amount is not valid.",
|
||||
"details_amount_field_is_less_than_minimum_amount_sat": "The specified amount is too small. Please enter an amount greater than 500 sats.",
|
||||
"details_create": "Create Invoice",
|
||||
"details_error_decode": "Error: Unable to decode Bitcoin address",
|
||||
"details_fee_field_is_not_valid": "Fee field is not valid",
|
||||
"details_fee_field_is_not_valid": "The fee is not valid.",
|
||||
"details_next": "Next",
|
||||
"details_no_maximum": "The selected wallet does not support automatic maximum balance calculation. Are you sure to want to select this wallet?",
|
||||
"details_no_multiple": "The selected wallet does not support sending Bitcoin to multiple recipients. Are you sure to want to select this wallet?",
|
||||
"details_no_signed_tx": "The selected file does not contain a transaction that can be imported.",
|
||||
"details_no_maximum": "The selected wallet doesn’t support automatic maximum balance calculation. Are you sure to want to select this wallet?",
|
||||
"details_no_multiple": "The selected wallet doesn’t support sending bitcoin to multiple recipients. Are you sure to want to select this wallet?",
|
||||
"details_no_signed_tx": "The selected file doesn’t contain a transaction that can be imported.",
|
||||
"details_note_placeholder": "Note to Self",
|
||||
"details_scan": "Scan",
|
||||
"details_total_exceeds_balance": "The sending amount exceeds the available balance.",
|
||||
|
@ -202,7 +202,7 @@
|
|||
"fee_custom": "Custom",
|
||||
"fee_fast": "Fast",
|
||||
"fee_medium": "Medium",
|
||||
"fee_replace_min": "The total fee rate (satoshi per byte) you want to pay should be higher than {min} sat/byte",
|
||||
"fee_replace_min": "The total fee rate (satoshi per byte) you want to pay should be higher than {min} sat/byte.",
|
||||
"fee_satbyte": "in sat/byte",
|
||||
"fee_slow": "Slow",
|
||||
"header": "Send",
|
||||
|
@ -223,8 +223,8 @@
|
|||
"no_tx_signing_in_progress": "There is no transaction signing in progress.",
|
||||
"psbt_tx_open": "Open Signed Transaction",
|
||||
"psbt_tx_scan": "Scan Signed Transaction",
|
||||
"qr_error_no_qrcode": "The selected image does not contain a QR Code.",
|
||||
"qr_error_no_wallet": "The selected file does not contain a wallet that can be imported.",
|
||||
"qr_error_no_qrcode": "The selected image doesn’t contain a QR Code.",
|
||||
"qr_error_no_wallet": "The selected file doesn’t contain a wallet that can be imported.",
|
||||
"success_done": "Done",
|
||||
"txSaved": "The transaction file ({filePath}) has been saved in your Downloads folder.",
|
||||
"problem_with_psbt": "Problem with PSBT"
|
||||
|
@ -256,15 +256,15 @@
|
|||
"default_wallets": "View All Wallets",
|
||||
"electrum_connected": "Connected",
|
||||
"electrum_connected_not": "Not Connected",
|
||||
"electrum_error_connect": "Can't connect to provided Electrum server",
|
||||
"electrum_host": "Host, for example {example}",
|
||||
"electrum_error_connect": "Can’t connect to the provided Electrum server",
|
||||
"electrum_host": "Host, for example, {example}",
|
||||
"electrum_port": "TCP port, usually {example}",
|
||||
"electrum_port_ssl": "SSL port, usually {example}",
|
||||
"electrum_saved": "Your changes have been saved successfully. Restart may be required for changes to take effect.",
|
||||
"set_electrum_server_as_default": "Set {server} as default electrum server?",
|
||||
"set_lndhub_as_default": "Set {url} as default LNDHub server?",
|
||||
"electrum_saved": "Your changes have been saved successfully. Restarting BlueWallet may be required for the changes to take effect.",
|
||||
"set_electrum_server_as_default": "Set {server} as the default Electrum server?",
|
||||
"set_lndhub_as_default": "Set {url} as the default LNDHub server?",
|
||||
"electrum_settings": "Electrum Settings",
|
||||
"electrum_settings_explain": "Set to blank to use default",
|
||||
"electrum_settings_explain": "Leave blank to use the default settings.",
|
||||
"electrum_status": "Status",
|
||||
"electrum_clear_alert_title": "Clear history?",
|
||||
"electrum_clear_alert_message": "Do you want to clear electrum servers history?",
|
||||
|
@ -284,17 +284,17 @@
|
|||
"encrypt_use_expl": "{type} will be used to confirm your identity prior to making a transaction, unlocking, exporting, or deleting a wallet. {type} will not be used to unlock an encrypted storage.",
|
||||
"general": "General",
|
||||
"general_adv_mode": "Advanced Mode",
|
||||
"general_adv_mode_e": "When enabled, you will see advanced options such as different wallet types, the ability to specify the LNDHub instance you wish to connect to and custom entropy during wallet creation.",
|
||||
"general_adv_mode_e": "When enabled, you will see advanced options such as different wallet types, the ability to specify the LNDHub instance you wish to connect to, and custom entropy during wallet creation.",
|
||||
"general_continuity": "Continuity",
|
||||
"general_continuity_e": "When enabled, you will be able to view selected wallets, and transactions, using your other Apple iCloud connected devices.",
|
||||
"groundcontrol_explanation": "GroundControl is a free opensource push notifications server for Bitcoin wallets. You can install your own GroundControl server and put its URL here to not rely on BlueWallet's infrastructure. Leave blank to use default",
|
||||
"groundcontrol_explanation": "GroundControl is a free, open-source push notifications server for Bitcoin wallets. You can install your own GroundControl server and put its URL here to not rely on BlueWallet’s infrastructure. Leave blank to use GroundControl’s default server.",
|
||||
"header": "Settings",
|
||||
"language": "Language",
|
||||
"language_restart": "When selecting a new language, restarting BlueWallet may be required for the change to take effect.",
|
||||
"lightning_error_lndhub_uri": "Not a valid LNDHub URI",
|
||||
"lightning_saved": "Your changes have been saved successfully",
|
||||
"lightning_saved": "Your changes have been saved successfully.",
|
||||
"lightning_settings": "Lightning Settings",
|
||||
"lightning_settings_explain": "To connect to your own LND node please install LNDHub and put its URL here in settings. Leave blank to use BlueWallet's LNDHub (lndhub.io). Wallets created after saving changes will connect to the specified LNDHub.",
|
||||
"lightning_settings_explain": "To connect to your own LND node, please install LNDHub and put its URL here in settings. Leave blank to use BlueWallet’s LNDHub (lndhub.io). Wallets created after saving changes will connect to the specified LNDHub.",
|
||||
"network": "Network",
|
||||
"network_broadcast": "Broadcast Transaction",
|
||||
"network_electrum": "Electrum Server",
|
||||
|
@ -302,16 +302,16 @@
|
|||
"notifications": "Notifications",
|
||||
"open_link_in_explorer" : "Open link in explorer",
|
||||
"password": "Password",
|
||||
"password_explain": "Create the password you will use to decrypt the storage",
|
||||
"passwords_do_not_match": "Passwords do not match",
|
||||
"password_explain": "Create the password you will use to decrypt the storage.",
|
||||
"passwords_do_not_match": "Passwords do not match.",
|
||||
"plausible_deniability": "Plausible Deniability",
|
||||
"privacy": "Privacy",
|
||||
"privacy_read_clipboard": "Read Clipboard",
|
||||
"privacy_read_clipboard_alert": "BlueWallet will display shortcuts for handling an invoice or address found in your clipboard.",
|
||||
"privacy_system_settings": "System Settings",
|
||||
"privacy_quickactions": "Wallet Shortcuts",
|
||||
"privacy_quickactions_explanation": "Touch and hold the BlueWallet app icon on your Home Screen to quickly view your wallet's balance.",
|
||||
"privacy_clipboard_explanation": "Provide shortcuts if an address, or invoice, is found in your clipboard.",
|
||||
"privacy_quickactions_explanation": "Touch and hold the BlueWallet app icon on your Home Screen to quickly view your wallet’s balance.",
|
||||
"privacy_clipboard_explanation": "Provide shortcuts if an address or invoice is found in your clipboard.",
|
||||
"push_notifications": "Push Notifications",
|
||||
"retype_password": "Re-type password",
|
||||
"save": "Save",
|
||||
|
@ -323,7 +323,7 @@
|
|||
},
|
||||
"notifications": {
|
||||
"would_you_like_to_receive_notifications": "Would you like to receive notifications when you get incoming payments?",
|
||||
"no_and_dont_ask": "No, and don't ask me again",
|
||||
"no_and_dont_ask": "No, and don’t ask me again",
|
||||
"ask_me_later": "Ask me later"
|
||||
},
|
||||
"transactions": {
|
||||
|
@ -332,8 +332,8 @@
|
|||
"cancel_title": "Cancel this transaction (RBF)",
|
||||
"confirmations_lowercase": "{confirmations} confirmations",
|
||||
"cpfp_create": "Create",
|
||||
"cpfp_exp": "We will create another transaction that spends your unconfirmed transaction. The total fee will be higher than the original transaction fee, so it should be mined faster. This is called CPFP - Child Pays For Parent.",
|
||||
"cpfp_no_bump": "This transaction is not bumpable",
|
||||
"cpfp_exp": "We will create another transaction that spends your unconfirmed transaction. The total fee will be higher than the original transaction fee, so it should be mined faster. This is called CPFP—Child Pays for Parent.",
|
||||
"cpfp_no_bump": "This transaction is not bumpable.",
|
||||
"cpfp_title": "Bump Fee (CPFP)",
|
||||
"details_balance_hide": "Hide Balance",
|
||||
"details_balance_show": "Show Balance",
|
||||
|
@ -352,7 +352,7 @@
|
|||
"list_conf": "Conf: {number}",
|
||||
"pending": "Pending",
|
||||
"list_title": "Transactions",
|
||||
"rbf_explain": "We will replace this transaction with the one with a higher fee, so it should be mined faster. This is called RBF - Replace By Fee.",
|
||||
"rbf_explain": "We will replace this transaction with one with a higher fee, so it should be mined faster. This is called RBF—Replace by Fee.",
|
||||
"rbf_title": "Bump Fee (RBF)",
|
||||
"status_bump": "Bump Fee",
|
||||
"status_cancel": "Cancel Transaction",
|
||||
|
@ -371,7 +371,7 @@
|
|||
"add_lightning": "Lightning",
|
||||
"add_lightning_explain": "For spending with instant transactions",
|
||||
"add_lndhub": "Connect to your LNDHub",
|
||||
"add_lndhub_error": "The provided node address is not valid LNDHub node.",
|
||||
"add_lndhub_error": "The provided node address is not a valid LNDHub node.",
|
||||
"add_lndhub_placeholder": "Your Node Address",
|
||||
"add_or": "or",
|
||||
"add_title": "Add Wallet",
|
||||
|
@ -384,13 +384,13 @@
|
|||
"details_are_you_sure": "Are you sure?",
|
||||
"details_connected_to": "Connected to",
|
||||
"details_del_wb": "Wallet Balance",
|
||||
"details_del_wb_err": "The provided balance amount does not match this wallet's balance. Please try again.",
|
||||
"details_del_wb_q": "This wallet has a balance. Before proceeding, please be aware that you will not be able to recover the funds without this wallet's seed phrase. In order to avoid accidental removal this wallet, please enter your wallet's balance of {balance} satoshis.",
|
||||
"details_del_wb_err": "The provided balance amount doesn’t match this wallet’s balance. Please try again.",
|
||||
"details_del_wb_q": "This wallet has a balance. Before proceeding, please be aware that you will not be able to recover the funds without this wallet’s seed phrase. In order to avoid accidental removal this wallet, please enter your wallet’s balance of {balance} satoshis.",
|
||||
"details_delete": "Delete",
|
||||
"details_delete_wallet": "Delete Wallet",
|
||||
"details_derivation_path": "derivation path",
|
||||
"details_display": "Display in Wallets List",
|
||||
"details_export_backup": "Export / Backup",
|
||||
"details_export_backup": "Export/Backup",
|
||||
"details_marketplace": "Marketplace",
|
||||
"details_master_fingerprint": "Master Fingerprint",
|
||||
"details_ms_l": "{m} of {n} legacy (p2sh)",
|
||||
|
@ -409,7 +409,7 @@
|
|||
"export_title": "Wallet Export",
|
||||
"import_do_import": "Import",
|
||||
"import_error": "Failed to import. Please make sure that the provided data is valid.",
|
||||
"import_explanation": "Write here your mnemonic, private key, WIF, or anything you've got. BlueWallet will do its best to guess the correct format and import your wallet.",
|
||||
"import_explanation": "Write here your mnemonic, private key, WIF, or anything you’ve got. BlueWallet will do its best to guess the correct format and import your wallet.",
|
||||
"import_file": "Import File",
|
||||
"import_imported": "Imported",
|
||||
"import_placeholder_fail": "Wallet Import",
|
||||
|
@ -419,14 +419,14 @@
|
|||
"import_title": "Import",
|
||||
"list_create_a_button": "Add now",
|
||||
"list_create_a_wallet": "Add a wallet",
|
||||
"list_create_a_wallet_text": "It's free and you can create \nas many as you like.",
|
||||
"list_empty_txs1": "Your transactions will appear here",
|
||||
"list_create_a_wallet_text": "It’s free and you can create \nas many as you like.",
|
||||
"list_empty_txs1": "Your transactions will appear here.",
|
||||
"list_empty_txs1_lightning": "Lightning wallet should be used for your daily transactions. Fees are unfairly cheap and the speed is blazing fast.",
|
||||
"list_empty_txs2": "Start with your wallet",
|
||||
"list_empty_txs2_lightning": "\nTo start using it tap on “manage funds” and topup your balance.",
|
||||
"list_header": "A wallet represents a pair of keys, one private and one you can share to receive coins.",
|
||||
"list_empty_txs2_lightning": "\nTo start using it, tap on Manage Funds and topup your balance.",
|
||||
"list_header": "A wallet represents a pair of keys: one private and one you can share to receive coins.",
|
||||
"list_import_error": "An error was encountered when attempting to import this wallet.",
|
||||
"list_import_problem": "There was a problem importing this wallet",
|
||||
"list_import_problem": "There was a problem importing this wallet.",
|
||||
"list_latest_transaction": "Latest Transaction",
|
||||
"list_ln_browser": "LApp Browser",
|
||||
"list_long_choose": "Choose Photo",
|
||||
|
@ -437,9 +437,9 @@
|
|||
"list_title": "Wallets",
|
||||
"list_tryagain": "Try again",
|
||||
"no_ln_wallet_error": "Before paying a Lightning invoice, you must first add a Lightning wallet.",
|
||||
"looks_like_bip38": "This looks like a password-protected private key (BIP38)",
|
||||
"reorder_title": "Reorder Wallets",
|
||||
"please_continue_scanning": "Please continue scanning",
|
||||
"looks_like_bip38": "This looks like a password-protected private key (BIP38).",
|
||||
"reorder_title": "Re-order Wallets",
|
||||
"please_continue_scanning": "Please continue scanning.",
|
||||
"scan_error": "Scan Error",
|
||||
"select_no_bitcoin": "There are currently no Bitcoin wallets available.",
|
||||
"select_no_bitcoin_exp": "A Bitcoin wallet is required to refill Lightning wallets. Please create or import one.",
|
||||
|
@ -447,7 +447,7 @@
|
|||
"take_photo": "Take Photo",
|
||||
"xpub_copiedToClipboard": "Copied to clipboard.",
|
||||
"pull_to_refresh": "Pull to Refresh",
|
||||
"warning_do_not_disclose": "Warning! Do not disclose",
|
||||
"warning_do_not_disclose": "Warning! Do not disclose.",
|
||||
"add_ln_wallet_first": "You must first add a Lightning wallet.",
|
||||
"identity_pubkey": "Identity Pubkey",
|
||||
"xpub_title": "Wallet XPUB"
|
||||
|
@ -457,7 +457,7 @@
|
|||
"default_label": "Multisig Vault",
|
||||
"multisig_vault_explain": "Best security for large amounts",
|
||||
"provide_signature": "Provide signature",
|
||||
"vault_key": "Vault key {number}",
|
||||
"vault_key": "Vault Key {number}",
|
||||
"required_keys_out_of_total": "Required keys out of the total",
|
||||
"fee": "Fee: {number}",
|
||||
"fee_btc": "{number} BTC",
|
||||
|
@ -472,7 +472,7 @@
|
|||
"scan_or_import_file": "Scan or import file",
|
||||
"export_coordination_setup": "Export Coordination Setup",
|
||||
"cosign_this_transaction": "Co-sign this transaction?",
|
||||
"lets_start": "Let's start",
|
||||
"lets_start": "Let’s start",
|
||||
"create": "Create",
|
||||
"provide_key": "Provide key",
|
||||
"native_segwit_title": "Best practice",
|
||||
|
@ -492,41 +492,41 @@
|
|||
"of": "of",
|
||||
"wallet_type": "Wallet Type",
|
||||
"view_key": "View",
|
||||
"invalid_mnemonics": "This mnemonic phrase doesn’t seem to be valid",
|
||||
"invalid_mnemonics": "This mnemonic phrase doesn’t seem to be valid.",
|
||||
"invalid_cosigner": "Not a valid cosigner data",
|
||||
"not_a_multisignature_xpub": "This is not an xpub from multisignature wallet!",
|
||||
"invalid_cosigner_format": "Incorrect cosigner: this is not a cosigner for {format} format",
|
||||
"not_a_multisignature_xpub": "This is not an XPUB from a multisignature wallet!",
|
||||
"invalid_cosigner_format": "Incorrect cosigner: This is not a cosigner for {format} format.",
|
||||
"create_new_key": "Create New",
|
||||
"scan_or_open_file": "Scan or open file",
|
||||
"i_have_mnemonics": "I have a seed for this key...",
|
||||
"please_write_down_mnemonics": "Please write down this mnemonic phrase on paper. Don't worry, you can write it down later.",
|
||||
"i_wrote_it_down": "Ok, I wrote it down.",
|
||||
"type_your_mnemonics": "Insert a seed to import your existing vault key",
|
||||
"this_is_cosigners_xpub": "This is the cosigner's XPUB, ready to be imported into another wallet. It is safe to share it.",
|
||||
"wallet_key_created": "Your vault key was created. Take a moment to safely backup your mnemonic seed",
|
||||
"are_you_sure_seed_will_be_lost": "Are you sure? Your mnemonic seed will be lost if you dont have a backup",
|
||||
"forget_this_seed": "Forget this seed and use XPUB",
|
||||
"invalid_fingerprint": "Fingerprint for this seed doesnt match this cosigners fingerprint",
|
||||
"view_edit_cosigners": "View/edit cosigners",
|
||||
"i_have_mnemonics": "I have a seed for this key.",
|
||||
"please_write_down_mnemonics": "Please write down this mnemonic phrase on paper. Don’t worry, you can write it down later.",
|
||||
"i_wrote_it_down": "OK, I wrote it down.",
|
||||
"type_your_mnemonics": "Insert a seed to import your existing Vault key.",
|
||||
"this_is_cosigners_xpub": "This is the cosigner’s XPUB—ready to be imported into another wallet. It is safe to share it.",
|
||||
"wallet_key_created": "Your Vault key was created. Take a moment to safely backup your mnemonic seed.",
|
||||
"are_you_sure_seed_will_be_lost": "Are you sure? Your mnemonic seed will be lost if you don’t have a backup.",
|
||||
"forget_this_seed": "Forget this seed and use the XPUB instead.",
|
||||
"invalid_fingerprint": "Fingerprint for this seed doesn’t match this cosigner’s fingerprint.",
|
||||
"view_edit_cosigners": "View/Edit Cosigners",
|
||||
"this_cosigner_is_already_imported": "This cosigner is already imported.",
|
||||
"export_signed_psbt": "Export Signed PSBT",
|
||||
"input_fp": "Enter fingerprint",
|
||||
"input_fp_explain": "Skip to use the default one (00000000)",
|
||||
"input_path": "Input derivation path",
|
||||
"input_path": "Insert Derivation Path",
|
||||
"input_path_explain": "Skip to use the default one ({default})",
|
||||
"ms_help": "Help",
|
||||
"ms_help_title": "How Multisig Vaults work. Tips and tricks",
|
||||
"ms_help_text": "A wallet with multiple keys, to exponentially increase security or for shared custody.",
|
||||
"ms_help_title1": "Multiple devices are advised",
|
||||
"ms_help_1": "The Vault will work with other BlueWallet apps and PSBT compatible wallets, like Electrum, Specter, Coldcard, Cobo vault, etc.",
|
||||
"ms_help_title": "How Multisig Vaults Work: Tips and Tricks",
|
||||
"ms_help_text": "A wallet with multiple keys, for increased security or shared custody",
|
||||
"ms_help_title1": "Multiple devices are advised.",
|
||||
"ms_help_1": "The Vault will work with other BlueWallet apps and PSBT compatible wallets, such as Electrum, Specter, Coldcard, Cobo Vault, etc.",
|
||||
"ms_help_title2": "Editing Keys",
|
||||
"ms_help_2": "You can create all Vault keys in this device, and remove or edit these keys later. Having all keys on the same device has the equivalent security of a regular Bitcoin wallet.",
|
||||
"ms_help_2": "You can create all Vault keys in this device and remove or edit them keys later. Having all keys on the same device has the equivalent security of a regular Bitcoin wallet.",
|
||||
"ms_help_title3": "Vault Backups",
|
||||
"ms_help_3": "On the wallet options you will find your Vault backup and watch-only backup. This backup is like a map to your wallet. It is essential for wallet recovery in case you lose one of your seeds.",
|
||||
"ms_help_title4": "Importing Vaults",
|
||||
"ms_help_4": "To import a Multisig, use your multisig backup file and use the import feature. If you only have extended keys and seeds, you can use the individual import fields on the Add Vault flow.",
|
||||
"ms_help_title5": "Advanced options",
|
||||
"ms_help_5": "By default BlueWallet will generate a 2of3 Vault. To create a different quorum or to change the address type, activate the advanced options in the Settings."
|
||||
"ms_help_4": "To import a multisig, use your backup file and the Import feature. If you only have seeds and XPUBs, you can use the individual Import button when creating Vault keys.",
|
||||
"ms_help_title5": "Advanced Mode",
|
||||
"ms_help_5": "By default, BlueWallet will generate a 2-of-3 Vault. To create a different quorum or change the address type, activate Advanced Mode in the Settings."
|
||||
},
|
||||
"is_it_my_address": {
|
||||
"title": "Is it my address?",
|
||||
|
@ -538,18 +538,18 @@
|
|||
"cc": {
|
||||
"change": "Change",
|
||||
"coins_selected": "Coins Selected ({number})",
|
||||
"empty": "This wallet doesn't have any coins at the moment",
|
||||
"empty": "This wallet doesn’t have any coins at the moment.",
|
||||
"freeze": "Freeze",
|
||||
"freezeLabel": "Freeze",
|
||||
"freezeLabel_un": "Unfreeze",
|
||||
"header": "Coin Control",
|
||||
"use_coin": "Use Coin",
|
||||
"use_coins": "Use Coins",
|
||||
"tip": "Allows you to see, label, freeze or select coins for improved wallet management. You can select multiple coins by tapping on the colored circles."
|
||||
"tip": "This feature allows you to see, label, freeze or select coins for improved wallet management. You can select multiple coins by tapping on the colored circles."
|
||||
},
|
||||
"units": {
|
||||
"BTC": "BTC",
|
||||
"MAX": "MAX",
|
||||
"MAX": "Max",
|
||||
"sat_byte": "sat/byte",
|
||||
"sats": "sats"
|
||||
}
|
||||
|
|
73
package-lock.json
generated
73
package-lock.json
generated
|
@ -8338,6 +8338,25 @@
|
|||
"node-int64": "^0.4.0"
|
||||
}
|
||||
},
|
||||
"bson": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/bson/-/bson-4.2.2.tgz",
|
||||
"integrity": "sha512-9fX257PVHAUpiRGmY3356RVWKQxLA73BgjA/x5MGuJkTEMeG7yzjuBrsiFB67EXRJnFVKrbJY9t/M+oElKYktQ==",
|
||||
"requires": {
|
||||
"buffer": "^5.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"requires": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz",
|
||||
|
@ -17413,9 +17432,9 @@
|
|||
"optional": true
|
||||
},
|
||||
"needle": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz",
|
||||
"integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==",
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz",
|
||||
"integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==",
|
||||
"requires": {
|
||||
"debug": "^3.2.6",
|
||||
"iconv-lite": "^0.4.4",
|
||||
|
@ -19671,22 +19690,24 @@
|
|||
}
|
||||
},
|
||||
"realm": {
|
||||
"version": "6.1.4",
|
||||
"resolved": "https://registry.npmjs.org/realm/-/realm-6.1.4.tgz",
|
||||
"integrity": "sha512-5EWKlxYa0JZMl2EnqEz8S5NIFZJswLQ1FPMbOqDWVHbkAZfcrCyGCQdbWwWvyhaa+KK0qg8Q39EY0VXLYuWbqw==",
|
||||
"version": "10.2.0",
|
||||
"resolved": "https://registry.npmjs.org/realm/-/realm-10.2.0.tgz",
|
||||
"integrity": "sha512-MR2oWV4QtYd/aRhNYdniFqXom1hVzXeS2FsYv9JDgkYcxWJlq2cFsI2x3094i+LwNFRJZZtSxahc3xFuRCZcHg==",
|
||||
"requires": {
|
||||
"bson": "^4.2.0",
|
||||
"command-line-args": "^4.0.6",
|
||||
"deepmerge": "2.1.0",
|
||||
"deprecated-react-native-listview": "0.0.6",
|
||||
"fs-extra": "^4.0.3",
|
||||
"https-proxy-agent": "^2.2.4",
|
||||
"ini": "^1.3.5",
|
||||
"node-addon-api": "^3.0.0",
|
||||
"node-fetch": "^1.7.3",
|
||||
"ini": "^1.3.7",
|
||||
"node-addon-api": "^3.1.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"node-machine-id": "^1.1.10",
|
||||
"node-pre-gyp": "^0.15.0",
|
||||
"progress": "^2.0.3",
|
||||
"prop-types": "^15.6.2",
|
||||
"realm-network-transport": "^0.7.0",
|
||||
"request": "^2.88.0",
|
||||
"stream-counter": "^1.0.0",
|
||||
"sync-request": "^3.0.1",
|
||||
|
@ -19724,17 +19745,27 @@
|
|||
"debug": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
||||
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
||||
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
|
||||
"requires": {
|
||||
"encoding": "^0.1.11",
|
||||
"is-stream": "^1.0.1"
|
||||
}
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"realm-network-transport": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/realm-network-transport/-/realm-network-transport-0.7.0.tgz",
|
||||
"integrity": "sha512-w81+N+YrFBkWZWFlspDPrpot50xCkfr+AB+NCQjsTI6OfVF0igqhLfl3frwrSS61fQiL5XrZrFYFV6BWU0F+iA==",
|
||||
"requires": {
|
||||
"abort-controller": "^3.0.0",
|
||||
"node-fetch": "^2.6.0"
|
||||
}
|
||||
},
|
||||
"regenerate": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
|
||||
|
@ -20149,6 +20180,10 @@
|
|||
"object-assign": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"scryptsy": {
|
||||
"version": "file:https:/registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz",
|
||||
"integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w=="
|
||||
},
|
||||
"secp256k1": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz",
|
||||
|
@ -20903,9 +20938,9 @@
|
|||
"integrity": "sha512-QqUMtWlnzArTvGyjVnAE5fAiXEm2Psvk/BlE7vWx2/dIEWMsAhcNPz7iW6WTiSM8h1fjtCkRMsaWBS1j6rpGBg=="
|
||||
},
|
||||
"tar": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz",
|
||||
"integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
|
||||
"integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
|
||||
"requires": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
|
|
|
@ -166,7 +166,7 @@
|
|||
"react-native-widget-center": "git+https://github.com/BlueWallet/react-native-widget-center.git#e2e9a9038b76d096bf929a87105a97a0a7095001",
|
||||
"react-test-render": "1.1.2",
|
||||
"readable-stream": "3.6.0",
|
||||
"realm": "6.1.4",
|
||||
"realm": "10.2.0",
|
||||
"rn-nodeify": "10.2.0",
|
||||
"scryptsy": "file:blue_modules/scryptsy",
|
||||
"secure-random": "1.1.2",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import React, { useContext, useEffect, useRef, useState } from 'react';
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import { View, ActivityIndicator, Text, TouchableOpacity, StyleSheet, StatusBar } from 'react-native';
|
||||
import { Icon } from 'react-native-elements';
|
||||
import { useNavigation, useRoute, useTheme } from '@react-navigation/native';
|
||||
|
@ -28,16 +28,16 @@ const buttonStatus = Object.freeze({
|
|||
notPossible: 3,
|
||||
});
|
||||
|
||||
const TransactionsStatus = () => {
|
||||
const TransactionStatus = () => {
|
||||
const { setSelectedWallet, wallets, txMetadata, getTransactions } = useContext(BlueStorageContext);
|
||||
const { hash } = useRoute().params;
|
||||
const { hash, walletID } = useRoute().params;
|
||||
const { navigate, setOptions } = useNavigation();
|
||||
const { colors } = useTheme();
|
||||
const wallet = useRef();
|
||||
const wallet = wallets.find(w => w.getID() === walletID);
|
||||
const [isCPFPPossible, setIsCPFPPossible] = useState();
|
||||
const [isRBFBumpFeePossible, setIsRBFBumpFeePossible] = useState();
|
||||
const [isRBFCancelPossible, setIsRBFCancelPossible] = useState();
|
||||
const [tx, setTX] = useState();
|
||||
const tx = getTransactions(null, Infinity, true).find(transactionHash => transactionHash.hash === hash);
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const stylesHook = StyleSheet.create({
|
||||
root: {
|
||||
|
@ -76,27 +76,6 @@ const TransactionsStatus = () => {
|
|||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [colors]);
|
||||
|
||||
useEffect(() => {
|
||||
for (const w of wallets) {
|
||||
for (const t of w.getTransactions()) {
|
||||
if (t.hash === hash) {
|
||||
console.log('tx', hash, 'belongs to', w.getLabel());
|
||||
wallet.current = w;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const tx of getTransactions(null, Infinity, true)) {
|
||||
if (tx.hash === hash) {
|
||||
setTX(tx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [hash]);
|
||||
|
||||
const initialState = async () => {
|
||||
try {
|
||||
await checkPossibilityOfCPFP();
|
||||
|
@ -118,7 +97,7 @@ const TransactionsStatus = () => {
|
|||
|
||||
useEffect(() => {
|
||||
if (wallet) {
|
||||
setSelectedWallet(wallet.current.getID());
|
||||
setSelectedWallet(wallet.getID());
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [wallet]);
|
||||
|
@ -128,11 +107,11 @@ const TransactionsStatus = () => {
|
|||
}, []);
|
||||
|
||||
const checkPossibilityOfCPFP = async () => {
|
||||
if (!wallet.current.allowRBF()) {
|
||||
if (!wallet.allowRBF()) {
|
||||
return setIsCPFPPossible(buttonStatus.notPossible);
|
||||
}
|
||||
|
||||
const cpfbTx = new HDSegwitBech32Transaction(null, tx.hash, wallet.current);
|
||||
const cpfbTx = new HDSegwitBech32Transaction(null, tx.hash, wallet);
|
||||
if ((await cpfbTx.isToUsTransaction()) && (await cpfbTx.getRemoteConfirmationsNum()) === 0) {
|
||||
return setIsCPFPPossible(buttonStatus.possible);
|
||||
} else {
|
||||
|
@ -141,11 +120,11 @@ const TransactionsStatus = () => {
|
|||
};
|
||||
|
||||
const checkPossibilityOfRBFBumpFee = async () => {
|
||||
if (!wallet.current.allowRBF()) {
|
||||
if (!wallet.allowRBF()) {
|
||||
return setIsRBFBumpFeePossible(buttonStatus.notPossible);
|
||||
}
|
||||
|
||||
const rbfTx = new HDSegwitBech32Transaction(null, tx.hash, wallet.current);
|
||||
const rbfTx = new HDSegwitBech32Transaction(null, tx.hash, wallet);
|
||||
if (
|
||||
(await rbfTx.isOurTransaction()) &&
|
||||
(await rbfTx.getRemoteConfirmationsNum()) === 0 &&
|
||||
|
@ -159,11 +138,11 @@ const TransactionsStatus = () => {
|
|||
};
|
||||
|
||||
const checkPossibilityOfRBFCancel = async () => {
|
||||
if (!wallet.current.allowRBF()) {
|
||||
if (!wallet.allowRBF()) {
|
||||
return setIsRBFCancelPossible(buttonStatus.notPossible);
|
||||
}
|
||||
|
||||
const rbfTx = new HDSegwitBech32Transaction(null, tx.hash, wallet.current);
|
||||
const rbfTx = new HDSegwitBech32Transaction(null, tx.hash, wallet);
|
||||
if (
|
||||
(await rbfTx.isOurTransaction()) &&
|
||||
(await rbfTx.getRemoteConfirmationsNum()) === 0 &&
|
||||
|
@ -179,21 +158,21 @@ const TransactionsStatus = () => {
|
|||
const navigateToRBFBumpFee = () => {
|
||||
navigate('RBFBumpFee', {
|
||||
txid: tx.hash,
|
||||
wallet: wallet.current,
|
||||
wallet: wallet,
|
||||
});
|
||||
};
|
||||
|
||||
const navigateToRBFCancel = () => {
|
||||
navigate('RBFCancel', {
|
||||
txid: tx.hash,
|
||||
wallet: wallet.current,
|
||||
wallet: wallet,
|
||||
});
|
||||
};
|
||||
|
||||
const navigateToCPFP = () => {
|
||||
navigate('CPFP', {
|
||||
txid: tx.hash,
|
||||
wallet: wallet.current,
|
||||
wallet: wallet,
|
||||
});
|
||||
};
|
||||
const navigateToTransactionDetials = () => {
|
||||
|
@ -290,9 +269,9 @@ const TransactionsStatus = () => {
|
|||
<BlueCard>
|
||||
<View style={styles.center}>
|
||||
<Text style={[styles.value, stylesHook.value]}>
|
||||
{formatBalanceWithoutSuffix(tx.value, wallet.current.preferredBalanceUnit, true)}{' '}
|
||||
{wallet.current.preferredBalanceUnit !== BitcoinUnit.LOCAL_CURRENCY && (
|
||||
<Text style={[styles.valueUnit, stylesHook.valueUnit]}>{loc.units[wallet.current.preferredBalanceUnit]}</Text>
|
||||
{formatBalanceWithoutSuffix(tx.value, wallet.preferredBalanceUnit, true)}{' '}
|
||||
{wallet.preferredBalanceUnit !== BitcoinUnit.LOCAL_CURRENCY && (
|
||||
<Text style={[styles.valueUnit, stylesHook.valueUnit]}>{loc.units[wallet.preferredBalanceUnit]}</Text>
|
||||
)}
|
||||
</Text>
|
||||
</View>
|
||||
|
@ -331,8 +310,8 @@ const TransactionsStatus = () => {
|
|||
{tx.fee && (
|
||||
<View style={styles.fee}>
|
||||
<BlueText style={styles.feeText}>
|
||||
{loc.send.create_fee.toLowerCase()} {formatBalanceWithoutSuffix(tx.fee, wallet.current.preferredBalanceUnit, true)}{' '}
|
||||
{wallet.current.preferredBalanceUnit !== BitcoinUnit.LOCAL_CURRENCY && wallet.current.preferredBalanceUnit}
|
||||
{loc.send.create_fee.toLowerCase()} {formatBalanceWithoutSuffix(tx.fee, wallet.preferredBalanceUnit, true)}{' '}
|
||||
{wallet.preferredBalanceUnit !== BitcoinUnit.LOCAL_CURRENCY && wallet.preferredBalanceUnit}
|
||||
</BlueText>
|
||||
</View>
|
||||
)}
|
||||
|
@ -360,7 +339,7 @@ const TransactionsStatus = () => {
|
|||
);
|
||||
};
|
||||
|
||||
export default TransactionsStatus;
|
||||
export default TransactionStatus;
|
||||
const styles = StyleSheet.create({
|
||||
root: {
|
||||
flex: 1,
|
||||
|
@ -460,6 +439,6 @@ const styles = StyleSheet.create({
|
|||
},
|
||||
});
|
||||
|
||||
TransactionsStatus.navigationOptions = navigationStyle({
|
||||
TransactionStatus.navigationOptions = navigationStyle({
|
||||
title: '',
|
||||
});
|
||||
|
|
|
@ -41,7 +41,7 @@ const ButtonSelected = Object.freeze({
|
|||
|
||||
const WalletsAdd = () => {
|
||||
const { colors } = useTheme();
|
||||
const { addWallet, saveToDisk, setNewWalletAdded, isAdancedModeEnabled } = useContext(BlueStorageContext);
|
||||
const { addWallet, saveToDisk, isAdancedModeEnabled } = useContext(BlueStorageContext);
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const [walletBaseURI, setWalletBaseURI] = useState();
|
||||
const [selectedIndex, setSelectedIndex] = useState(0);
|
||||
|
@ -139,7 +139,6 @@ const WalletsAdd = () => {
|
|||
}
|
||||
addWallet(w);
|
||||
await saveToDisk();
|
||||
setNewWalletAdded(true);
|
||||
A(A.ENUM.CREATED_WALLET);
|
||||
ReactNativeHapticFeedback.trigger('notificationSuccess', { ignoreAndroidSystemSettings: false });
|
||||
if (w.type === HDSegwitP2SHWallet.type || w.type === HDSegwitBech32Wallet.type) {
|
||||
|
@ -184,7 +183,6 @@ const WalletsAdd = () => {
|
|||
addWallet(wallet);
|
||||
await saveToDisk();
|
||||
|
||||
setNewWalletAdded(true);
|
||||
A(A.ENUM.CREATED_WALLET);
|
||||
ReactNativeHapticFeedback.trigger('notificationSuccess', { ignoreAndroidSystemSettings: false });
|
||||
navigate('PleaseBackupLNDHub', {
|
||||
|
|
|
@ -50,7 +50,7 @@ const isDesktop = getSystemName() === 'Mac OS X';
|
|||
const staticCache = {};
|
||||
|
||||
const WalletsAddMultisigStep2 = () => {
|
||||
const { addWallet, saveToDisk, setNewWalletAdded } = useContext(BlueStorageContext);
|
||||
const { addWallet, saveToDisk } = useContext(BlueStorageContext);
|
||||
const { colors } = useTheme();
|
||||
|
||||
const navigation = useNavigation();
|
||||
|
@ -195,7 +195,6 @@ const WalletsAddMultisigStep2 = () => {
|
|||
|
||||
addWallet(w);
|
||||
await saveToDisk();
|
||||
setNewWalletAdded(true);
|
||||
A(A.ENUM.CREATED_WALLET);
|
||||
ReactNativeHapticFeedback.trigger('notificationSuccess', { ignoreAndroidSystemSettings: false });
|
||||
navigation.dangerouslyGetParent().goBack();
|
||||
|
|
|
@ -17,12 +17,11 @@ import { BlurView } from '@react-native-community/blur';
|
|||
const DrawerList = props => {
|
||||
console.log('drawerList rendering...');
|
||||
const walletsCarousel = useRef();
|
||||
const { wallets, selectedWallet, pendingWallets, newWalletAdded, setNewWalletAdded, isDrawerListBlurred } = useContext(
|
||||
BlueStorageContext,
|
||||
);
|
||||
const { wallets, selectedWallet, pendingWallets, isDrawerListBlurred } = useContext(BlueStorageContext);
|
||||
const [carouselData, setCarouselData] = useState([]);
|
||||
const height = useWindowDimensions().height;
|
||||
const { colors } = useTheme();
|
||||
const walletsCount = useRef(wallets.length);
|
||||
const stylesHook = StyleSheet.create({
|
||||
root: {
|
||||
backgroundColor: colors.brandingColor,
|
||||
|
@ -38,12 +37,18 @@ const DrawerList = props => {
|
|||
}, [wallets, pendingWallets]);
|
||||
|
||||
useEffect(() => {
|
||||
if (newWalletAdded) {
|
||||
walletsCarousel.current?.snapToItem(carouselData.length - pendingWallets.length - 2);
|
||||
setNewWalletAdded(false);
|
||||
if (walletsCount.current < wallets.length) {
|
||||
walletsCarousel.current?.snapToItem(walletsCount.current);
|
||||
}
|
||||
walletsCount.current = wallets.length;
|
||||
}, [wallets]);
|
||||
|
||||
useEffect(() => {
|
||||
if (pendingWallets.length > 0) {
|
||||
walletsCarousel.current?.snapToItem(carouselData.length - pendingWallets.length);
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [newWalletAdded]);
|
||||
}, [pendingWallets]);
|
||||
|
||||
const handleClick = index => {
|
||||
console.log('click', index);
|
||||
|
|
|
@ -141,7 +141,6 @@ const WalletsImport = () => {
|
|||
<BlueDoneAndDismissKeyboardInputAccessory
|
||||
onClearTapped={() => {
|
||||
setImportText('');
|
||||
Keyboard.dismiss();
|
||||
}}
|
||||
onPasteTapped={text => {
|
||||
setImportText(text);
|
||||
|
|
|
@ -35,16 +35,9 @@ const WalletsListSections = { CAROUSEL: 'CAROUSEL', LOCALTRADER: 'LOCALTRADER',
|
|||
|
||||
const WalletsList = () => {
|
||||
const walletsCarousel = useRef();
|
||||
const {
|
||||
wallets,
|
||||
pendingWallets,
|
||||
getTransactions,
|
||||
getBalance,
|
||||
refreshAllWalletTransactions,
|
||||
newWalletAdded,
|
||||
setNewWalletAdded,
|
||||
setSelectedWallet,
|
||||
} = useContext(BlueStorageContext);
|
||||
const { wallets, pendingWallets, getTransactions, getBalance, refreshAllWalletTransactions, setSelectedWallet } = useContext(
|
||||
BlueStorageContext,
|
||||
);
|
||||
const { width } = useWindowDimensions();
|
||||
const { colors, scanImage } = useTheme();
|
||||
const { navigate, setOptions } = useNavigation();
|
||||
|
@ -56,6 +49,7 @@ const WalletsList = () => {
|
|||
);
|
||||
const [carouselData, setCarouselData] = useState([]);
|
||||
const dataSource = getTransactions(null, 10);
|
||||
const walletsCount = useRef(wallets.length);
|
||||
|
||||
const stylesHook = StyleSheet.create({
|
||||
walletsListWrapper: {
|
||||
|
@ -96,12 +90,18 @@ const WalletsList = () => {
|
|||
}, [wallets, pendingWallets]);
|
||||
|
||||
useEffect(() => {
|
||||
if (newWalletAdded) {
|
||||
walletsCarousel.current?.snapToItem(carouselData.length - pendingWallets.length - 2);
|
||||
setNewWalletAdded(false);
|
||||
if (walletsCount.current < wallets.length) {
|
||||
walletsCarousel.current?.snapToItem(walletsCount.current);
|
||||
}
|
||||
walletsCount.current = wallets.length;
|
||||
}, [wallets]);
|
||||
|
||||
useEffect(() => {
|
||||
if (pendingWallets.length > 0) {
|
||||
walletsCarousel.current?.snapToItem(carouselData.length - pendingWallets.length);
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [newWalletAdded]);
|
||||
}, [pendingWallets]);
|
||||
|
||||
const verifyBalance = () => {
|
||||
if (getBalance() !== 0) {
|
||||
|
@ -225,7 +225,7 @@ const WalletsList = () => {
|
|||
const renderTransactionListsRow = data => {
|
||||
return (
|
||||
<View style={styles.transaction}>
|
||||
<BlueTransactionListItem item={data.item} itemPriceUnit={data.item.walletPreferredBalanceUnit} />
|
||||
<BlueTransactionListItem item={data.item} itemPriceUnit={data.item.walletPreferredBalanceUnit} walletID={data.item.walletID} />
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
|
|
@ -437,7 +437,9 @@ const WalletTransactions = () => {
|
|||
});
|
||||
};
|
||||
|
||||
const renderItem = item => <BlueTransactionListItem item={item.item} itemPriceUnit={itemPriceUnit} timeElapsed={timeElapsed} />;
|
||||
const renderItem = item => (
|
||||
<BlueTransactionListItem item={item.item} itemPriceUnit={itemPriceUnit} timeElapsed={timeElapsed} walletID={walletID} />
|
||||
);
|
||||
|
||||
const onBarCodeRead = ret => {
|
||||
if (!isLoading) {
|
||||
|
|
|
@ -50,7 +50,7 @@ describe('BlueWallet UI Tests', () => {
|
|||
try {
|
||||
// in case emulator has no google services and doesnt support pushes
|
||||
// we just dont show this popup
|
||||
await element(by.text(`No, and don't ask me again`)).tap();
|
||||
await element(by.text(`No, and don’t ask me again`)).tap();
|
||||
} catch (_) {}
|
||||
await yo('BitcoinAddressQRCodeContainer');
|
||||
await yo('BlueCopyTextToClipboard');
|
||||
|
@ -100,7 +100,7 @@ describe('BlueWallet UI Tests', () => {
|
|||
await element(by.text('OK')).tap();
|
||||
await element(by.type('android.widget.EditText')).typeText('666');
|
||||
await element(by.text('OK')).tap();
|
||||
await expect(element(by.text('Passwords do not match'))).toBeVisible();
|
||||
await expect(element(by.text('Passwords do not match.'))).toBeVisible();
|
||||
await element(by.text('OK')).tap();
|
||||
|
||||
// now, lets put correct passwords and encrypt the storage
|
||||
|
@ -142,7 +142,7 @@ describe('BlueWallet UI Tests', () => {
|
|||
|
||||
// trying to enable plausible denability
|
||||
await element(by.id('CreateFakeStorageButton')).tap();
|
||||
await expect(element(by.text('Password for fake storage should not match the password for your main storage.'))).toBeVisible();
|
||||
await expect(element(by.text('Password for the fake storage should not match the password for your main storage.'))).toBeVisible();
|
||||
|
||||
// trying MAIN password: should fail, obviously
|
||||
await element(by.type('android.widget.EditText')).typeText('qqq');
|
||||
|
@ -516,7 +516,7 @@ describe('BlueWallet UI Tests', () => {
|
|||
try {
|
||||
// in case emulator has no google services and doesnt support pushes
|
||||
// we just dont show this popup
|
||||
await element(by.text(`No, and don't ask me again`)).tap();
|
||||
await element(by.text(`No, and don’t ask me again`)).tap();
|
||||
} catch (_) {}
|
||||
await expect(element(by.id('BitcoinAddressQRCodeContainer'))).toBeVisible();
|
||||
await expect(element(by.text('bc1qtc9zquvq7lgq87kzsgltvv4etwm9uxphfkvkay'))).toBeVisible();
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue