mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2025-02-22 15:04:50 +01:00
Merge branch 'master' of github.com:BlueWallet/BlueWallet
This commit is contained in:
commit
cfef1704e1
11 changed files with 2233 additions and 1500 deletions
|
@ -107,6 +107,7 @@ android {
|
|||
abiFilters "armeabi-v7a", "x86"
|
||||
}
|
||||
multiDexEnabled true
|
||||
missingDimensionStrategy 'react-native-camera', 'general'
|
||||
}
|
||||
splits {
|
||||
abi {
|
||||
|
@ -138,6 +139,7 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':@react-native-community_slider')
|
||||
implementation project(':react-native-obscure')
|
||||
implementation project(':react-native-tcp')
|
||||
implementation project(':@remobile_react-native-qrcode-local-image')
|
||||
|
|
|
@ -3,6 +3,7 @@ package io.bluewallet.bluewallet;
|
|||
import android.app.Application;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.reactnativecommunity.slider.ReactSliderPackage;
|
||||
import com.diegofhg.obscure.ObscurePackage;
|
||||
import com.peel.react.TcpSocketsModule;
|
||||
import com.remobile.qrcodeLocalImage.RCTQRCodeLocalImagePackage;
|
||||
|
@ -57,6 +58,7 @@ public class MainApplication extends Application implements ReactApplication {
|
|||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.<ReactPackage>asList(
|
||||
new MainReactPackage(),
|
||||
new ReactSliderPackage(),
|
||||
new ObscurePackage(),
|
||||
new TcpSocketsModule(),
|
||||
new RCTQRCodeLocalImagePackage(),
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
buildscript {
|
||||
ext {
|
||||
buildToolsVersion = "28.0.2"
|
||||
buildToolsVersion = "28.0.3"
|
||||
minSdkVersion = 16
|
||||
compileSdkVersion = 28
|
||||
targetSdkVersion = 27
|
||||
|
@ -13,7 +13,7 @@ buildscript {
|
|||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||
classpath 'com.android.tools.build:gradle:3.3.2'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
|
|
@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
|||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
rootProject.name = 'BlueWallet'
|
||||
include ':@react-native-community_slider'
|
||||
project(':@react-native-community_slider').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/slider/android')
|
||||
include ':react-native-obscure'
|
||||
project(':react-native-obscure').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-obscure/android')
|
||||
include ':react-native-tcp'
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
|
||||
00E356F31AD99517003FC87E /* BlueWalletTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* BlueWalletTests.m */; };
|
||||
01AB943FA0794E91B65F0BFE /* libRCTPrivacySnapshot.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC63C7054F1C4FDFB7A830E5 /* libRCTPrivacySnapshot.a */; };
|
||||
02DEC1C9F61B405E8E357B2E /* libRCTWKWebView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E7078D2FED444DA4B0BD57F9 /* libRCTWKWebView.a */; };
|
||||
034FE828CEF14A6CBCF9073E /* libRNFS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8637D4B5E14D443A9031DA95 /* libRNFS.a */; };
|
||||
09C0911C2C014C8C87F192C9 /* libRNCSlider.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B4D3235A177F4580BA52F2F9 /* libRNCSlider.a */; };
|
||||
0AF37AC0E67044038B49FB3B /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4D746BBE67E84684848246E2 /* SimpleLineIcons.ttf */; };
|
||||
0B2C4EBFB4CB4960AAD777BC /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 44BC9E3EE0E9476A830CCCB9 /* Entypo.ttf */; };
|
||||
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
|
||||
|
@ -67,6 +67,7 @@
|
|||
B058E2132B704E9E874BDB29 /* libRNRandomBytes-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 253243E162CE4822BF3A3B7D /* libRNRandomBytes-tvOS.a */; };
|
||||
B1102FDCF41C4D008352748B /* libRNReactNativeHapticFeedback.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB2325650CE04F018697ACFE /* libRNReactNativeHapticFeedback.a */; };
|
||||
B44D665E562B4F289F09D327 /* libRNSVG-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F1F51A83D044F3BB26A35FC /* libRNSVG-tvOS.a */; };
|
||||
B4E923F92251B32100ABC850 /* libRNCWebView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B40FE68321FAD78F005D5578 /* libRNCWebView.a */; };
|
||||
C1056BF235EE4E23AAF21975 /* libRCTQRCodeLocalImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B642AFB13483418CAB6FF25E /* libRCTQRCodeLocalImage.a */; };
|
||||
C10C13E4CC4445C5861B1A3A /* libRNDeviceInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD7977067E1A496F94D8B1B7 /* libRNDeviceInfo.a */; };
|
||||
C41EC263DBE649299C99B9A5 /* libRNRate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA99996E6FA4B49ACE0BEFA /* libRNRate.a */; };
|
||||
|
@ -514,13 +515,6 @@
|
|||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||
remoteInfo = RNCWebView;
|
||||
};
|
||||
B40FE6DC21FAD7A8005D5578 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = E7173EC6B95B4981AD3D4C70 /* RCTWKWebView.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 0974579A1D2A440A000D9368;
|
||||
remoteInfo = RCTWKWebView;
|
||||
};
|
||||
B4327EF221FC137D00F7ADFA /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 1A03CFBC35DD4AC28FA4A619 /* RNImagePicker.xcodeproj */;
|
||||
|
@ -549,6 +543,20 @@
|
|||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||
remoteInfo = TcpSockets;
|
||||
};
|
||||
B4E923C32251B1CF00ABC850 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 178483985D8A4250A4794DA7 /* RNGestureHandler.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = B5C32A36220C603B000FFB8D;
|
||||
remoteInfo = "RNGestureHandler-tvOS";
|
||||
};
|
||||
B4E923D52251B1CF00ABC850 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = C41AE1DD23384D5CA09A0F90 /* RNCSlider.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 28C79A09220DC4CC0061DE82;
|
||||
remoteInfo = RNCSlider;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
|
@ -618,11 +626,13 @@
|
|||
A9166D490AEF4938BD6621CF /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = "<group>"; };
|
||||
AB2325650CE04F018697ACFE /* libRNReactNativeHapticFeedback.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNReactNativeHapticFeedback.a; sourceTree = "<group>"; };
|
||||
ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
|
||||
B4D3235A177F4580BA52F2F9 /* libRNCSlider.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNCSlider.a; sourceTree = "<group>"; };
|
||||
B642AFB13483418CAB6FF25E /* libRCTQRCodeLocalImage.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTQRCodeLocalImage.a; sourceTree = "<group>"; };
|
||||
B9D9B3A7B2CB4255876B67AF /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||
BBA99996E6FA4B49ACE0BEFA /* libRNRate.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNRate.a; sourceTree = "<group>"; };
|
||||
BCBEC3BDE968405183D1ABAD /* RNCamera.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNCamera.xcodeproj; path = "../node_modules/react-native-camera/ios/RNCamera.xcodeproj"; sourceTree = "<group>"; };
|
||||
C0B8F0536B07482281FA173E /* ReactNativePermissions.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = ReactNativePermissions.xcodeproj; path = "../node_modules/react-native-permissions/ios/ReactNativePermissions.xcodeproj"; sourceTree = "<group>"; };
|
||||
C41AE1DD23384D5CA09A0F90 /* RNCSlider.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNCSlider.xcodeproj; path = "../node_modules/@react-native-community/slider/ios/RNCSlider.xcodeproj"; sourceTree = "<group>"; };
|
||||
C4496FB303574862B40A878A /* AntDesign.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AntDesign.ttf; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = "<group>"; };
|
||||
CA741BA794714D3F80251AC9 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
|
||||
CD746B955C55410793BB72C0 /* libRNGestureHandler.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNGestureHandler.a; sourceTree = "<group>"; };
|
||||
|
@ -633,8 +643,6 @@
|
|||
D6EC5B694E664FD7B02EDD2F /* libRNSentry.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNSentry.a; sourceTree = "<group>"; };
|
||||
E432C66239704518B4C8719B /* RCTGoogleAnalyticsBridge.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTGoogleAnalyticsBridge.xcodeproj; path = "../node_modules/react-native-google-analytics-bridge/ios/RCTGoogleAnalyticsBridge/RCTGoogleAnalyticsBridge.xcodeproj"; sourceTree = "<group>"; };
|
||||
E6B44173A8854B6D85D7F933 /* libRNVectorIcons-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNVectorIcons-tvOS.a"; sourceTree = "<group>"; };
|
||||
E7078D2FED444DA4B0BD57F9 /* libRCTWKWebView.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTWKWebView.a; sourceTree = "<group>"; };
|
||||
E7173EC6B95B4981AD3D4C70 /* RCTWKWebView.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTWKWebView.xcodeproj; path = "../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView.xcodeproj"; sourceTree = "<group>"; };
|
||||
E8E8CE89B3D142C6A8A56C34 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
|
||||
EAEF0F27730C4742B0F3AB99 /* RNRate.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNRate.xcodeproj; path = "../node_modules/react-native-rate/ios/RNRate.xcodeproj"; sourceTree = "<group>"; };
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
|
@ -660,6 +668,7 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B4E923F92251B32100ABC850 /* libRNCWebView.a in Frameworks */,
|
||||
ED297163215061F000B7C4FE /* JavaScriptCore.framework in Frameworks */,
|
||||
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */,
|
||||
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */,
|
||||
|
@ -690,13 +699,13 @@
|
|||
C70F52A820614622A16EAF23 /* libRNSentry.a in Frameworks */,
|
||||
6D9E44529B3C463AB9E6CA39 /* libRNVectorIcons.a in Frameworks */,
|
||||
1FE70B15FB724CE3927C7541 /* libRNSVG.a in Frameworks */,
|
||||
02DEC1C9F61B405E8E357B2E /* libRCTWKWebView.a in Frameworks */,
|
||||
A6E5EEC7A4B54F5A9C9D92FC /* libRNImagePicker.a in Frameworks */,
|
||||
C1056BF235EE4E23AAF21975 /* libRCTQRCodeLocalImage.a in Frameworks */,
|
||||
34582CAA4AD140F7B80C961A /* libTcpSockets.a in Frameworks */,
|
||||
C98BD93429374073A736EFBD /* libToolTipMenu.a in Frameworks */,
|
||||
16763847ED654C79A4B4BBD5 /* ToolTipMenuTests.xctest in Frameworks */,
|
||||
01AB943FA0794E91B65F0BFE /* libRCTPrivacySnapshot.a in Frameworks */,
|
||||
09C0911C2C014C8C87F192C9 /* libRNCSlider.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -931,12 +940,12 @@
|
|||
9EA3788F4C6643B7B0182587 /* RNVectorIcons.xcodeproj */,
|
||||
3BC85BBCB16D42A4BAC73161 /* RNSVG.xcodeproj */,
|
||||
2509F6D4DBD14FECBAD3EAC6 /* RNCWebView.xcodeproj */,
|
||||
E7173EC6B95B4981AD3D4C70 /* RCTWKWebView.xcodeproj */,
|
||||
1A03CFBC35DD4AC28FA4A619 /* RNImagePicker.xcodeproj */,
|
||||
7EA61BC8FF6E4AD2A67F1557 /* RCTQRCodeLocalImage.xcodeproj */,
|
||||
910283A2A9EB4D00902DE78E /* TcpSockets.xcodeproj */,
|
||||
151034F9C66E464B8A6581DA /* ToolTipMenu.xcodeproj */,
|
||||
CEF75317A8A047AB85BF0FC9 /* RCTPrivacySnapshot.xcodeproj */,
|
||||
C41AE1DD23384D5CA09A0F90 /* RNCSlider.xcodeproj */,
|
||||
);
|
||||
name = Libraries;
|
||||
sourceTree = "<group>";
|
||||
|
@ -1016,13 +1025,13 @@
|
|||
94565BFC6A0C4235B3EC7B01 /* libRNSVG.a */,
|
||||
9F1F51A83D044F3BB26A35FC /* libRNSVG-tvOS.a */,
|
||||
A7C4B1FDAD264618BAF8C335 /* libRNCWebView.a */,
|
||||
E7078D2FED444DA4B0BD57F9 /* libRCTWKWebView.a */,
|
||||
FC98DC24A81A463AB8B2E6B1 /* libRNImagePicker.a */,
|
||||
B642AFB13483418CAB6FF25E /* libRCTQRCodeLocalImage.a */,
|
||||
9DF4E6C040764E4BA1ACC1EB /* libTcpSockets.a */,
|
||||
90F86BC5194548CA87D729A9 /* libToolTipMenu.a */,
|
||||
8448882949434D41A054C0B2 /* ToolTipMenuTests.xctest */,
|
||||
FC63C7054F1C4FDFB7A830E5 /* libRCTPrivacySnapshot.a */,
|
||||
B4D3235A177F4580BA52F2F9 /* libRNCSlider.a */,
|
||||
);
|
||||
name = "Recovered References";
|
||||
sourceTree = "<group>";
|
||||
|
@ -1074,6 +1083,7 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
B40FE56C21FAD229005D5578 /* libRNGestureHandler.a */,
|
||||
B4E923C42251B1CF00ABC850 /* libRNGestureHandler-tvOS.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
|
@ -1146,14 +1156,6 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B40FE6D921FAD7A7005D5578 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B40FE6DD21FAD7A8005D5578 /* libRCTWKWebView.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B4327EEF21FC137D00F7ADFA /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -1186,6 +1188,14 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B4E923D22251B1CF00ABC850 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B4E923D62251B1CF00ABC850 /* libRNCSlider.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
@ -1296,6 +1306,7 @@
|
|||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
|
@ -1363,10 +1374,6 @@
|
|||
ProductGroup = 139FDEE71B06529A00C62182 /* Products */;
|
||||
ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = B40FE6D921FAD7A7005D5578 /* Products */;
|
||||
ProjectRef = E7173EC6B95B4981AD3D4C70 /* RCTWKWebView.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 146834001AC3E56700842450 /* Products */;
|
||||
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
|
@ -1379,6 +1386,10 @@
|
|||
ProductGroup = B40FE53D21FAD229005D5578 /* Products */;
|
||||
ProjectRef = BCBEC3BDE968405183D1ABAD /* RNCamera.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = B4E923D22251B1CF00ABC850 /* Products */;
|
||||
ProjectRef = C41AE1DD23384D5CA09A0F90 /* RNCSlider.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = B40FE67F21FAD78F005D5578 /* Products */;
|
||||
ProjectRef = 2509F6D4DBD14FECBAD3EAC6 /* RNCWebView.xcodeproj */;
|
||||
|
@ -1856,13 +1867,6 @@
|
|||
remoteRef = B40FE68221FAD78F005D5578 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B40FE6DD21FAD7A8005D5578 /* libRCTWKWebView.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRCTWKWebView.a;
|
||||
remoteRef = B40FE6DC21FAD7A8005D5578 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B4327EF321FC137D00F7ADFA /* libRNImagePicker.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
|
@ -1891,6 +1895,20 @@
|
|||
remoteRef = B47720652202510900DD0E81 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B4E923C42251B1CF00ABC850 /* libRNGestureHandler-tvOS.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = "libRNGestureHandler-tvOS.a";
|
||||
remoteRef = B4E923C32251B1CF00ABC850 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B4E923D62251B1CF00ABC850 /* libRNCSlider.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNCSlider.a;
|
||||
remoteRef = B4E923D52251B1CF00ABC850 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
/* End PBXReferenceProxy section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
|
@ -2061,22 +2079,17 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = BlueWalletTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -2109,22 +2122,17 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = BlueWalletTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -2158,15 +2166,15 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = BlueWallet/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
|
@ -2202,15 +2210,15 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = BlueWallet/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
|
@ -2253,21 +2261,16 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = "BlueWallet-tvOS/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -2309,21 +2312,16 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = "BlueWallet-tvOS/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -2364,21 +2362,16 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = "BlueWallet-tvOSTests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
@ -2419,21 +2412,16 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/react-native-svg/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-webview/ios",
|
||||
"$(SRCROOT)/../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView",
|
||||
"$(SRCROOT)/../node_modules/react-native-image-picker/ios",
|
||||
"$(SRCROOT)/../node_modules/@remobile/react-native-qrcode-local-image/ios/RCTQRCodeLocalImage",
|
||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-tooltip/ToolTipMenu",
|
||||
"$(SRCROOT)/../node_modules/react-native-privacy-snapshot/RCTPrivacySnapshot",
|
||||
"$(SRCROOT)/../node_modules/@react-native-community/slider/ios",
|
||||
);
|
||||
INFOPLIST_FILE = "BlueWallet-tvOSTests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
"\"$(SRCROOT)/$(TARGET_NAME)\"",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<key>NSCalendarsUsageDescription</key>
|
||||
<string>This alert should not show up as we do not require this data</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>In order to quickly scan the recipient's address, we need your permission to use the camera to scan their QR Code.</string>
|
||||
<string>In order to quickly scan the recipient's address, we need your permission to use the camera to scan their QR Code.</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>This alert should not show up as we do not require this data</string>
|
||||
<key>NSLocationAlwaysUsageDescription</key>
|
||||
|
|
3214
package-lock.json
generated
3214
package-lock.json
generated
File diff suppressed because it is too large
Load diff
64
package.json
64
package.json
|
@ -3,17 +3,17 @@
|
|||
"version": "3.9.4",
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^10.0.1",
|
||||
"babel-jest": "^24.0.0",
|
||||
"eslint": "^5.13.0",
|
||||
"babel-jest": "^24.7.1",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-babel": "^5.3.0",
|
||||
"eslint-plugin-import": "^2.15.0",
|
||||
"eslint-plugin-node": "^8.0.1",
|
||||
"eslint-plugin-promise": "^4.0.1",
|
||||
"eslint-plugin-promise": "^4.1.1",
|
||||
"eslint-plugin-react": "^7.12.3",
|
||||
"jest": "^24.0.0",
|
||||
"metro-react-native-babel-preset": "^0.51.1",
|
||||
"jest": "^24.7.1",
|
||||
"metro-react-native-babel-preset": "^0.53.1",
|
||||
"prettier-eslint-cli": "^4.7.1",
|
||||
"react-test-renderer": "^16.7.0",
|
||||
"react-test-renderer": "^16.8.6",
|
||||
"rn-nodeify": "github:tradle/rn-nodeify"
|
||||
},
|
||||
"scripts": {
|
||||
|
@ -36,45 +36,46 @@
|
|||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/preset-env": "7.3.1",
|
||||
"@babel/preset-env": "7.4.3",
|
||||
"@react-native-community/slider": "1.0.4",
|
||||
"@remobile/react-native-qrcode-local-image": "1.0.4",
|
||||
"bignumber.js": "8.0.2",
|
||||
"bignumber.js": "8.1.1",
|
||||
"bip21": "2.0.2",
|
||||
"bip39": "2.5.0",
|
||||
"bitcoinjs-lib": "3.3.2",
|
||||
"buffer": "5.2.1",
|
||||
"buffer-reverse": "1.0.1",
|
||||
"crypto-js": "3.1.9-1",
|
||||
"dayjs": "1.8.6",
|
||||
"dayjs": "1.8.12",
|
||||
"electrum-client": "git+https://github.com/Overtorment/node-electrum-client.git",
|
||||
"eslint-config-prettier": "4.0.0",
|
||||
"eslint-config-prettier": "4.1.0",
|
||||
"eslint-config-standard": "12.0.0",
|
||||
"eslint-config-standard-react": "7.0.2",
|
||||
"eslint-plugin-prettier": "3.0.1",
|
||||
"eslint-plugin-standard": "4.0.0",
|
||||
"frisbee": "2.0.5",
|
||||
"frisbee": "2.0.8",
|
||||
"intl": "1.2.5",
|
||||
"mocha": "5.2.0",
|
||||
"node-libs-react-native": "1.0.1",
|
||||
"node-libs-react-native": "1.0.3",
|
||||
"path-browserify": "1.0.0",
|
||||
"prettier": "1.16.3",
|
||||
"prettier": "1.16.4",
|
||||
"process": "0.11.10",
|
||||
"prop-types": "15.6.2",
|
||||
"react": "16.7.0",
|
||||
"react-localization": "1.0.10",
|
||||
"react-native": "0.58.6",
|
||||
"react-native-camera": "1.10.0",
|
||||
"react-native-device-info": "^0.26.4",
|
||||
"prop-types": "15.7.2",
|
||||
"react": "16.8.6",
|
||||
"react-localization": "1.0.13",
|
||||
"react-native": "0.59.3",
|
||||
"react-native-camera": "2.2.1",
|
||||
"react-native-device-info": "1.4.2",
|
||||
"react-native-elements": "0.19.0",
|
||||
"react-native-flexi-radio-button": "0.2.2",
|
||||
"react-native-fs": "2.13.3",
|
||||
"react-native-gesture-handler": "1.0.15",
|
||||
"react-native-google-analytics-bridge": "7.0.0",
|
||||
"react-native-haptic-feedback": "^1.6.0",
|
||||
"react-native-image-picker": "0.28.0",
|
||||
"react-native-gesture-handler": "1.1.0",
|
||||
"react-native-google-analytics-bridge": "7.1.0",
|
||||
"react-native-haptic-feedback": "1.6.0",
|
||||
"react-native-image-picker": "0.28.1",
|
||||
"react-native-level-fs": "3.0.1",
|
||||
"react-native-linear-gradient": "2.5.3",
|
||||
"react-native-modal": "7.0.2",
|
||||
"react-native-linear-gradient": "2.5.4",
|
||||
"react-native-modal": "9.0.0",
|
||||
"react-native-obscure": "1.2.1",
|
||||
"react-native-permissions": "1.1.1",
|
||||
"react-native-popup-menu-android": "1.0.3",
|
||||
|
@ -83,18 +84,17 @@
|
|||
"react-native-qrcode-svg": "5.1.2",
|
||||
"react-native-randombytes": "3.5.2",
|
||||
"react-native-rate": "1.1.6",
|
||||
"react-native-sentry": "0.41.1",
|
||||
"react-native-sentry": "0.42.0",
|
||||
"react-native-snap-carousel": "3.7.5",
|
||||
"react-native-sortable-list": "0.0.22",
|
||||
"react-native-svg": "9.1.1",
|
||||
"react-native-svg": "9.3.7",
|
||||
"react-native-tcp": "3.3.0",
|
||||
"react-native-tooltip": "git+https://github.com/marcosrdz/react-native-tooltip.git",
|
||||
"react-native-vector-icons": "6.2.0",
|
||||
"react-native-webview": "4.1.0",
|
||||
"react-native-wkwebview-reborn": "2.0.0",
|
||||
"react-navigation": "^3.3.2",
|
||||
"react-native-vector-icons": "6.4.2",
|
||||
"react-native-webview": "5.6.2",
|
||||
"react-navigation": "3.6.1",
|
||||
"react-test-render": "1.1.1",
|
||||
"readable-stream": "3.1.1",
|
||||
"readable-stream": "3.3.0",
|
||||
"secure-random": "1.1.1",
|
||||
"stream-browserify": "2.0.2",
|
||||
"util": "0.11.1",
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import React, { Component } from 'react';
|
||||
import { TouchableOpacity, ActivityIndicator, TextInput, Keyboard, BackHandler, View, Platform, Alert } from 'react-native';
|
||||
import { TouchableOpacity, ActivityIndicator, TextInput, Keyboard, BackHandler, View, Alert } from 'react-native';
|
||||
import { WebView } from 'react-native-webview';
|
||||
import WKWebView from 'react-native-wkwebview-reborn';
|
||||
import { BlueNavigationStyle, SafeBlueArea } from '../../BlueComponents';
|
||||
import Ionicons from 'react-native-vector-icons/Ionicons';
|
||||
import PropTypes from 'prop-types';
|
||||
|
@ -16,19 +15,19 @@ let bluewalletResponses = {};
|
|||
// eslint-disable-next-line
|
||||
var webln = {
|
||||
enable: function() {
|
||||
window.postMessage(JSON.stringify({ enable: true }));
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify({ enable: true }));
|
||||
return new Promise(function(resolve, reject) {
|
||||
resolve(true);
|
||||
});
|
||||
},
|
||||
getInfo: function() {
|
||||
window.postMessage('getInfo');
|
||||
window.ReactNativeWebView.postMessage('getInfo');
|
||||
return new Promise(function(resolve, reject) {
|
||||
reject(new Error('not implemented'));
|
||||
});
|
||||
},
|
||||
sendPayment: function(paymentRequest) {
|
||||
window.postMessage(JSON.stringify({ sendPayment: paymentRequest }));
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify({ sendPayment: paymentRequest }));
|
||||
return new Promise(function(resolve, reject) {
|
||||
/* nop. intentionally, forever hang promise.
|
||||
lapp page usually asynchroniously checks payment itself, via ajax,
|
||||
|
@ -38,7 +37,7 @@ var webln = {
|
|||
},
|
||||
makeInvoice: function(RequestInvoiceArgs) {
|
||||
var id = Math.random();
|
||||
window.postMessage(JSON.stringify({ makeInvoice: RequestInvoiceArgs, id: id }));
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify({ makeInvoice: RequestInvoiceArgs, id: id }));
|
||||
return new Promise(function(resolve, reject) {
|
||||
var interval = setInterval(function() {
|
||||
if (bluewalletResponses[id]) {
|
||||
|
@ -49,13 +48,13 @@ var webln = {
|
|||
});
|
||||
},
|
||||
signMessage: function() {
|
||||
window.postMessage('signMessage');
|
||||
window.ReactNativeWebView.postMessage('signMessage');
|
||||
return new Promise(function(resolve, reject) {
|
||||
reject(new Error('not implemented'));
|
||||
});
|
||||
},
|
||||
verifyMessage: function() {
|
||||
window.postMessage('verifyMessage');
|
||||
window.ReactNativeWebView.postMessage('verifyMessage');
|
||||
return new Promise(function(resolve, reject) {
|
||||
reject(new Error('not implemented'));
|
||||
});
|
||||
|
@ -92,19 +91,19 @@ bluewalletResponses = {};
|
|||
|
||||
webln = {
|
||||
enable : function () {
|
||||
window.postMessage(JSON.stringify({'enable': true}));
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify({'enable': true}));
|
||||
return new Promise(function(resolve, reject){
|
||||
resolve(true);
|
||||
})
|
||||
},
|
||||
getInfo : function () {
|
||||
window.postMessage('getInfo');
|
||||
window.ReactNativeWebView.postMessage('getInfo');
|
||||
return new Promise(function(resolve, reject){
|
||||
reject('not implemented');
|
||||
})
|
||||
},
|
||||
sendPayment: function(paymentRequest) {
|
||||
window.postMessage(JSON.stringify({ sendPayment: paymentRequest }));
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify({ sendPayment: paymentRequest }));
|
||||
return new Promise(function(resolve, reject) {
|
||||
/* nop. intentionally, forever hang promise.
|
||||
lapp page usually asynchroniously checks payment itself, via ajax,
|
||||
|
@ -114,7 +113,7 @@ webln = {
|
|||
},
|
||||
makeInvoice: function (RequestInvoiceArgs) {
|
||||
var id = Math.random();
|
||||
window.postMessage(JSON.stringify({makeInvoice: RequestInvoiceArgs, id: id}));
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify({makeInvoice: RequestInvoiceArgs, id: id}));
|
||||
return new Promise(function(resolve, reject) {
|
||||
var interval = setInterval(function () {
|
||||
if (bluewalletResponses[id]) {
|
||||
|
@ -125,13 +124,13 @@ webln = {
|
|||
});
|
||||
},
|
||||
signMessage: function () {
|
||||
window.postMessage('signMessage');
|
||||
window.ReactNativeWebView.postMessage('signMessage');
|
||||
return new Promise(function(resolve, reject){
|
||||
reject('not implemented');
|
||||
})
|
||||
},
|
||||
verifyMessage: function () {
|
||||
window.postMessage('verifyMessage');
|
||||
window.ReactNativeWebView.postMessage('verifyMessage');
|
||||
return new Promise(function(resolve, reject){
|
||||
reject('not implemented');
|
||||
})
|
||||
|
@ -143,7 +142,7 @@ webln = {
|
|||
|
||||
/* listening to events that might come from RN: */
|
||||
document.addEventListener("message", function(event) {
|
||||
window.postMessage("inside webview, received post message: " + event.data);
|
||||
window.ReactNativeWebView.postMessage("inside webview, received post message: " + event.data);
|
||||
var json;
|
||||
try {
|
||||
json = JSON.parse(event.data);
|
||||
|
@ -161,14 +160,14 @@ document.addEventListener("message", function(event) {
|
|||
|
||||
|
||||
function tryToPay(invoice) {
|
||||
window.postMessage(JSON.stringify({sendPayment:invoice}));
|
||||
window.ReactNativeWebView.postMessage(JSON.stringify({sendPayment:invoice}));
|
||||
}
|
||||
|
||||
/* for non-webln compatible pages we do it oldschool,
|
||||
searching for all bolt11 manually */
|
||||
|
||||
setInterval(function() {
|
||||
window.postMessage('interval');
|
||||
window.ReactNativeWebView.postMessage('interval');
|
||||
|
||||
var searchText = "lnbc";
|
||||
|
||||
|
@ -243,193 +242,103 @@ export default class Browser extends Component {
|
|||
};
|
||||
|
||||
renderWebView = () => {
|
||||
if (Platform.OS === 'android') {
|
||||
return (
|
||||
<WebView
|
||||
onNavigationStateChange={this._onNavigationStateChange}
|
||||
ref={ref => (this.webview = ref)}
|
||||
source={{ uri: this.state.url }}
|
||||
onMessage={e => {
|
||||
// this is a handler which receives messages sent from within the browser
|
||||
console.log('---- message from the bus:', e.nativeEvent.data);
|
||||
let json = false;
|
||||
try {
|
||||
json = JSON.parse(e.nativeEvent.data);
|
||||
} catch (_) {}
|
||||
// message from browser has ln invoice
|
||||
if (json && json.sendPayment) {
|
||||
// checking that already asked about this invoice:
|
||||
if (processedInvoices[json.sendPayment]) {
|
||||
return;
|
||||
} else {
|
||||
// checking that we do not trigger alert too often:
|
||||
if (+new Date() - lastTimeTriedToPay < 3000) {
|
||||
return;
|
||||
}
|
||||
lastTimeTriedToPay = +new Date();
|
||||
//
|
||||
processedInvoices[json.sendPayment] = 1;
|
||||
}
|
||||
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page asks for permission to pay an invoice',
|
||||
[
|
||||
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Pay',
|
||||
onPress: () => {
|
||||
console.log('OK Pressed');
|
||||
this.props.navigation.navigate({
|
||||
routeName: 'ScanLndInvoice',
|
||||
params: {
|
||||
uri: json.sendPayment,
|
||||
fromSecret: this.state.fromSecret,
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.makeInvoice) {
|
||||
let amount = Math.max(+json.makeInvoice.minimumAmount, +json.makeInvoice.maximumAmount, +json.makeInvoice.defaultAmount);
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page wants to pay you ' + amount + ' sats (' + json.makeInvoice.defaultMemo + ')',
|
||||
[
|
||||
{ text: 'No thanks', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Accept',
|
||||
onPress: async () => {
|
||||
/** @type {LightningCustodianWallet} */
|
||||
const fromWallet = this.state.fromWallet;
|
||||
const payreq = await fromWallet.addInvoice(amount, json.makeInvoice.defaultMemo || ' ');
|
||||
this.webview.postMessage(JSON.stringify({ bluewalletResponse: { paymentRequest: payreq }, id: json.id }));
|
||||
},
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.enable) {
|
||||
console.log('webln enabled');
|
||||
this.setState({ weblnEnabled: true });
|
||||
}
|
||||
}}
|
||||
onLoadStart={e => {
|
||||
alreadyInjected = false;
|
||||
console.log('load start');
|
||||
this.setState({ pageIsLoading: true, weblnEnabled: false });
|
||||
}}
|
||||
onLoadEnd={e => {
|
||||
console.log('load end');
|
||||
this.setState({ url: e.nativeEvent.url, pageIsLoading: false });
|
||||
}}
|
||||
onLoadProgress={e => {
|
||||
console.log('progress:', e.nativeEvent.progress);
|
||||
if (!alreadyInjected && e.nativeEvent.progress > 0.5) {
|
||||
this.webview.injectJavaScript(injectedParadise);
|
||||
alreadyInjected = true;
|
||||
console.log('injected');
|
||||
}
|
||||
}}
|
||||
/>
|
||||
);
|
||||
} else if (Platform.OS === 'ios') {
|
||||
return (
|
||||
<WKWebView
|
||||
ref={ref => (this.webview = ref)}
|
||||
source={{ uri: this.state.url }}
|
||||
injectJavaScript={injectedParadise}
|
||||
onNavigationStateChange={this._onNavigationStateChange}
|
||||
onMessage={e => {
|
||||
// this is a handler which receives messages sent from within the browser
|
||||
console.log('---- message from the bus:', e.nativeEvent.data);
|
||||
let json = false;
|
||||
try {
|
||||
json = JSON.parse(e.nativeEvent.data);
|
||||
} catch (_) {}
|
||||
// message from browser has ln invoice
|
||||
if (json && json.sendPayment) {
|
||||
return (
|
||||
<WebView
|
||||
onNavigationStateChange={this._onNavigationStateChange}
|
||||
ref={ref => (this.webview = ref)}
|
||||
source={{ uri: this.state.url }}
|
||||
onMessage={e => {
|
||||
// this is a handler which receives messages sent from within the browser
|
||||
console.log('---- message from the bus:', e.nativeEvent.data);
|
||||
let json = false;
|
||||
try {
|
||||
json = JSON.parse(e.nativeEvent.data);
|
||||
} catch (_) {}
|
||||
// message from browser has ln invoice
|
||||
if (json && json.sendPayment) {
|
||||
// checking that already asked about this invoice:
|
||||
if (processedInvoices[json.sendPayment]) {
|
||||
return;
|
||||
} else {
|
||||
// checking that we do not trigger alert too often:
|
||||
if (+new Date() - lastTimeTriedToPay < 3000) {
|
||||
return;
|
||||
}
|
||||
lastTimeTriedToPay = +new Date();
|
||||
//
|
||||
processedInvoices[json.sendPayment] = 1;
|
||||
}
|
||||
|
||||
// checking that already asked about this invoice:
|
||||
if (processedInvoices[json.sendPayment]) {
|
||||
return;
|
||||
} else {
|
||||
processedInvoices[json.sendPayment] = 1;
|
||||
}
|
||||
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page asks for permission to pay an invoice',
|
||||
[
|
||||
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Pay',
|
||||
onPress: () => {
|
||||
console.log('OK Pressed');
|
||||
this.props.navigation.navigate({
|
||||
routeName: 'ScanLndInvoice',
|
||||
params: {
|
||||
uri: json.sendPayment,
|
||||
fromSecret: this.state.fromSecret,
|
||||
},
|
||||
});
|
||||
},
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page asks for permission to pay an invoice',
|
||||
[
|
||||
{ text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Pay',
|
||||
onPress: () => {
|
||||
console.log('OK Pressed');
|
||||
this.props.navigation.navigate({
|
||||
routeName: 'ScanLndInvoice',
|
||||
params: {
|
||||
uri: json.sendPayment,
|
||||
fromSecret: this.state.fromSecret,
|
||||
},
|
||||
});
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.makeInvoice) {
|
||||
let amount = Math.max(+json.makeInvoice.minimumAmount, +json.makeInvoice.maximumAmount, +json.makeInvoice.defaultAmount);
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page wants to pay you ' + amount + ' sats (' + json.makeInvoice.defaultMemo + ')',
|
||||
[
|
||||
{ text: 'No thanks', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Accept',
|
||||
onPress: async () => {
|
||||
/** @type {LightningCustodianWallet} */
|
||||
const fromWallet = this.state.fromWallet;
|
||||
const payreq = await fromWallet.addInvoice(amount, json.makeInvoice.defaultMemo || ' ');
|
||||
this.webview.postMessage(JSON.stringify({ bluewalletResponse: { paymentRequest: payreq }, id: json.id }));
|
||||
},
|
||||
if (json && json.makeInvoice) {
|
||||
let amount = Math.max(+json.makeInvoice.minimumAmount, +json.makeInvoice.maximumAmount, +json.makeInvoice.defaultAmount);
|
||||
Alert.alert(
|
||||
'Page',
|
||||
'This page wants to pay you ' + amount + ' sats (' + json.makeInvoice.defaultMemo + ')',
|
||||
[
|
||||
{ text: 'No thanks', onPress: () => console.log('Cancel Pressed'), style: 'cancel' },
|
||||
{
|
||||
text: 'Accept',
|
||||
onPress: async () => {
|
||||
/** @type {LightningCustodianWallet} */
|
||||
const fromWallet = this.state.fromWallet;
|
||||
const payreq = await fromWallet.addInvoice(amount, json.makeInvoice.defaultMemo || ' ');
|
||||
this.webview.postMessage(JSON.stringify({ bluewalletResponse: { paymentRequest: payreq }, id: json.id }));
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
},
|
||||
],
|
||||
{ cancelable: false },
|
||||
);
|
||||
}
|
||||
|
||||
if (json && json.enable) {
|
||||
console.log('webln enabled');
|
||||
this.setState({ weblnEnabled: true });
|
||||
}
|
||||
}}
|
||||
onLoadStart={e => {
|
||||
alreadyInjected = false;
|
||||
console.log('load start');
|
||||
this.setState({ pageIsLoading: true, weblnEnabled: false });
|
||||
}}
|
||||
onLoadEnd={e => {
|
||||
console.log('load end');
|
||||
this.setState({ url: e.nativeEvent.url, pageIsLoading: false });
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
if (json && json.enable) {
|
||||
console.log('webln enabled');
|
||||
this.setState({ weblnEnabled: true });
|
||||
}
|
||||
}}
|
||||
onLoadStart={e => {
|
||||
alreadyInjected = false;
|
||||
console.log('load start');
|
||||
this.setState({ pageIsLoading: true, weblnEnabled: false });
|
||||
}}
|
||||
onLoadEnd={e => {
|
||||
console.log('load end');
|
||||
this.setState({ url: e.nativeEvent.url, pageIsLoading: false });
|
||||
}}
|
||||
onLoadProgress={e => {
|
||||
console.log('progress:', e.nativeEvent.progress);
|
||||
if (!alreadyInjected && e.nativeEvent.progress > 0.5) {
|
||||
this.webview.injectJavaScript(injectedParadise);
|
||||
alreadyInjected = true;
|
||||
console.log('injected');
|
||||
}
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<SafeBlueArea>
|
||||
|
|
|
@ -11,7 +11,6 @@ import {
|
|||
TouchableWithoutFeedback,
|
||||
StyleSheet,
|
||||
Platform,
|
||||
Slider,
|
||||
AsyncStorage,
|
||||
Text,
|
||||
} from 'react-native';
|
||||
|
@ -24,6 +23,7 @@ import {
|
|||
BlueDismissKeyboardInputAccessory,
|
||||
BlueLoading,
|
||||
} from '../../BlueComponents';
|
||||
import Slider from '@react-native-community/slider';
|
||||
import PropTypes from 'prop-types';
|
||||
import Modal from 'react-native-modal';
|
||||
import NetworkTransactionFees, { NetworkTransactionFee } from '../../models/networkTransactionFees';
|
||||
|
|
Loading…
Add table
Reference in a new issue