From e70aa875dd6acdbb96744463dd8ed5fb0536cd31 Mon Sep 17 00:00:00 2001 From: sh-wallet <137136919+sh-wallet@users.noreply.github.com> Date: Fri, 24 Jan 2025 15:38:23 +0530 Subject: [PATCH] chore: mobile ledger updates --- packages/mobile/ios/Podfile.lock | 116 +++++++++--------- .../src/modals/ledger/ledger-selector.tsx | 11 +- .../src/screens/register/ledger/index.tsx | 13 ++ 3 files changed, 79 insertions(+), 61 deletions(-) diff --git a/packages/mobile/ios/Podfile.lock b/packages/mobile/ios/Podfile.lock index 6aed1a34d2..caab5925a2 100644 --- a/packages/mobile/ios/Podfile.lock +++ b/packages/mobile/ios/Podfile.lock @@ -830,36 +830,36 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Amplitude: 10f20d4436fdcd38ddd5be1da7033fcc21f4143e - amplitude-react-native: 6e5b9e38c53e11a86f62f874a42cf176e2b82c86 + amplitude-react-native: 31547517af995bb7e18052580ce3bad6907bd39e AnalyticsConnector: a53214d38ae22734c6266106c0492b37832633a9 AppCenter: 3fd04aa1b166e16fdb03ec81dabe488aece83fbd - appcenter-analytics: 1aea9ada8922d2e2df3e069a28eda21157c9d30d - appcenter-core: c593b2e4ac28d6a21b6a217c4a5e6b3de7b0b00f + appcenter-analytics: 3c06d292afa81fdbf4f48790007e189d01e77d3b + appcenter-core: 69deb1f6818d1e489fa36ad1be543b50bb81aebf AppCenterReactNativeShared: f395caeabde0dc3a11609dbcb737d0f14cd40e79 Base64: cecfb41a004124895a7bcee567a89bae5a89d49b BEMCheckBox: 5ba6e37ade3d3657b36caecc35c8b75c6c2b1a4e boost: 7dcd2de282d72e344012f7d6564d024930a6a440 - BVLinearGradient: 880f91a7854faff2df62518f0281afb1c60d49a3 - CodePush: 9eddecce05cd10491e2673b259c85885a462be33 + BVLinearGradient: cb006ba232a1f3e4f341bb62c42d1098c284da70 + CodePush: 3e3003b55a7b1956021250cf43163efc63926132 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - EXApplication: 02655a251434d564bb0e73291f5a490c74b5b76f - EXBarCodeScanner: 31350bf37e191366075b8748e7c04fc8da6dbba3 - EXCamera: a78e115ec222af91598c1acef238db0695bb4897 - EXConstants: 6cb14c7520a3538d37894fe8f0de9b8196d38455 - EXFileSystem: d7f59869885cfeab3ac771e2a8d0f5ed98cd3fdb - EXFont: 738c44c390953ebcbab075a4848bfbef025fd9ee - EXImageLoader: 34b214f9387e98f3c73989f15d8d5b399c9ab3f7 - EXLocation: e5dd52bdf61ccb6153c9e46ad4cb2686c96a35f9 - Expo: f2485e8fab9988e5dcee34159df5e475c9c3730c - ExpoAppleAuthentication: 265219fa0ba1110872079f55f56686b9737b0065 - ExpoBlur: 2e733ec3aa76653040b29a833984f128a293295a - ExpoClipboard: ddd3ecf4af93c003667dab75a0f2ed3ae4f73d85 - ExpoCrypto: a382ab9a2fa91f0b511ce1fe4d6baecee40a1615 - ExpoKeepAwake: be4cbd52d9b177cde0fd66daa1913afa3161fc1d - ExpoModulesCore: 924a69d9bffa2925c1f7eafab37764565f861d5d - ExpoSecureStore: eea16d67ae42a61a3a25c581198525bfa2cce61c - ExpoWebBrowser: 2c788f9c07718a780fe6d8bf2f6195c47609faaa - EXSplashScreen: c06a8a301f48b2fed6a05cb56789e02b0196bade + EXApplication: a38b05670c49d81d0fe0c8b9dc119d568000f3b9 + EXBarCodeScanner: f516211cac0f8530d4e9246cb2ebfbc7adbfe58e + EXCamera: 1d5d9112081055577ddd0b587cc3322528f8b53c + EXConstants: d1cf429bf70fa335a73417b5160c92d727ea467c + EXFileSystem: bff246197140a683de8874e30c61b857c7750e0d + EXFont: aa39b3f790e2b3188986ac5e8684cf6003c00a18 + EXImageLoader: 2c79db9355756be7494a2257648235ee47dc0f9c + EXLocation: ba79521b873dd91b2fa935d027723a0d3c1f95d0 + Expo: 2dd3330a16ecb6a3632f298d563dd0c30bc33855 + ExpoAppleAuthentication: 8a661b6f4936affafd830f983ac22463c936dad5 + ExpoBlur: 08a62bac745873bb72e7403896551726df115ccd + ExpoClipboard: ba10c66f1cef01e1ac13100f0808a54068aea760 + ExpoCrypto: e0714ca676dc875ee772802cf20bcea6ec75c3e7 + ExpoKeepAwake: 8ab1087501f5ccb91146447756b787575b13f13e + ExpoModulesCore: 2cf9ff822208b714143eecdc7cc3d8df606e4d10 + ExpoSecureStore: 0edc5688f16a10a1b0efa29ab191a7d89b97a2fd + ExpoWebBrowser: 025c51f93c6a04beb169388877918de64ccae171 + EXSplashScreen: ca1bb631dff1b35ff8527a9ee800a41d0999fe7a FBLazyVector: 25cbffbaec517695d376ab4bc428948cd0f08088 FBReactNativeSpec: e03b22fbf7017a6f76641ea4472e73c915dcdda7 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 @@ -867,34 +867,34 @@ SPEC CHECKSUMS: JWT: ef71dfb03e1f842081e64dc42eef0e164f35d251 libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 lottie-ios: 69495122151a378fdc7d1bb4c5930347e37baf1f - lottie-react-native: 8f9d4be452e23f6e5ca0fdc11669dc99ab52be81 + lottie-react-native: 5d89c05930d4180a1e39b1757d46e6c0eec90255 MultiplatformBleAdapter: 5a6a897b006764392f9cef785e4360f54fb9477d - RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 + RCT-Folly: 8dc08ca5a393b48b1c523ab6220dfdcc0fe000ad RCTRequired: fb207f74935626041e7308c9e88dcdda680f1073 RCTTypeSafety: 146fd11361680250b7580dd1f7f601995cfad1b1 React: f3712351445cc96ba507425675a0cd8d31321d0c React-callinvoker: dcc51a66e02d20a70aeca2abbb1388d4d3011bf8 - React-Codegen: 04b7e88a7f5d3933d058ffb9cea7b0268666de79 - React-Core: ed3aeebf41aeb621de2ab4b58216a2fd5a5fd141 - React-CoreModules: 9d1e6f44bf658431a3b99561c8058b54b5959190 - React-cxxreact: d2d14fc0c0782bd9ed7a556892769b4034ae027c + React-Codegen: ef431087b06572288cd0f789c9cf1d22b37c3019 + React-Core: 88bf9e0d862195fda28723fd95aef3111025f300 + React-CoreModules: 96a557c45f6be644a82d63066c4ac79173bba0ff + React-cxxreact: 3db957f2a0db039b95c1103ea2274e36815b8009 React-debug: 4e90d08c78aa207c064a3860e1540ff252695585 React-jsc: 9ffa4c837c5286366d27c892b6c7c34da3cd5f3d - React-jsi: 020729f637b93456de0018061d44ce36f33c2d8a - React-jsiexecutor: ce8ecfcd3b7dbc9cb65a661110be17f5afd18aa3 + React-jsi: 08cb162e1d192bf197bc0693270ab65d8e9d4d5c + React-jsiexecutor: b71b576b4447d9fed6f2f1b146550de70d49a75a React-jsinspector: b86a8abae760c28d69366bbc1d991561e51341ed - React-logger: ed7c9e01e58529065e7da6bf8318baf15024283e - react-native-ble-plx: f10240444452dfb2d2a13a0e4f58d7783e92d76e - react-native-blur: cfdad7b3c01d725ab62a8a729f42ea463998afa2 - react-native-linear-gradient-text: 730c566376c8aa55688030899b044f7853b2fc60 - react-native-netinfo: fefd4e98d75cbdd6e85fc530f7111a8afdf2b0c5 - react-native-safe-area-context: 9697629f7b2cda43cf52169bb7e0767d330648c2 - react-native-webview: 8a4f68a75fc7efaedfdeba6d5aa2db4a4f74f281 - React-NativeModulesApple: 7bab439cb5de9a76299210ed1127698170777a7f + React-logger: 8c0f8173197ad28ac3212c18f8141690209dfe52 + react-native-ble-plx: 2dd8780ee8d34c60399aaa897249ed1860ebef10 + react-native-blur: c91c10c67be1f096415e63925640baa59e2132d2 + react-native-linear-gradient-text: f31d139238b43c1c7db6c3b6a54b1fdfb2fb0137 + react-native-netinfo: 58a62fc2fc7245875718b99ac9914c307e1523ca + react-native-safe-area-context: 8745463257fac6150abd2281b02de640b3595ec7 + react-native-webview: acea6ec36cdb651fa193cdf690798bf0a587b5fb + React-NativeModulesApple: ee6c836571c874dc879cf87603edff00d8dded46 React-perflogger: 6acc671f527e69c0cd93b8e62821d33d3ddf25ca React-RCTActionSheet: 569bb9db46d85565d14697e15ecf2166e035eb07 React-RCTAnimation: 0eea98143c2938a8751a33722623d3e8a38fe1e4 - React-RCTAppDelegate: 74d38dbb3d8691f72e6dda670006e85d9ea21c91 + React-RCTAppDelegate: 11e6d38c00a34e1025b9ef26bb13968f6d9ed902 React-RCTBlob: 9b3b60e806ce5c9fe5a8ee449f3e41087617441c React-RCTImage: 0220975422a367e784dfd794adfc6454fab23c1f React-RCTLinking: 1abf9834017e080ecbd5b6a28b4fb15eb843a3dd @@ -904,23 +904,23 @@ SPEC CHECKSUMS: React-RCTVibration: 372a12b697a170aaee792f8a9999c40e1f2692d0 React-rncore: d1ccbd5adaf4a67703790838b7c62f140e72d32a React-runtimeexecutor: d4f7ff5073fcf87e14dbf89541d434218630246e - React-runtimescheduler: b360635f6f804ec42fa875500620882a6b97d2f5 - React-utils: 8eb3c12fd4a4da6df3824f7d9a961d73a6ed6e5d - ReactCommon: 317bddf4a70fca9e542343e942a504285282971c - RNCAsyncStorage: f47fe18526970a69c34b548883e1aeceb115e3e1 - RNCCheckbox: a3ca9978cb0846b981d28da4e9914bd437403d77 - RNCMaskedView: 090213d32d8b3bb83a4dcb7d12c18f0152591906 - RNDeviceInfo: 5795b418ed3451ebcaf39384e6cf51f60cb931c9 - RNFastImage: 5c9c9fed9c076e521b3f509fe79e790418a544e8 - RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 - RNGestureHandler: dec4645026e7401a0899f2846d864403478ff6a5 - RNKeychain: ff836453cba46938e0e9e4c22e43d43fa2c90333 - RNLocalize: dbea38dcb344bf80ff18a1757b1becf11f70cae4 - RNReanimated: c2027c397233801d4aceb7375e000ac87ec2e67d - RNScreens: 6a8a3c6b808aa48dca1780df7b73ea524f602c63 - RNScrypt: 95fdef077b482e9fdf8a761120cb69d129ef4016 - RNSentry: bec881f5b16c6b4df4d6f554326ca979e08d6ba2 - RNSVG: 80584470ff1ffc7994923ea135a3e5ad825546b9 + React-runtimescheduler: 06b060b5b022f4cdb6bd9fd3405396372179cd9b + React-utils: e50991349b1b749744f35ff93d943343886deb24 + ReactCommon: 394d4d2b27d88bb8ae15fa7f864a4a7525f467f0 + RNCAsyncStorage: bcf77a018826d6affe62ff0b5526e60de29f78da + RNCCheckbox: 450ce156f3e29e25efa0315c96cfbabe5a39ded1 + RNCMaskedView: de80352547bd4f0d607bf6bab363d826822bd126 + RNDeviceInfo: 55dd986d234bf6d56469fb70a5a3ae972fc59330 + RNFastImage: 462a183c4b0b6b26fdfd639e1ed6ba37536c3b87 + RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8 + RNGestureHandler: 025e54543330650898436f429d9220ebf64d22f5 + RNKeychain: 3a8b12f0fdd0b967811a48d9e83d582fc2e483eb + RNLocalize: 01b15a24a8f1856eeaeeb77f4179ccd88c117a73 + RNReanimated: 7a6c3992ad88c186fc5790d7dc3124a3e3d7bd43 + RNScreens: f1a2bc1890623ba12ff757d72e54d04af1cb7842 + RNScrypt: 3e8612600c93aaa3bfa7849b6d1a4ab61613e2af + RNSentry: f2c6948497745dbe362800f91d328c59c3fbc5e7 + RNSVG: 51fc2eb4e3fc8056fa19c34101461fc26a4326f9 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 @@ -931,4 +931,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 1b80cbddaba737f92135e95d5ff6a43d162ebc77 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/packages/mobile/src/modals/ledger/ledger-selector.tsx b/packages/mobile/src/modals/ledger/ledger-selector.tsx index 25d58f9943..4a7cc36b10 100644 --- a/packages/mobile/src/modals/ledger/ledger-selector.tsx +++ b/packages/mobile/src/modals/ledger/ledger-selector.tsx @@ -9,6 +9,7 @@ import { WalletError } from "@keplr-wallet/router"; import { ErrCodeAppNotInitialised, ErrCodeDeviceLocked, + ErrFailedInit, ErrModuleLedgerSign, } from "@keplr-wallet/background/build/ledger/types"; @@ -32,7 +33,6 @@ export const LedgerNanoBLESelector: FunctionComponent<{ }) => { const style = useStyle(); - // const [pairingText, setIsPairingText] = useState(""); const [isConnecting, setIsConnecting] = useState(false); const testLedgerConnection = async () => { @@ -62,8 +62,13 @@ export const LedgerNanoBLESelector: FunctionComponent<{ onCanResume(); } catch (e) { if (e instanceof WalletError && e.module === ErrModuleLedgerSign) { - if (e.code === ErrCodeAppNotInitialised) { - setBluetoothMode(BluetoothMode.Device); + setBluetoothMode(BluetoothMode.Device); + if (e.code === ErrFailedInit) { + setMainContent( + "press and hold two buttons at the same time and enter your pin" + ); + setIsConnecting(false); + } else if (e.code === ErrCodeAppNotInitialised) { setMainContent( "Open Cosmos app on your ledger and pair with ASI Alliance Wallet" ); diff --git a/packages/mobile/src/screens/register/ledger/index.tsx b/packages/mobile/src/screens/register/ledger/index.tsx index 4fc8b66a9b..1337569222 100644 --- a/packages/mobile/src/screens/register/ledger/index.tsx +++ b/packages/mobile/src/screens/register/ledger/index.tsx @@ -184,6 +184,18 @@ export const LedgerScreen: FunctionComponent = () => { ], { cancelable: false } ); + } else if (newState === State.Unsupported) { + Alert.alert( + "Bluetooth Unavailable", + "This device does not support Bluetooth connectivity.", + [ + { + text: "Close", + style: "cancel", + }, + ], + { cancelable: false } + ); } }, true); return () => { @@ -269,6 +281,7 @@ export const LedgerScreen: FunctionComponent = () => { setLocationError("Location services are disabled"); return; } + setIsCreating(true); try { await registerConfig.createLedger(