diff --git a/ios/Podfile.lock b/ios/Podfile.lock index a16c380a87a..b48f3e9ca26 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,7 +1,5 @@ PODS: - boost (1.83.0) - - BVLinearGradient (2.8.0): - - React-Core - CryptoSwift (1.5.1) - DoubleConversion (1.1.6) - FBLazyVector (0.73.5) @@ -1161,6 +1159,10 @@ PODS: - TOCropViewController - RNKeychain (8.1.2): - React-Core + - RNLinearGradient (3.0.0-alpha.1): + - glog + - RCT-Folly (= 2022.05.16.00) + - React-Core - RNPermissions (4.1.5): - React-Core - RNReanimated (3.6.1): @@ -1188,7 +1190,6 @@ PODS: DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - - BVLinearGradient (from `../node_modules/react-native-linear-gradient`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) @@ -1269,6 +1270,7 @@ DEPENDENCIES: - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`) - RNKeychain (from `../node_modules/react-native-keychain`) + - RNLinearGradient (from `../node_modules/react-native-linear-gradient`) - RNPermissions (from `../node_modules/react-native-permissions`) - RNReanimated (from `../node_modules/react-native-reanimated`) - RNShare (from `../node_modules/react-native-share`) @@ -1294,8 +1296,6 @@ SPEC REPOS: EXTERNAL SOURCES: boost: :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" - BVLinearGradient: - :path: "../node_modules/react-native-linear-gradient" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" FBLazyVector: @@ -1451,6 +1451,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-image-crop-picker" RNKeychain: :path: "../node_modules/react-native-keychain" + RNLinearGradient: + :path: "../node_modules/react-native-linear-gradient" RNPermissions: :path: "../node_modules/react-native-permissions" RNReanimated: @@ -1478,13 +1480,12 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 - BVLinearGradient: 612a04ff38e8480291f3379ee5b5a2c571f03fe0 CryptoSwift: c4f2debceb38bf44c80659afe009f71e23e4a082 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 FBLazyVector: 56e0e498dbb513b96c40bac6284729ba4e62672d FBReactNativeSpec: 146c741a3f40361f6bc13a4ba284678cbedb5881 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 + glog: 530710e7949eb12c82670bd09e946becf50a3c2a hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352 Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8 @@ -1561,6 +1562,7 @@ SPEC CHECKSUMS: RNGestureHandler: 15c6ef51acba34c49ff03003806cf5dd6098f383 RNImageCropPicker: 486e2f7e2b0461ce24321f751410dce1b3b49e6d RNKeychain: a65256b6ca6ba6976132cc4124b238a5b13b3d9c + RNLinearGradient: ccaaebce083b54180da61d992e7fa56abfe000d6 RNPermissions: 08e619529cced22695f4b6d0efcc0a233e278903 RNReanimated: dee37576492f1a375017515f5c77e66e5eec696b RNShare: 859ff710211285676b0bcedd156c12437ea1d564 diff --git a/ios/StatusIm.xcodeproj/project.pbxproj b/ios/StatusIm.xcodeproj/project.pbxproj index 02caa13b6e8..d0a00c6383c 100644 --- a/ios/StatusIm.xcodeproj/project.pbxproj +++ b/ios/StatusIm.xcodeproj/project.pbxproj @@ -8,10 +8,9 @@ /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* StatusImTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* StatusImTests.m */; }; - 0BF51D8C7FBD6A668E6E1FC0 /* libPods-Status-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 45C29909A975E0654116557F /* libPods-Status-StatusIm.a */; }; - 131972279C6DBF736235F9F9 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9DF8AC0F6547107DE1A25D /* libPods-Status-StatusIm-StatusImTests.a */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 231CD38186B86957CFCF645E /* libPods-Status-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DA19658BCC29789EBB3DE79 /* libPods-Status-StatusIm.a */; }; 25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */; }; 3870E1E692E24133A80B07DE /* Inter-SemiBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 693A62DB37BC4CD5A30E5C96 /* Inter-SemiBold.otf */; }; 393D26E3080B443A998F4A2F /* Inter-Italic.otf in Resources */ = {isa = PBXBuildFile; fileRef = B07176ACDAA1422E8F0A3D6B /* Inter-Italic.otf */; }; @@ -41,11 +40,13 @@ 65F6941925780A4F00A45E76 /* Bridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F6941825780A4F00A45E76 /* Bridge.swift */; }; 65F6941A25780A4F00A45E76 /* Bridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F6941825780A4F00A45E76 /* Bridge.swift */; }; 65F6941B25780A4F00A45E76 /* Bridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F6941825780A4F00A45E76 /* Bridge.swift */; }; + 67A3DF2242D5B6C35A4C6A33 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A7B7F8B9749AB74BB0697B49 /* libPods-Status-StatusIm-StatusImTests.a */; }; 70ADBB5ECF934DCF8A0E4919 /* Inter-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 1426DF592BA248FC81D955CB /* Inter-Regular.otf */; }; 715D8132290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 715D8131290BE850006F5C88 /* UbuntuMono-Regular.ttf */; }; 715D8133290BE850006F5C88 /* UbuntuMono-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 715D8131290BE850006F5C88 /* UbuntuMono-Regular.ttf */; }; 74B758FC20D7C00B003343C3 /* launch-image-universal.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 74B758FB20D7C00B003343C3 /* launch-image-universal.storyboard */; }; 8391E8E0E93C41A98AAA6631 /* Inter-SemiBoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = A4F2BBE8D4DD4140A6CCAC39 /* Inter-SemiBoldItalic.otf */; }; + A1B6E23C86E6A40AFE74E925 /* libPods-Status-StatusImPR.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E9723BBA39FC5B087C3D475 /* libPods-Status-StatusImPR.a */; }; B24FC7FD1DE7195700D694FF /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B24FC7FC1DE7195700D694FF /* Social.framework */; }; B24FC7FF1DE7195F00D694FF /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B24FC7FE1DE7195F00D694FF /* MessageUI.framework */; }; B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */; }; @@ -60,7 +61,6 @@ D1786306E0184916B11F4C37 /* Inter-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */; }; D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */; }; D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = B321D25F4493470980039457 /* Inter-BoldItalic.otf */; }; - DE2F1721F9D5702C7CEC5594 /* libPods-Status-StatusImPR.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B17DF204648B8189F8ABD0A7 /* libPods-Status-StatusImPR.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -108,23 +108,23 @@ 00E356EE1AD99517003FC87E /* StatusImTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StatusImTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* StatusImTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatusImTests.m; sourceTree = ""; }; + 0E9723BBA39FC5B087C3D475 /* libPods-Status-StatusImPR.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusImPR.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07F961A680F5B00A75B9A /* StatusIm.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StatusIm.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = StatusIm/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = StatusIm/AppDelegate.mm; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = StatusIm/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = StatusIm/main.m; sourceTree = ""; }; 1426DF592BA248FC81D955CB /* Inter-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Regular.otf"; path = "../resources/fonts/Inter-Regular.otf"; sourceTree = ""; }; - 1B74FBFCB9B8E34B63250A52 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.release.xcconfig"; sourceTree = ""; }; - 232FE8EAB57384181B0DB836 /* Pods-Status-StatusIm.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.release.xcconfig"; sourceTree = ""; }; - 2D9DF8AC0F6547107DE1A25D /* libPods-Status-StatusIm-StatusImTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm-StatusImTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2F18074BFB7862090B68D75F /* Pods-Status-StatusImPR.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.debug.xcconfig"; sourceTree = ""; }; 3A2626CE245C3F2200D5F94B /* Dummy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dummy.swift; sourceTree = ""; }; 3A6406FB24A3ADF90046ED37 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 3A8F8EA924A4D31600BF206D /* GameKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameKit.framework; path = System/Library/Frameworks/GameKit.framework; sourceTree = SDKROOT; }; 3AAD2ADC24A3A60E0075D594 /* Status PR.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Status PR.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 3AB1C3AD245C043900098F67 /* StatusIm-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "StatusIm-Bridging-Header.h"; sourceTree = ""; }; - 45C29909A975E0654116557F /* libPods-Status-StatusIm.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 4E586E1B0E544F64AA9F5BD1 /* 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; }; + 5D2EA2A248267BA083152C22 /* Pods-Status-StatusIm.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.release.xcconfig"; sourceTree = ""; }; + 5DA19658BCC29789EBB3DE79 /* libPods-Status-StatusIm.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 65F693BD2578002500A45E76 /* CoreNFC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreNFC.framework; path = System/Library/Frameworks/CoreNFC.framework; sourceTree = SDKROOT; }; 65F693BF2578003600A45E76 /* CoreNFC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreNFC.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk/System/iOSSupport/System/Library/Frameworks/CoreNFC.framework; sourceTree = DEVELOPER_DIR; }; 65F6941725780A4E00A45E76 /* StatusImTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "StatusImTests-Bridging-Header.h"; sourceTree = ""; }; @@ -132,16 +132,14 @@ 693A62DB37BC4CD5A30E5C96 /* Inter-SemiBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBold.otf"; path = "../resources/fonts/Inter-SemiBold.otf"; sourceTree = ""; }; 715D8131290BE850006F5C88 /* UbuntuMono-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "UbuntuMono-Regular.ttf"; path = "../resources/fonts/UbuntuMono-Regular.ttf"; sourceTree = ""; }; 74B758FB20D7C00B003343C3 /* launch-image-universal.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "launch-image-universal.storyboard"; sourceTree = ""; }; - 7A393286DD0E844D050D0B89 /* Pods-Status-StatusImPR.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.release.xcconfig"; sourceTree = ""; }; - 7BF7B2DB23EE09E5229629DA /* Pods-Status-StatusImPR.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.debug.xcconfig"; sourceTree = ""; }; 8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; 922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = StatusIm.entitlements; path = StatusIm/StatusIm.entitlements; sourceTree = ""; }; 9C76AF5A418D4D65A4CAD1D9 /* InterStatus-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "InterStatus-Regular.otf"; path = "../resources/fonts/InterStatus-Regular.otf"; sourceTree = ""; }; 9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWKWebView.xcodeproj; path = "../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView.xcodeproj"; sourceTree = ""; }; - A0B5AD061DF0F6CC98603A99 /* Pods-Status-StatusIm.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.debug.xcconfig"; sourceTree = ""; }; A4F2BBE8D4DD4140A6CCAC39 /* Inter-SemiBoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBoldItalic.otf"; path = "../resources/fonts/Inter-SemiBoldItalic.otf"; sourceTree = ""; }; + A7B7F8B9749AB74BB0697B49 /* libPods-Status-StatusIm-StatusImTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm-StatusImTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B064AF9CEF590E7140F5193F /* Pods-Status-StatusIm.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.debug.xcconfig"; sourceTree = ""; }; B07176ACDAA1422E8F0A3D6B /* Inter-Italic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Italic.otf"; path = "../resources/fonts/Inter-Italic.otf"; sourceTree = ""; }; - B17DF204648B8189F8ABD0A7 /* libPods-Status-StatusImPR.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusImPR.a"; sourceTree = BUILT_PRODUCTS_DIR; }; B24FC7FC1DE7195700D694FF /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; B24FC7FE1DE7195F00D694FF /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.otf"; path = "../resources/fonts/Inter-Medium.otf"; sourceTree = ""; }; @@ -153,7 +151,9 @@ C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-MediumItalic.otf"; path = "../resources/fonts/Inter-MediumItalic.otf"; sourceTree = ""; }; CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.otf"; path = "../resources/fonts/Inter-Bold.otf"; sourceTree = ""; }; CE4E31B21D8695250033ED64 /* Statusgo.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Statusgo.xcframework; path = "../modules/react-native-status/ios/RCTStatus/Statusgo.xcframework"; sourceTree = ""; }; - D40C4023C7D5B793AEF98426 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; sourceTree = ""; }; + D1249D8E109F0F96FFE2CA6C /* Pods-Status-StatusImPR.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.release.xcconfig"; sourceTree = ""; }; + E089B0F56B6F6715D444A841 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; sourceTree = ""; }; + EAAD01A6F886D961CE1A9541 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -161,7 +161,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 131972279C6DBF736235F9F9 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */, + 67A3DF2242D5B6C35A4C6A33 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -174,7 +174,7 @@ CE4E31B31D8695250033ED64 /* Statusgo.xcframework in Frameworks */, 25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */, BA68A2377A20496EA737000D /* libz.tbd in Frameworks */, - 0BF51D8C7FBD6A668E6E1FC0 /* libPods-Status-StatusIm.a in Frameworks */, + 231CD38186B86957CFCF645E /* libPods-Status-StatusIm.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -188,7 +188,7 @@ 3AAD2AC224A3A60E0075D594 /* Statusgo.xcframework in Frameworks */, 3AAD2AC524A3A60E0075D594 /* libc++.tbd in Frameworks */, 3AAD2AC624A3A60E0075D594 /* libz.tbd in Frameworks */, - DE2F1721F9D5702C7CEC5594 /* libPods-Status-StatusImPR.a in Frameworks */, + A1B6E23C86E6A40AFE74E925 /* libPods-Status-StatusImPR.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -314,9 +314,9 @@ CE4E31B21D8695250033ED64 /* Statusgo.xcframework */, 8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */, 4E586E1B0E544F64AA9F5BD1 /* libz.tbd */, - 45C29909A975E0654116557F /* libPods-Status-StatusIm.a */, - 2D9DF8AC0F6547107DE1A25D /* libPods-Status-StatusIm-StatusImTests.a */, - B17DF204648B8189F8ABD0A7 /* libPods-Status-StatusImPR.a */, + 5DA19658BCC29789EBB3DE79 /* libPods-Status-StatusIm.a */, + A7B7F8B9749AB74BB0697B49 /* libPods-Status-StatusIm-StatusImTests.a */, + 0E9723BBA39FC5B087C3D475 /* libPods-Status-StatusImPR.a */, ); name = Frameworks; sourceTree = ""; @@ -324,12 +324,12 @@ D0D5C8D06825D33BA2D2121E /* Pods */ = { isa = PBXGroup; children = ( - A0B5AD061DF0F6CC98603A99 /* Pods-Status-StatusIm.debug.xcconfig */, - 232FE8EAB57384181B0DB836 /* Pods-Status-StatusIm.release.xcconfig */, - D40C4023C7D5B793AEF98426 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */, - 1B74FBFCB9B8E34B63250A52 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */, - 7BF7B2DB23EE09E5229629DA /* Pods-Status-StatusImPR.debug.xcconfig */, - 7A393286DD0E844D050D0B89 /* Pods-Status-StatusImPR.release.xcconfig */, + B064AF9CEF590E7140F5193F /* Pods-Status-StatusIm.debug.xcconfig */, + 5D2EA2A248267BA083152C22 /* Pods-Status-StatusIm.release.xcconfig */, + E089B0F56B6F6715D444A841 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */, + EAAD01A6F886D961CE1A9541 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */, + 2F18074BFB7862090B68D75F /* Pods-Status-StatusImPR.debug.xcconfig */, + D1249D8E109F0F96FFE2CA6C /* Pods-Status-StatusImPR.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -341,12 +341,12 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "StatusImTests" */; buildPhases = ( - 5937040F3338CDF93E777A93 /* [CP] Check Pods Manifest.lock */, + 9B331412309D5F5632348AEE /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, - 7AD665439C08CFEF5EF84F6A /* [CP] Embed Pods Frameworks */, - 02C1A8CA208E38DA07BAC311 /* [CP] Copy Pods Resources */, + 7545D1B37CABFA574D6D6C31 /* [CP] Embed Pods Frameworks */, + A3AD03105488DA5BC8E8C199 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -362,15 +362,15 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "StatusIm" */; buildPhases = ( - 1DFD6BF757E89B72F40FCEE9 /* [CP] Check Pods Manifest.lock */, + 236F25332B0D1B4DCC0E041E /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 20B6B6891D92C42700CC5C6A /* Embed Frameworks */, E3914A731DF919ED00EBB515 /* Run Script */, - 50F2A2E15670F86233743A5C /* [CP] Embed Pods Frameworks */, - 1B623A051F855FC5B09A0480 /* [CP] Copy Pods Resources */, + 37D91248C8178FEAC1661AE0 /* [CP] Embed Pods Frameworks */, + BC5CED24C6D00996607C4942 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -385,15 +385,15 @@ isa = PBXNativeTarget; buildConfigurationList = 3AAD2AD924A3A60E0075D594 /* Build configuration list for PBXNativeTarget "StatusImPR" */; buildPhases = ( - EB421F3ED78A38D285D771D2 /* [CP] Check Pods Manifest.lock */, + D0B7F25508F9BD7C6B30AF36 /* [CP] Check Pods Manifest.lock */, 3AAD2ABB24A3A60E0075D594 /* Sources */, 3AAD2ABF24A3A60E0075D594 /* Frameworks */, 3AAD2AC924A3A60E0075D594 /* Resources */, 3AAD2AD524A3A60E0075D594 /* Bundle React Native code and images */, 3AAD2AD624A3A60E0075D594 /* Embed Frameworks */, 3AAD2AD724A3A60E0075D594 /* Run Script */, - F4561A2D3C9E6C4B66F4C4F5 /* [CP] Embed Pods Frameworks */, - 6FA1467F7B916ED92FA688E0 /* [CP] Copy Pods Resources */, + 5C9736BD9798020B8F31802B /* [CP] Embed Pods Frameworks */, + B76C3637DC2DDBB6E8472904 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -547,74 +547,44 @@ shellPath = "/usr/bin/env sh"; shellScript = "set -o errexit\nexport NODE_BINARY=\"${NODE_BINARY:-node}\"\nexport NODE_ARGS=\"${NODE_ARGS:- --max-old-space-size=16384 }\"\n\n\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n"; }; - 02C1A8CA208E38DA07BAC311 /* [CP] Copy Pods Resources */ = { + 236F25332B0D1B4DCC0E041E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/RNPermissions/RNPermissionsPrivacyInfo.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNPermissionsPrivacyInfo.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 1B623A051F855FC5B09A0480 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( + inputFileListPaths = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/RNPermissions/RNPermissionsPrivacyInfo.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNPermissionsPrivacyInfo.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", + "$(DERIVED_FILE_DIR)/Pods-Status-StatusIm-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh\"\n"; + 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; }; - 1DFD6BF757E89B72F40FCEE9 /* [CP] Check Pods Manifest.lock */ = { + 37D91248C8178FEAC1661AE0 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); + name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Status-StatusIm-checkManifestLockResult.txt", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - 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"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 3AAD2AD524A3A60E0075D594 /* Bundle React Native code and images */ = { @@ -645,13 +615,13 @@ shellPath = "/usr/bin/env sh"; shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ../logs/set_xcode_version.log 2>&1\n"; }; - 50F2A2E15670F86233743A5C /* [CP] Embed Pods Frameworks */ = { + 5C9736BD9798020B8F31802B /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh", "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; @@ -660,10 +630,28 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 7545D1B37CABFA574D6D6C31 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 5937040F3338CDF93E777A93 /* [CP] Check Pods Manifest.lock */ = { + 9B331412309D5F5632348AEE /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -685,13 +673,13 @@ 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; }; - 6FA1467F7B916ED92FA688E0 /* [CP] Copy Pods Resources */ = { + A3AD03105488DA5BC8E8C199 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-resources.sh", + "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-resources.sh", "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNPermissions/RNPermissionsPrivacyInfo.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", @@ -706,42 +694,58 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 7AD665439C08CFEF5EF84F6A /* [CP] Embed Pods Frameworks */ = { + B76C3637DC2DDBB6E8472904 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + "${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/RNPermissions/RNPermissionsPrivacyInfo.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNPermissionsPrivacyInfo.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-resources.sh\"\n"; showEnvVarsInLog = 0; }; - E3914A731DF919ED00EBB515 /* Run Script */ = { + BC5CED24C6D00996607C4942 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; - buildActionMask = 8; + buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/RNPermissions/RNPermissionsPrivacyInfo.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", ); - name = "Run Script"; + name = "[CP] Copy Pods Resources"; outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNPermissionsPrivacyInfo.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", ); - runOnlyForDeploymentPostprocessing = 1; - shellPath = "/usr/bin/env sh"; - shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ../logs/set_xcode_version.log 2>&1\n"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - EB421F3ED78A38D285D771D2 /* [CP] Check Pods Manifest.lock */ = { + D0B7F25508F9BD7C6B30AF36 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -763,23 +767,19 @@ 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; }; - F4561A2D3C9E6C4B66F4C4F5 /* [CP] Embed Pods Frameworks */ = { + E3914A731DF919ED00EBB515 /* Run Script */ = { isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; + buildActionMask = 8; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); - name = "[CP] Embed Pods Frameworks"; + name = "Run Script"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + runOnlyForDeploymentPostprocessing = 1; + shellPath = "/usr/bin/env sh"; + shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ../logs/set_xcode_version.log 2>&1\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -828,7 +828,7 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D40C4023C7D5B793AEF98426 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */; + baseConfigurationReference = E089B0F56B6F6715D444A841 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_ID_SUFFIX = .debug; @@ -865,7 +865,7 @@ }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1B74FBFCB9B8E34B63250A52 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */; + baseConfigurationReference = EAAD01A6F886D961CE1A9541 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_ID_SUFFIX = ""; @@ -898,7 +898,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A0B5AD061DF0F6CC98603A99 /* Pods-Status-StatusIm.debug.xcconfig */; + baseConfigurationReference = B064AF9CEF590E7140F5193F /* Pods-Status-StatusIm.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)"; BUNDLE_ID_SUFFIX = .debug; @@ -980,7 +980,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 232FE8EAB57384181B0DB836 /* Pods-Status-StatusIm.release.xcconfig */; + baseConfigurationReference = 5D2EA2A248267BA083152C22 /* Pods-Status-StatusIm.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)"; BUNDLE_ID_SUFFIX = ""; @@ -1055,7 +1055,7 @@ }; 3AAD2ADA24A3A60E0075D594 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7BF7B2DB23EE09E5229629DA /* Pods-Status-StatusImPR.debug.xcconfig */; + baseConfigurationReference = 2F18074BFB7862090B68D75F /* Pods-Status-StatusImPR.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)"; BUNDLE_ID_SUFFIX = .debug; @@ -1135,7 +1135,7 @@ }; 3AAD2ADB24A3A60E0075D594 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7A393286DD0E844D050D0B89 /* Pods-Status-StatusImPR.release.xcconfig */; + baseConfigurationReference = D1249D8E109F0F96FFE2CA6C /* Pods-Status-StatusImPR.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "AppIconPR$(BUNDLE_ID_SUFFIX)"; BUNDLE_ID_SUFFIX = ""; diff --git a/modules/react-native-status/android/src/main/java/im/status/ethereum/module/AccountManager.kt b/modules/react-native-status/android/src/main/java/im/status/ethereum/module/AccountManager.kt index b829d2af9dc..51b8fea4809 100644 --- a/modules/react-native-status/android/src/main/java/im/status/ethereum/module/AccountManager.kt +++ b/modules/react-native-status/android/src/main/java/im/status/ethereum/module/AccountManager.kt @@ -314,6 +314,11 @@ class AccountManager(private val reactContext: ReactApplicationContext) : ReactC ) } + @ReactMethod + fun createAccountFromPrivateKey(json: String, callback: Callback) { + utils.executeRunnableStatusGoMethod({ Statusgo.createAccountFromPrivateKey(json) }, callback) + } + companion object { private const val TAG = "AccountManager" private const val gethLogFileName = "geth.log" diff --git a/modules/react-native-status/ios/RCTStatus/AccountManager.m b/modules/react-native-status/ios/RCTStatus/AccountManager.m index 328800396cf..3caafde74c7 100644 --- a/modules/react-native-status/ios/RCTStatus/AccountManager.m +++ b/modules/react-native-status/ios/RCTStatus/AccountManager.m @@ -233,4 +233,12 @@ -(NSString *) prepareDirAndUpdateConfig:(NSString *)config callback(@[result]); } +RCT_EXPORT_METHOD(createAccountFromPrivateKey:(NSString *)configJSON callback:(RCTResponseSenderBlock)callback) { +#if DEBUG + NSLog(@"createAccountFromPrivateKey() method called"); +#endif + NSString *result = StatusgoCreateAccountFromPrivateKey(configJSON); + callback(@[result]); +} + @end diff --git a/nix/deps/gradle/deps.json b/nix/deps/gradle/deps.json index a941526fd51..e9d14917be1 100644 --- a/nix/deps/gradle/deps.json +++ b/nix/deps/gradle/deps.json @@ -8461,6 +8461,10 @@ "sha1": "fcfa9f6e411771b8be9bee29e9d318867d3e1bc3", "sha256": "sha256-ZMFGqsSRjMPiHhMij1/kF4VZM7GBN0zML4me8eFWsm0=" }, + "commons-logging-1.3.2-api.jar": { + "sha1": "0cf1bbd995c6ad9a2bf03efa94b4753409afd1d0", + "sha256": "sha256-FULIR7cLw1ucpucmKT9wm/5cy26alI+5KjeG/6lWE40=" + }, "commons-logging-1.3.2.jar": { "sha1": "3dc966156ef19d23c839715165435e582fafa753", "sha256": "sha256-a4WEJPUYAV8yv80Rg6Nz9Kgn1y0Ca2Ax2gyRzw6PNIk=" @@ -10951,16 +10955,16 @@ }, { - "path": "com/google/auto/value/auto-value-annotations/1.10.4", + "path": "com/google/auto/value/auto-value-annotations/1.11.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "auto-value-annotations-1.10.4.pom": { - "sha1": "1625b4e3671cc5ef044f7e0ed98c15bbfeba13bb", - "sha256": "sha256-c6W4UV+F+IxAiff/SkPNF5Wkgf2rk/qQULE8+hqNJfc=" + "auto-value-annotations-1.11.0.pom": { + "sha1": "a6b3d6cd083f5e03aad810d4bc2b08755cf91753", + "sha256": "sha256-KuwW406j4BFiGgMi9PNvj5v5iLtURitVcJduieoHsSI=" }, - "auto-value-annotations-1.10.4.jar": { - "sha1": "9679de8286eb0a151db6538ba297a8951c4a1224", - "sha256": "sha256-4cRea+ra75eXyw2a/VpFYhrQYc2GMgEvhVgoU6OIeCU=" + "auto-value-annotations-1.11.0.jar": { + "sha1": "f0d047931d07cfbc6fa4079854f181ff62891d6f", + "sha256": "sha256-WgVc5CVTM7M0bhqHA9pb+P8ElTIob9zTFxLWJKvhEd0=" } } }, @@ -10999,12 +11003,12 @@ }, { - "path": "com/google/auto/value/auto-value-parent/1.10.4", + "path": "com/google/auto/value/auto-value-parent/1.11.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "auto-value-parent-1.10.4.pom": { - "sha1": "08d4397fc90a6bd37db513aee267d40b7639db13", - "sha256": "sha256-vsOhnk3ci2QGZyMzzFBbngy2s1WLskIxSGm7bh1ojTA=" + "auto-value-parent-1.11.0.pom": { + "sha1": "4d1249846df8ae67b8ad313bc9a6174516fa49b3", + "sha256": "sha256-Wg0dcYVS6KRdzOASjRtrliP6lxqCzSRXUyM7pyCMsp0=" } } }, @@ -11151,12 +11155,12 @@ }, { - "path": "com/google/code/gson/gson-parent/2.10.1", + "path": "com/google/code/gson/gson-parent/2.11.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "gson-parent-2.10.1.pom": { - "sha1": "67ea6db077285dc50a9b0a627763764f0ef4a770", - "sha256": "sha256-QkjgiCQmxhUYI4XWCGw+8yYudplXGJ4pMGKAuFSCuDM=" + "gson-parent-2.11.0.pom": { + "sha1": "b32d3bc5c89c852efe4c176df6c3fdeccbe150ef", + "sha256": "sha256-issfO3Km8CaRasBzW62aqwKT1Sftt7NlMn3vE6k2e3o=" } } }, @@ -11282,16 +11286,24 @@ }, { - "path": "com/google/code/gson/gson/2.10.1", + "path": "com/google/code/gson/gson/2.11.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "gson-2.10.1.pom": { - "sha1": "ce159faf33c1e665e1f3a785a5d678a2b20151bc", - "sha256": "sha256-0rEVY09cCF20ucn/wmWOieIx/b++IkISGhzZXU2Ujdc=" + "gson-2.11.0.pom": { + "sha1": "55796dd7cc329027df79e96c4e6631e3c02c93c5", + "sha256": "sha256-wOVHvqmYiI5uJcWIapDnYicryItSdTQ90sBd7Wyi42A=" + }, + "gson-2.11.0.buildinfo": { + "sha1": "4d1c42ee3c07943d8e07fab98bf0491877b4c0c6", + "sha256": "sha256-d6O/J0uIwA+ieS0kkb+yLkeL3OUzOMUcMBHW7nDr0pI=" + }, + "gson-2.11.0.buildinfo.asc": { + "sha1": "ba50162dd390a51e11a706d62ef9a5d120138337", + "sha256": "sha256-blLhhVcT0w8htC6V6rrqU+CZ3egMLBv5AgE76D+zGIY=" }, - "gson-2.10.1.jar": { - "sha1": "b3add478d4382b78ea20b1671390a858002feb6c", - "sha256": "sha256-QkHBSncnw0/uplB+yAExij1KkPBw5FJWgQefuU7kxZM=" + "gson-2.11.0.jar": { + "sha1": "527175ca6d81050b53bdd4c457a6d6e017626b0e", + "sha256": "sha256-V5KNblpu3rKr03cKj5W6RNzkXzsjt6ncKzCcWBVSp4s=" } } }, @@ -11507,16 +11519,31 @@ }, { - "path": "com/google/errorprone/error_prone_annotations/2.27.1", + "path": "com/google/errorprone/error_prone_annotations/2.27.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "error_prone_annotations-2.27.0.pom": { + "sha1": "85103026aa50b0e4efafee8f486e3ecd9ebfde31", + "sha256": "sha256-TKWjXWEjXhZUmsNG0eNFUc3w/ifoSqV+A8vrJV6k5do=" + }, + "error_prone_annotations-2.27.0.jar": { + "sha1": "91b2c29d8a6148b5e2e4930f070d4840e2e48e34", + "sha256": "sha256-JMkjNyxY410LnxagKJKbua7cd1IYZ8J08r0HNd9bofU=" + } + } + }, + + { + "path": "com/google/errorprone/error_prone_annotations/2.28.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "error_prone_annotations-2.27.1.pom": { - "sha1": "432107569fdae073842841c566ea1eea3b2f0a96", - "sha256": "sha256-TCN6vSm6OvOcp0TLSkHyRbX/oEXQNskkSvKrPKvKhTc=" + "error_prone_annotations-2.28.0.pom": { + "sha1": "6ab92cea437b733e5ef832e575cbf50fa8aebfad", + "sha256": "sha256-DOkJ8TpWgUhHbl7iAPOA+Yx1ugiXGq8V2ylet3WY7zo=" }, - "error_prone_annotations-2.27.1.jar": { - "sha1": "a87dac4f79a6e5b1e55c629f16c754c53cbd50ec", - "sha256": "sha256-pIlbXbAkNhTZDOKixvgwYkkJwB4xWH2Ow+z1Hl5+dQY=" + "error_prone_annotations-2.28.0.jar": { + "sha1": "59fc00087ce372de42e394d2c789295dff2d19f0", + "sha256": "sha256-8/yKOgpAIHBqNzsA5/V8JRLdJtH4PSjH04do+GgrIx4=" } } }, @@ -11643,12 +11670,23 @@ }, { - "path": "com/google/errorprone/error_prone_parent/2.27.1", + "path": "com/google/errorprone/error_prone_parent/2.27.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "error_prone_parent-2.27.0.pom": { + "sha1": "336f77abf2668b10cae4ab136ea0c8258875de00", + "sha256": "sha256-+oGCnQSVWd9pJ/nJpv1rvQn4tQ5tRzaucsgwC2w9dlQ=" + } + } + }, + + { + "path": "com/google/errorprone/error_prone_parent/2.28.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "error_prone_parent-2.27.1.pom": { - "sha1": "b00504c9994e0c16dc77d661b19421f1ffd179b4", - "sha256": "sha256-APlKPmg8fOr5lQFP/EB/INNycrFQ0mEbNVdLjOcYIjY=" + "error_prone_parent-2.28.0.pom": { + "sha1": "5f307de93ba6c82a0ca99404c1ab927f68c7038a", + "sha256": "sha256-rM79u1QWzvX80t3DfbTx/LNKIZPMGlXf5ZcKExs+doM=" } } }, @@ -11842,27 +11880,27 @@ }, { - "path": "com/google/guava/guava-parent/33.2.0-jre", + "path": "com/google/guava/guava-parent/33.2.1-jre", "repo": "https://repo.maven.apache.org/maven2", "files": { - "guava-parent-33.2.0-jre.pom": { - "sha1": "f5bfac48964350d7ad36aa378acff0ed379f816b", - "sha256": "sha256-Ng5j7DRbu9j6pK3YluMlAt//9U6DQJhFyzPB+tN7WYU=" + "guava-parent-33.2.1-jre.pom": { + "sha1": "fc55955fab23e86fad230acc81bf570deb5660bd", + "sha256": "sha256-kJX22O43ZZUCB1EHhYMMwigOeBBnkV+pnP4XQNSGXBQ=" } } }, { - "path": "com/google/guava/guava-testlib/33.2.0-jre", + "path": "com/google/guava/guava-testlib/33.2.1-jre", "repo": "https://repo.maven.apache.org/maven2", "files": { - "guava-testlib-33.2.0-jre.pom": { - "sha1": "1d0c542e891776dcb545a86de861afb18bc79540", - "sha256": "sha256-HQFL2lY+v0p64DOKef0JPulhIctiQz0g61uejCvIroo=" + "guava-testlib-33.2.1-jre.pom": { + "sha1": "3b95376190925f23c89d9f2f990f2eb0bab9d2b2", + "sha256": "sha256-ZAiayFTlu6dVYLw9PB/dPqQ1cpFXJvYMgjcsq/qnTuQ=" }, - "guava-testlib-33.2.0-jre.jar": { - "sha1": "4678a8fd0e7fba71a4283154fd4979f51ba294d5", - "sha256": "sha256-HK2mwu+stz+eoRk7sMeKr/qT2DjtAGrIBtDXoeYMQlo=" + "guava-testlib-33.2.1-jre.jar": { + "sha1": "ba7d569795211c283c4576d17528534a618a5d59", + "sha256": "sha256-XsFBByZYQk9AzTC5FGf1zmPA5he5Hskn33JW79/S2Eo=" } } }, @@ -12048,20 +12086,20 @@ }, { - "path": "com/google/guava/guava/33.2.0-jre", + "path": "com/google/guava/guava/33.2.1-jre", "repo": "https://repo.maven.apache.org/maven2", "files": { - "guava-33.2.0-jre.pom": { - "sha1": "e78e6bc096ac140596ce47c2cd6e90f12a417779", - "sha256": "sha256-7YMRSBtY5QTb/BtfR3C/B13BL2yshV3X1/NqUNTEGRA=" + "guava-33.2.1-jre.pom": { + "sha1": "5f72123f1bb7d99af8b4a67745fb8309b73a6294", + "sha256": "sha256-QoF73BwMjHN9a0Ec+vSoR2nn0nHoebAW/QhQJIoG2rU=" }, - "guava-33.2.0-jre.jar": { - "sha1": "e264781dadc4967e5292f3c4d05f1d153631f7b4", - "sha256": "sha256-mfSR6GJizjjROzWB1A93rNtGlqlQVEfDFUR0wxkpCN0=" + "guava-33.2.1-jre.jar": { + "sha1": "818e780da2c66c63bbb6480fef1f3855eeafa3e4", + "sha256": "sha256-RSstl4e302b6jPXtmhxAQEVC0F7/p6WY2gO7u7dtnzE=" }, - "guava-33.2.0-jre.module": { - "sha1": "5ee9e7ff047a61986890f7ea80a2695c7239169c", - "sha256": "sha256-eSlFEwC6UJb1M6LiPOqpManfGBIy21emmK1+PB4TD/g=" + "guava-33.2.1-jre.module": { + "sha1": "35b3a43a28bf269178f01d7097263d9ef95cac8b", + "sha256": "sha256-0j7aahwsC9JfijNGzd7sQ7Ufdb+Bm5MeqpgybqZEdCI=" } } }, @@ -12234,12 +12272,12 @@ }, { - "path": "com/google/protobuf/protobuf-bom/4.27.0-RC3", + "path": "com/google/protobuf/protobuf-bom/4.27.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "protobuf-bom-4.27.0-RC3.pom": { - "sha1": "bd9f15b87d06e839222b2dadcd90272013557048", - "sha256": "sha256-S1fPaw/YOC7Ntmsg4yYX+nDJh3kcIsYiOw9GMFhCogI=" + "protobuf-bom-4.27.0.pom": { + "sha1": "56b4bb710c104ec9486c27b0f8e032d1bc11e9ed", + "sha256": "sha256-kbRq1aEDFnGx0+fzkPdYkVkXnXIP9CbHMXiYCTfeDbE=" } } }, @@ -12485,16 +12523,16 @@ }, { - "path": "com/google/protobuf/protobuf-java/4.27.0-RC3", + "path": "com/google/protobuf/protobuf-java/4.27.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "protobuf-java-4.27.0-RC3.pom": { - "sha1": "eb6c9cf9ce563effc186f0a8bbc35aa53bbcf74e", - "sha256": "sha256-tYj2q0siUF4fcX4dwZ/NhbsHbICJkDDlOE0fX0+lb1s=" + "protobuf-java-4.27.0.pom": { + "sha1": "03ea82f584b3f703357c571b521cc84fa80b977c", + "sha256": "sha256-JCl1NSx41sxgr7EY6uYMHFFNZfkwdhwG2w3Rsj4lD6A=" }, - "protobuf-java-4.27.0-RC3.jar": { - "sha1": "b8abf4eca2730bf6de63f187eb1c15dd512cbe83", - "sha256": "sha256-BTKtECTWI2FWGsrtuXTX0WiJ52cLNuI+kyHda50zTvk=" + "protobuf-java-4.27.0.jar": { + "sha1": "c60880f1aa87ae87b9d4346f0a87c511919c2c42", + "sha256": "sha256-kHLmD+Zs/11sDxGh3yHY8+Sym17ngrRcP8dfWfviuDk=" } } }, @@ -12614,12 +12652,12 @@ }, { - "path": "com/google/protobuf/protobuf-parent/4.27.0-RC3", + "path": "com/google/protobuf/protobuf-parent/4.27.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "protobuf-parent-4.27.0-RC3.pom": { - "sha1": "896b7ebb6bf6d26d64bf7b92e41d5e4f6c097a8b", - "sha256": "sha256-i7Fdb53i0Q8PlqmPKfkl+9T/oA/VEOyse5X3QjIYhvc=" + "protobuf-parent-4.27.0.pom": { + "sha1": "10de155e31cfe0f8f7999b8436ff2b016d108591", + "sha256": "sha256-Zft+ZHmFhOzaC6xG5HOEWol1l2vCRspXsy/01tU1U6k=" } } }, @@ -16681,20 +16719,20 @@ }, { - "path": "org/checkerframework/checker-qual/3.43.0", + "path": "org/checkerframework/checker-qual/3.44.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "checker-qual-3.43.0.pom": { - "sha1": "48ad8955d64547b84ef581361c29c030e56430cb", - "sha256": "sha256-kxO/U7Pv2KrKJm7qi5bjB5drZcCxZRDMbwIxn7rr7UM=" + "checker-qual-3.44.0.pom": { + "sha1": "fec730b84f3509af3f10d2062cae751f14ee1978", + "sha256": "sha256-A7MppYafkeWYICzJNzaso3h8r0kUtUQfLAkA5fts/GU=" }, - "checker-qual-3.43.0.jar": { - "sha1": "9425eee39e56b116d2b998b7c2cebcbd11a3c98b", - "sha256": "sha256-P7wumPBYVMPfFt+auqlVuRsVs+ysM2IyCO1kJGQO8PY=" + "checker-qual-3.44.0.jar": { + "sha1": "e026b198319ea9dd3f221fab367d2099215079e5", + "sha256": "sha256-MO1DlgK2wtSq6iqF5Y44hVbwzHrmjtKWSbwc0MAQLNk=" }, - "checker-qual-3.43.0.module": { - "sha1": "3020cf05cf20a5f6e2137e59291be76cd1252b83", - "sha256": "sha256-+BYzJyRauGJVMpSMcqkwVIzZfzTWw/6GD6auxaNNebQ=" + "checker-qual-3.44.0.module": { + "sha1": "d87549604f8dab86b3bdd7e6c2a1d1edc2ecd9c2", + "sha256": "sha256-6oWA9FjrXS7Jw0KDiLpQm8yvZSP2kfJtv0BxZ5jvoi4=" } } }, @@ -19228,16 +19266,16 @@ }, { - "path": "org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC3", + "path": "org/jetbrains/kotlin/kotlin-reflect/2.0.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "kotlin-reflect-2.0.0-RC3.pom": { - "sha1": "a7730291ea955a34868c94a9409c048c15107d94", - "sha256": "sha256-9aeMqntbuaejEkPzeT4Nj+3/q1d6KNW7pXlyMFkU5nU=" + "kotlin-reflect-2.0.0.pom": { + "sha1": "b4563487290a5acea0a569621f441266f36001bd", + "sha256": "sha256-ikQrns4+Vt+fEm8xxiodKjEkir7CiLbYMLrncjcYSLA=" }, - "kotlin-reflect-2.0.0-RC3.jar": { - "sha1": "2de9acd396986f0130a7015ca18caa593915b077", - "sha256": "sha256-bFXdlUw7yRgPPDvM+D9PAf+ifqvMVlWdLKw2Z6FbjMo=" + "kotlin-reflect-2.0.0.jar": { + "sha1": "9c3d75110945233bf77d2e1a90604b100884db94", + "sha256": "sha256-ERvZBpIZN/dtoXdgZBEW0EtXp6Evz5gO/nxnZ/RRefA=" } } }, @@ -20815,28 +20853,28 @@ }, { - "path": "org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC3", + "path": "org/jetbrains/kotlin/kotlin-stdlib/2.0.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "kotlin-stdlib-2.0.0-RC3.pom": { - "sha1": "7fb5dbef4bdc345da221fecbd12ddbcf6bbe3160", - "sha256": "sha256-zUpUNgRDkBPpPf5Czq/zFbV0Fy6PWdc4u7Ast9mrP38=" + "kotlin-stdlib-2.0.0.pom": { + "sha1": "028759a886ea2f745a324c2d58ae631692dac90f", + "sha256": "sha256-WQ5ia8kzl6XnXMeI8s7INbN6HuLlSDmvMNvY1bocLvI=" }, - "kotlin-stdlib-2.0.0-RC3-all.jar": { + "kotlin-stdlib-2.0.0-all.jar": { "sha1": "e6142a28b5fa6722cd811dd86278ad056784fa40", "sha256": "sha256-MOBSIrwGf/+4lqMna18ePylFC/HZRh0noZzg78eTtc0=" }, - "kotlin-stdlib-2.0.0-RC3-common.jar": { + "kotlin-stdlib-2.0.0-common.jar": { "sha1": "281e03983850e590dcc0d2474758f2fa8dd0e96a", "sha256": "sha256-EsHDu0lApPmVlUD/tc8uLl6brNtoywDEvSidFjm9HSc=" }, - "kotlin-stdlib-2.0.0-RC3.jar": { - "sha1": "37bea4f33a0d1823317f1210048928030077ec38", - "sha256": "sha256-B2a3hUy+BDpaysUyZ3CUvh9ua0iT54/a2SXC64Mks3Y=" + "kotlin-stdlib-2.0.0.jar": { + "sha1": "b48df2c4aede9586cc931ead433bc02d6fd7879e", + "sha256": "sha256-JAk4xKq45z6IhwPj59P4c4P/5b1TbW1ePBANTNA3n88=" }, - "kotlin-stdlib-2.0.0-RC3.module": { - "sha1": "83a7913d9fd48986a323feb3fccc2b1049182fab", - "sha256": "sha256-vpppwKPQSAwqZ2ff0DPELmM87yPovzFuqKy8Osz9piE=" + "kotlin-stdlib-2.0.0.module": { + "sha1": "2753eb5e4958b5462bcc3bd38458a9589cdd1fd3", + "sha256": "sha256-ZPluqOe5iWcxBSJB/9OiZfgnTXYeX+ncCIrEWzFxg0E=" } } }, @@ -21116,16 +21154,16 @@ }, { - "path": "org/junit/junit-bom/5.11.0-M1", + "path": "org/junit/junit-bom/5.11.0-M2", "repo": "https://repo.maven.apache.org/maven2", "files": { - "junit-bom-5.11.0-M1.pom": { - "sha1": "afec72e7b7df3cd97c3fe53164c3f5dfc6a0ff94", - "sha256": "sha256-tQl19cuoYgSr2j3Nbwl6+Rn+IuIe9pR43WuRn2x0DYU=" + "junit-bom-5.11.0-M2.pom": { + "sha1": "6c517cddae7893aba5bf9f051c44860a4fc18211", + "sha256": "sha256-Sj/8Sk7c/sLLXWGZInBqlAcWF5hXGTn4VN/ac+ThfMg=" }, - "junit-bom-5.11.0-M1.module": { - "sha1": "8824de265f75444b83779557736d03b4c8fac3f7", - "sha256": "sha256-j2MviWXptvQGnj1YueomuaW8dqmOibQyM3d6zm2tsjc=" + "junit-bom-5.11.0-M2.module": { + "sha1": "4546561225def9f7f99c7c1abc3828dec51aad2a", + "sha256": "sha256-hkd6vPSQ1soFmqmXPLEI0ipQb0nRpVabsyzGy/Q8LM4=" } } }, diff --git a/nix/deps/gradle/deps.list b/nix/deps/gradle/deps.list index 6ff95332b6d..be2f694e8fb 100644 --- a/nix/deps/gradle/deps.list +++ b/nix/deps/gradle/deps.list @@ -4,12 +4,10 @@ androidx.activity:activity:1.2.4 androidx.activity:activity:1.6.0 androidx.annotation:annotation-experimental:1.1.0 androidx.annotation:annotation-experimental:1.3.0 -androidx.annotation:annotation-jvm:1.6.0 androidx.annotation:annotation:1.0.0 androidx.annotation:annotation:1.1.0 androidx.annotation:annotation:1.2.0 androidx.annotation:annotation:1.3.0 -androidx.annotation:annotation:1.6.0 androidx.appcompat:appcompat-resources:1.1.0-rc01 androidx.appcompat:appcompat-resources:1.2.0 androidx.appcompat:appcompat-resources:1.3.1 @@ -488,7 +486,6 @@ com.facebook.fresco:nativeimagetranscoder:3.1.3 com.facebook.fresco:soloader:3.1.3 com.facebook.fresco:ui-common:3.1.3 com.facebook.infer.annotation:infer-annotation:0.18.0 -com.facebook.react:hermes-android:0.73.5 com.facebook.react:react-android:0.73.5 com.facebook.soloader:annotation:0.10.5 com.facebook.soloader:nativeloader:0.10.5 @@ -943,4 +940,7 @@ com.android.tools.build:gradle:8.1.1 com.google.errorprone:error_prone_annotations:2.7.1 com.android.tools.lint:lint-gradle:31.1.1 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -com.android.tools.build:gradle:3.5.4 \ No newline at end of file +com.android.tools.build:gradle:3.5.4 +androidx.annotation:annotation:1.6.0 +androidx.annotation:annotation-jvm:1.6.0 +com.facebook.react:hermes-android:0.73.5 \ No newline at end of file diff --git a/nix/deps/gradle/deps.urls b/nix/deps/gradle/deps.urls index 8de640a73da..29b9c1646b1 100644 --- a/nix/deps/gradle/deps.urls +++ b/nix/deps/gradle/deps.urls @@ -671,11 +671,11 @@ https://repo.maven.apache.org/maven2/com/google/auto/auto-parent/7/auto-parent-7 https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annotations/1.6.2/auto-value-annotations-1.6.2.pom https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annotations/1.6.3/auto-value-annotations-1.6.3.pom https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annotations/1.7.4/auto-value-annotations-1.7.4.pom -https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annotations/1.10.4/auto-value-annotations-1.10.4.pom +https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-annotations/1.11.0/auto-value-annotations-1.11.0.pom https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.6.2/auto-value-parent-1.6.2.pom https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.6.3/auto-value-parent-1.6.3.pom https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.7.4/auto-value-parent-1.7.4.pom -https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.10.4/auto-value-parent-1.10.4.pom +https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value-parent/1.11.0/auto-value-parent-1.11.0.pom https://repo.maven.apache.org/maven2/com/google/auto/value/auto-value/1.5.2/auto-value-1.5.2.pom https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom https://repo.maven.apache.org/maven2/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom @@ -687,7 +687,7 @@ https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.8.5/gson https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.8.6/gson-parent-2.8.6.pom https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.8.9/gson-parent-2.8.9.pom https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.9.1/gson-parent-2.9.1.pom -https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.10.1/gson-parent-2.10.1.pom +https://repo.maven.apache.org/maven2/com/google/code/gson/gson-parent/2.11.0/gson-parent-2.11.0.pom https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.3/gson-2.3.pom https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.pom @@ -696,7 +696,7 @@ https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5. https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.pom https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.8.9/gson-2.8.9.pom https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.9.1/gson-2.9.1.pom -https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.pom +https://repo.maven.apache.org/maven2/com/google/code/gson/gson/2.11.0/gson-2.11.0.pom https://repo.maven.apache.org/maven2/com/google/crypto/tink/tink/1.3.0-rc2/tink-1.3.0-rc2.pom https://repo.maven.apache.org/maven2/com/google/crypto/tink/tink/1.7.0/tink-1.7.0.pom https://repo.maven.apache.org/maven2/com/google/dagger/dagger/2.28.3/dagger-2.28.3.pom @@ -711,7 +711,8 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotatio https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.9.0/error_prone_annotations-2.9.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.10.0/error_prone_annotations-2.10.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.pom -https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.27.1/error_prone_annotations-2.27.1.pom +https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.27.0/error_prone_annotations-2.27.0.pom +https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.28.0/error_prone_annotations-2.28.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1.pom @@ -723,7 +724,8 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2. https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.9.0/error_prone_parent-2.9.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.10.0/error_prone_parent-2.10.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.11.0/error_prone_parent-2.11.0.pom -https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.27.1/error_prone_parent-2.27.1.pom +https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.27.0/error_prone_parent-2.27.0.pom +https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.28.0/error_prone_parent-2.28.0.pom https://repo.maven.apache.org/maven2/com/google/flatbuffers/flatbuffers-java/1.12.0/flatbuffers-java-1.12.0.pom https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom https://repo.maven.apache.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom @@ -740,8 +742,8 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/30.1-jre/guav https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/31.0.1-android/guava-parent-31.0.1-android.pom https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/31.0.1-jre/guava-parent-31.0.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/31.1-jre/guava-parent-31.1-jre.pom -https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/33.2.0-jre/guava-parent-33.2.0-jre.pom -https://repo.maven.apache.org/maven2/com/google/guava/guava-testlib/33.2.0-jre/guava-testlib-33.2.0-jre.pom +https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/33.2.1-jre/guava-parent-33.2.1-jre.pom +https://repo.maven.apache.org/maven2/com/google/guava/guava-testlib/33.2.1-jre/guava-testlib-33.2.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/17.0/guava-17.0.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/22.0/guava-22.0.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/23.0/guava-23.0.pom @@ -754,7 +756,7 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava/30.1-jre/guava-30.1- https://repo.maven.apache.org/maven2/com/google/guava/guava/31.0.1-android/guava-31.0.1-android.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.pom -https://repo.maven.apache.org/maven2/com/google/guava/guava/33.2.0-jre/guava-33.2.0-jre.pom +https://repo.maven.apache.org/maven2/com/google/guava/guava/33.2.1-jre/guava-33.2.1-jre.pom https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/1.0/listenablefuture-1.0.pom https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.pom @@ -768,7 +770,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.13.0/pro https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.17.2/protobuf-bom-3.17.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.19.2/protobuf-bom-3.19.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.19.3/protobuf-bom-3.19.3.pom -https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/4.27.0-RC3/protobuf-bom-4.27.0-RC3.pom +https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/4.27.0/protobuf-bom-4.27.0.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/3.17.2/protobuf-javalite-3.17.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/3.19.2/protobuf-javalite-3.19.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java-util/3.4.0/protobuf-java-util-3.4.0.pom @@ -785,7 +787,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.13.0/pr https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.17.2/protobuf-java-3.17.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.19.2/protobuf-java-3.19.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.19.3/protobuf-java-3.19.3.pom -https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.27.0-RC3/protobuf-java-4.27.0-RC3.pom +https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.27.0/protobuf-java-4.27.0.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-lite/3.0.1/protobuf-lite-3.0.1.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.0.0/protobuf-parent-3.0.0.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.4.0/protobuf-parent-3.4.0.pom @@ -796,7 +798,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.13.0/ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.17.2/protobuf-parent-3.17.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.19.2/protobuf-parent-3.19.2.pom https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.19.3/protobuf-parent-3.19.3.pom -https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.27.0-RC3/protobuf-parent-4.27.0-RC3.pom +https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.27.0/protobuf-parent-4.27.0.pom https://repo.maven.apache.org/maven2/com/google/truth/truth-parent/1.4.2/truth-parent-1.4.2.pom https://repo.maven.apache.org/maven2/com/google/truth/truth/1.4.2/truth-1.4.2.pom https://repo.maven.apache.org/maven2/com/ibm/icu/icu4j/53.1/icu4j-53.1.pom @@ -1089,7 +1091,7 @@ https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.8.1/che https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.pom https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.5.0/checker-qual-3.5.0.pom https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.pom -https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.43.0/checker-qual-3.43.0.pom +https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.44.0/checker-qual-3.44.0.pom https://repo.maven.apache.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-xml/3.0.9/groovy-xml-3.0.9.pom https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-xml/3.0.10/groovy-xml-3.0.10.pom @@ -1246,7 +1248,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.20/kotlin-reflect-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.22/kotlin-reflect-1.7.22.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.20-RC2/kotlin-reflect-1.8.20-RC2.pom -https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC3/kotlin-reflect-2.0.0-RC3.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.0.0/kotlin-reflect-2.0.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20/kotlin-scripting-common-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.22/kotlin-scripting-common-1.7.22.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.8.0/kotlin-scripting-common-1.8.0.pom @@ -1351,7 +1353,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.8.20-R https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.0/kotlin-stdlib-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.pom -https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC3/kotlin-stdlib-2.0.0-RC3.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.0.0/kotlin-stdlib-2.0.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.22/kotlin-tooling-core-1.7.22.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.8.0/kotlin-tooling-core-1.8.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.0/kotlin-tooling-core-1.9.0.pom @@ -1370,7 +1372,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trov https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.pom https://repo.maven.apache.org/maven2/org/json/json/20240303/json-20240303.pom https://repo.maven.apache.org/maven2/org/jsoup/jsoup/1.13.1/jsoup-1.13.1.pom -https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.11.0-M1/junit-bom-5.11.0-M1.pom +https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.11.0-M2/junit-bom-5.11.0-M2.pom https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.7.7/stax-ex-1.7.7.pom https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8.1/stax-ex-1.8.1.pom https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.pom diff --git a/nix/deps/gradle/generate.sh b/nix/deps/gradle/generate.sh index cccfaf66cdc..33431470735 100755 --- a/nix/deps/gradle/generate.sh +++ b/nix/deps/gradle/generate.sh @@ -56,6 +56,8 @@ com.google.errorprone:error_prone_annotations:2.7.1 com.android.tools.lint:lint-gradle:31.1.1 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 com.android.tools.build:gradle:3.5.4 +androidx.annotation:annotation:1.6.0 +androidx.annotation:annotation-jvm:1.6.0 com.facebook.react:hermes-android:0.73.5' \ >> "${DEPS_LIST}" } diff --git a/package.json b/package.json index b545a8ac425..4c0f747a942 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "react-native-image-crop-picker": "0.40.0", "react-native-image-resizer": "^1.2.3", "react-native-keychain": "8.1.2", - "react-native-linear-gradient": "^2.8.0", + "react-native-linear-gradient": "3.0.0-alpha.1", "react-native-lottie-splash-screen": "^1.0.1", "react-native-navigation": "7.39.0", "react-native-orientation-locker": "^1.5.0", diff --git a/resources/images/icons2/12x12/password@2x.png b/resources/images/icons2/12x12/password@2x.png new file mode 100644 index 00000000000..ded220f72fd Binary files /dev/null and b/resources/images/icons2/12x12/password@2x.png differ diff --git a/resources/images/icons2/12x12/password@3x.png b/resources/images/icons2/12x12/password@3x.png new file mode 100644 index 00000000000..d1a554005bd Binary files /dev/null and b/resources/images/icons2/12x12/password@3x.png differ diff --git a/src/native_module/core.cljs b/src/native_module/core.cljs index a8bfbdc8f68..9195bf0f94f 100644 --- a/src/native_module/core.cljs +++ b/src/native_module/core.cljs @@ -636,3 +636,14 @@ connection-string config-json callback))) + +(defn create-account-from-private-key + "Validate that a mnemonic conforms to BIP39 dictionary/checksum standards" + ([private-key] + (native-utils/promisify-native-module-call create-account-from-private-key private-key)) + ([private-key callback] + (log/debug "[native-module] create-account-from-private-key") + + (.createAccountFromPrivateKey ^js (account-manager) + (types/clj->json {:privateKey private-key}) + callback))) diff --git a/src/quo/components/avatars/dapp_avatar/style.cljs b/src/quo/components/avatars/dapp_avatar/style.cljs index 41cb4edd0ab..01878b61acb 100644 --- a/src/quo/components/avatars/dapp_avatar/style.cljs +++ b/src/quo/components/avatars/dapp_avatar/style.cljs @@ -1,23 +1,59 @@ (ns quo.components.avatars.dapp-avatar.style) -(def ^:const size 32) +(defn- size->int + [size] + (case size + :size-32 32 + :size-64 64 + 32)) -(def container - {:height size - :width size}) +(defn container + [size] + (let [container-size (size->int size)] + {:height container-size + :width container-size})) -(def hole-view - {:width size - :height size}) +(defn hole-view + [size] + (let [container-size (size->int size)] + {:width container-size + :height container-size})) -(def context - {:width 16 - :height 16 - :border-radius 8 - :position :absolute - :right -4 - :bottom -4}) +(defn context + [size] + (let [context-size (case size + :size-32 16 + :size-64 20 + 20) + offset (case size + :size-32 -4 + :size-64 0 + -4)] + {:width context-size + :height context-size + :border-radius (/ context-size 2) + :position :absolute + :right offset + :bottom offset})) -(def image - {:width size - :height size}) +(defn context-hole + [size] + (let [context-hole-size (case size + :size-32 18 + :size-64 24 + 18) + offset (case size + :size-32 19 + :size-64 42 + 19)] + {:x offset + :y offset + :width context-hole-size + :height context-hole-size + :borderRadius (/ context-hole-size 2)})) + +(defn image + [size] + (let [container-size (size->int size)] + {:width container-size + :height container-size})) diff --git a/src/quo/components/avatars/dapp_avatar/view.cljs b/src/quo/components/avatars/dapp_avatar/view.cljs index 00facc7737c..5a4bcdeda51 100644 --- a/src/quo/components/avatars/dapp_avatar/view.cljs +++ b/src/quo/components/avatars/dapp_avatar/view.cljs @@ -11,32 +11,30 @@ [:props [:map {:closed true} [:context? {:optional true} [:maybe :boolean]] + [:size {:optional true} [:maybe [:enum :size-32 :size-64]]] [:image :schema.common/image-source] [:network-image {:optional true} [:maybe :schema.common/image-source]] [:container-style {:optional true} [:maybe :map]]]]] :any]) (defn- view-internal - [{:keys [context? image network-image container-style]}] + [{:keys [context? size image network-image container-style]}] [rn/view - {:style (merge style/container container-style) + {:style (-> (style/container size) + (merge container-style)) :accessibility-label :dapp-avatar} [hole-view/hole-view (cond-> {:holes (if context? - [{:x 19 - :y 19 - :width 18 - :height 18 - :borderRadius 9}] + [(style/context-hole size)] []) - :style style/hole-view} + :style (style/hole-view size)} platform/android? (assoc :key context?)) [rn/image {:source image - :style style/image}]] + :style (style/image size)}]] (when context? [rn/image {:source network-image - :style style/context}])]) + :style (style/context size)}])]) (def view (schema/instrument #'view-internal ?schema)) diff --git a/src/quo/components/avatars/icon_avatar.cljs b/src/quo/components/avatars/icon_avatar.cljs index 3ee56af2906..646eb074f46 100644 --- a/src/quo/components/avatars/icon_avatar.cljs +++ b/src/quo/components/avatars/icon_avatar.cljs @@ -16,7 +16,7 @@ :icon 12}}) (defn icon-avatar - [{:keys [size icon color opacity border?] + [{:keys [size icon color opacity border? blur?] :or {opacity 20 size :size-32}}] (let [theme (quo.theme/use-theme) @@ -29,7 +29,9 @@ :height component-size :border-radius component-size :border-width (when border? 1) - :border-color (colors/theme-colors colors/neutral-20 colors/neutral-80 theme) + :border-color (if blur? + colors/white-opa-5 + (colors/theme-colors colors/neutral-20 colors/neutral-80 theme)) :background-color circle-color :justify-content :center :align-items :center}} diff --git a/src/quo/components/drawers/bottom_actions/view.cljs b/src/quo/components/drawers/bottom_actions/view.cljs index fdde7f26c90..c731091050a 100644 --- a/src/quo/components/drawers/bottom_actions/view.cljs +++ b/src/quo/components/drawers/bottom_actions/view.cljs @@ -4,6 +4,7 @@ [quo.components.drawers.bottom-actions.style :as style] [quo.components.icon :as icon] [quo.components.markdown.text :as text] + [quo.components.tags.context-tag.schema :as context-tag.schema] [quo.components.tags.context-tag.view :as context-tag] [quo.foundations.colors :as colors] [quo.theme :as quo.theme] @@ -22,6 +23,7 @@ [:description-top-text {:optional true} [:maybe :string]] [:error-message {:optional true} [:maybe :string]] [:role {:optional true} [:maybe [:enum :admin :member :token-master :owner]]] + [:context-tag-props {:optional true} [:maybe context-tag.schema/?schema]] [:button-one-label {:optional true} [:maybe :string]] [:button-two-label {:optional true} [:maybe :string]] [:button-one-props {:optional true} [:maybe :map]] @@ -39,7 +41,8 @@ (defn- view-internal [{:keys [actions description description-text description-top-text error-message role button-one-label - button-two-label blur? button-one-props button-two-props scroll? container-style]}] + button-two-label blur? button-one-props button-two-props scroll? container-style + context-tag-props]}] (let [theme (quo.theme/use-theme)] [rn/view {:style (merge (style/container scroll? blur? theme) container-style)} @@ -54,18 +57,20 @@ :style {:color (colors/theme-colors colors/danger-50 colors/danger-60 theme)}} error-message]]) - (when (and (= description :top) role) + (when (and (= description :top) (or role context-tag-props)) [rn/view {:style style/description-top} [text/text {:size :paragraph-2 :style (style/description-top-text scroll? blur? theme)} (or description-top-text (i18n/label :t/eligible-to-join-as))] [context-tag/view - {:type :icon - :size 24 - :icon (role role-icon) - :blur? blur? - :context (i18n/label (keyword "t" role))}]]) + (if role + {:type :icon + :size 24 + :icon (role role-icon) + :blur? blur? + :context (i18n/label (keyword "t" role))} + context-tag-props)]]) [rn/view {:style style/buttons-container} (when (= actions :two-actions) diff --git a/src/quo/components/list_items/missing_keypair/view.cljs b/src/quo/components/list_items/missing_keypair/view.cljs index 8f03f9f4dc1..f8af44ddbcb 100644 --- a/src/quo/components/list_items/missing_keypair/view.cljs +++ b/src/quo/components/list_items/missing_keypair/view.cljs @@ -11,8 +11,8 @@ [schema.core :as schema])) (defn- internal-view - [{{:keys [accounts name]} :keypair - :keys [keypair blur? on-options-press]}] + [{{:keys [accounts name type]} :keypair + :keys [keypair blur? on-options-press]}] (let [theme (quo.theme/use-theme) on-keypair-options-press (rn/use-callback (fn [event] @@ -22,15 +22,15 @@ {:style (style/container {:theme theme :blur? blur?}) :accessibility-label :missing-keypair-item} - [rn/view - {:style (style/icon-container {:theme theme - :blur? blur?}) - :accessibility-label :icon} - [icon-avatar/icon-avatar - {:size :size-32 - :icon :i/seed - :color :neutral - :border? false}]] + [icon-avatar/icon-avatar + {:size :size-32 + :icon (case type + :seed :i/seed + :key :i/password + nil) + :color :neutral + :blur? true + :border? true}] [rn/view {:style style/name-container :accessibility-label :name} diff --git a/src/quo/components/wallet/keypair/view.cljs b/src/quo/components/wallet/keypair/view.cljs index f6065daab0f..a31e0b31785 100644 --- a/src/quo/components/wallet/keypair/view.cljs +++ b/src/quo/components/wallet/keypair/view.cljs @@ -19,7 +19,8 @@ (i18n/label :t/keypair-title {:name first-name}))) (defn avatar - [{{:keys [full-name]} :details + [{:keys [blur?] + {:keys [full-name]} :details avatar-type :type customization-color :customization-color profile-picture :profile-picture}] @@ -34,6 +35,7 @@ [icon-avatar/icon-avatar {:size :size-32 :icon :i/seed + :blur? blur? :border? true}])) (defn title-view diff --git a/src/status_im/constants.cljs b/src/status_im/constants.cljs index 974a40964fc..ae8854c4c93 100644 --- a/src/status_im/constants.cljs +++ b/src/status_im/constants.cljs @@ -228,7 +228,8 @@ (def regx-string-public-key "0x04[0-9a-f]{128}") (def regx-compressed-key (re-pattern (str "^" regx-string-compressed-key "$"))) (def regx-public-key (re-pattern (str "^" regx-string-public-key "$"))) -(def regx-private-key #"^0x[0-9a-fA-F]{64}$") +(def regx-private-key-hex #"^0x[0-9a-fA-F]{64}$") +(def regx-private-key #"^[0-9a-fA-F]{64}$") (def regx-emoji #"^((?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F|[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF])+$") (def regx-bold #"\*[^*]+\*") diff --git a/src/status_im/contexts/chat/messenger/messages/content/status_link_preview/view.cljs b/src/status_im/contexts/chat/messenger/messages/content/status_link_preview/view.cljs index 9b70190e232..ce4310ec8fd 100644 --- a/src/status_im/contexts/chat/messenger/messages/content/status_link_preview/view.cljs +++ b/src/status_im/contexts/chat/messenger/messages/content/status_link_preview/view.cljs @@ -10,7 +10,7 @@ (when (seq status-link-previews) [rn/view {:style {:margin-top (when link-previews? 8)}} (for [{:keys [url community]} status-link-previews] - (when community + (when (:display-name community) (let [{community-description :description community-icon :icon community-banner :banner diff --git a/src/status_im/contexts/preview/quo/avatars/dapp_avatar.cljs b/src/status_im/contexts/preview/quo/avatars/dapp_avatar.cljs index 4a3c2a1e878..34f0d6f96b2 100644 --- a/src/status_im/contexts/preview/quo/avatars/dapp_avatar.cljs +++ b/src/status_im/contexts/preview/quo/avatars/dapp_avatar.cljs @@ -7,11 +7,16 @@ (def descriptor [{:type :boolean - :key :context?}]) + :key :context?} + {:type :select + :key :size + :options [{:key :size-32} + {:key :size-64}]}]) (defn view [] - (let [[state set-state] (rn/use-state {:context? false})] + (let [[state set-state] (rn/use-state {:context? false + :size :size-32})] [preview/preview-container {:state state :set-state set-state diff --git a/src/status_im/contexts/preview/quo/drawers/bottom_actions.cljs b/src/status_im/contexts/preview/quo/drawers/bottom_actions.cljs index f4e48cae072..882471bb67e 100644 --- a/src/status_im/contexts/preview/quo/drawers/bottom_actions.cljs +++ b/src/status_im/contexts/preview/quo/drawers/bottom_actions.cljs @@ -1,7 +1,7 @@ (ns status-im.contexts.preview.quo.drawers.bottom-actions (:require [quo.core :as quo] - [reagent.core :as reagent] + [react-native.core :as rn] [status-im.contexts.preview.quo.preview :as preview])) (def button-two "Cancel") @@ -58,7 +58,9 @@ (def role-descriptor {:key :role :type :select - :options [{:key :owner} + :options [{:key nil + :value :none} + {:key :owner} {:key :token-master} {:key :admin} {:key :member}]}) @@ -77,35 +79,40 @@ (defn view [] - (let [state (reagent/atom {:actions :two-actions - :description :bottom - :description-text description - :description-top-text "Eligible to join as" - :error-message "Error message" - :button-one-label button-one - :button-two-label button-two - :button-one-props {:on-press (button-press 1) - :type :primary} - :button-two-props {:on-press (button-press 2) - :type :grey} - :blur? false - :role :owner - :scroll? false})] - (fn [] - [preview/preview-container - {:state state - :descriptor (cond-> descriptor - (= (:description @state) :top) - (conj role-descriptor description-top-descriptor) + (let [[state set-state] (rn/use-state + {:actions :two-actions + :description :bottom + :description-text description + :description-top-text "Eligible to join as" + :error-message "Error message" + :button-one-label button-one + :button-two-label button-two + :button-one-props {:on-press (button-press 1) + :type :primary} + :button-two-props {:on-press (button-press 2) + :type :grey} + :blur? false + :role nil + :context-tag-props {:size 24 + :type :token + :token "USDT" + :amount "99.97"} + :scroll? false})] + [preview/preview-container + {:state state + :set-state set-state + :descriptor (cond-> descriptor + (= (:description state) :top) + (conj role-descriptor description-top-descriptor) - (= (:description @state) :bottom) - (conj description-descriptor) + (= (:description state) :bottom) + (conj description-descriptor) - (= (:description @state) :top-error) - (conj error-descriptor)) - :blur? (:blur? @state) - :show-blur-background? true - :blur-dark-only? true - :component-container-style {:margin-top 40 - :padding-horizontal 0}} - [quo/bottom-actions @state]]))) + (= (:description state) :top-error) + (conj error-descriptor)) + :blur? (:blur? state) + :show-blur-background? true + :blur-dark-only? true + :component-container-style {:margin-top 40 + :padding-horizontal 0}} + [quo/bottom-actions state]])) diff --git a/src/status_im/contexts/settings/wallet/data_store.cljs b/src/status_im/contexts/settings/wallet/data_store.cljs index f24a3cdc975..a9c9b47abae 100644 --- a/src/status_im/contexts/settings/wallet/data_store.cljs +++ b/src/status_im/contexts/settings/wallet/data_store.cljs @@ -40,8 +40,8 @@ [keypairs key-uids-set] (map (fn [keypair] (if (contains? key-uids-set (:key-uid keypair)) - (update keypair - :accounts - make-keypairs-accounts-fully-operable) + (-> keypair + (update :accounts make-keypairs-accounts-fully-operable) + (assoc :lowest-operability :fully)) keypair)) keypairs)) diff --git a/src/status_im/contexts/settings/wallet/events.cljs b/src/status_im/contexts/settings/wallet/events.cljs index a9347dcdb84..13ffb0dec84 100644 --- a/src/status_im/contexts/settings/wallet/events.cljs +++ b/src/status_im/contexts/settings/wallet/events.cljs @@ -137,6 +137,36 @@ (rf/reg-event-fx :wallet/make-seed-phrase-keypair-fully-operable make-seed-phrase-keypair-fully-operable) +(defn make-private-key-keypair-fully-operable + [_ [private-key password on-success on-error]] + {:fx [[:json-rpc/call + [{:method "accounts_makePrivateKeyKeypairFullyOperable" + :params [(security/safe-unmask-data private-key) + (-> password security/safe-unmask-data native-module/sha3)] + :on-success on-success + :on-error on-error}]]]}) + +(rf/reg-event-fx :wallet/make-private-key-keypair-fully-operable make-private-key-keypair-fully-operable) + +(defn create-account-from-private-key + [_ [private-key on-success on-error]] + {:fx [[:effects.wallet/create-account-from-private-key + {:private-key (security/safe-unmask-data private-key) + :on-success on-success + :on-error on-error}]]}) + +(rf/reg-event-fx :wallet/create-account-from-private-key create-account-from-private-key) + +(defn verify-private-key-for-keypair + [_ [keypair-key-uid private-key on-success on-error]] + {:fx [[:effects.wallet/verify-private-key-for-keypair + {:keypair-key-uid keypair-key-uid + :private-key (security/safe-unmask-data private-key) + :on-success on-success + :on-error on-error}]]}) + +(rf/reg-event-fx :wallet/verify-private-key-for-keypair verify-private-key-for-keypair) + (defn import-keypair-by-seed-phrase [_ [{:keys [keypair-key-uid seed-phrase password on-success on-error]}]] {:fx [[:import-keypair-by-seed-phrase @@ -146,14 +176,10 @@ :on-success (fn [] (rf/dispatch [:wallet/make-keypairs-accounts-fully-operable #{keypair-key-uid}]) - (cond - (vector? on-success) (rf/dispatch (conj on-success)) - (fn? on-success) (on-success))) + (rf/call-continuation on-success)) :on-error (fn [error] (rf/dispatch [:wallet/import-keypair-by-seed-phrase-failed error]) - (cond - (vector? on-error) (rf/dispatch (conj on-error error)) - (fn? on-error) (on-error error)))}]]}) + (rf/call-continuation on-error error))}]]}) (rf/reg-event-fx :wallet/import-keypair-by-seed-phrase import-keypair-by-seed-phrase) @@ -170,3 +196,28 @@ :text (:error error-data)}]]]}))) (rf/reg-event-fx :wallet/import-keypair-by-seed-phrase-failed import-keypair-by-seed-phrase-failed) + +(defn import-missing-keypair-by-private-key + [_ [{:keys [keypair-key-uid private-key password on-success on-error]}]] + {:fx [[:dispatch + [:wallet/make-private-key-keypair-fully-operable private-key password + (fn [] + (rf/dispatch [:wallet/make-keypairs-accounts-fully-operable #{keypair-key-uid}]) + (rf/call-continuation on-success)) + (fn [error] + (rf/dispatch [:wallet/import-missing-keypair-by-private-key-failed error]) + (log/error "failed to import missing keypair with private key" {:error error}) + (rf/call-continuation on-error error))]]]}) + +(rf/reg-event-fx :wallet/import-missing-keypair-by-private-key import-missing-keypair-by-private-key) + +(defn import-missing-keypair-by-private-key-failed + [_ [error]] + {:fx [[:dispatch + [:toasts/upsert + {:type :negative + :theme :dark + :text error}]]]}) + +(rf/reg-event-fx :wallet/import-missing-keypair-by-private-key-failed + import-missing-keypair-by-private-key-failed) diff --git a/src/status_im/contexts/settings/wallet/events_test.cljs b/src/status_im/contexts/settings/wallet/events_test.cljs index dafced1e67e..f1690b25bce 100644 --- a/src/status_im/contexts/settings/wallet/events_test.cljs +++ b/src/status_im/contexts/settings/wallet/events_test.cljs @@ -57,8 +57,9 @@ (sut/remove-keypair cofx [mock-key-uid]))))))) (deftest make-keypairs-accounts-fully-operable-test - (let [db (mock-db [{:key-uid mock-key-uid - :accounts [{:key-uid mock-key-uid :operable "no"}]}] + (let [db (mock-db [{:key-uid mock-key-uid + :lowest-operability :no + :accounts [{:key-uid mock-key-uid :operable "no"}]}] {"0x1" {:key-uid mock-key-uid :operable "no"}}) key-uids-to-update [mock-key-uid]] (testing "make-keypairs-accounts-fully-operable" @@ -68,7 +69,8 @@ (get-in result-db [:wallet :keypairs])) updated-account (get-in result-db [:wallet :accounts "0x1"])] (is (= (keyword (-> updated-keypair :accounts first :operable)) :fully)) - (is (= (keyword (:operable updated-account)) :fully)))))) + (is (= (keyword (:operable updated-account)) :fully)) + (is (= (:lowest-operability updated-keypair) :fully)))))) (deftest connection-string-for-import-keypair-test (let [cofx {:db (mock-db [] {})} diff --git a/src/status_im/contexts/settings/wallet/keypairs_and_accounts/actions/view.cljs b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/actions/view.cljs index 1a113ceacb1..d0e822a4bd2 100644 --- a/src/status_im/contexts/settings/wallet/keypairs_and_accounts/actions/view.cljs +++ b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/actions/view.cljs @@ -28,6 +28,11 @@ [keypair]) on-import-seed-phrase (rn/use-callback #(rf/dispatch [:open-modal :screen/settings.import-seed-phrase keypair]) + [keypair]) + on-import-private-key (rn/use-callback + #(rf/dispatch [:open-modal + :screen/settings.missing-keypair-import-private-key + keypair]) [keypair])] [:<> [quo/drawer-top drawer-props] @@ -48,7 +53,11 @@ :seed {:icon :i/seed :accessibility-label :import-seed-phrase :label (i18n/label :t/import-by-entering-recovery-phrase) - :on-press #(on-import-seed-phrase keypair)} + :on-press on-import-seed-phrase} + :key {:icon :i/key + :accessibility-label :import-private-key + :label (i18n/label :t/import-by-entering-private-key) + :on-press on-import-private-key} nil)) {:icon :i/edit :accessibility-label :rename-key-pair diff --git a/src/status_im/contexts/settings/wallet/keypairs_and_accounts/import_private_key/style.cljs b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/import_private_key/style.cljs new file mode 100644 index 00000000000..01dbf913c80 --- /dev/null +++ b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/import_private_key/style.cljs @@ -0,0 +1,9 @@ +(ns status-im.contexts.settings.wallet.keypairs-and-accounts.import-private-key.style) + +(def form-container + {:row-gap 8 + :padding-top 8 + :padding-horizontal 20}) + +(def slide-container + {:flex-direction :row}) diff --git a/src/status_im/contexts/settings/wallet/keypairs_and_accounts/import_private_key/view.cljs b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/import_private_key/view.cljs new file mode 100644 index 00000000000..beeb35b8ff8 --- /dev/null +++ b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/import_private_key/view.cljs @@ -0,0 +1,138 @@ +(ns status-im.contexts.settings.wallet.keypairs-and-accounts.import-private-key.view + (:require + [clojure.string :as string] + [quo.core :as quo] + [react-native.clipboard :as clipboard] + [react-native.core :as rn] + [react-native.safe-area :as safe-area] + [status-im.common.floating-button-page.view :as floating-button-page] + [status-im.common.standard-authentication.core :as standard-auth] + [status-im.contexts.settings.wallet.keypairs-and-accounts.import-private-key.style :as style] + [status-im.contexts.wallet.common.validation :as validation] + [utils.debounce :as debounce] + [utils.i18n :as i18n] + [utils.re-frame :as rf] + [utils.security.core :as security])) + +(defn navigate-back + [] + (rf/dispatch [:navigate-back])) + +(defn view + [] + (let [blur? true + insets (safe-area/get-insets) + keypair (rf/sub [:get-screen-params]) + customization-color (rf/sub [:profile/customization-color]) + [private-key set-private-key] (rn/use-state "") + [flow-state set-flow-state] (rn/use-state nil) + error? (case flow-state + (:incorrect-private-key + :invalid-private-key) true + false) + clear-errors (rn/use-callback + #(set-flow-state nil)) + show-invalid (rn/use-callback + #(set-flow-state :invalid-private-key)) + show-correct (rn/use-callback + #(set-flow-state :correct-private-key)) + show-incorrect (rn/use-callback + #(set-flow-state :incorrect-private-key)) + verify-private-key (rn/use-callback + (fn [input] + (rf/dispatch [:wallet/verify-private-key-for-keypair + (:key-uid keypair) + (security/mask-data input) + show-correct + show-incorrect])) + [keypair]) + validate-private-key (rn/use-callback + (debounce/debounce + (fn [input] + (if-not (validation/private-key? input) + (show-invalid) + (do (clear-errors) + (verify-private-key input)))) + 500) + [verify-private-key]) + on-change (rn/use-callback + (fn [input] + (set-private-key input) + (validate-private-key input)) + [validate-private-key]) + on-paste (rn/use-callback + #(clipboard/get-string + (fn [clipboard] + (when-not (empty? clipboard) + (on-change clipboard)))) + [on-change]) + on-import-error (rn/use-callback + (fn [_error] + (rf/dispatch [:hide-bottom-sheet]) + (show-invalid))) + on-import-success (rn/use-callback + (fn [] + (rf/dispatch [:hide-bottom-sheet]) + (rf/dispatch [:navigate-back])) + []) + on-auth-success (rn/use-callback + (fn [password] + (rf/dispatch [:wallet/import-missing-keypair-by-private-key + {:keypair-key-uid (:key-uid keypair) + :private-key (security/mask-data private-key) + :password password + :on-success on-import-success + :on-error on-import-error}])) + [keypair private-key on-import-success on-import-error])] + [quo/overlay {:type :shell} + [floating-button-page/view + {:footer-container-padding 0 + :header [quo/page-nav + {:margin-top (:top insets) + :background :blur + :icon-name :i/close + :on-press navigate-back}] + :footer [rn/view {:style style/slide-container} + [standard-auth/slide-button + {:blur? true + :size :size-48 + :customization-color customization-color + :track-text (i18n/label :t/slide-to-import) + :on-auth-success on-auth-success + :auth-button-label (i18n/label :t/import-key-pair) + :auth-button-icon-left :i/key + :disabled? (or error? (string/blank? private-key)) + :dependencies [on-auth-success]}]]} + [quo/page-top + {:blur? true + :title (i18n/label :t/import-private-key) + :description :context-tag + :context-tag {:type :icon + :icon :i/password + :size 24 + :context (:name keypair)}}] + [rn/view {:style style/form-container} + [quo/input + {:accessibility-label :import-private-key + :placeholder (i18n/label :t/enter-private-key-placeholder) + :label (i18n/label :t/private-key) + :type :password + :blur? blur? + :error? error? + :return-key-type :done + :auto-focus true + :on-change-text on-change + :button (when (empty? private-key) + {:on-press on-paste + :text (i18n/label :t/paste)}) + :default-value private-key}] + (when flow-state + [quo/info-message + {:type (if (= flow-state :correct-private-key) :success :error) + :size :default + :icon :i/info} + (case flow-state + :correct-private-key (i18n/label :t/correct-private-key) + :invalid-private-key (i18n/label :t/invalid-private-key) + :incorrect-private-key (i18n/label :t/incorrect-private-key {:name (:name keypair)}) + nil)])]]])) diff --git a/src/status_im/contexts/settings/wallet/keypairs_and_accounts/view.cljs b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/view.cljs index 8dff0f45d8f..cf2e8a33b93 100644 --- a/src/status_im/contexts/settings/wallet/keypairs_and_accounts/view.cljs +++ b/src/status_im/contexts/settings/wallet/keypairs_and_accounts/view.cljs @@ -1,5 +1,6 @@ (ns status-im.contexts.settings.wallet.keypairs-and-accounts.view (:require [quo.core :as quo] + [quo.foundations.colors :as colors] [quo.theme] [react-native.core :as rn] [react-native.safe-area :as safe-area] @@ -16,10 +17,13 @@ (defn on-options-press [{:keys [drawer-props keypair]}] (rf/dispatch [:show-bottom-sheet - {:content (fn [] [actions/view - {:drawer-props drawer-props - :keypair keypair}]) - :theme (:theme drawer-props)}])) + {:content (fn [] [actions/view + {:drawer-props drawer-props + :keypair keypair}]) + + :blur-background colors/bottom-sheet-background-blur + :theme (:theme drawer-props) + :shell? true}])) (defn options-drawer-props [{{:keys [name]} :keypair @@ -79,15 +83,17 @@ (defn on-missing-keypair-options-press [_event keypair-data] (rf/dispatch [:show-bottom-sheet - {:theme :dark - :content (fn [] [actions/view - {:keypair keypair-data - :drawer-props (options-drawer-props - {:theme :dark - :type :keypair - :stored :missing - :blur? true - :keypair keypair-data})}])}])) + {:theme :dark + :shell? true + :blur-background colors/bottom-sheet-background-blur + :content (fn [] [actions/view + {:keypair keypair-data + :drawer-props (options-drawer-props + {:theme :dark + :type :keypair + :stored :missing + :blur? true + :keypair keypair-data})}])}])) (defn view [] diff --git a/src/status_im/contexts/settings/wallet/saved_addresses/events.cljs b/src/status_im/contexts/settings/wallet/saved_addresses/events.cljs index 211c14a8aac..46b0ec64fb2 100644 --- a/src/status_im/contexts/settings/wallet/saved_addresses/events.cljs +++ b/src/status_im/contexts/settings/wallet/saved_addresses/events.cljs @@ -2,6 +2,7 @@ (:require [status-im.contexts.wallet.data-store :as data-store] [taoensso.timbre :as log] + [utils.i18n :as i18n] [utils.re-frame :as rf])) (defn save-address @@ -99,6 +100,19 @@ (rf/reg-event-fx :wallet/add-saved-address-success add-saved-address-success) +(defn edit-saved-address-success + [_] + {:fx [[:dispatch [:wallet/get-saved-addresses]] + [:dispatch [:navigate-back]] + [:dispatch-later + {:ms 100 + :dispatch [:toasts/upsert + {:type :positive + :theme :dark + :text (i18n/label :t/address-edited)}]}]]}) + +(rf/reg-event-fx :wallet/edit-saved-address-success edit-saved-address-success) + (defn add-saved-address-failed [_ [error]] {:fx [[:dispatch [:wallet/saved-addresses-rpc-error :add-save-address error]] diff --git a/src/status_im/contexts/settings/wallet/saved_addresses/events_test.cljs b/src/status_im/contexts/settings/wallet/saved_addresses/events_test.cljs index 6c2e87a405a..27fc70ad4d0 100644 --- a/src/status_im/contexts/settings/wallet/saved_addresses/events_test.cljs +++ b/src/status_im/contexts/settings/wallet/saved_addresses/events_test.cljs @@ -161,3 +161,20 @@ :text toast-message}]}]]] (is (= (count result-fx) 3)) (is (match? expected-fx result-fx))))) + +(deftest edit-saved-address-success-test + (testing "edit saved address success test - gets saved addresses, dismiss modals and dispatch toast" + (let [cofx {:db {}} + toast-message "Address edited" + effects (events/edit-saved-address-success cofx) + result-fx (:fx effects) + expected-fx [[:dispatch [:wallet/get-saved-addresses]] + [:dispatch [:navigate-back]] + [:dispatch-later + {:ms 100 + :dispatch [:toasts/upsert + {:type :positive + :theme :dark + :text toast-message}]}]]] + (is (= (count result-fx) 3)) + (is (match? expected-fx result-fx))))) diff --git a/src/status_im/contexts/settings/wallet/saved_addresses/save_address/view.cljs b/src/status_im/contexts/settings/wallet/saved_addresses/save_address/view.cljs index bc8fa864db4..4a6d9a0649a 100644 --- a/src/status_im/contexts/settings/wallet/saved_addresses/save_address/view.cljs +++ b/src/status_im/contexts/settings/wallet/saved_addresses/save_address/view.cljs @@ -35,12 +35,16 @@ (defn view [] - (let [{:keys [address ens ens?]} (rf/sub [:wallet/saved-address]) + (let [{:keys [edit?]} (rf/sub [:get-screen-params]) + {:keys [address name customization-color ens ens? network-preferences-names]} + (rf/sub [:wallet/saved-address]) [network-prefixes address-without-prefix] (utils/split-prefix-and-address address) - [address-label set-address-label] (rn/use-state "") - [address-color set-address-color] (rn/use-state (rand-nth colors/account-colors)) + [address-label set-address-label] (rn/use-state (or name "")) + [address-color set-address-color] (rn/use-state (or customization-color + (rand-nth colors/account-colors))) [selected-networks set-selected-networks] - (rn/use-state (network-utils/network-preference-prefix->network-names network-prefixes)) + (rn/use-state (or network-preferences-names + (network-utils/network-preference-prefix->network-names network-prefixes))) chain-short-names (rn/use-memo #(network-utils/network-names->network-preference-prefix selected-networks) @@ -70,8 +74,10 @@ (fn [] (rf/dispatch [:wallet/save-address {:on-success - [:wallet/add-saved-address-success - (i18n/label :t/address-saved)] + (if edit? + [:wallet/edit-saved-address-success] + [:wallet/add-saved-address-success + (i18n/label :t/address-saved)]) :on-error [:wallet/add-saved-address-failed] :name address-label @@ -104,9 +110,9 @@ :header [quo/page-nav {:type :no-title :background :blur - :icon-name :i/arrow-left + :icon-name (if edit? :i/close :i/arrow-left) :on-press navigate-back - :margin-top (safe-area/get-top) + :margin-top (when-not edit? (safe-area/get-top)) :accessibility-label :save-address-page-nav}] :footer [quo/button {:accessibility-label :save-address-button diff --git a/src/status_im/contexts/settings/wallet/saved_addresses/sheets/address_options/view.cljs b/src/status_im/contexts/settings/wallet/saved_addresses/sheets/address_options/view.cljs index da780b3aada..0fa354a19ee 100644 --- a/src/status_im/contexts/settings/wallet/saved_addresses/sheets/address_options/view.cljs +++ b/src/status_im/contexts/settings/wallet/saved_addresses/sheets/address_options/view.cljs @@ -5,7 +5,6 @@ [quo.foundations.colors :as colors] [react-native.core :as rn] [react-native.platform :as platform] - [status-im.common.not-implemented :as not-implemented] [status-im.constants :as constants] [status-im.contexts.settings.wallet.saved-addresses.sheets.remove-address.view :as remove-address] [utils.i18n :as i18n] @@ -62,6 +61,13 @@ open-show-address-qr (rn/use-callback #(rf/dispatch [:open-modal :screen/settings.share-saved-address opts]) + [opts]) + open-edit-saved-address (rn/use-callback + (fn [] + (rf/dispatch [:wallet/set-address-to-save opts]) + (rf/dispatch [:open-modal + :screen/settings.edit-saved-address + {:edit? true}])) [opts])] [quo/action-drawer [[{:icon :i/arrow-up @@ -102,7 +108,7 @@ {:icon :i/edit :label (i18n/label :t/edit-account) :blur? true - :on-press not-implemented/alert + :on-press open-edit-saved-address :accessibility-label :edit-saved-address} {:icon :i/delete :label (i18n/label :t/remove-address) diff --git a/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs b/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs index dcf2331e5e1..312c313a3bb 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/select_keypair/view.cljs @@ -23,7 +23,7 @@ :add-divider? true :on-press #(rf/dispatch [:navigate-to :screen/wallet.enter-seed-phrase {:recovering-keypair? true}])} - (when (ff/enabled? ::wallet.import-private-key) + (when (ff/enabled? ::ff/wallet.import-private-key) {:icon :i/key :accessibility-label :import-private-key :label (i18n/label :t/import-private-key) diff --git a/src/status_im/contexts/wallet/common/validation.cljs b/src/status_im/contexts/wallet/common/validation.cljs index f11969db242..532c2d61ba5 100644 --- a/src/status_im/contexts/wallet/common/validation.cljs +++ b/src/status_im/contexts/wallet/common/validation.cljs @@ -3,4 +3,7 @@ (defn ens-name? [s] (boolean (re-find constants/regx-ens s))) (defn eth-address? [s] (re-find constants/regx-multichain-address s)) -(defn private-key? [s] (re-find constants/regx-private-key s)) +(defn private-key? + [s] + (or (re-find constants/regx-private-key-hex s) + (re-find constants/regx-private-key s))) diff --git a/src/status_im/contexts/wallet/effects.cljs b/src/status_im/contexts/wallet/effects.cljs index 5f0d0d914ba..7987e935271 100644 --- a/src/status_im/contexts/wallet/effects.cljs +++ b/src/status_im/contexts/wallet/effects.cljs @@ -3,9 +3,9 @@ [clojure.string :as string] [native-module.core :as native-module] [promesa.core :as promesa] - [re-frame.core :as rf] [status-im.common.json-rpc.events :as json-rpc] [taoensso.timbre :as log] + [utils.re-frame :as rf] [utils.security.core :as security] [utils.transforms :as transforms])) @@ -46,6 +46,27 @@ (when (and error (fn? on-error)) (on-error error))))))) +(defn create-account-from-private-key + [private-key] + (-> private-key + (security/safe-unmask-data) + (native-module/create-account-from-private-key) + (promesa/then (fn [result] + (let [{:keys [address emojiHash keyUid + publicKey privateKey]} (transforms/json->clj result)] + {:address address + :emoji-hash emojiHash + :key-uid keyUid + :public-key publicKey + :private-key privateKey}))))) + +(rf/reg-fx + :effects.wallet/create-account-from-private-key + (fn [[private-key on-success on-error]] + (-> (create-account-from-private-key private-key) + (promesa/then (partial rf/call-continuation on-success)) + (promesa/catch (partial rf/call-continuation on-error))))) + (defn make-seed-phrase-fully-operable [mnemonic password] (promesa/create @@ -80,11 +101,24 @@ :import-keypair-by-seed-phrase (fn [{:keys [keypair-key-uid seed-phrase password on-success on-error]}] (-> (import-keypair-by-seed-phrase keypair-key-uid seed-phrase password) - (promesa/then (fn [_result] - (cond - (vector? on-success) (rf/dispatch on-success) - (fn? on-success) (on-success)))) - (promesa/catch (fn [error] - (cond - (vector? on-error) (rf/dispatch (conj on-error error)) - (fn? on-error) (on-error error))))))) + (promesa/then (partial rf/call-continuation on-success)) + (promesa/catch (partial rf/call-continuation on-error))))) + +(defn verify-private-key-for-keypair + [keypair-key-uid private-key] + (-> (create-account-from-private-key private-key) + (promesa/then + (fn [{:keys [key-uid] :as result}] + (if (= keypair-key-uid key-uid) + result + (promesa/rejected + (ex-info + (error-message :verify-private-key-for-keypair/verification-error) + {:hint :incorrect-private-key-for-keypair}))))))) + +(rf/reg-fx + :effects.wallet/verify-private-key-for-keypair + (fn [{:keys [keypair-key-uid private-key on-success on-error]}] + (-> (verify-private-key-for-keypair keypair-key-uid private-key) + (promesa/then (partial rf/call-continuation on-success)) + (promesa/catch (partial rf/call-continuation on-error))))) diff --git a/src/status_im/contexts/wallet/sheets/buy_token/view.cljs b/src/status_im/contexts/wallet/sheets/buy_token/view.cljs index a1235c294be..8ec15f48ead 100644 --- a/src/status_im/contexts/wallet/sheets/buy_token/view.cljs +++ b/src/status_im/contexts/wallet/sheets/buy_token/view.cljs @@ -3,7 +3,6 @@ [quo.core :as quo] [react-native.core :as rn] [status-im.contexts.wallet.sheets.buy-token.style :as style] - [status-im.feature-flags :as ff] [utils.i18n :as i18n] [utils.re-frame :as rf])) @@ -46,15 +45,14 @@ (oops/oget % :nativeEvent :layout :height)))] [:<> [quo/drawer-top {:title (i18n/label :t/buy-assets)}] - (when (ff/enabled? ::ff/wallet.buy-recurrent-assets) - [quo/segmented-control - {:size 32 - :container-style style/tabs - :default-active initial-tab - :on-change set-selected-tab - :data tabs}]) + [quo/segmented-control + {:size 32 + :container-style style/tabs + :default-active initial-tab + :on-change set-selected-tab + :data tabs}] [rn/flat-list - {:data (if (and (ff/enabled? ::ff/wallet.buy-recurrent-assets) (= selected-tab :recurrent)) + {:data (if (= selected-tab :recurrent) (:recurrent crypto-on-ramps) (:one-time crypto-on-ramps)) :on-layout on-layout diff --git a/src/status_im/feature_flags.cljs b/src/status_im/feature_flags.cljs index c809f5443f0..4cd23469875 100644 --- a/src/status_im/feature_flags.cljs +++ b/src/status_im/feature_flags.cljs @@ -19,7 +19,6 @@ ::wallet.assets-modal-hide (enabled-in-env? :FLAG_ASSETS_MODAL_HIDE) ::wallet.assets-modal-manage-tokens (enabled-in-env? :FLAG_ASSETS_MODAL_MANAGE_TOKENS) ::wallet.bridge-token (enabled-in-env? :FLAG_BRIDGE_TOKEN_ENABLED) - ::wallet.buy-recurrent-assets (enabled-in-env? :FLAG_BUY_RECURRENT_ASSETS) ::wallet.contacts (enabled-in-env? :FLAG_CONTACTS_ENABLED) ::wallet.edit-derivation-path (enabled-in-env? :FLAG_EDIT_DERIVATION_PATH) ::wallet.graph (enabled-in-env? :FLAG_GRAPH_ENABLED) diff --git a/src/status_im/navigation/screens.cljs b/src/status_im/navigation/screens.cljs index 53335b95269..1335df59add 100644 --- a/src/status_im/navigation/screens.cljs +++ b/src/status_im/navigation/screens.cljs @@ -59,6 +59,8 @@ [status-im.contexts.profile.settings.view :as settings] [status-im.contexts.settings.wallet.keypairs-and-accounts.encrypted-qr.view :as encrypted-key-pair-qr] + [status-im.contexts.settings.wallet.keypairs-and-accounts.import-private-key.view :as + import-private-key] [status-im.contexts.settings.wallet.keypairs-and-accounts.import-seed-phrase.view :as import-seed-phrase] [status-im.contexts.settings.wallet.keypairs-and-accounts.rename.view :as keypair-rename] @@ -553,6 +555,10 @@ :options options/transparent-screen-options :component import-seed-phrase/view} + {:name :screen/settings.missing-keypair-import-private-key + :options options/transparent-screen-options + :component import-private-key/view} + {:name :screen/settings.network-settings :options options/transparent-modal-screen-options :component network-settings/view} @@ -561,6 +567,10 @@ :options options/transparent-modal-screen-options :component wallet-save-address/view} + {:name :screen/settings.edit-saved-address + :options (assoc options/dark-screen :sheet? true) + :component wallet-save-address/view} + {:name :screen/settings.add-address-to-save :options options/transparent-modal-screen-options :component wallet-add-address-to-save/view} diff --git a/src/status_im/subs/wallet/wallet.cljs b/src/status_im/subs/wallet/wallet.cljs index de15c26f9c4..dc16566c779 100644 --- a/src/status_im/subs/wallet/wallet.cljs +++ b/src/status_im/subs/wallet/wallet.cljs @@ -244,6 +244,7 @@ :address address} :networks networks :state :default + :blur? true :action :none}))))) (defn- format-settings-missing-keypair-accounts @@ -257,14 +258,13 @@ (rf/reg-sub :wallet/settings-keypairs-accounts :<- [:wallet/keypairs] - :<- [:wallet/accounts] - (fn [[keypairs accounts] [_ format-options]] - (let [grouped-accounts (->> accounts - (map #(select-keys % [:operable :key-uid])) - (group-by :operable)) - operable-key-pair-ids (->> (map :key-uid (:fully grouped-accounts)) + (fn [keypairs [_ format-options]] + (let [grouped-keypairs (group-by :lowest-operability keypairs) + operable-key-pair-ids (->> (concat (:fully grouped-keypairs) + (:partially grouped-keypairs)) + (map :key-uid) (into #{})) - missing-key-pair-ids (->> (map :key-uid (:no grouped-accounts)) + missing-key-pair-ids (->> (map :key-uid (:no grouped-keypairs)) (into #{}))] {:operable (->> keypairs (filter #(contains? operable-key-pair-ids (:key-uid %))) diff --git a/src/status_im/subs/wallet/wallet_test.cljs b/src/status_im/subs/wallet/wallet_test.cljs index c6ba5b66bd8..dbe2c58b7bd 100644 --- a/src/status_im/subs/wallet/wallet_test.cljs +++ b/src/status_im/subs/wallet/wallet_test.cljs @@ -651,16 +651,18 @@ :removed false}) (def default-keypair-accounts - {:key-uid "abc" - :name "My Profile" - :type "profile" - :accounts []}) + {:key-uid "abc" + :name "My Profile" + :type "profile" + :lowest-operability :fully + :accounts []}) (def seed-phrase-keypair-accounts - {:key-uid "def" - :name "My Key Pair" - :type "seed" - :accounts []}) + {:key-uid "def" + :name "My Key Pair" + :type "seed" + :lowest-operability :no + :accounts []}) (h/deftest-sub :wallet/settings-keypairs-accounts [sub-name] diff --git a/src/utils/re_frame.cljs b/src/utils/re_frame.cljs index 26352af53c8..ded7d3c5930 100644 --- a/src/utils/re_frame.cljs +++ b/src/utils/re_frame.cljs @@ -88,3 +88,45 @@ (def dispatch-sync re-frame/dispatch-sync) (def reg-event-fx re-frame/reg-event-fx) + +(defn call-continuation + "Choose how to call a continuation for a Re-Frame event or effect. + + When defining an event or effect, we can receive `on-success` and `on-error` + parameters for continuing the logic depending on if it succeeded or failed. + When we attempt to continue the logic, we can choose to either dispatch a Re-Frame event, + or we can call a callback function. + + Code example: + + (rf/reg-event-fx :my-event + (fn [_ [arg on-success on-error]] + {:fx [[:my-effect [arg on-success on-error]]]})) + + (rf/reg-event-fx :my-event-success + (fn [db [result]] + {:db (assoc db :my-event-result result)})) + + (rf/reg-event-fx :my-event-error + (fn [db [error]] + {:db (assoc db :my-event-error error)})) + + (rf/reg-fx :my-effect + (fn [[arg on-success on-error]] + (-> (my-effect-impl arg) + (promesa/then (partial call-continuation on-success)) + (promesa/catch (partial call-continuation on-error))))) + + (rf/dispatch [:my-event + :arg + [:my-event-success] + (fn [error] + (log/error error) + (rf/dispatch [:my-event-error error]))])" + [continuation & args] + (cond + (vector? continuation) (dispatch (into continuation args)) + (fn? continuation) (apply continuation args) + :else (throw (ex-info + (str "Unsupported continuation: " (type->str continuation)) + {:hint "Make sure to pass a vector or function"})))) diff --git a/translations/en.json b/translations/en.json index f58f78462e6..caa355c3697 100644 --- a/translations/en.json +++ b/translations/en.json @@ -1021,6 +1021,7 @@ "enter-recovery-phrase": "Enter recovery phrase", "import-key-pair": "Import key pair", "import-by-entering-recovery-phrase": "Import by entering recovery phrase", + "import-by-entering-private-key": "Import by entering private key", "use-recovery-phrase": "Use recovery phrase", "use-recovery-phrase-subtitle": "If you already have an Ethereum address", "use-keycard": "Use Keycard", @@ -2656,6 +2657,8 @@ "amount-missing-keypairs": "{{amount} missing key pairs", "import-private-key-info": "New addresses cannot be derived from an account imported from a private key. Import using a seed phrase if you wish to derive addresses.", "invalid-private-key": "It’s not a valid private key", + "correct-private-key": "Correct private key", + "incorrect-private-key": "This is not the private key for {{name}}", "private-key-public-address": "Public address of private key", "this-account-has-no-activity": "This account has no activity", "this-address-has-activity": "This address has activity", @@ -2688,6 +2691,7 @@ "this-address-is-already-saved": "This address is already saved", "this-ens-name-is-not-registered-yet": "This ENS name is not registered yet", "address-saved": "Address saved", + "address-edited": "Address edited", "dapp-will-be-able-to": "{{dapp-name}} will be able to:", "check-your-account-balance-and-activity": "Check your account balance and activity", "request-txns-and-message-signing": "Request transactions and message signing", diff --git a/yarn.lock b/yarn.lock index 139874ee4f4..61b019b5c1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9345,10 +9345,10 @@ react-native-keychain@8.1.2: resolved "https://registry.yarnpkg.com/react-native-keychain/-/react-native-keychain-8.1.2.tgz#34291ae472878e5124d081211af5ede7d810e64f" integrity sha512-bhHEui+yMp3Us41NMoRGtnWEJiBE0g8tw5VFpq4mpmXAx6XJYahuM6K3WN5CsUeUl83hYysSL9oFZNKSTPSvYw== -react-native-linear-gradient@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.8.0.tgz#767eda0a5c5dbed852f99e4c07fb7d54a8ee3030" - integrity sha512-ZuvNXEB98CMEOAphV/8N9eWrIQTbzUIZD5Tb8IqFoDE8ESERISPT2hTZMvoHTSfjvaB1zge6YpWVg3rpwiTZow== +react-native-linear-gradient@3.0.0-alpha.1: + version "3.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-3.0.0-alpha.1.tgz#fa1914462536f052faa211c34240be3ab1856bdd" + integrity sha512-vo9ks7m2VTLtbdAIMqwk944SB65+rc0U1a2R1CAQetT282DnH4rI3GKenaa+Gj2gPngF1l7Mc3Jxk9+6IZDraA== react-native-lottie-splash-screen@^1.0.1: version "1.1.2"