diff --git a/App.js b/App.js index 362fabbe4..a034a449b 100644 --- a/App.js +++ b/App.js @@ -11,7 +11,6 @@ import { UIManager, useColorScheme, View, - StatusBar, LogBox, } from 'react-native'; import { NavigationContainer, CommonActions } from '@react-navigation/native'; @@ -384,7 +383,6 @@ const App = () => { return ( - diff --git a/Navigation.js b/Navigation.js index 9bede94f4..09835184a 100644 --- a/Navigation.js +++ b/Navigation.js @@ -316,14 +316,16 @@ const AztecoRedeemRoot = () => { const ScanQRCodeStack = createNativeStackNavigator(); const ScanQRCodeRoot = () => ( - + ); const UnlockWithScreenStack = createNativeStackNavigator(); const UnlockWithScreenRoot = () => ( - + ); @@ -376,7 +378,11 @@ const WalletXpubStackRoot = () => { const theme = useTheme(); return ( - + ); @@ -387,7 +393,11 @@ const SignVerifyStackRoot = () => { const theme = useTheme(); return ( - + ); @@ -398,7 +408,11 @@ const WalletExportStackRoot = () => { const theme = useTheme(); return ( - + ); @@ -440,7 +454,7 @@ const ViewEditMultisigCosignersRoot = () => { { { const RootStack = createNativeStackNavigator(); const NavigationDefaultOptions = { headerShown: false, stackPresentation: isDesktop ? 'containedModal' : 'modal' }; +const StatusBarLightOptions = { statusBarStyle: 'light' }; const Navigation = () => { return ( - + {/* stacks */} @@ -497,15 +512,31 @@ const Navigation = () => { {/* screens */} - + - - - + + + @@ -517,6 +548,7 @@ const Navigation = () => { options={{ headerShown: false, stackPresentation: isDesktop ? 'containedModal' : 'fullScreenModal', + statusBarHidden: true, }} /> diff --git a/UnlockWith.js b/UnlockWith.js index 6bb0aa979..30b34b202 100644 --- a/UnlockWith.js +++ b/UnlockWith.js @@ -1,5 +1,5 @@ import React, { useContext, useEffect, useState } from 'react'; -import { View, Image, TouchableOpacity, StyleSheet, StatusBar, ActivityIndicator, useColorScheme, LayoutAnimation } from 'react-native'; +import { View, Image, TouchableOpacity, StyleSheet, ActivityIndicator, useColorScheme, LayoutAnimation } from 'react-native'; import { Icon } from 'react-native-elements'; import Biometric from './class/biometrics'; import LottieView from 'lottie-react-native'; @@ -129,7 +129,6 @@ const UnlockWith = () => { return ( - {animationDidFinish && {renderUnlockOptions()}} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index feb5e9c0b..fe62704a1 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -8,6 +8,8 @@ + + { + Bugsnag.start({ + collectUserIp: false, + user: { + id: uniqueID, + }, + onError: function (event) { + return !userHasOptedOut; + }, + }); }); } diff --git a/blue_modules/notifications.js b/blue_modules/notifications.js index 4b037d263..3a91f6d1c 100644 --- a/blue_modules/notifications.js +++ b/blue_modules/notifications.js @@ -4,6 +4,7 @@ import Frisbee from 'frisbee'; import { getApplicationName, getVersion, getSystemName, getSystemVersion, hasGmsSync, hasHmsSync } from 'react-native-device-info'; import AsyncStorage from '@react-native-async-storage/async-storage'; import loc from '../loc'; +import { requestNotifications } from 'react-native-permissions'; const PushNotification = require('react-native-push-notification'); const constants = require('./constants'); @@ -38,75 +39,80 @@ function Notifications(props) { */ const configureNotifications = async function () { return new Promise(function (resolve) { - PushNotification.configure({ - // (optional) Called when Token is generated (iOS and Android) - onRegister: async function (token) { - console.log('TOKEN:', token); - alreadyConfigured = true; - await _setPushToken(token); - resolve(true); - }, + requestNotifications(['alert', 'sound', 'badge']).then(({ status, _ }) => { + if (status === 'granted') { + PushNotification.configure({ + // (optional) Called when Token is generated (iOS and Android) + onRegister: async function (token) { + console.log('TOKEN:', token); + alreadyConfigured = true; + await _setPushToken(token); + resolve(true); + }, - // (required) Called when a remote is received or opened, or local notification is opened - onNotification: async function (notification) { - // since we do not know whether we: - // 1) received notification while app is in background (and storage is not decrypted so wallets are not loaded) - // 2) opening this notification right now but storage is still unencrypted - // 3) any of the above but the storage is decrypted, and app wallets are loaded - // - // ...we save notification in internal notifications queue thats gona be processed later (on unsuspend with decrypted storage) + // (required) Called when a remote is received or opened, or local notification is opened + onNotification: async function (notification) { + // since we do not know whether we: + // 1) received notification while app is in background (and storage is not decrypted so wallets are not loaded) + // 2) opening this notification right now but storage is still unencrypted + // 3) any of the above but the storage is decrypted, and app wallets are loaded + // + // ...we save notification in internal notifications queue thats gona be processed later (on unsuspend with decrypted storage) - const payload = Object.assign({}, notification, notification.data); - if (notification.data && notification.data.data) Object.assign(payload, notification.data.data); - delete payload.data; - // ^^^ weird, but sometimes payload data is not in `data` but in root level - console.log('got push notification', payload); + const payload = Object.assign({}, notification, notification.data); + if (notification.data && notification.data.data) Object.assign(payload, notification.data.data); + delete payload.data; + // ^^^ weird, but sometimes payload data is not in `data` but in root level + console.log('got push notification', payload); - await Notifications.addNotification(payload); + await Notifications.addNotification(payload); - // (required) Called when a remote is received or opened, or local notification is opened - notification.finish(PushNotificationIOS.FetchResult.NoData); + // (required) Called when a remote is received or opened, or local notification is opened + notification.finish(PushNotificationIOS.FetchResult.NoData); - // if user is staring at the app when he receives the notification we process it instantly - // so app refetches related wallet - if (payload.foreground) props.onProcessNotifications(); - }, + // if user is staring at the app when he receives the notification we process it instantly + // so app refetches related wallet + if (payload.foreground) props.onProcessNotifications(); + }, - // (optional) Called when Registered Action is pressed and invokeApp is false, if true onNotification will be called (Android) - onAction: function (notification) { - console.log('ACTION:', notification.action); - console.log('NOTIFICATION:', notification); + // (optional) Called when Registered Action is pressed and invokeApp is false, if true onNotification will be called (Android) + onAction: function (notification) { + console.log('ACTION:', notification.action); + console.log('NOTIFICATION:', notification); - // process the action - }, + // process the action + }, - // (optional) Called when the user fails to register for remote notifications. Typically occurs when APNS is having issues, or the device is a simulator. (iOS) - onRegistrationError: function (err) { - console.error(err.message, err); - resolve(false); - }, + // (optional) Called when the user fails to register for remote notifications. Typically occurs when APNS is having issues, or the device is a simulator. (iOS) + onRegistrationError: function (err) { + console.error(err.message, err); + resolve(false); + }, - // IOS ONLY (optional): default: all - Permissions to register. - permissions: { - alert: true, - badge: true, - sound: true, - }, + // IOS ONLY (optional): default: all - Permissions to register. + permissions: { + alert: true, + badge: true, + sound: true, + }, - // Should the initial notification be popped automatically - // default: true - popInitialNotification: true, + // Should the initial notification be popped automatically + // default: true + popInitialNotification: true, - /** - * (optional) default: true - * - Specified if permissions (ios) and token (android and ios) will requested or not, - * - if not, you must call PushNotificationsHandler.requestPermissions() later - * - if you are not using remote notification or do not have Firebase installed, use this: - * requestPermissions: Platform.OS === 'ios' - */ - requestPermissions: true, + /** + * (optional) default: true + * - Specified if permissions (ios) and token (android and ios) will requested or not, + * - if not, you must call PushNotificationsHandler.requestPermissions() later + * - if you are not using remote notification or do not have Firebase installed, use this: + * requestPermissions: Platform.OS === 'ios' + */ + requestPermissions: true, + }); + } }); }); + // … }; Notifications.cleanUserOptOutFlag = async function () { @@ -227,8 +233,7 @@ function Notifications(props) { if (!pushToken || !pushToken.token || !pushToken.os) return; const api = new Frisbee({ baseURI }); - - return await api.post( + const postCall = await api.post( '/unsubscribe', Object.assign({}, _getHeaders(), { body: { @@ -240,6 +245,8 @@ function Notifications(props) { }, }), ); + Notifications.abandonPermissions(); + return postCall; }; Notifications.isNotificationsEnabled = async function () { diff --git a/ios/BlueWallet.xcodeproj/project.pbxproj b/ios/BlueWallet.xcodeproj/project.pbxproj index d6d7b5254..f62c0c0cb 100644 --- a/ios/BlueWallet.xcodeproj/project.pbxproj +++ b/ios/BlueWallet.xcodeproj/project.pbxproj @@ -1000,6 +1000,9 @@ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome6_Brands.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome6_Regular.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome6_Solid.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", @@ -1020,6 +1023,9 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome6_Brands.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome6_Regular.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome6_Solid.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", diff --git a/ios/BlueWallet.xcodeproj/xcuserdata/marcosrodriguez.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/BlueWallet.xcodeproj/xcuserdata/marcosrodriguez.xcuserdatad/xcschemes/xcschememanagement.plist index f35b236dc..b581aa931 100644 --- a/ios/BlueWallet.xcodeproj/xcuserdata/marcosrodriguez.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/ios/BlueWallet.xcodeproj/xcuserdata/marcosrodriguez.xcuserdatad/xcschemes/xcschememanagement.plist @@ -47,7 +47,7 @@ WidgetsExtension.xcscheme_^#shared#^_ orderHint - 144 + 99 SuppressBuildableAutocreation diff --git a/ios/BlueWallet/AppDelegate.mm b/ios/BlueWallet/AppDelegate.mm index 3f9e70ad6..f81de4923 100644 --- a/ios/BlueWallet/AppDelegate.mm +++ b/ios/BlueWallet/AppDelegate.mm @@ -1,6 +1,6 @@ +#import #import #import "AppDelegate.h" - #import #import #import diff --git a/ios/BlueWallet/Info.plist b/ios/BlueWallet/Info.plist index be3a989ac..064bc269b 100644 --- a/ios/BlueWallet/Info.plist +++ b/ios/BlueWallet/Info.plist @@ -57,17 +57,17 @@ - CFBundleTypeName - JSON File - CFBundleTypeRole - Editor - LSItemContentTypes - - public.json - - LSHandlerRank - Owner - + CFBundleTypeName + JSON File + CFBundleTypeRole + Editor + LSItemContentTypes + + public.json + + LSHandlerRank + Owner + CFBundleExecutable $(EXECUTABLE_NAME) @@ -219,7 +219,7 @@ UIInterfaceOrientationPortraitUpsideDown UIViewControllerBasedStatusBarAppearance - + UTExportedTypeDeclarations diff --git a/ios/Podfile b/ios/Podfile index 86affba85..d3632bc56 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -16,7 +16,7 @@ require_relative '../node_modules/@react-native-community/cli-platform-ios/nativ workspace 'BlueWallet' platform :ios, '13.0' prepare_react_native_project! -setup_permissions(['Camera']) +setup_permissions(['Camera', 'Notifications']) # If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. # because `react-native-flipper` depends on (FlipperKit,...) that will be excluded # diff --git a/ios/Podfile.lock b/ios/Podfile.lock index a35833167..19c11d982 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -302,7 +302,7 @@ PODS: - React-Core - react-native-tor (0.1.8): - React - - react-native-webview (12.4.0): + - react-native-webview (13.6.2): - React-Core - react-native-widget-center (0.0.9): - React @@ -404,7 +404,7 @@ PODS: - React-Core - RNDefaultPreference (1.4.4): - React-Core - - RNDeviceInfo (8.7.1): + - RNDeviceInfo (10.11.0): - React-Core - RNFS (2.20.0): - React-Core @@ -461,7 +461,7 @@ PODS: - React-Core - RNSVG (13.14.0): - React-Core - - RNVectorIcons (9.2.0): + - RNVectorIcons (10.0.0): - React-Core - RNWatch (1.1.0): - React @@ -752,7 +752,7 @@ SPEC CHECKSUMS: react-native-secure-key-store: 910e6df6bc33cb790aba6ee24bc7818df1fe5898 react-native-tcp-socket: c1b7297619616b4c9caae6889bcb0aba78086989 react-native-tor: 3b14e9160b2eb7fa3f310921b2dee71a5171e5b7 - react-native-webview: 65f1143983cfeaedf02fd25b2621d3f4a37075de + react-native-webview: 8fc09f66a1a5b16bbe37c3878fda27d5982bb776 react-native-widget-center: 12dfba20a4fa995850b52cf0afecf734397f4b9c React-perflogger: 4987ad83731c23d11813c84263963b0d3028c966 React-RCTActionSheet: 5ad952b2a9740d87a5bd77280c4bc23f6f89ea0c @@ -774,13 +774,13 @@ SPEC CHECKSUMS: RNCClipboard: d77213bfa269013bf4b857b7a9ca37ee062d8ef1 RNCPushNotificationIOS: 64218f3c776c03d7408284a819b2abfda1834bc8 RNDefaultPreference: 08bdb06cfa9188d5da97d4642dac745218d7fb31 - RNDeviceInfo: aad3c663b25752a52bf8fce93f2354001dd185aa + RNDeviceInfo: bf8a32acbcb875f568217285d1793b0e8588c974 RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: fa40ab6b6cafaa7609294d31f8e8fbbd0cce8ea6 RNHandoff: d3b0754cca3a6bcd9b25f544f733f7f033ccf5fa RNKeychain: a65256b6ca6ba6976132cc4124b238a5b13b3d9c RNLocalize: dbea38dcb344bf80ff18a1757b1becf11f70cae4 - RNPermissions: eae8b97d8ab0587f082966ee608f47c97b2a349b + RNPermissions: e9e703e08dfe50cf4d2ca45852eb45c4ac98f7b7 RNPrivacySnapshot: 71919dde3c6a29dd332115409c2aec564afee8f4 RNQuickAction: 6d404a869dc872cde841ad3147416a670d13fa93 RNRate: ef3bcff84f39bb1d1e41c5593d3eea4aab2bd73a @@ -789,10 +789,10 @@ SPEC CHECKSUMS: RNScreens: 218801c16a2782546d30bd2026bb625c0302d70f RNShare: 32e97adc8d8c97d4a26bcdd3c45516882184f8b6 RNSVG: d00c8f91c3cbf6d476451313a18f04d220d4f396 - RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8 + RNVectorIcons: 8b5bb0fa61d54cd2020af4f24a51841ce365c7e9 RNWatch: fd30ca40a5b5ef58dcbc195638e68219bc455236 Yoga: e71803b4c1fff832ccf9b92541e00f9b873119b9 -PODFILE CHECKSUM: 23bb5c319ccbedd7e109c44fe4273afce6efb48a +PODFILE CHECKSUM: 27db07925dc3a89e9ecced7e377a50dba9deb58a -COCOAPODS: 1.11.3 +COCOAPODS: 1.13.0 diff --git a/package-lock.json b/package-lock.json index 6aa2dc81a..9b9d9fa48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "react-native-camera-kit": "13.0.0", "react-native-crypto": "2.2.0", "react-native-default-preference": "1.4.4", - "react-native-device-info": "8.7.1", + "react-native-device-info": "10.11.0", "react-native-document-picker": "https://github.com/BlueWallet/react-native-document-picker#857655cdddf17751c0fae1286a9121fda2a6d568", "react-native-draggable-flatlist": "github:BlueWallet/react-native-draggable-flatlist#ebfddc4", "react-native-elements": "3.4.3", @@ -94,13 +94,13 @@ "react-native-safe-area-context": "3.4.1", "react-native-screens": "3.20.0", "react-native-secure-key-store": "https://github.com/BlueWallet/react-native-secure-key-store#2076b48", - "react-native-share": "^9.4.1", + "react-native-share": "9.4.1", "react-native-svg": "13.14.0", "react-native-tcp-socket": "5.6.2", "react-native-tor": "0.1.8", - "react-native-vector-icons": "9.2.0", + "react-native-vector-icons": "10.0.0", "react-native-watch-connectivity": "1.1.0", - "react-native-webview": "12.4.0", + "react-native-webview": "13.6.2", "react-native-widget-center": "https://github.com/BlueWallet/react-native-widget-center#a128c38", "readable-stream": "3.6.2", "realm": "12.2.1", @@ -179,10 +179,12 @@ "integrity": "sha512-7UDWIIF9hIeJqfKXkNIzkVandlwLf1FWTSdrb9iXvOP8oF544JRXQjCbiTmCv2c9n44n/FIWtehhBfNuAx2CZA==" }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -241,10 +243,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.1", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dependencies": { - "@babel/types": "^7.21.0", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -353,8 +356,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } @@ -370,21 +374,23 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -497,25 +503,28 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } @@ -554,11 +563,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -566,8 +576,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.2", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1818,29 +1829,31 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.2", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.2", - "@babel/types": "^7.21.2", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1849,11 +1862,12 @@ } }, "node_modules/@babel/types": { - "version": "7.21.2", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -18128,8 +18142,9 @@ } }, "node_modules/react-native-device-info": { - "version": "8.7.1", - "integrity": "sha512-cVMZztFa2Qn6qpQa601W61CtUwZQ1KXfqCOeltejAWEXmgIWivC692WGSdtGudj4upSi1UgMSaGcvKjfcpdGjg==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.11.0.tgz", + "integrity": "sha512-qRzhuYOm5ZXQi5dhfJFjDq157oipxcEW/fo0QyMm5+TI6V6/+P/tju+Hif6z0rpLCf7MV7iDVRv2Kqha4D/yvQ==", "peerDependencies": { "react-native": "*" } @@ -18570,14 +18585,17 @@ } }, "node_modules/react-native-vector-icons": { - "version": "9.2.0", - "integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.0.0.tgz", + "integrity": "sha512-efMOVbZIebY8RszZPzPBoXi9pvD/NFYmjIDYxRoc9LYSzV8rMJtT8FfcO2hPu85Rn2x9xktha0+qn0B7EqMAcQ==", "dependencies": { "prop-types": "^15.7.2", "yargs": "^16.1.1" }, "bin": { + "fa-upgrade.sh": "bin/fa-upgrade.sh", "fa5-upgrade": "bin/fa5-upgrade.sh", + "fa6-upgrade": "bin/fa6-upgrade.sh", "generate-icon": "bin/generate-icon.js" } }, @@ -18593,9 +18611,9 @@ } }, "node_modules/react-native-webview": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-12.4.0.tgz", - "integrity": "sha512-wYzTfNADidmqv6bY+x6NUfX8+uBR9mmF1CO1NOvY4oD2vv+D4rA0XwcwAe2D7RevXUy3fmuTT93kFQcgo8fEhg==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.6.2.tgz", + "integrity": "sha512-QzhQ5JCU+Nf2W285DtvCZOVQy/MkJXMwNDYPZvOWQbAOgxJMSSO+BtqXTMA1UPugDsko6PxJ0TxSlUwIwJijDg==", "dependencies": { "escape-string-regexp": "2.0.0", "invariant": "2.2.4" @@ -20988,10 +21006,12 @@ "integrity": "sha512-7UDWIIF9hIeJqfKXkNIzkVandlwLf1FWTSdrb9iXvOP8oF544JRXQjCbiTmCv2c9n44n/FIWtehhBfNuAx2CZA==" }, "@babel/code-frame": { - "version": "7.18.6", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" } }, "@babel/compat-data": { @@ -21030,10 +21050,11 @@ } }, "@babel/generator": { - "version": "7.21.1", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "requires": { - "@babel/types": "^7.21.0", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -21111,8 +21132,9 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-explode-assignable-expression": { "version": "7.18.6", @@ -21122,18 +21144,20 @@ } }, "@babel/helper-function-name": { - "version": "7.21.0", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { @@ -21213,19 +21237,22 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { "version": "7.22.15", @@ -21252,17 +21279,19 @@ } }, "@babel/highlight": { - "version": "7.18.6", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.21.2", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==" + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -22038,36 +22067,39 @@ } }, "@babel/template": { - "version": "7.20.7", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.21.2", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.2", - "@babel/types": "^7.21.2", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.21.2", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -34168,8 +34200,9 @@ "integrity": "sha512-h0vtgiSKws3UmMRJykXAVM4ne1SgfoocUcoBD19ewRpQd6wqurE0HJRQGrSxcHK5LdKE7QPSIB1VX3YGIVS8Jg==" }, "react-native-device-info": { - "version": "8.7.1", - "integrity": "sha512-cVMZztFa2Qn6qpQa601W61CtUwZQ1KXfqCOeltejAWEXmgIWivC692WGSdtGudj4upSi1UgMSaGcvKjfcpdGjg==" + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.11.0.tgz", + "integrity": "sha512-qRzhuYOm5ZXQi5dhfJFjDq157oipxcEW/fo0QyMm5+TI6V6/+P/tju+Hif6z0rpLCf7MV7iDVRv2Kqha4D/yvQ==" }, "react-native-document-picker": { "version": "git+ssh://git@github.com/BlueWallet/react-native-document-picker.git#857655cdddf17751c0fae1286a9121fda2a6d568", @@ -34450,8 +34483,9 @@ } }, "react-native-vector-icons": { - "version": "9.2.0", - "integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.0.0.tgz", + "integrity": "sha512-efMOVbZIebY8RszZPzPBoXi9pvD/NFYmjIDYxRoc9LYSzV8rMJtT8FfcO2hPu85Rn2x9xktha0+qn0B7EqMAcQ==", "requires": { "prop-types": "^15.7.2", "yargs": "^16.1.1" @@ -34465,9 +34499,9 @@ } }, "react-native-webview": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-12.4.0.tgz", - "integrity": "sha512-wYzTfNADidmqv6bY+x6NUfX8+uBR9mmF1CO1NOvY4oD2vv+D4rA0XwcwAe2D7RevXUy3fmuTT93kFQcgo8fEhg==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.6.2.tgz", + "integrity": "sha512-QzhQ5JCU+Nf2W285DtvCZOVQy/MkJXMwNDYPZvOWQbAOgxJMSSO+BtqXTMA1UPugDsko6PxJ0TxSlUwIwJijDg==", "requires": { "escape-string-regexp": "2.0.0", "invariant": "2.2.4" diff --git a/package.json b/package.json index 6807933e4..4e84afbca 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "react-native-camera-kit": "13.0.0", "react-native-crypto": "2.2.0", "react-native-default-preference": "1.4.4", - "react-native-device-info": "8.7.1", + "react-native-device-info": "10.11.0", "react-native-document-picker": "https://github.com/BlueWallet/react-native-document-picker#857655cdddf17751c0fae1286a9121fda2a6d568", "react-native-draggable-flatlist": "github:BlueWallet/react-native-draggable-flatlist#ebfddc4", "react-native-elements": "3.4.3", @@ -183,9 +183,9 @@ "react-native-svg": "13.14.0", "react-native-tcp-socket": "5.6.2", "react-native-tor": "0.1.8", - "react-native-vector-icons": "9.2.0", + "react-native-vector-icons": "10.0.0", "react-native-watch-connectivity": "1.1.0", - "react-native-webview": "12.4.0", + "react-native-webview": "13.6.2", "react-native-widget-center": "https://github.com/BlueWallet/react-native-widget-center#a128c38", "readable-stream": "3.6.2", "realm": "12.2.1", diff --git a/screen/lnd/browser.js b/screen/lnd/browser.js index 85e6c25db..04ebdfa9d 100644 --- a/screen/lnd/browser.js +++ b/screen/lnd/browser.js @@ -1,18 +1,7 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import Ionicons from 'react-native-vector-icons/Ionicons'; -import { - ActivityIndicator, - Alert, - BackHandler, - Keyboard, - Platform, - StatusBar, - StyleSheet, - TextInput, - TouchableOpacity, - View, -} from 'react-native'; +import { ActivityIndicator, Alert, BackHandler, Keyboard, Platform, StyleSheet, TextInput, TouchableOpacity, View } from 'react-native'; import { WebView } from 'react-native-webview'; import { SafeBlueArea } from '../../BlueComponents'; @@ -440,8 +429,6 @@ export default class Browser extends Component { return ( - -