Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
43b3167
feat: integrate OneKey hardware wallet via hd-ble-sdk
wabicai Feb 12, 2026
ff9dc1a
chore: normalize yarn.lock registry URLs to yarnpkg
wabicai Feb 12, 2026
95fad9b
fix: address P0/P1/P2 review issues and add address verification + me…
wabicai Mar 27, 2026
0ac7645
chore: remove unnecessary polyfill deps and metro extraNodeModules
wabicai Mar 27, 2026
8a3d865
fix: address 4 real-device testing issues
wabicai Mar 27, 2026
df68133
refactor: auto-scan + tap-to-connect UX for all OneKey BLE screens
wabicai Mar 27, 2026
4231086
fix: replace LedgerContent in OneKey modal, translate Chinese strings…
wabicai Mar 27, 2026
1f21240
fix: remove unused params from navigateToSetupWithOneKeyBLE
wabicai Mar 27, 2026
abe08db
refactor: auto health check for OneKey BLE — scan and match fingerpri…
wabicai Mar 30, 2026
887e12b
refactor: auto-scan for SignWithOneKeyBle & VerifyAddressOneKeyBle, f…
wabicai Mar 30, 2026
fc4c75b
feat: add OneKey device illustration from app-monorepo
wabicai Mar 31, 2026
e6c5f6c
fix: replace OneKey illustration with classic-one-device-confirm
wabicai Mar 31, 2026
a66ab92
fix: redesign OneKey illustration to match Bitcoin Keeper style
wabicai Mar 31, 2026
364fd3d
fix: rebuild all OneKey icons based on onekey_icon.svg brand logo
wabicai Mar 31, 2026
afa7415
fix: use onekey-green-dark as OneKey illustration directly
wabicai Mar 31, 2026
4dd2aa0
fix: OneKey icon visibility and add OneKey to hardware keys list
wabicai Mar 31, 2026
fb0168e
fix: OneKey Logo overflowing in SigningDeviceCard
wabicai Mar 31, 2026
6abfe25
fix: use OneKey text logo SVG instead of Text component
wabicai Mar 31, 2026
9f329f3
fix: BLE state race condition and add connecting overlay
wabicai Mar 31, 2026
a187b75
fix: simplify OneKey setup modal and improve BLE state detection
wabicai Mar 31, 2026
c306cdc
feat: show OneKey device avatar images in BLE scanner
wabicai Mar 31, 2026
8e96c63
fix: create proper OneKey illustration for setup modal
wabicai Mar 31, 2026
75c879b
refactor: single loading indicator and FlatList for device scanner
wabicai Mar 31, 2026
24fe149
fix: Pro Black/White distinction, device name display, illustration
wabicai Mar 31, 2026
82f476d
fix: use OneKey welcome brand SVG as setup illustration
wabicai Mar 31, 2026
ead5d8a
fix: add BK-style decoration background, remove TM from illustration
wabicai Mar 31, 2026
f6ec086
fix: remove duplicate instruction text from BLE scan screen
wabicai Mar 31, 2026
202040a
fix: widen illustration SVG and remove duplicate status text
wabicai Mar 31, 2026
b757c02
fix: simplify Pro image logic — Black/White needs serial_no
wabicai Mar 31, 2026
90b79d8
chore: remove unused pro-white.png
wabicai Mar 31, 2026
959fff4
fix: remove mini.png, fix illustration decoration colors
wabicai Mar 31, 2026
30b7771
fix: illustration clipping, unified scan loading state
wabicai Mar 31, 2026
8540e4a
fix: illustration text-only + outline-style icons for Keys page
wabicai Mar 31, 2026
daa300d
feat: store device serial number as signer description
wabicai Mar 31, 2026
86bcb92
feat: add OneKey to hardware shop page
wabicai Mar 31, 2026
7ca3503
fix: serial number extraction order from features
wabicai Mar 31, 2026
0ac751e
fix: health check uses device list instead of auto-pairing
wabicai Mar 31, 2026
36c30e6
fix: health check uses stored connectId for direct reconnection
wabicai Mar 31, 2026
1772a9e
fix: restore green OneKey icon, fix illustration centering
wabicai Mar 31, 2026
a32e045
feat: use OneKey Pro device photo for hardware shop page
wabicai Apr 1, 2026
6ee02af
fix: illustration viewBox, health check direct connect logic
wabicai Apr 1, 2026
573d496
fix: BLE name as signer name, green icon, button request handler
wabicai Apr 1, 2026
8b79bdd
feat: OneKeyBleModal — modal-based BLE interaction with SDK UI events
wabicai Apr 1, 2026
b1a036c
refactor: OneKey shop card uses component pattern like other devices
wabicai Apr 1, 2026
6940619
fix: EventEmitter crash — use DeviceEventEmitter instead
wabicai Apr 1, 2026
ff89d24
fix: use SDK event constants, health check direct connect, SVG viewBox
wabicai Apr 1, 2026
1a44a2b
fix: SVG viewBox height, signer naming convention
wabicai Apr 1, 2026
9ed377c
fix: clear SDK prompt after each async operation completes
wabicai Apr 1, 2026
fbbcc32
fix: use OneKey Pro black dual-device angled photo for shop page
wabicai Apr 1, 2026
dd1ecff
feat: add Hong Kong flag icon for OneKey shop card
wabicai Apr 1, 2026
bc9cba7
feat: OneKey shop card shows Hong Kong & Japan flags
wabicai Apr 1, 2026
2ffd284
fix: remove flag icons to prevent overflow, keep text only
wabicai Apr 1, 2026
a27c4bd
feat: add proper Hong Kong and Japan flag SVGs for OneKey shop card
wabicai Apr 1, 2026
8670319
fix: prevent flag overflow in OneKey shop card
wabicai Apr 1, 2026
ab7f6f9
fix: add viewBox to flag SVGs so they scale correctly
wabicai Apr 1, 2026
d672746
feat: verify-address via modal, delete VerifyAddressOneKeyBle page
wabicai Apr 1, 2026
f71ac27
fix: friendly error messages for PIN invalid/cancelled
wabicai Apr 1, 2026
a14bd41
refactor: remove dead code, extract shared constants, cleanup
wabicai Apr 1, 2026
ecf0940
refactor: SignMessageOneKeyBle uses stored connectId, no device list
wabicai Apr 1, 2026
47dd96d
refactor: SignWithOneKeyBle uses stored connectId, remove dead export
wabicai Apr 1, 2026
aa8edb5
fix: restore entitlements, NFC usage description, pbxproj and Podfile…
wabicai Apr 7, 2026
e6e8f51
chore: regenerate Podfile.lock with CocoaPods 1.15.2
wabicai Apr 7, 2026
c976d6e
fix: clean up unnecessary iOS changes
wabicai Apr 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature android:name="android.hardware.nfc.hce" android:required="false" />

<application
Expand Down
54 changes: 54 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,4 +1,25 @@
PODS:
- BleUtils (0.1.4):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2024.11.18.00)
- RCTRequired
- RCTTypeSafety
- React-Core
- React-debug
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-NativeModulesApple
- React-RCTFabric
- React-rendererdebug
- React-utils
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- boost (1.84.0)
- BVLinearGradient (2.8.3):
- React-Core
Expand Down Expand Up @@ -87,6 +108,7 @@ PODS:
- MMKV (2.2.3):
- MMKVCore (~> 2.2.3)
- MMKVCore (2.2.3)
- MultiplatformBleAdapter (0.2.0)
- nanopb (2.30908.0):
- nanopb/decode (= 2.30908.0)
- nanopb/encode (= 2.30908.0)
Expand Down Expand Up @@ -1301,6 +1323,28 @@ PODS:
- React-Core
- react-native-biometrics (2.2.0):
- React-Core
- react-native-ble-plx (3.5.0):
- DoubleConversion
- glog
- hermes-engine
- MultiplatformBleAdapter (= 0.2.0)
- RCT-Folly (= 2024.11.18.00)
- RCTRequired
- RCTTypeSafety
- React-Core
- React-debug
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-NativeModulesApple
- React-RCTFabric
- React-rendererdebug
- React-utils
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- react-native-blob-util (0.18.3):
- React-Core
- react-native-change-icon (5.0.0):
Expand Down Expand Up @@ -1922,6 +1966,7 @@ PODS:
- ZXingObjC/All (3.6.9)

DEPENDENCIES:
- "BleUtils (from `../node_modules/@onekeyfe/react-native-ble-utils`)"
- 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`)
Expand Down Expand Up @@ -1967,6 +2012,7 @@ DEPENDENCIES:
- React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`)
- react-native-background-timer (from `../node_modules/react-native-background-timer`)
- react-native-biometrics (from `../node_modules/react-native-biometrics`)
- react-native-ble-plx (from `../node_modules/react-native-ble-plx`)
- react-native-blob-util (from `../node_modules/react-native-blob-util`)
- react-native-change-icon (from `../node_modules/react-native-change-icon`)
- react-native-config (from `../node_modules/react-native-config`)
Expand Down Expand Up @@ -2046,6 +2092,7 @@ SPEC REPOS:
- libwebp
- MMKV
- MMKVCore
- MultiplatformBleAdapter
- nanopb
- PDFGenerator
- PromisesObjC
Expand All @@ -2057,6 +2104,8 @@ SPEC REPOS:
- ZXingObjC

EXTERNAL SOURCES:
BleUtils:
:path: "../node_modules/@onekeyfe/react-native-ble-utils"
boost:
:podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
BVLinearGradient:
Expand Down Expand Up @@ -2140,6 +2189,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-background-timer"
react-native-biometrics:
:path: "../node_modules/react-native-biometrics"
react-native-ble-plx:
:path: "../node_modules/react-native-ble-plx"
react-native-blob-util:
:path: "../node_modules/react-native-blob-util"
react-native-change-icon:
Expand Down Expand Up @@ -2277,6 +2328,7 @@ CHECKOUT OPTIONS:
:git: https://github.com/bithyve/libportal-ios.git

SPEC CHECKSUMS:
BleUtils: 7837f24770460d054aa9acf20c7c147a75f17057
boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90
BVLinearGradient: cb006ba232a1f3e4f341bb62c42d1098c284da70
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
Expand All @@ -2298,6 +2350,7 @@ SPEC CHECKSUMS:
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
MMKV: 941e8774da0e6fdf12c6b3fcc833ca687ae5a42d
MMKVCore: 6d5cc1bacce539f4c974985dfe646fb65a5d27d2
MultiplatformBleAdapter: b1fddd0d499b96b607e00f0faa8e60648343dc1d
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
PDFGenerator: 17d6bc525db0a3fcd156fbf00f9d1b8d5cc75d1e
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
Expand Down Expand Up @@ -2333,6 +2386,7 @@ SPEC CHECKSUMS:
React-microtasksnativemodule: 3b784cf40f7c3c9500b9a5f9e4eec5c9bbfbef8f
react-native-background-timer: 4638ae3bee00320753647900b21260b10587b6f7
react-native-biometrics: ecca256a9e1c8b430f78c4e3dcb16b57ea1418e0
react-native-ble-plx: 39e6b732ac5bce0a7a40c1fc33ae58a92b444656
react-native-blob-util: 4be49d669870f01645b63d33342718e95d0d48b1
react-native-change-icon: cf7be79da0c88778d626d50d3a78912b10143521
react-native-config: 8e425892a531627c52db765be3088185cb871e19
Expand Down
4 changes: 4 additions & 0 deletions ios/hexa_keeper/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Allow Keeper to scan and connect to your OneKey hardware wallet over Bluetooth</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Allow Keeper to scan and connect to your OneKey hardware wallet over Bluetooth</string>
<key>NSCameraUsageDescription</key>
<string>Please allow camera access for QR scanner</string>
<key>NSContactsUsageDescription</key>
Expand Down
4 changes: 4 additions & 0 deletions ios/hexa_keeper_dev-Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@
<true/>
<key>NFCReaderUsageDescription</key>
<string>Allow $(PRODUCT_NAME) to interact with nearby NFC devices</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Allow $(PRODUCT_NAME) to scan and connect to your OneKey hardware wallet over Bluetooth</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Allow $(PRODUCT_NAME) to scan and connect to your OneKey hardware wallet over Bluetooth</string>
<key>NSAppTransportSecurity</key>
<dict>
<!-- Do not change NSAllowsArbitraryLoads to true, or you will risk app rejection! -->
Expand Down
2 changes: 2 additions & 0 deletions metro.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ const config = {
resolver: {
assetExts: assetExts.filter((ext) => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'],
// OneKey hd-core uses package.json "exports" field
unstable_enablePackageExports: true,
},
};

Expand Down
6 changes: 6 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@
"dependencies": {
"@bitcoinerlab/miniscript": "1.4.0",
"@ngraveio/bc-ur": "1.1.6",
"@noble/hashes": "^1.3.3",
"@noble/secp256k1": "1.6.3",
"@onekeyfe/hd-ble-sdk": "1.1.16",
"@onekeyfe/hd-core": "1.1.16",
"@onekeyfe/react-native-ble-utils": "^0.1.4",
"@react-native-clipboard/clipboard": "1.16.2",
"@react-native-community/netinfo": "11.4.1",
"@react-native-firebase/app": "14.11.1",
Expand Down Expand Up @@ -74,6 +78,7 @@
"react-localization": "1.0.19",
"react-native": "0.77.3",
"react-native-background-timer": "2.4.1",
"react-native-ble-plx": "3.5.0",
"react-native-biometrics": "2.2.0",
"react-native-blob-util": "0.18.3",
"react-native-change-icon": "5.0.0",
Expand Down Expand Up @@ -118,6 +123,7 @@
"redux-persist": "6.0.0",
"redux-saga": "1.1.3",
"rn-qr-generator": "^1.4.4",
"ripple-keypairs": "^1.3.1",
"satochip-react-native": "git+https://github.com/Toporin/satochip-react-native.git#1076e7c097571d561b5b903f31c6337455def19e",
"semver": "7.3.8",
"socket.io-client": "4.5.4",
Expand Down
12 changes: 12 additions & 0 deletions src/assets/images/flag-hongkong.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/images/flag-japan.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/onekey-devices/classic-pure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/onekey-devices/classic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/onekey-devices/pro-black.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/onekey-devices/touch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/images/onekey-green-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/images/onekey-green-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/onekey-shop-device.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/images/onekey_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/images/onekey_icon_light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions src/assets/images/onekey_illustration.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading