From 0d27a5334bdc48ba837bc4e17ff23dea49856071 Mon Sep 17 00:00:00 2001 From: Leon Date: Tue, 5 Aug 2025 16:54:37 +0800 Subject: [PATCH 1/8] chore: add p-retry dependency to hd-transport-electron package --- packages/hd-transport-electron/package.json | 3 +- .../src/noble-ble-handler.ts | 183 +++++++++++++++++- yarn.lock | 25 ++- 3 files changed, 200 insertions(+), 11 deletions(-) diff --git a/packages/hd-transport-electron/package.json b/packages/hd-transport-electron/package.json index 0668ea03b..f88f57ad4 100644 --- a/packages/hd-transport-electron/package.json +++ b/packages/hd-transport-electron/package.json @@ -26,7 +26,8 @@ "electron-log": ">=4.0.0" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2" + "@onekeyfe/hd-shared": "^1.1.2", + "p-retry": "^6.2.1" }, "devDependencies": { "@types/web-bluetooth": "^0.0.17", diff --git a/packages/hd-transport-electron/src/noble-ble-handler.ts b/packages/hd-transport-electron/src/noble-ble-handler.ts index c73777e1e..3a8b7d531 100644 --- a/packages/hd-transport-electron/src/noble-ble-handler.ts +++ b/packages/hd-transport-electron/src/noble-ble-handler.ts @@ -19,6 +19,7 @@ import { import { COMMON_HEADER_SIZE } from '@onekeyfe/hd-transport'; import type { WebContents, IpcMainInvokeEvent } from 'electron'; import type { Peripheral, Service, Characteristic } from '@abandonware/noble'; +import pRetry from 'p-retry'; import type { NobleModule, Logger, DeviceInfo, CharacteristicPair } from './types/noble-extended'; import { safeLog } from './types/noble-extended'; @@ -563,7 +564,7 @@ function getDevice(deviceId: string): DeviceInfo | null { }; } -// Discover services and characteristics for a connected device +// Core service discovery function (single attempt) async function discoverServicesAndCharacteristics( peripheral: Peripheral ): Promise { @@ -642,6 +643,168 @@ async function discoverServicesAndCharacteristics( }); } +// Force reconnect to clear potential connection state issues +async function forceReconnectPeripheral(peripheral: Peripheral, deviceId: string): Promise { + logger?.info('[NobleBLE] Forcing connection reset for device:', deviceId); + + // Step 1: Force disconnect if connected + if (peripheral.state === 'connected') { + await new Promise(resolve => { + peripheral.disconnect(() => { + logger?.info('[NobleBLE] Force disconnect completed'); + resolve(); + }); + }); + + // Wait for complete disconnection + await wait(1000); + } + + // Step 2: Clear device state + connectedDevices.delete(deviceId); + deviceCharacteristics.delete(deviceId); + devicePacketStates.delete(deviceId); + subscribedDevices.delete(deviceId); + subscriptionOperations.delete(deviceId); + + // Step 3: Re-establish connection + await new Promise((resolve, reject) => { + peripheral.connect((error: string) => { + if (error) { + logger?.error('[NobleBLE] Force reconnect failed:', error); + reject(new Error(`Force reconnect failed: ${error}`)); + } else { + logger?.info('[NobleBLE] Force reconnect successful'); + connectedDevices.set(deviceId, peripheral); + resolve(); + } + }); + }); + + // Wait for connection to stabilize + await wait(500); +} + +// Enhanced connection with fresh peripheral rescan as last resort +async function connectAndDiscoverWithFreshScan(deviceId: string): Promise { + logger?.info('[NobleBLE] Attempting connection with fresh peripheral scan as fallback'); + + const currentPeripheral = discoveredDevices.get(deviceId); + + // First attempt with existing peripheral + if (currentPeripheral) { + try { + return await discoverServicesAndCharacteristicsWithRetry(currentPeripheral, deviceId); + } catch (error) { + logger?.error( + '[NobleBLE] Service discovery failed with existing peripheral, attempting fresh scan...' + ); + } + } + + // Last resort: Fresh scan to get new peripheral object + logger?.info( + '[NobleBLE] Performing fresh scan to get new peripheral object for device:', + deviceId + ); + + try { + const freshPeripheral = await performTargetedScan(deviceId); + if (!freshPeripheral) { + throw new Error(`Device ${deviceId} not found in fresh scan`); + } + + // Update device maps with fresh peripheral + discoveredDevices.set(deviceId, freshPeripheral); + + // Connect to fresh peripheral + await new Promise((resolve, reject) => { + freshPeripheral.connect((error: string) => { + if (error) { + reject(new Error(`Fresh peripheral connection failed: ${error}`)); + } else { + connectedDevices.set(deviceId, freshPeripheral); + resolve(); + } + }); + }); + + // Attempt service discovery with fresh peripheral (single attempt) + logger?.info('[NobleBLE] Attempting service discovery with fresh peripheral'); + await wait(1000); // Give fresh connection more time to stabilize + + return await discoverServicesAndCharacteristics(freshPeripheral); + } catch (error) { + logger?.error('[NobleBLE] Fresh scan and connection failed:', error); + throw error; + } +} + +// Enhanced service discovery with p-retry for robust BLE connection +async function discoverServicesAndCharacteristicsWithRetry( + peripheral: Peripheral, + deviceId: string +): Promise { + return pRetry( + async attemptNumber => { + logger?.info('[NobleBLE] Starting service discovery:', { + deviceId, + peripheralState: peripheral.state, + attempt: attemptNumber, + maxRetries: 5, + targetUUIDs: ONEKEY_SERVICE_UUIDS, + }); + + // Strategy: Force reconnect on 3rd attempt to clear potential state issues + if (attemptNumber === 3) { + logger?.info('[NobleBLE] Attempting force reconnect to clear connection state...'); + try { + await forceReconnectPeripheral(peripheral, deviceId); + } catch (error) { + logger?.error('[NobleBLE] Force reconnect failed:', error); + throw error; + } + } + + // Progressive delay strategy - handled by p-retry, but add extra wait for higher attempts + if (attemptNumber > 1) { + logger?.info(`[NobleBLE] Service discovery retry attempt ${attemptNumber}/5`); + } + + // Verify connection state before attempting service discovery + if (peripheral.state !== 'connected') { + throw new Error(`Device not connected: ${peripheral.state}`); + } + + try { + return await discoverServicesAndCharacteristics(peripheral); + } catch (error) { + logger?.error(`[NobleBLE] No services found (attempt ${attemptNumber}/5)`); + + if (attemptNumber < 5) { + logger?.error(`[NobleBLE] Will retry service discovery (attempt ${attemptNumber + 1}/5)`); + } + + throw error; // p-retry will handle the retry logic + } + }, + { + retries: 4, // Total 5 attempts (initial + 4 retries) + factor: 1.5, // Exponential backoff: 1000ms → 1500ms → 2250ms → 3000ms + minTimeout: 1000, // Start with 1 second delay + maxTimeout: 3000, // Maximum 3 seconds delay + onFailedAttempt: error => { + // This runs after each failed attempt + logger?.error(`[NobleBLE] Service discovery attempt ${error.attemptNumber} failed:`, { + message: error.message, + retriesLeft: error.retriesLeft, + nextRetryIn: `${Math.min(1000 * 1.5 ** error.attemptNumber, 3000)}ms`, + }); + }, + } + ); +} + // Connect to device - supports both discovered and direct connection modes async function connectDevice(deviceId: string, webContents: WebContents): Promise { logger?.info('[NobleBLE] Connect device request:', { @@ -746,14 +909,17 @@ async function connectDevice(deviceId: string, webContents: WebContents): Promis // Continue to re-setup the connection properly } - // Discover services and characteristics + // Discover services and characteristics with enhanced retry including fresh scan try { - const characteristics = await discoverServicesAndCharacteristics(peripheral); + const characteristics = await connectAndDiscoverWithFreshScan(deviceId); deviceCharacteristics.set(deviceId, characteristics); logger?.info('[NobleBLE] Device ready for communication:', deviceId); return; } catch (error) { - logger?.error('[NobleBLE] Service/characteristic discovery failed:', error); + logger?.error( + '[NobleBLE] Service/characteristic discovery failed after all attempts:', + error + ); throw error; } } @@ -780,15 +946,18 @@ async function connectDevice(deviceId: string, webContents: WebContents): Promis // Set up unified disconnect listener setupDisconnectListener(connectedPeripheral, deviceId, webContents); - // Discover services and characteristics - discoverServicesAndCharacteristics(connectedPeripheral) + // Discover services and characteristics with enhanced retry including fresh scan + connectAndDiscoverWithFreshScan(deviceId) .then(characteristics => { deviceCharacteristics.set(deviceId, characteristics); logger?.info('[NobleBLE] Device ready for communication:', deviceId); resolve(); }) .catch(error => { - logger?.error('[NobleBLE] Service/characteristic discovery failed:', error); + logger?.error( + '[NobleBLE] Service/characteristic discovery failed after all attempts:', + error + ); // Disconnect on failure connectedPeripheral.disconnect(); reject(error); diff --git a/yarn.lock b/yarn.lock index 83862d096..19fe128e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8213,6 +8213,11 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" @@ -13004,7 +13009,7 @@ es-errors@^1.3.0: es-iterator-helpers@1.0.15, es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15, es-iterator-helpers@^1.2.1: version "1.0.15" - resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== dependencies: asynciterator.prototype "^1.0.0" @@ -16330,6 +16335,11 @@ is-negative-zero@^2.0.3: resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== +is-network-error@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" + integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -20313,6 +20323,15 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" +p-retry@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== + dependencies: + "@types/retry" "0.12.2" + is-network-error "^1.0.0" + retry "^0.13.1" + p-timeout@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -20465,7 +20484,7 @@ parse-uri@^1.0.7: parse-url@^6.0.0, parse-url@^6.0.3: version "6.0.5" - resolved "https://registry.npmjs.org/parse-url/-/parse-url-6.0.5.tgz#4acab8982cef1846a0f8675fa686cef24b2f6f9b" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.5.tgz#4acab8982cef1846a0f8675fa686cef24b2f6f9b" integrity sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA== dependencies: is-ssh "^1.3.0" @@ -20591,7 +20610,7 @@ path-type@^4.0.0: pbkdf2@3.0.8, pbkdf2@3.1.3, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.3.tgz#8be674d591d65658113424592a95d1517318dd4b" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.3.tgz#8be674d591d65658113424592a95d1517318dd4b" integrity sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA== dependencies: create-hash "~1.1.3" From 98bd9cd08111afaefc287fbf4f15917a30211c2a Mon Sep 17 00:00:00 2001 From: Leon Date: Tue, 5 Aug 2025 16:56:52 +0800 Subject: [PATCH 2/8] chore: i18n --- .../connect-examples/electron-example/package.json | 2 +- .../connect-examples/expo-example/package.json | 10 +++++----- .../connect-examples/expo-playground/package.json | 8 ++++---- packages/core/package.json | 6 +++--- packages/hd-ble-sdk/package.json | 8 ++++---- packages/hd-common-connect-sdk/package.json | 14 +++++++------- packages/hd-transport-electron/package.json | 4 ++-- packages/hd-transport-emulator/package.json | 6 +++--- packages/hd-transport-http/package.json | 6 +++--- packages/hd-transport-lowlevel/package.json | 6 +++--- packages/hd-transport-react-native/package.json | 6 +++--- packages/hd-transport-web-device/package.json | 6 +++--- packages/hd-transport/package.json | 2 +- packages/hd-web-sdk/package.json | 10 +++++----- packages/shared/package.json | 2 +- 15 files changed, 48 insertions(+), 48 deletions(-) diff --git a/packages/connect-examples/electron-example/package.json b/packages/connect-examples/electron-example/package.json index fd4eb4bea..b00a6fe2a 100644 --- a/packages/connect-examples/electron-example/package.json +++ b/packages/connect-examples/electron-example/package.json @@ -2,7 +2,7 @@ "name": "hardware-example", "productName": "HardwareExample", "executableName": "onekey-hardware-example", - "version": "1.1.2", + "version": "1.1.3", "author": "OneKey", "description": "End-to-end encrypted workspaces for teams", "main": "dist/index.js", diff --git a/packages/connect-examples/expo-example/package.json b/packages/connect-examples/expo-example/package.json index 2987129fd..f980f78ee 100644 --- a/packages/connect-examples/expo-example/package.json +++ b/packages/connect-examples/expo-example/package.json @@ -1,6 +1,6 @@ { "name": "expo-example", - "version": "1.1.2", + "version": "1.1.3", "scripts": { "start": "CONNECT_SRC=https://localhost:8087/ yarn expo start --dev-client", "android": "yarn expo run:android", @@ -19,10 +19,10 @@ "@noble/ed25519": "^2.1.0", "@noble/hashes": "^1.3.3", "@noble/secp256k1": "^1.7.1", - "@onekeyfe/hd-ble-sdk": "^1.1.2", - "@onekeyfe/hd-common-connect-sdk": "^1.1.2", - "@onekeyfe/hd-core": "^1.1.2", - "@onekeyfe/hd-web-sdk": "^1.1.2", + "@onekeyfe/hd-ble-sdk": "^1.1.3", + "@onekeyfe/hd-common-connect-sdk": "^1.1.3", + "@onekeyfe/hd-core": "^1.1.3", + "@onekeyfe/hd-web-sdk": "^1.1.3", "@onekeyfe/react-native-ble-utils": "^0.1.3", "@polkadot/util-crypto": "13.1.1", "@react-native-async-storage/async-storage": "1.21.0", diff --git a/packages/connect-examples/expo-playground/package.json b/packages/connect-examples/expo-playground/package.json index 23f19ce79..d73d26ec2 100644 --- a/packages/connect-examples/expo-playground/package.json +++ b/packages/connect-examples/expo-playground/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/onekey-hardware-playground", - "version": "1.1.2", + "version": "1.1.3", "private": true, "sideEffects": [ "app/utils/shim.js", @@ -17,9 +17,9 @@ }, "dependencies": { "@noble/hashes": "^1.8.0", - "@onekeyfe/hd-core": "^1.1.2", - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-web-sdk": "^1.1.2", + "@onekeyfe/hd-core": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-web-sdk": "^1.1.3", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", diff --git a/packages/core/package.json b/packages/core/package.json index ea7b515cc..d4ff86ee6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-core", - "version": "1.1.2", + "version": "1.1.3", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -25,8 +25,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport": "^1.1.2", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport": "^1.1.3", "axios": "^0.27.2", "bignumber.js": "^9.0.2", "bytebuffer": "^5.0.1", diff --git a/packages/hd-ble-sdk/package.json b/packages/hd-ble-sdk/package.json index 1a8f5c4f6..aac124aba 100644 --- a/packages/hd-ble-sdk/package.json +++ b/packages/hd-ble-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-ble-sdk", - "version": "1.1.2", + "version": "1.1.3", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "^1.1.2", - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport-react-native": "^1.1.2" + "@onekeyfe/hd-core": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport-react-native": "^1.1.3" } } diff --git a/packages/hd-common-connect-sdk/package.json b/packages/hd-common-connect-sdk/package.json index 42efe6fa2..61a9b0abf 100644 --- a/packages/hd-common-connect-sdk/package.json +++ b/packages/hd-common-connect-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-common-connect-sdk", - "version": "1.1.2", + "version": "1.1.3", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,11 +20,11 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "^1.1.2", - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport-emulator": "^1.1.2", - "@onekeyfe/hd-transport-http": "^1.1.2", - "@onekeyfe/hd-transport-lowlevel": "^1.1.2", - "@onekeyfe/hd-transport-web-device": "^1.1.2" + "@onekeyfe/hd-core": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport-emulator": "^1.1.3", + "@onekeyfe/hd-transport-http": "^1.1.3", + "@onekeyfe/hd-transport-lowlevel": "^1.1.3", + "@onekeyfe/hd-transport-web-device": "^1.1.3" } } diff --git a/packages/hd-transport-electron/package.json b/packages/hd-transport-electron/package.json index f88f57ad4..654b3e90e 100644 --- a/packages/hd-transport-electron/package.json +++ b/packages/hd-transport-electron/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-electron", - "version": "1.1.2", + "version": "1.1.3", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -26,7 +26,7 @@ "electron-log": ">=4.0.0" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2", + "@onekeyfe/hd-shared": "^1.1.3", "p-retry": "^6.2.1" }, "devDependencies": { diff --git a/packages/hd-transport-emulator/package.json b/packages/hd-transport-emulator/package.json index d4e5a3c02..af22974d0 100644 --- a/packages/hd-transport-emulator/package.json +++ b/packages/hd-transport-emulator/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-emulator", - "version": "1.1.2", + "version": "1.1.3", "description": "hardware emulator transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport": "^1.1.2", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport": "^1.1.3", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-http/package.json b/packages/hd-transport-http/package.json index 8bf786cde..457a06d68 100644 --- a/packages/hd-transport-http/package.json +++ b/packages/hd-transport-http/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-http", - "version": "1.1.2", + "version": "1.1.3", "description": "hardware http transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport": "^1.1.2", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport": "^1.1.3", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-lowlevel/package.json b/packages/hd-transport-lowlevel/package.json index 25e513d9e..20243bbd0 100644 --- a/packages/hd-transport-lowlevel/package.json +++ b/packages/hd-transport-lowlevel/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-lowlevel", - "version": "1.1.2", + "version": "1.1.3", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,7 +19,7 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport": "^1.1.2" + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport": "^1.1.3" } } diff --git a/packages/hd-transport-react-native/package.json b/packages/hd-transport-react-native/package.json index 2b1d11638..e344db494 100644 --- a/packages/hd-transport-react-native/package.json +++ b/packages/hd-transport-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-react-native", - "version": "1.1.2", + "version": "1.1.3", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,8 +19,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport": "^1.1.2", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport": "^1.1.3", "@onekeyfe/react-native-ble-utils": "^0.1.4", "react-native-ble-plx": "3.5.0" } diff --git a/packages/hd-transport-web-device/package.json b/packages/hd-transport-web-device/package.json index 5ac4e9886..6ba7e1002 100644 --- a/packages/hd-transport-web-device/package.json +++ b/packages/hd-transport-web-device/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-web-device", - "version": "1.1.2", + "version": "1.1.3", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport": "^1.1.2" + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport": "^1.1.3" }, "devDependencies": { "@types/w3c-web-usb": "^1.0.6", diff --git a/packages/hd-transport/package.json b/packages/hd-transport/package.json index 005e1a883..0f172ee26 100644 --- a/packages/hd-transport/package.json +++ b/packages/hd-transport/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport", - "version": "1.1.2", + "version": "1.1.3", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", diff --git a/packages/hd-web-sdk/package.json b/packages/hd-web-sdk/package.json index e66cf5d4d..d56ae6894 100644 --- a/packages/hd-web-sdk/package.json +++ b/packages/hd-web-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-web-sdk", - "version": "1.1.2", + "version": "1.1.3", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -21,10 +21,10 @@ }, "dependencies": { "@onekeyfe/cross-inpage-provider-core": "^0.0.17", - "@onekeyfe/hd-core": "^1.1.2", - "@onekeyfe/hd-shared": "^1.1.2", - "@onekeyfe/hd-transport-http": "^1.1.2", - "@onekeyfe/hd-transport-web-device": "^1.1.2" + "@onekeyfe/hd-core": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-transport-http": "^1.1.3", + "@onekeyfe/hd-transport-web-device": "^1.1.3" }, "devDependencies": { "@babel/plugin-proposal-optional-chaining": "^7.17.12", diff --git a/packages/shared/package.json b/packages/shared/package.json index 5e543957b..8dba2866f 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-shared", - "version": "1.1.2", + "version": "1.1.3", "description": "Hardware SDK's shared tool library", "keywords": [ "Hardware-SDK", From 466627c543db5b8ba6a9e618bd1f3e58a7ce5c40 Mon Sep 17 00:00:00 2001 From: Leon Date: Tue, 5 Aug 2025 18:46:04 +0800 Subject: [PATCH 3/8] feat: enhance BLE service discovery with p-retry and fresh scan fallback --- ble-main-process.md | 538 +++++++++++++++++++++++++++++++++++++ ble-render-log.md | 636 ++++++++++++++++++++++++++++++++++++++++++++ submodules/firmware | 2 +- 3 files changed, 1175 insertions(+), 1 deletion(-) create mode 100644 ble-main-process.md create mode 100644 ble-render-log.md diff --git a/ble-main-process.md b/ble-main-process.md new file mode 100644 index 000000000..fe34def42 --- /dev/null +++ b/ble-main-process.md @@ -0,0 +1,538 @@ +[2] 14:43:09.831 › set isAppReady on browserWindow dom-ready true +[2] 14:43:09.880 › browserWindow >>>> did-finish-load +[2] [24636:0805/144309.902228:ERROR:CONSOLE(1)] "Request Fetch.enable failed. {"code":-32601,"message":"'Fetch.enable' wasn't found"}", source: devtools://devtools/bundled/core/protocol_client/protocol_client.js (1) +[2] 14:43:10.468 › auto-updater builderNumber: +[2] (node:24643) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 appState listeners added to [IpcRenderer]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit +[2] (Use `Electron Helper (Renderer) --trace-warnings ...` to show where the warning was created) +[2] 14:43:11.163 › checkBiometricAuthChangedChildProcess-onMessage { type: 'checkBiometricAuthChanged', result: false } +[2] 14:43:14.298 › checkBiometricAuthChangedChildProcess-onMessage { type: 'checkBiometricAuthChanged', result: false } +[2] 14:43:24.197 › [NobleBLE] Noble library loaded +[2] 14:43:24.240 › [NobleBLE] Bluetooth state: poweredOn +[2] 14:43:24.241 › [NobleBLE] Persistent state listener setup +[2] 14:43:24.241 › [NobleBLE] Initial state detected: poweredOn +[2] 14:43:24.241 › [NobleBLE] Noble initialized successfully +[2] 14:43:24.241 › Bluetooth availability check completed: { +[2] available: true, +[2] state: 'poweredOn', +[2] unsupported: false, +[2] initialized: true +[2] } +[2] 14:43:24.241 › Bluetooth availability check completed: { +[2] available: true, +[2] state: 'poweredOn', +[2] unsupported: false, +[2] initialized: true +[2] } +[2] 14:43:25.268 › [NobleBLE] IPC CONNECT request received: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasPeripheral: false, +[2] hasCharacteristics: false, +[2] totalConnectedDevices: 0 +[2] } +[2] 14:43:25.269 › [NobleBLE] Connect device request: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasDiscovered: false, +[2] hasConnected: false, +[2] hasCharacteristics: false, +[2] totalDiscovered: 0, +[2] totalConnected: 0 +[2] } +[2] 14:43:25.269 › [NobleBLE] Device not discovered, attempting targeted scan for: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:25.269 › [NobleBLE] Targeted scan started for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:25.613 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:43:25.614 › [NobleBLE] Target device found: { id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', name: 'K1510' } +[2] 14:43:25.614 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:26.675 › [NobleBLE] Connected to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:26.678 › [NobleBLE] Starting service discovery: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] peripheralState: 'connected', +[2] attempt: 1, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:43:26.794 › [NobleBLE] No services found (attempt 1/3) +[2] 14:43:26.795 › [NobleBLE] Retrying service discovery in 500ms (attempt 2/3) +[2] 14:43:26.796 › [NobleBLE] Service discovery attempt 1 failed: No OneKey services found +[2] 14:43:27.302 › [NobleBLE] Starting service discovery: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] peripheralState: 'connected', +[2] attempt: 2, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:43:27.871 › [NobleBLE] No services found (attempt 2/3) +[2] 14:43:27.873 › [NobleBLE] Retrying service discovery in 500ms (attempt 3/3) +[2] 14:43:27.874 › [NobleBLE] Service discovery attempt 2 failed: No OneKey services found +[2] 14:43:28.378 › [NobleBLE] Starting service discovery: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] peripheralState: 'connected', +[2] attempt: 3, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:43:28.923 › [NobleBLE] No services found (attempt 3/3) +[2] 14:43:28.924 › [NobleBLE] Service discovery attempt 3 failed: No OneKey services found +[2] 14:43:28.929 › [NobleBLE] Service/characteristic discovery failed: HardwareError: No OneKey services found +[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) +[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 +[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) +[2] at Object.onceWrapper (node:events:634:26) +[2] at Peripheral.emit (node:events:519:28) +[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) +[2] at NobleMac.emit (node:events:519:28) +[2] Error occurred in handler for '$onekey-noble-ble-connect': HardwareError: No OneKey services found +[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) +[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 +[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) +[2] at Object.onceWrapper (node:events:634:26) +[2] at Peripheral.emit (node:events:519:28) +[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) +[2] at NobleMac.emit (node:events:519:28) { +[2] errorCode: 706, +[2] params: undefined, +[2] attemptNumber: 3, +[2] retriesLeft: 0 +[2] } +[2] 14:43:28.931 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasPeripheral: true, +[2] hasCharacteristics: false, +[2] stackTrace: [ +[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', +[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', +[2] ' at Peripheral.emit (node:events:519:28)', +[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' +[2] ] +[2] } +[2] 14:43:28.931 › [NobleBLE] Device state cleaned up: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:28.940 › Bluetooth availability check completed: { +[2] available: true, +[2] state: 'poweredOn', +[2] unsupported: false, +[2] initialized: true +[2] } +[2] 14:43:28.941 › Bluetooth availability check completed: { +[2] available: true, +[2] state: 'poweredOn', +[2] unsupported: false, +[2] initialized: true +[2] } +[2] 14:43:28.953 › [NobleBLE] IPC CONNECT request received: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasPeripheral: false, +[2] hasCharacteristics: false, +[2] totalConnectedDevices: 0 +[2] } +[2] 14:43:28.954 › [NobleBLE] Connect device request: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasDiscovered: true, +[2] hasConnected: false, +[2] hasCharacteristics: false, +[2] totalDiscovered: 1, +[2] totalConnected: 0 +[2] } +[2] 14:43:28.954 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:29.673 › [NobleBLE] Connected to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:29.673 › [NobleBLE] Starting service discovery: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] peripheralState: 'connected', +[2] attempt: 1, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:43:29.852 › [NobleBLE] Found service: 0001 +[2] 14:43:30.033 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } +[2] 14:43:30.035 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } +[2] 14:43:30.036 › [NobleBLE] Device ready for communication: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:30.038 › [NobleBLE] Subscribing to notifications for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:30.038 › [NobleBLE] 🔄 Starting subscription process... { deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d' } +[2] 14:43:30.156 › [NobleBLE] ✅ Notification subscription successful +[2] 14:43:30.163 › [NobleBLE] Writing data: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] dataLength: 64, +[2] firstBytes: '3f23230000000000' +[2] } +[2] 14:43:31.142 › [NobleBLE] Packet complete: { deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', length: 480 } +[2] 14:43:31.154 › [NobleBLE] IPC CONNECT request received: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasPeripheral: true, +[2] hasCharacteristics: true, +[2] totalConnectedDevices: 1 +[2] } +[2] 14:43:31.155 › [NobleBLE] Connect device request: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasDiscovered: true, +[2] hasConnected: true, +[2] hasCharacteristics: true, +[2] totalDiscovered: 1, +[2] totalConnected: 1 +[2] } +[2] 14:43:31.155 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:31.155 › [NobleBLE] Device already connected, skipping connection step +[2] 14:43:31.155 › [NobleBLE] Device characteristics already available +[2] 14:43:31.155 › [NobleBLE] Device already has active notification subscription, reusing connection +[2] 14:43:31.156 › [NobleBLE] Subscribing to notifications for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:31.156 › [NobleBLE] Device already subscribed to characteristic, updating callback only +[2] 14:43:31.157 › [NobleBLE] Writing data: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] dataLength: 64, +[2] firstBytes: '3f23230000000000' +[2] } +[2] 14:43:32.013 › [NobleBLE] Packet complete: { deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', length: 480 } +[2] 14:43:32.952 › [NobleBLE] Unsubscribing from notifications for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:32.982 › Bluetooth availability check completed: { +[2] available: true, +[2] state: 'poweredOn', +[2] unsupported: false, +[2] initialized: true +[2] } +[2] 14:43:32.983 › Bluetooth availability check completed: { +[2] available: true, +[2] state: 'poweredOn', +[2] unsupported: false, +[2] initialized: true +[2] } +[2] 14:43:32.991 › [NobleBLE] Starting device enumeration +[2] 14:43:32.992 › [NobleBLE] Scanning started for OneKey devices +[2] 14:43:33.031 › [NobleBLE] Notification unsubscription successful +[2] 14:43:33.032 › [NobleBLE] Device state cleaned up: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:43:33.309 › [NobleBLE] Discovered OneKey device: K5109 +[2] 14:43:33.333 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:43:33.631 › [NobleBLE] Discovered OneKey device: Pro 723A +[2] 14:43:34.827 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:43:35.728 › [NobleBLE] Discovered OneKey device: Touch 589B +[2] 14:43:37.998 › [NobleBLE] Scan completed, found devices: 5 +[2] 14:43:37.998 › Enumeration completed, devices: [ +[2] { +[2] id: '74bd90424494cad0a9c20b26c4f59667', +[2] name: 'K5109', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '9aa5e448398705936cf37a3d917c0aeb', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '218cc2a04b1362629e48d5a750482811', +[2] name: 'Pro 723A', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '0078cac4498be7570652e5dc70b03e51', +[2] name: 'Touch 589B', +[2] state: 'disconnected' +[2] } +[2] ] +[2] 14:43:38.001 › [NobleBLE] IPC CONNECT request received: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] hasPeripheral: false, +[2] hasCharacteristics: false, +[2] totalConnectedDevices: 0 +[2] } +[2] 14:43:38.001 › [NobleBLE] Connect device request: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] hasDiscovered: true, +[2] hasConnected: false, +[2] hasCharacteristics: false, +[2] totalDiscovered: 5, +[2] totalConnected: 0 +[2] } +[2] 14:43:38.001 › [NobleBLE] Connecting to device: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:43:39.218 › [NobleBLE] Connected to device: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:43:39.219 › [NobleBLE] Starting service discovery: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] peripheralState: 'connected', +[2] attempt: 1, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:43:39.511 › [NobleBLE] Found service: 0001 +[2] 14:43:39.632 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } +[2] 14:43:39.633 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } +[2] 14:43:39.633 › [NobleBLE] Device ready for communication: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:43:39.633 › [NobleBLE] Subscribing to notifications for device: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:43:39.633 › [NobleBLE] 🔄 Starting subscription process... { deviceId: '74bd90424494cad0a9c20b26c4f59667' } +[2] 14:44:09.672 › [NobleBLE] ✅ Notification subscription successful +[2] 14:44:09.677 › [NobleBLE] Writing data: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] dataLength: 64, +[2] firstBytes: '3f23230000000000' +[2] } +[2] 14:44:09.755 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] hasPeripheral: true, +[2] hasCharacteristics: true, +[2] stackTrace: [ +[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', +[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', +[2] ' at Peripheral.emit (node:events:519:28)', +[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' +[2] ] +[2] } +[2] 14:44:09.755 › [NobleBLE] Pairing rejection detected, sending error notification +[2] 14:44:09.756 › [NobleBLE] Device state cleaned up: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:44:10.759 › [NobleBLE] Starting device enumeration +[2] 14:44:10.760 › [NobleBLE] Scanning started for OneKey devices +[2] 14:44:10.811 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:44:10.838 › [NobleBLE] Discovered OneKey device: K5109 +[2] 14:44:11.127 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:44:12.328 › [NobleBLE] Discovered OneKey device: Pro 2496 +[2] 14:44:13.218 › [NobleBLE] Discovered OneKey device: Pro 723A +[2] 14:44:14.114 › [NobleBLE] Discovered OneKey device: Pro 2DD9 +[2] 14:44:14.122 › [NobleBLE] Discovered OneKey device: Touch 589B +[2] 14:44:15.765 › [NobleBLE] Scan completed, found devices: 7 +[2] 14:44:15.766 › Enumeration completed, devices: [ +[2] { +[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '74bd90424494cad0a9c20b26c4f59667', +[2] name: 'K5109', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '9aa5e448398705936cf37a3d917c0aeb', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '582b3724e1469405b06b0c1c9773f198', +[2] name: 'Pro 2496', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '218cc2a04b1362629e48d5a750482811', +[2] name: 'Pro 723A', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: 'b5fb363fd39801cce6df88bc74ff06ce', +[2] name: 'Pro 2DD9', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '0078cac4498be7570652e5dc70b03e51', +[2] name: 'Touch 589B', +[2] state: 'disconnected' +[2] } +[2] ] +[2] 14:44:15.768 › [NobleBLE] IPC CONNECT request received: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasPeripheral: false, +[2] hasCharacteristics: false, +[2] totalConnectedDevices: 0 +[2] } +[2] 14:44:15.768 › [NobleBLE] Connect device request: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasDiscovered: true, +[2] hasConnected: false, +[2] hasCharacteristics: false, +[2] totalDiscovered: 7, +[2] totalConnected: 0 +[2] } +[2] 14:44:15.768 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:44:16.473 › [NobleBLE] Connected to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:44:16.473 › [NobleBLE] Starting service discovery: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] peripheralState: 'connected', +[2] attempt: 1, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:44:16.615 › [NobleBLE] No services found (attempt 1/3) +[2] 14:44:16.616 › [NobleBLE] Retrying service discovery in 500ms (attempt 2/3) +[2] 14:44:16.616 › [NobleBLE] Service discovery attempt 1 failed: No OneKey services found +[2] 14:44:17.120 › [NobleBLE] Starting service discovery: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] peripheralState: 'connected', +[2] attempt: 2, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:44:17.672 › [NobleBLE] No services found (attempt 2/3) +[2] 14:44:17.672 › [NobleBLE] Retrying service discovery in 500ms (attempt 3/3) +[2] 14:44:17.672 › [NobleBLE] Service discovery attempt 2 failed: No OneKey services found +[2] 14:44:18.177 › [NobleBLE] Starting service discovery: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] peripheralState: 'connected', +[2] attempt: 3, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:44:18.722 › [NobleBLE] No services found (attempt 3/3) +[2] 14:44:18.722 › [NobleBLE] Service discovery attempt 3 failed: No OneKey services found +[2] 14:44:18.723 › [NobleBLE] Service/characteristic discovery failed: HardwareError: No OneKey services found +[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) +[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 +[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) +[2] at Object.onceWrapper (node:events:634:26) +[2] at Peripheral.emit (node:events:519:28) +[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) +[2] at NobleMac.emit (node:events:519:28) +[2] Error occurred in handler for '$onekey-noble-ble-connect': HardwareError: No OneKey services found +[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) +[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 +[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) +[2] at Object.onceWrapper (node:events:634:26) +[2] at Peripheral.emit (node:events:519:28) +[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) +[2] at NobleMac.emit (node:events:519:28) { +[2] errorCode: 706, +[2] params: undefined, +[2] attemptNumber: 3, +[2] retriesLeft: 0 +[2] } +[2] 14:44:18.723 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { +[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] hasPeripheral: true, +[2] hasCharacteristics: false, +[2] stackTrace: [ +[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', +[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', +[2] ' at Peripheral.emit (node:events:519:28)', +[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' +[2] ] +[2] } +[2] 14:44:18.723 › [NobleBLE] Device state cleaned up: 38fa0c1040f3e5884d1f0d5b2d4feb9d +[2] 14:44:20.227 › [NobleBLE] Starting device enumeration +[2] 14:44:20.227 › [NobleBLE] Scanning started for OneKey devices +[2] 14:44:20.291 › [NobleBLE] Discovered OneKey device: Touch 589B +[2] 14:44:20.571 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:44:21.172 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:44:22.083 › [NobleBLE] Discovered OneKey device: K5109 +[2] 14:44:23.566 › [NobleBLE] Discovered OneKey device: Pro 2496 +[2] 14:44:25.231 › [NobleBLE] Scan completed, found devices: 5 +[2] 14:44:25.232 › Enumeration completed, devices: [ +[2] { +[2] id: '0078cac4498be7570652e5dc70b03e51', +[2] name: 'Touch 589B', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '9aa5e448398705936cf37a3d917c0aeb', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '74bd90424494cad0a9c20b26c4f59667', +[2] name: 'K5109', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '582b3724e1469405b06b0c1c9773f198', +[2] name: 'Pro 2496', +[2] state: 'disconnected' +[2] } +[2] ] +[2] 14:44:25.236 › [NobleBLE] IPC CONNECT request received: { +[2] deviceId: '0078cac4498be7570652e5dc70b03e51', +[2] hasPeripheral: false, +[2] hasCharacteristics: false, +[2] totalConnectedDevices: 0 +[2] } +[2] 14:44:25.237 › [NobleBLE] Connect device request: { +[2] deviceId: '0078cac4498be7570652e5dc70b03e51', +[2] hasDiscovered: true, +[2] hasConnected: false, +[2] hasCharacteristics: false, +[2] totalDiscovered: 5, +[2] totalConnected: 0 +[2] } +[2] 14:44:25.237 › [NobleBLE] Connecting to device: 0078cac4498be7570652e5dc70b03e51 +[2] Error occurred in handler for '$onekey-noble-ble-connect': HardwareError: Connection timeout +[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) +[2] at Timeout._onTimeout (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11852:36) +[2] at listOnTimeout (node:internal/timers:581:17) +[2] at process.processTimers (node:internal/timers:519:7) { +[2] errorCode: 704, +[2] params: undefined +[2] } +[2] 14:44:30.496 › [NobleBLE] Starting device enumeration +[2] 14:44:30.497 › [NobleBLE] Scanning started for OneKey devices +[2] 14:44:30.545 › [NobleBLE] Discovered OneKey device: K5109 +[2] 14:44:30.552 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:44:31.295 › [NobleBLE] Connected to device: 0078cac4498be7570652e5dc70b03e51 +[2] 14:44:31.296 › [NobleBLE] Starting service discovery: { +[2] deviceId: '0078cac4498be7570652e5dc70b03e51', +[2] peripheralState: 'connected', +[2] attempt: 1, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:44:31.449 › [NobleBLE] Discovered OneKey device: K1510 +[2] 14:44:32.612 › [NobleBLE] Found service: 0001 +[2] 14:44:33.481 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } +[2] 14:44:33.482 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } +[2] 14:44:33.482 › [NobleBLE] Device ready for communication: 0078cac4498be7570652e5dc70b03e51 +[2] 14:44:35.498 › [NobleBLE] Scan completed, found devices: 3 +[2] 14:44:35.500 › Enumeration completed, devices: [ +[2] { +[2] id: '74bd90424494cad0a9c20b26c4f59667', +[2] name: 'K5109', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] }, +[2] { +[2] id: '9aa5e448398705936cf37a3d917c0aeb', +[2] name: 'K1510', +[2] state: 'disconnected' +[2] } +[2] ] +[2] 14:44:35.503 › [NobleBLE] IPC CONNECT request received: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] hasPeripheral: false, +[2] hasCharacteristics: false, +[2] totalConnectedDevices: 1 +[2] } +[2] 14:44:35.503 › [NobleBLE] Connect device request: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] hasDiscovered: true, +[2] hasConnected: false, +[2] hasCharacteristics: false, +[2] totalDiscovered: 3, +[2] totalConnected: 1 +[2] } +[2] 14:44:35.504 › [NobleBLE] Connecting to device: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:44:36.139 › [NobleBLE] Connected to device: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:44:36.139 › [NobleBLE] Starting service discovery: { +[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', +[2] peripheralState: 'connected', +[2] attempt: 1, +[2] maxRetries: 3, +[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] +[2] } +[2] 14:44:36.407 › [NobleBLE] Found service: 0001 +[2] 14:44:36.527 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } +[2] 14:44:36.528 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } +[2] 14:44:36.529 › [NobleBLE] Device ready for communication: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:44:36.529 › [NobleBLE] Subscribing to notifications for device: 74bd90424494cad0a9c20b26c4f59667 +[2] 14:44:36.530 › [NobleBLE] 🔄 Starting subscription process... { deviceId: '74bd90424494cad0a9c20b26c4f59667' } +[2] 14:44:42.210 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { +[2] deviceId: '0078cac4498be7570652e5dc70b03e51', +[2] hasPeripheral: true, +[2] hasCharacteristics: true, +[2] stackTrace: [ +[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', +[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', +[2] ' at Peripheral.emit (node:events:519:28)', +[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' +[2] ] +[2] } +[2] 14:44:42.210 › [NobleBLE] Device state cleaned up: 0078cac4498be7570652e5dc70b03e51 diff --git a/ble-render-log.md b/ble-render-log.md new file mode 100644 index 000000000..393b81712 --- /dev/null +++ b/ble-render-log.md @@ -0,0 +1,636 @@ +🔍 shouldSwitchTransportType called with: {hardwareCallContext: 'user_interaction', forceTransportType: undefined, operationId: undefined} +HardwareConnectionManager.ts:166 🔍 detectBluetoothAvailability +HardwareConnectionManager.ts:185 🔍 detectBluetoothAvailability bleAvailableState: {available: true, state: 'poweredOn', unsupported: false, initialized: true} +HardwareConnectionManager.ts:300 🔍 CACHE RESULT: shouldSwitch=false, targetType=desktop-web-ble, context=user_interaction +ServiceHardware.ts:1557 🔍 shouldSwitchTransportType result: {shouldSwitch: false, targetType: 'desktop-web-ble'} +serviceHardwareUtils.ts:2 ServiceHardwareLog@checkAllFirmwareRelease +ServiceFirmwareUpdate.ts:329 @onekey/hd-core cancel API: {event: 'iframe-cancel', type: 'iframe-cancel', payload: {…}} +ServiceFirmwareUpdate.ts:329 @onekey/hd-core Cancel Api connect requestQueues: length:0 requestIds: +ServiceFirmwareUpdate.ts:329 @onekey/hd-core Cleanup... +ServiceFirmwareUpdate.ts:329 [Method] hd-common-connect-sdk handleMessage {event: 'UI_EVENT', type: 'ui-close_window', payload: undefined} +ServiceFirmwareUpdate.ts:341 @onekey/hd-core cancel API: {event: 'iframe-cancel', type: 'iframe-cancel', payload: {…}} +ServiceFirmwareUpdate.ts:341 @onekey/hd-core Cancel Api all _deviceList: +ServiceFirmwareUpdate.ts:341 @onekey/hd-core Cleanup... +ServiceFirmwareUpdate.ts:341 [Method] hd-common-connect-sdk handleMessage {event: 'UI_EVENT', type: 'ui-close_window', payload: undefined} +serviceHardwareUtils.ts:2 ServiceHardwareLog@call getFeatures() 38fa0c1040f3e5884d1f0d5b2d4feb9d +ServiceHardware.ts:829 [Method] call: {retryCount: 0, detectBootloaderDevice: true, skipWebDevicePrompt: true, connectId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', method: 'getFeatures'} +ServiceHardware.ts:829 @onekey/hd-core call API: {event: 'iframe-call', type: 'iframe-call', payload: {…}, id: '1'} +index.js:809 @onekey/hd-core EnsureConnected function start, MAX_RETRY_COUNT=0, POLL_INTERVAL_TIME=1000 +index.js:809 @onekey/hd-core EnsureConnected function try count: 1 poll interval time: 1000 +index.js:809 Transport Initializing transports +index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE Transport initialized +index.js:809 Transport Configuring transports +index.js:809 Transport Configuring transports done +index.js:809 DeviceConnector acquire 38fa0c1040f3e5884d1f0d5b2d4feb9d undefined +ServiceHardware.ts:829 @onekey/hd-web-ble-transport [Transport] Noble BLE acquire failed: Error: Error invoking remote method '$onekey-noble-ble-connect': HardwareError: No OneKey services found + at IpcRenderer.invoke (node:electron/js2c/renderer_init:2:6969) +error @ index.js:793 +eval @ index.js:400 +rejected @ index.js:34 +Promise.then (async) +step @ index.js:35 +fulfilled @ index.js:33 +Promise.then (async) +step @ index.js:35 +eval @ index.js:36 +__awaiter @ index.js:32 +acquire @ index.js:349 +eval @ index.js:38290 +eval @ index.js:721 +__awaiter @ index.js:717 +acquire @ index.js:38284 +eval @ index.js:26663 +eval @ index.js:721 +__awaiter @ index.js:717 +acquire @ index.js:26658 +eval @ index.js:38753 +eval @ index.js:721 +__awaiter @ index.js:717 +connectDeviceForBle @ index.js:38751 +eval @ index.js:38839 +fulfilled @ index.js:718 +Promise.then (async) +step @ index.js:720 +eval @ index.js:721 +__awaiter @ index.js:717 +eval @ index.js:38777 +eval @ index.js:38777 +eval @ index.js:721 +__awaiter @ index.js:717 +poll @ index.js:38776 +eval @ index.js:38887 +eval @ index.js:721 +__awaiter @ index.js:717 +ensureConnected @ index.js:38769 +eval @ index.js:38535 +fulfilled @ index.js:718 +Promise.then (async) +step @ index.js:720 +eval @ index.js:721 +__awaiter @ index.js:717 +onCallDevice @ index.js:38515 +eval @ index.js:38494 +fulfilled @ index.js:718 +Promise.then (async) +step @ index.js:720 +eval @ index.js:721 +__awaiter @ index.js:717 +callAPI @ index.js:38456 +eval @ index.js:39102 +eval @ index.js:721 +__awaiter @ index.js:717 +handleMessage @ index.js:39078 +eval @ index.js:637 +step @ index.js:77 +eval @ index.js:58 +eval @ index.js:51 +__awaiter @ index.js:47 +postMessage @ index.js:626 +eval @ index.js:686 +step @ index.js:77 +eval @ index.js:58 +eval @ index.js:51 +__awaiter @ index.js:47 +call @ index.js:676 +getFeatures @ index.js:49 +features.silentMode.silentMode @ ServiceHardware.ts:829 +convertDeviceResponse @ deviceErrorUtils.ts:238 +ServiceHardware._getFeaturesLowLevel @ ServiceHardware.ts:828 +await in ServiceHardware._getFeaturesLowLevel (async) +eval @ backgroundUtils.ts:206 +eval @ backgroundUtils.ts:194 +eval @ ServiceHardware.ts:849 +eval @ index.mjs:46 +fulfilled @ index.mjs:18 +Promise.then (async) +step @ index.mjs:20 +eval @ index.mjs:21 +__awaiter$2 @ index.mjs:17 +runExclusive @ index.mjs:43 +fn @ ServiceHardware.ts:848 +ServiceHardware._getFeaturesWithMutex @ ServiceHardware.ts:854 +getFeaturesWithoutCache @ ServiceHardware.ts:878 +checkDeviceIsBootloaderMode @ ServiceFirmwareUpdate.ts:156 +checkAllFirmwareRelease @ ServiceFirmwareUpdate.ts:346 +await in checkAllFirmwareRelease (async) +descriptor.value @ backgroundDecorators.ts:203 +callBackgroundMethod @ BackgroundApiProxyBase.ts:163 +callBackground @ BackgroundApiProxyBase.ts:196 +_proxyServiceCache. @ BackgroundServiceProxyBase.ts:39 +PageFirmwareUpdateChangeLog.watchLoading @ PageFirmwareUpdateChangeLog.tsx:72 +await in PageFirmwareUpdateChangeLog.watchLoading (async) +methodWithNonce @ usePromiseResult.ts:167 +runner @ usePromiseResult.ts:193 +callback @ usePromiseResult.ts:268 +eval @ usePromiseResult.ts:275 +react-stack-bottom-frame @ react-dom-client.development.js:22509 +runWithFiberInDEV @ react-dom-client.development.js:543 +commitHookEffectListMount @ react-dom-client.development.js:10758 +commitHookPassiveMountEffects @ react-dom-client.development.js:10878 +reconnectPassiveEffects @ react-dom-client.development.js:12802 +recursivelyTraverseReconnectPassiveEffects @ react-dom-client.development.js:12774 +commitPassiveMountOnFiber @ react-dom-client.development.js:12731 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +Show 265 more frames +Show less +index.js:809 DeviceConnector acquire error: Error invoking remote method '$onekey-noble-ble-connect': HardwareError: No OneKey services found +index.js:809 @onekey/hd-core device error: HardwareError: Unknown error occurred. Check message property. + at Object.TypedError (index.js:339:12) + at safeThrowError (index.js:28020:31) + at DeviceConnector.eval (index.js:38299:17) + at Generator.throw () + at rejected (index.js:719:65) +index.js:809 @onekey/hd-core EnsureConnected get to max try count, will return: 1 +index.js:38538 ensureConnected error: HardwareError: Device not found + at Object.TypedError (index.js:339:12) + at eval (index.js:38877:40) + at Generator.throw () + at rejected (index.js:719:65) +index.js:785 @onekey/hd-core call API Response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '1', success: false, payload: {…}} +index.js:809 [Method] response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '1', success: false, payload: {…}} +index.js:692 response.payload?.code: 105 +serviceHardwareUtils.ts:2 ServiceHardwareLog@call getFeatures() 38fa0c1040f3e5884d1f0d5b2d4feb9d +HardwareConnectionManager.ts:258 🔍 shouldSwitchTransportType called with: {hardwareCallContext: 'user_interaction', forceTransportType: undefined, operationId: undefined} +HardwareConnectionManager.ts:166 🔍 detectBluetoothAvailability +HardwareConnectionManager.ts:185 🔍 detectBluetoothAvailability bleAvailableState: {available: true, state: 'poweredOn', unsupported: false, initialized: true} +HardwareConnectionManager.ts:300 🔍 CACHE RESULT: shouldSwitch=false, targetType=desktop-web-ble, context=user_interaction +ServiceHardware.ts:829 [Method] call: {allowEmptyConnectId: true, connectId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', method: 'getFeatures'} +ServiceHardware.ts:829 @onekey/hd-core call API: {event: 'iframe-call', type: 'iframe-call', payload: {…}, id: '2'} +index.js:809 @onekey/hd-core EnsureConnected function start, MAX_RETRY_COUNT=5, POLL_INTERVAL_TIME=1000 +index.js:809 @onekey/hd-core EnsureConnected function try count: 1 poll interval time: 1000 +index.js:809 Transport Initializing transports +index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE Transport initialized +index.js:809 Transport Configuring transports +index.js:809 Transport Configuring transports done +index.js:809 DeviceConnector acquire 38fa0c1040f3e5884d1f0d5b2d4feb9d undefined +autoLogger.ts:26 AUTO-LOGS: OneKeyHardwareError: Device not found. Please try reconnecting the device (unplug and plug the USB or turn Bluetooth off and on), then try again. + at convertDeviceError (deviceErrorUtils.ts:81:14) + at convertDeviceResponse (deviceErrorUtils.ts:246:11) + at async ServiceHardware._getFeaturesLowLevel (ServiceHardware.ts:828:22) {name: 'OneKeyHardwareError', constructorName: 'DeviceNotFound', className: 'DeviceNotFound', key: 'hardware.device_not_find_error', code: 105, …} file: /Users/leon/Documents/onekey/x-app-monorepo/packages/kit-bg/src/services/ServiceFirmwareUpdate/ServiceFirmwareUpdate.ts line: 170 column: 16 +eval @ autoLogger.ts:26 +eval @ timerUtils.ts:19 +setTimeout (async) +__webpack_require__.g. @ timerUtils.ts:13 +error @ autoLogger.ts:11 +checkDeviceIsBootloaderMode @ ServiceFirmwareUpdate.ts:170 +await in checkDeviceIsBootloaderMode (async) +checkAllFirmwareRelease @ ServiceFirmwareUpdate.ts:346 +await in checkAllFirmwareRelease (async) +descriptor.value @ backgroundDecorators.ts:203 +callBackgroundMethod @ BackgroundApiProxyBase.ts:163 +callBackground @ BackgroundApiProxyBase.ts:196 +_proxyServiceCache. @ BackgroundServiceProxyBase.ts:39 +PageFirmwareUpdateChangeLog.watchLoading @ PageFirmwareUpdateChangeLog.tsx:72 +await in PageFirmwareUpdateChangeLog.watchLoading (async) +methodWithNonce @ usePromiseResult.ts:167 +runner @ usePromiseResult.ts:193 +callback @ usePromiseResult.ts:268 +eval @ usePromiseResult.ts:275 +react-stack-bottom-frame @ react-dom-client.development.js:22509 +runWithFiberInDEV @ react-dom-client.development.js:543 +commitHookEffectListMount @ react-dom-client.development.js:10758 +commitHookPassiveMountEffects @ react-dom-client.development.js:10878 +reconnectPassiveEffects @ react-dom-client.development.js:12802 +recursivelyTraverseReconnectPassiveEffects @ react-dom-client.development.js:12774 +commitPassiveMountOnFiber @ react-dom-client.development.js:12731 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12755 +recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 +commitPassiveMountOnFiber @ react-dom-client.development.js:12646 +Show 195 more frames +Show less +index.js:809 Device Expected uuid: 38fa0c1040f3e5884d1f0d5b2d4feb9d +index.js:809 Device getInternalState session cache: {} +index.js:809 Device getInternalState session param: device_id: undefined features.device_id: undefined passphraseState: undefined +index.js:809 Device Initialize device begin: {deviceId: undefined, passphraseState: undefined, initSession: undefined, InitializePayload: {…}} +index.js:809 DeviceCommands [DeviceCommands] [call] Sending Initialize +index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE call name: Initialize data: {passphrase_state: undefined, is_contains_attach: true} +index.js:809 DeviceCommands [DeviceCommands] [call] Received Features +index.js:809 DeviceCommands _filterCommonTypes: {type: 'Features', message: {…}} +index.js:809 Device Initialize device end: {vendor: 'trezor.io', major_version: 2, minor_version: 99, patch_version: 99, bootloader_mode: null, …} +index.js:809 Transport Begin reconfiguring transports +index.js:809 @onekey/hd-core Call API - setDevice: 38fa0c1040f3e5884d1f0d5b2d4feb9d +index.js:809 @onekey/hd-core Call API - Device Run: 38fa0c1040f3e5884d1f0d5b2d4feb9d +index.js:809 DeviceConnector acquire 38fa0c1040f3e5884d1f0d5b2d4feb9d undefined +index.js:809 Device Expected uuid: 38fa0c1040f3e5884d1f0d5b2d4feb9d +index.js:809 Device getInternalState session cache: {} +index.js:809 Device getInternalState session param: device_id: undefined features.device_id: 120D13107C62B8D81922E625 passphraseState: undefined +index.js:809 Device Initialize device begin: {deviceId: undefined, passphraseState: undefined, initSession: undefined, InitializePayload: {…}} +index.js:809 DeviceCommands [DeviceCommands] [call] Sending Initialize +index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE call name: Initialize data: {passphrase_state: undefined, is_contains_attach: true} +index.js:809 DeviceCommands [DeviceCommands] [call] Received Features +index.js:809 DeviceCommands _filterCommonTypes: {type: 'Features', message: {…}} +index.js:809 Device Initialize device end: {vendor: 'trezor.io', major_version: 2, minor_version: 99, patch_version: 99, bootloader_mode: null, …} +index.js:809 Device setInternalState session param: state: 33d62a5ac458e49e34c260286cddd868733721025e9b17252b1690d933f4abcd initSession: undefined device_id: 120D13107C62B8D81922E625 passphraseState: undefined +index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'DEVICE_EVENT', type: 'features', payload: {…}} +index.js:809 Transport Begin reconfiguring transports +index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'FIRMWARE_EVENT', type: 'firmware-release-info', payload: {…}} +serviceHardwareUtils.ts:2 ServiceHardwareLog@FIRMWARE_EVENT>RELEASE_INFO: {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} +serviceHardwareUtils.ts:2 ServiceHardwareLog@_checkFirmwareUpdate {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} +index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'FIRMWARE_EVENT', type: 'ble-firmware-release-info', payload: {…}} +serviceHardwareUtils.ts:2 ServiceHardwareLog@FIRMWARE_EVENT>BLE_RELEASE_INFO: {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} +serviceHardwareUtils.ts:2 ServiceHardwareLog@showBleFirmwareReleaseInfo {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} +index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'DEVICE_EVENT', type: 'support_features', payload: {…}} +serviceHardwareUtils.ts:2 ServiceHardwareLog@features update {vendor: 'trezor.io', major_version: 2, minor_version: 99, patch_version: 99, bootloader_mode: null, …} +index.js:809 @onekey/hd-core Call API - Inner Method Run: +index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'UI_EVENT', type: 'ui-close_window', payload: undefined} +index.js:809 @onekey/hd-core Cleanup... +index.js:785 @onekey/hd-core call API Response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '2', success: true, payload: {…}} +index.js:809 [Method] response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '2', success: true, payload: {…}} +HardwareConnectionManager.ts:258 🔍 shouldSwitchTransportType called with: {hardwareCallContext: 'user_interaction', forceTransportType: undefined, operationId: undefined} +HardwareConnectionManager.ts:166 🔍 detectBluetoothAvailability +serviceHardwareUtils.ts:2 ServiceHardwareLog@_checkFirmwareUpdate updateInfo {connectId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', hasUpgrade: true, hasUpgradeForce: false, fromVersion: '3.12.0', toVersion: '3.12.0', …} +HardwareConnectionManager.ts:185 🔍 detectBluetoothAvailability bleAvailableState: {available: true, state: 'poweredOn', unsupported: false, initialized: true} +HardwareConnectionManager.ts:300 🔍 CACHE RESULT: shouldSwitch=false, targetType=desktop-web-ble, context=user_interaction +ServiceFirmwareUpdate.ts:522 [Method] call: {checkBridgeRelease: true, connectId: undefined, method: 'checkAllFirmwareRelease'} +ServiceFirmwareUpdate.ts:522 @onekey/hd-core call API: {event: 'iframe-call', type: 'iframe-call', payload: {…}, id: '3'} +index.js:809 @onekey/hd-core EnsureConnected function start, MAX_RETRY_COUNT=5, POLL_INTERVAL_TIME=1000 +index.js:809 @onekey/hd-core EnsureConnected function try count: 1 poll interval time: 1000 +index.js:809 Transport Initializing transports +index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE Transport initialized +index.js:809 Transport Configuring transports +index.js:809 Transport Configuring transports done +index.js:809 Device release device, mainId: 38fa0c1040f3e5884d1f0d5b2d4feb9d +storageChecker.ts:51 checkIfDiskIsFull {quotaInGB: 461.00678212568164, usageInGB: 0.006721090525388718, availableInGB: 461.00006103515625} +index.js:809 DevicePool device pool -> current: (5) [{…}, {…}, {…}, {…}, {…}] +index.js:809 DevicePool device pool -> upcomming: (5) [{…}, {…}, {…}, {…}, {…}] +index.js:809 DevicePool DeviceCache.reportDeviceChange diff: {connected: Array(5), disconnected: Array(0), changedSessions: Array(0), acquired: Array(0), released: Array(0), …} +index.js:809 DeviceConnector acquire 74bd90424494cad0a9c20b26c4f59667 undefined +index.js:38538 ensureConnected error: HardwareError: Polling timeout + at Object.TypedError (index.js:339:12) + at eval (index.js:38800:40) + at eval (timerUtils.ts:19:14) +index.js:785 @onekey/hd-core call API Response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '3', success: false, payload: {…}} +index.js:809 [Method] response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '3', success: false, payload: {…}} +index.js:692 response.payload?.code: 809 diff --git a/submodules/firmware b/submodules/firmware index 4fb782f04..0ae92cc77 160000 --- a/submodules/firmware +++ b/submodules/firmware @@ -1 +1 @@ -Subproject commit 4fb782f04dc465e5b9114922600234b50326b17b +Subproject commit 0ae92cc777ed276b8b2f75a155fd8f13605973b5 From 10c6b94e66e63e89fcc12ce16bcc1fa17cc2c7aa Mon Sep 17 00:00:00 2001 From: Leon Date: Tue, 5 Aug 2025 20:27:49 +0800 Subject: [PATCH 4/8] chore: remove obsolete BLE log and main process files --- ble-main-process.md | 538 ------------------------------------- ble-render-log.md | 636 -------------------------------------------- 2 files changed, 1174 deletions(-) delete mode 100644 ble-main-process.md delete mode 100644 ble-render-log.md diff --git a/ble-main-process.md b/ble-main-process.md deleted file mode 100644 index fe34def42..000000000 --- a/ble-main-process.md +++ /dev/null @@ -1,538 +0,0 @@ -[2] 14:43:09.831 › set isAppReady on browserWindow dom-ready true -[2] 14:43:09.880 › browserWindow >>>> did-finish-load -[2] [24636:0805/144309.902228:ERROR:CONSOLE(1)] "Request Fetch.enable failed. {"code":-32601,"message":"'Fetch.enable' wasn't found"}", source: devtools://devtools/bundled/core/protocol_client/protocol_client.js (1) -[2] 14:43:10.468 › auto-updater builderNumber: -[2] (node:24643) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 appState listeners added to [IpcRenderer]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit -[2] (Use `Electron Helper (Renderer) --trace-warnings ...` to show where the warning was created) -[2] 14:43:11.163 › checkBiometricAuthChangedChildProcess-onMessage { type: 'checkBiometricAuthChanged', result: false } -[2] 14:43:14.298 › checkBiometricAuthChangedChildProcess-onMessage { type: 'checkBiometricAuthChanged', result: false } -[2] 14:43:24.197 › [NobleBLE] Noble library loaded -[2] 14:43:24.240 › [NobleBLE] Bluetooth state: poweredOn -[2] 14:43:24.241 › [NobleBLE] Persistent state listener setup -[2] 14:43:24.241 › [NobleBLE] Initial state detected: poweredOn -[2] 14:43:24.241 › [NobleBLE] Noble initialized successfully -[2] 14:43:24.241 › Bluetooth availability check completed: { -[2] available: true, -[2] state: 'poweredOn', -[2] unsupported: false, -[2] initialized: true -[2] } -[2] 14:43:24.241 › Bluetooth availability check completed: { -[2] available: true, -[2] state: 'poweredOn', -[2] unsupported: false, -[2] initialized: true -[2] } -[2] 14:43:25.268 › [NobleBLE] IPC CONNECT request received: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasPeripheral: false, -[2] hasCharacteristics: false, -[2] totalConnectedDevices: 0 -[2] } -[2] 14:43:25.269 › [NobleBLE] Connect device request: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasDiscovered: false, -[2] hasConnected: false, -[2] hasCharacteristics: false, -[2] totalDiscovered: 0, -[2] totalConnected: 0 -[2] } -[2] 14:43:25.269 › [NobleBLE] Device not discovered, attempting targeted scan for: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:25.269 › [NobleBLE] Targeted scan started for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:25.613 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:43:25.614 › [NobleBLE] Target device found: { id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', name: 'K1510' } -[2] 14:43:25.614 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:26.675 › [NobleBLE] Connected to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:26.678 › [NobleBLE] Starting service discovery: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] peripheralState: 'connected', -[2] attempt: 1, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:43:26.794 › [NobleBLE] No services found (attempt 1/3) -[2] 14:43:26.795 › [NobleBLE] Retrying service discovery in 500ms (attempt 2/3) -[2] 14:43:26.796 › [NobleBLE] Service discovery attempt 1 failed: No OneKey services found -[2] 14:43:27.302 › [NobleBLE] Starting service discovery: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] peripheralState: 'connected', -[2] attempt: 2, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:43:27.871 › [NobleBLE] No services found (attempt 2/3) -[2] 14:43:27.873 › [NobleBLE] Retrying service discovery in 500ms (attempt 3/3) -[2] 14:43:27.874 › [NobleBLE] Service discovery attempt 2 failed: No OneKey services found -[2] 14:43:28.378 › [NobleBLE] Starting service discovery: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] peripheralState: 'connected', -[2] attempt: 3, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:43:28.923 › [NobleBLE] No services found (attempt 3/3) -[2] 14:43:28.924 › [NobleBLE] Service discovery attempt 3 failed: No OneKey services found -[2] 14:43:28.929 › [NobleBLE] Service/characteristic discovery failed: HardwareError: No OneKey services found -[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) -[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 -[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) -[2] at Object.onceWrapper (node:events:634:26) -[2] at Peripheral.emit (node:events:519:28) -[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) -[2] at NobleMac.emit (node:events:519:28) -[2] Error occurred in handler for '$onekey-noble-ble-connect': HardwareError: No OneKey services found -[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) -[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 -[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) -[2] at Object.onceWrapper (node:events:634:26) -[2] at Peripheral.emit (node:events:519:28) -[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) -[2] at NobleMac.emit (node:events:519:28) { -[2] errorCode: 706, -[2] params: undefined, -[2] attemptNumber: 3, -[2] retriesLeft: 0 -[2] } -[2] 14:43:28.931 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasPeripheral: true, -[2] hasCharacteristics: false, -[2] stackTrace: [ -[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', -[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', -[2] ' at Peripheral.emit (node:events:519:28)', -[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' -[2] ] -[2] } -[2] 14:43:28.931 › [NobleBLE] Device state cleaned up: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:28.940 › Bluetooth availability check completed: { -[2] available: true, -[2] state: 'poweredOn', -[2] unsupported: false, -[2] initialized: true -[2] } -[2] 14:43:28.941 › Bluetooth availability check completed: { -[2] available: true, -[2] state: 'poweredOn', -[2] unsupported: false, -[2] initialized: true -[2] } -[2] 14:43:28.953 › [NobleBLE] IPC CONNECT request received: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasPeripheral: false, -[2] hasCharacteristics: false, -[2] totalConnectedDevices: 0 -[2] } -[2] 14:43:28.954 › [NobleBLE] Connect device request: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasDiscovered: true, -[2] hasConnected: false, -[2] hasCharacteristics: false, -[2] totalDiscovered: 1, -[2] totalConnected: 0 -[2] } -[2] 14:43:28.954 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:29.673 › [NobleBLE] Connected to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:29.673 › [NobleBLE] Starting service discovery: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] peripheralState: 'connected', -[2] attempt: 1, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:43:29.852 › [NobleBLE] Found service: 0001 -[2] 14:43:30.033 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } -[2] 14:43:30.035 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } -[2] 14:43:30.036 › [NobleBLE] Device ready for communication: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:30.038 › [NobleBLE] Subscribing to notifications for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:30.038 › [NobleBLE] 🔄 Starting subscription process... { deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d' } -[2] 14:43:30.156 › [NobleBLE] ✅ Notification subscription successful -[2] 14:43:30.163 › [NobleBLE] Writing data: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] dataLength: 64, -[2] firstBytes: '3f23230000000000' -[2] } -[2] 14:43:31.142 › [NobleBLE] Packet complete: { deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', length: 480 } -[2] 14:43:31.154 › [NobleBLE] IPC CONNECT request received: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasPeripheral: true, -[2] hasCharacteristics: true, -[2] totalConnectedDevices: 1 -[2] } -[2] 14:43:31.155 › [NobleBLE] Connect device request: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasDiscovered: true, -[2] hasConnected: true, -[2] hasCharacteristics: true, -[2] totalDiscovered: 1, -[2] totalConnected: 1 -[2] } -[2] 14:43:31.155 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:31.155 › [NobleBLE] Device already connected, skipping connection step -[2] 14:43:31.155 › [NobleBLE] Device characteristics already available -[2] 14:43:31.155 › [NobleBLE] Device already has active notification subscription, reusing connection -[2] 14:43:31.156 › [NobleBLE] Subscribing to notifications for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:31.156 › [NobleBLE] Device already subscribed to characteristic, updating callback only -[2] 14:43:31.157 › [NobleBLE] Writing data: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] dataLength: 64, -[2] firstBytes: '3f23230000000000' -[2] } -[2] 14:43:32.013 › [NobleBLE] Packet complete: { deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', length: 480 } -[2] 14:43:32.952 › [NobleBLE] Unsubscribing from notifications for device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:32.982 › Bluetooth availability check completed: { -[2] available: true, -[2] state: 'poweredOn', -[2] unsupported: false, -[2] initialized: true -[2] } -[2] 14:43:32.983 › Bluetooth availability check completed: { -[2] available: true, -[2] state: 'poweredOn', -[2] unsupported: false, -[2] initialized: true -[2] } -[2] 14:43:32.991 › [NobleBLE] Starting device enumeration -[2] 14:43:32.992 › [NobleBLE] Scanning started for OneKey devices -[2] 14:43:33.031 › [NobleBLE] Notification unsubscription successful -[2] 14:43:33.032 › [NobleBLE] Device state cleaned up: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:43:33.309 › [NobleBLE] Discovered OneKey device: K5109 -[2] 14:43:33.333 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:43:33.631 › [NobleBLE] Discovered OneKey device: Pro 723A -[2] 14:43:34.827 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:43:35.728 › [NobleBLE] Discovered OneKey device: Touch 589B -[2] 14:43:37.998 › [NobleBLE] Scan completed, found devices: 5 -[2] 14:43:37.998 › Enumeration completed, devices: [ -[2] { -[2] id: '74bd90424494cad0a9c20b26c4f59667', -[2] name: 'K5109', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '9aa5e448398705936cf37a3d917c0aeb', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '218cc2a04b1362629e48d5a750482811', -[2] name: 'Pro 723A', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '0078cac4498be7570652e5dc70b03e51', -[2] name: 'Touch 589B', -[2] state: 'disconnected' -[2] } -[2] ] -[2] 14:43:38.001 › [NobleBLE] IPC CONNECT request received: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] hasPeripheral: false, -[2] hasCharacteristics: false, -[2] totalConnectedDevices: 0 -[2] } -[2] 14:43:38.001 › [NobleBLE] Connect device request: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] hasDiscovered: true, -[2] hasConnected: false, -[2] hasCharacteristics: false, -[2] totalDiscovered: 5, -[2] totalConnected: 0 -[2] } -[2] 14:43:38.001 › [NobleBLE] Connecting to device: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:43:39.218 › [NobleBLE] Connected to device: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:43:39.219 › [NobleBLE] Starting service discovery: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] peripheralState: 'connected', -[2] attempt: 1, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:43:39.511 › [NobleBLE] Found service: 0001 -[2] 14:43:39.632 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } -[2] 14:43:39.633 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } -[2] 14:43:39.633 › [NobleBLE] Device ready for communication: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:43:39.633 › [NobleBLE] Subscribing to notifications for device: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:43:39.633 › [NobleBLE] 🔄 Starting subscription process... { deviceId: '74bd90424494cad0a9c20b26c4f59667' } -[2] 14:44:09.672 › [NobleBLE] ✅ Notification subscription successful -[2] 14:44:09.677 › [NobleBLE] Writing data: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] dataLength: 64, -[2] firstBytes: '3f23230000000000' -[2] } -[2] 14:44:09.755 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] hasPeripheral: true, -[2] hasCharacteristics: true, -[2] stackTrace: [ -[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', -[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', -[2] ' at Peripheral.emit (node:events:519:28)', -[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' -[2] ] -[2] } -[2] 14:44:09.755 › [NobleBLE] Pairing rejection detected, sending error notification -[2] 14:44:09.756 › [NobleBLE] Device state cleaned up: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:44:10.759 › [NobleBLE] Starting device enumeration -[2] 14:44:10.760 › [NobleBLE] Scanning started for OneKey devices -[2] 14:44:10.811 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:44:10.838 › [NobleBLE] Discovered OneKey device: K5109 -[2] 14:44:11.127 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:44:12.328 › [NobleBLE] Discovered OneKey device: Pro 2496 -[2] 14:44:13.218 › [NobleBLE] Discovered OneKey device: Pro 723A -[2] 14:44:14.114 › [NobleBLE] Discovered OneKey device: Pro 2DD9 -[2] 14:44:14.122 › [NobleBLE] Discovered OneKey device: Touch 589B -[2] 14:44:15.765 › [NobleBLE] Scan completed, found devices: 7 -[2] 14:44:15.766 › Enumeration completed, devices: [ -[2] { -[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '74bd90424494cad0a9c20b26c4f59667', -[2] name: 'K5109', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '9aa5e448398705936cf37a3d917c0aeb', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '582b3724e1469405b06b0c1c9773f198', -[2] name: 'Pro 2496', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '218cc2a04b1362629e48d5a750482811', -[2] name: 'Pro 723A', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: 'b5fb363fd39801cce6df88bc74ff06ce', -[2] name: 'Pro 2DD9', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '0078cac4498be7570652e5dc70b03e51', -[2] name: 'Touch 589B', -[2] state: 'disconnected' -[2] } -[2] ] -[2] 14:44:15.768 › [NobleBLE] IPC CONNECT request received: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasPeripheral: false, -[2] hasCharacteristics: false, -[2] totalConnectedDevices: 0 -[2] } -[2] 14:44:15.768 › [NobleBLE] Connect device request: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasDiscovered: true, -[2] hasConnected: false, -[2] hasCharacteristics: false, -[2] totalDiscovered: 7, -[2] totalConnected: 0 -[2] } -[2] 14:44:15.768 › [NobleBLE] Connecting to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:44:16.473 › [NobleBLE] Connected to device: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:44:16.473 › [NobleBLE] Starting service discovery: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] peripheralState: 'connected', -[2] attempt: 1, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:44:16.615 › [NobleBLE] No services found (attempt 1/3) -[2] 14:44:16.616 › [NobleBLE] Retrying service discovery in 500ms (attempt 2/3) -[2] 14:44:16.616 › [NobleBLE] Service discovery attempt 1 failed: No OneKey services found -[2] 14:44:17.120 › [NobleBLE] Starting service discovery: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] peripheralState: 'connected', -[2] attempt: 2, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:44:17.672 › [NobleBLE] No services found (attempt 2/3) -[2] 14:44:17.672 › [NobleBLE] Retrying service discovery in 500ms (attempt 3/3) -[2] 14:44:17.672 › [NobleBLE] Service discovery attempt 2 failed: No OneKey services found -[2] 14:44:18.177 › [NobleBLE] Starting service discovery: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] peripheralState: 'connected', -[2] attempt: 3, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:44:18.722 › [NobleBLE] No services found (attempt 3/3) -[2] 14:44:18.722 › [NobleBLE] Service discovery attempt 3 failed: No OneKey services found -[2] 14:44:18.723 › [NobleBLE] Service/characteristic discovery failed: HardwareError: No OneKey services found -[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) -[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 -[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) -[2] at Object.onceWrapper (node:events:634:26) -[2] at Peripheral.emit (node:events:519:28) -[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) -[2] at NobleMac.emit (node:events:519:28) -[2] Error occurred in handler for '$onekey-noble-ble-connect': HardwareError: No OneKey services found -[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) -[2] at /Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11703:38 -[2] at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/peripheral.js:96:7) -[2] at Object.onceWrapper (node:events:634:26) -[2] at Peripheral.emit (node:events:519:28) -[2] at Noble.onServicesDiscover (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:337:16) -[2] at NobleMac.emit (node:events:519:28) { -[2] errorCode: 706, -[2] params: undefined, -[2] attemptNumber: 3, -[2] retriesLeft: 0 -[2] } -[2] 14:44:18.723 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { -[2] deviceId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] hasPeripheral: true, -[2] hasCharacteristics: false, -[2] stackTrace: [ -[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', -[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', -[2] ' at Peripheral.emit (node:events:519:28)', -[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' -[2] ] -[2] } -[2] 14:44:18.723 › [NobleBLE] Device state cleaned up: 38fa0c1040f3e5884d1f0d5b2d4feb9d -[2] 14:44:20.227 › [NobleBLE] Starting device enumeration -[2] 14:44:20.227 › [NobleBLE] Scanning started for OneKey devices -[2] 14:44:20.291 › [NobleBLE] Discovered OneKey device: Touch 589B -[2] 14:44:20.571 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:44:21.172 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:44:22.083 › [NobleBLE] Discovered OneKey device: K5109 -[2] 14:44:23.566 › [NobleBLE] Discovered OneKey device: Pro 2496 -[2] 14:44:25.231 › [NobleBLE] Scan completed, found devices: 5 -[2] 14:44:25.232 › Enumeration completed, devices: [ -[2] { -[2] id: '0078cac4498be7570652e5dc70b03e51', -[2] name: 'Touch 589B', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '9aa5e448398705936cf37a3d917c0aeb', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '74bd90424494cad0a9c20b26c4f59667', -[2] name: 'K5109', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '582b3724e1469405b06b0c1c9773f198', -[2] name: 'Pro 2496', -[2] state: 'disconnected' -[2] } -[2] ] -[2] 14:44:25.236 › [NobleBLE] IPC CONNECT request received: { -[2] deviceId: '0078cac4498be7570652e5dc70b03e51', -[2] hasPeripheral: false, -[2] hasCharacteristics: false, -[2] totalConnectedDevices: 0 -[2] } -[2] 14:44:25.237 › [NobleBLE] Connect device request: { -[2] deviceId: '0078cac4498be7570652e5dc70b03e51', -[2] hasDiscovered: true, -[2] hasConnected: false, -[2] hasCharacteristics: false, -[2] totalDiscovered: 5, -[2] totalConnected: 0 -[2] } -[2] 14:44:25.237 › [NobleBLE] Connecting to device: 0078cac4498be7570652e5dc70b03e51 -[2] Error occurred in handler for '$onekey-noble-ble-connect': HardwareError: Connection timeout -[2] at Object.TypedError (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:387:14) -[2] at Timeout._onTimeout (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11852:36) -[2] at listOnTimeout (node:internal/timers:581:17) -[2] at process.processTimers (node:internal/timers:519:7) { -[2] errorCode: 704, -[2] params: undefined -[2] } -[2] 14:44:30.496 › [NobleBLE] Starting device enumeration -[2] 14:44:30.497 › [NobleBLE] Scanning started for OneKey devices -[2] 14:44:30.545 › [NobleBLE] Discovered OneKey device: K5109 -[2] 14:44:30.552 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:44:31.295 › [NobleBLE] Connected to device: 0078cac4498be7570652e5dc70b03e51 -[2] 14:44:31.296 › [NobleBLE] Starting service discovery: { -[2] deviceId: '0078cac4498be7570652e5dc70b03e51', -[2] peripheralState: 'connected', -[2] attempt: 1, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:44:31.449 › [NobleBLE] Discovered OneKey device: K1510 -[2] 14:44:32.612 › [NobleBLE] Found service: 0001 -[2] 14:44:33.481 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } -[2] 14:44:33.482 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } -[2] 14:44:33.482 › [NobleBLE] Device ready for communication: 0078cac4498be7570652e5dc70b03e51 -[2] 14:44:35.498 › [NobleBLE] Scan completed, found devices: 3 -[2] 14:44:35.500 › Enumeration completed, devices: [ -[2] { -[2] id: '74bd90424494cad0a9c20b26c4f59667', -[2] name: 'K5109', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '38fa0c1040f3e5884d1f0d5b2d4feb9d', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] }, -[2] { -[2] id: '9aa5e448398705936cf37a3d917c0aeb', -[2] name: 'K1510', -[2] state: 'disconnected' -[2] } -[2] ] -[2] 14:44:35.503 › [NobleBLE] IPC CONNECT request received: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] hasPeripheral: false, -[2] hasCharacteristics: false, -[2] totalConnectedDevices: 1 -[2] } -[2] 14:44:35.503 › [NobleBLE] Connect device request: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] hasDiscovered: true, -[2] hasConnected: false, -[2] hasCharacteristics: false, -[2] totalDiscovered: 3, -[2] totalConnected: 1 -[2] } -[2] 14:44:35.504 › [NobleBLE] Connecting to device: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:44:36.139 › [NobleBLE] Connected to device: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:44:36.139 › [NobleBLE] Starting service discovery: { -[2] deviceId: '74bd90424494cad0a9c20b26c4f59667', -[2] peripheralState: 'connected', -[2] attempt: 1, -[2] maxRetries: 3, -[2] targetUUIDs: [ '00000001-0000-1000-8000-00805f9b34fb' ] -[2] } -[2] 14:44:36.407 › [NobleBLE] Found service: 0001 -[2] 14:44:36.527 › [NobleBLE] Discovered characteristics: { count: 2, uuids: [ '0002', '0003' ] } -[2] 14:44:36.528 › [NobleBLE] Characteristic discovery result: { writeFound: true, notifyFound: true } -[2] 14:44:36.529 › [NobleBLE] Device ready for communication: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:44:36.529 › [NobleBLE] Subscribing to notifications for device: 74bd90424494cad0a9c20b26c4f59667 -[2] 14:44:36.530 › [NobleBLE] 🔄 Starting subscription process... { deviceId: '74bd90424494cad0a9c20b26c4f59667' } -[2] 14:44:42.210 › [NobleBLE] ⚠️ DEVICE DISCONNECT DETECTED: { -[2] deviceId: '0078cac4498be7570652e5dc70b03e51', -[2] hasPeripheral: true, -[2] hasCharacteristics: true, -[2] stackTrace: [ -[2] ' at handleDeviceDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11515:29)', -[2] ' at Peripheral. (/Users/leon/Documents/onekey/x-app-monorepo/apps/desktop/app/dist/app.js:11535:9)', -[2] ' at Peripheral.emit (node:events:519:28)', -[2] ' at Noble.onDisconnect (/Users/leon/Documents/onekey/x-app-monorepo/node_modules/@abandonware/noble/lib/noble.js:250:16)' -[2] ] -[2] } -[2] 14:44:42.210 › [NobleBLE] Device state cleaned up: 0078cac4498be7570652e5dc70b03e51 diff --git a/ble-render-log.md b/ble-render-log.md deleted file mode 100644 index 393b81712..000000000 --- a/ble-render-log.md +++ /dev/null @@ -1,636 +0,0 @@ -🔍 shouldSwitchTransportType called with: {hardwareCallContext: 'user_interaction', forceTransportType: undefined, operationId: undefined} -HardwareConnectionManager.ts:166 🔍 detectBluetoothAvailability -HardwareConnectionManager.ts:185 🔍 detectBluetoothAvailability bleAvailableState: {available: true, state: 'poweredOn', unsupported: false, initialized: true} -HardwareConnectionManager.ts:300 🔍 CACHE RESULT: shouldSwitch=false, targetType=desktop-web-ble, context=user_interaction -ServiceHardware.ts:1557 🔍 shouldSwitchTransportType result: {shouldSwitch: false, targetType: 'desktop-web-ble'} -serviceHardwareUtils.ts:2 ServiceHardwareLog@checkAllFirmwareRelease -ServiceFirmwareUpdate.ts:329 @onekey/hd-core cancel API: {event: 'iframe-cancel', type: 'iframe-cancel', payload: {…}} -ServiceFirmwareUpdate.ts:329 @onekey/hd-core Cancel Api connect requestQueues: length:0 requestIds: -ServiceFirmwareUpdate.ts:329 @onekey/hd-core Cleanup... -ServiceFirmwareUpdate.ts:329 [Method] hd-common-connect-sdk handleMessage {event: 'UI_EVENT', type: 'ui-close_window', payload: undefined} -ServiceFirmwareUpdate.ts:341 @onekey/hd-core cancel API: {event: 'iframe-cancel', type: 'iframe-cancel', payload: {…}} -ServiceFirmwareUpdate.ts:341 @onekey/hd-core Cancel Api all _deviceList: -ServiceFirmwareUpdate.ts:341 @onekey/hd-core Cleanup... -ServiceFirmwareUpdate.ts:341 [Method] hd-common-connect-sdk handleMessage {event: 'UI_EVENT', type: 'ui-close_window', payload: undefined} -serviceHardwareUtils.ts:2 ServiceHardwareLog@call getFeatures() 38fa0c1040f3e5884d1f0d5b2d4feb9d -ServiceHardware.ts:829 [Method] call: {retryCount: 0, detectBootloaderDevice: true, skipWebDevicePrompt: true, connectId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', method: 'getFeatures'} -ServiceHardware.ts:829 @onekey/hd-core call API: {event: 'iframe-call', type: 'iframe-call', payload: {…}, id: '1'} -index.js:809 @onekey/hd-core EnsureConnected function start, MAX_RETRY_COUNT=0, POLL_INTERVAL_TIME=1000 -index.js:809 @onekey/hd-core EnsureConnected function try count: 1 poll interval time: 1000 -index.js:809 Transport Initializing transports -index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE Transport initialized -index.js:809 Transport Configuring transports -index.js:809 Transport Configuring transports done -index.js:809 DeviceConnector acquire 38fa0c1040f3e5884d1f0d5b2d4feb9d undefined -ServiceHardware.ts:829 @onekey/hd-web-ble-transport [Transport] Noble BLE acquire failed: Error: Error invoking remote method '$onekey-noble-ble-connect': HardwareError: No OneKey services found - at IpcRenderer.invoke (node:electron/js2c/renderer_init:2:6969) -error @ index.js:793 -eval @ index.js:400 -rejected @ index.js:34 -Promise.then (async) -step @ index.js:35 -fulfilled @ index.js:33 -Promise.then (async) -step @ index.js:35 -eval @ index.js:36 -__awaiter @ index.js:32 -acquire @ index.js:349 -eval @ index.js:38290 -eval @ index.js:721 -__awaiter @ index.js:717 -acquire @ index.js:38284 -eval @ index.js:26663 -eval @ index.js:721 -__awaiter @ index.js:717 -acquire @ index.js:26658 -eval @ index.js:38753 -eval @ index.js:721 -__awaiter @ index.js:717 -connectDeviceForBle @ index.js:38751 -eval @ index.js:38839 -fulfilled @ index.js:718 -Promise.then (async) -step @ index.js:720 -eval @ index.js:721 -__awaiter @ index.js:717 -eval @ index.js:38777 -eval @ index.js:38777 -eval @ index.js:721 -__awaiter @ index.js:717 -poll @ index.js:38776 -eval @ index.js:38887 -eval @ index.js:721 -__awaiter @ index.js:717 -ensureConnected @ index.js:38769 -eval @ index.js:38535 -fulfilled @ index.js:718 -Promise.then (async) -step @ index.js:720 -eval @ index.js:721 -__awaiter @ index.js:717 -onCallDevice @ index.js:38515 -eval @ index.js:38494 -fulfilled @ index.js:718 -Promise.then (async) -step @ index.js:720 -eval @ index.js:721 -__awaiter @ index.js:717 -callAPI @ index.js:38456 -eval @ index.js:39102 -eval @ index.js:721 -__awaiter @ index.js:717 -handleMessage @ index.js:39078 -eval @ index.js:637 -step @ index.js:77 -eval @ index.js:58 -eval @ index.js:51 -__awaiter @ index.js:47 -postMessage @ index.js:626 -eval @ index.js:686 -step @ index.js:77 -eval @ index.js:58 -eval @ index.js:51 -__awaiter @ index.js:47 -call @ index.js:676 -getFeatures @ index.js:49 -features.silentMode.silentMode @ ServiceHardware.ts:829 -convertDeviceResponse @ deviceErrorUtils.ts:238 -ServiceHardware._getFeaturesLowLevel @ ServiceHardware.ts:828 -await in ServiceHardware._getFeaturesLowLevel (async) -eval @ backgroundUtils.ts:206 -eval @ backgroundUtils.ts:194 -eval @ ServiceHardware.ts:849 -eval @ index.mjs:46 -fulfilled @ index.mjs:18 -Promise.then (async) -step @ index.mjs:20 -eval @ index.mjs:21 -__awaiter$2 @ index.mjs:17 -runExclusive @ index.mjs:43 -fn @ ServiceHardware.ts:848 -ServiceHardware._getFeaturesWithMutex @ ServiceHardware.ts:854 -getFeaturesWithoutCache @ ServiceHardware.ts:878 -checkDeviceIsBootloaderMode @ ServiceFirmwareUpdate.ts:156 -checkAllFirmwareRelease @ ServiceFirmwareUpdate.ts:346 -await in checkAllFirmwareRelease (async) -descriptor.value @ backgroundDecorators.ts:203 -callBackgroundMethod @ BackgroundApiProxyBase.ts:163 -callBackground @ BackgroundApiProxyBase.ts:196 -_proxyServiceCache. @ BackgroundServiceProxyBase.ts:39 -PageFirmwareUpdateChangeLog.watchLoading @ PageFirmwareUpdateChangeLog.tsx:72 -await in PageFirmwareUpdateChangeLog.watchLoading (async) -methodWithNonce @ usePromiseResult.ts:167 -runner @ usePromiseResult.ts:193 -callback @ usePromiseResult.ts:268 -eval @ usePromiseResult.ts:275 -react-stack-bottom-frame @ react-dom-client.development.js:22509 -runWithFiberInDEV @ react-dom-client.development.js:543 -commitHookEffectListMount @ react-dom-client.development.js:10758 -commitHookPassiveMountEffects @ react-dom-client.development.js:10878 -reconnectPassiveEffects @ react-dom-client.development.js:12802 -recursivelyTraverseReconnectPassiveEffects @ react-dom-client.development.js:12774 -commitPassiveMountOnFiber @ react-dom-client.development.js:12731 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -Show 265 more frames -Show less -index.js:809 DeviceConnector acquire error: Error invoking remote method '$onekey-noble-ble-connect': HardwareError: No OneKey services found -index.js:809 @onekey/hd-core device error: HardwareError: Unknown error occurred. Check message property. - at Object.TypedError (index.js:339:12) - at safeThrowError (index.js:28020:31) - at DeviceConnector.eval (index.js:38299:17) - at Generator.throw () - at rejected (index.js:719:65) -index.js:809 @onekey/hd-core EnsureConnected get to max try count, will return: 1 -index.js:38538 ensureConnected error: HardwareError: Device not found - at Object.TypedError (index.js:339:12) - at eval (index.js:38877:40) - at Generator.throw () - at rejected (index.js:719:65) -index.js:785 @onekey/hd-core call API Response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '1', success: false, payload: {…}} -index.js:809 [Method] response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '1', success: false, payload: {…}} -index.js:692 response.payload?.code: 105 -serviceHardwareUtils.ts:2 ServiceHardwareLog@call getFeatures() 38fa0c1040f3e5884d1f0d5b2d4feb9d -HardwareConnectionManager.ts:258 🔍 shouldSwitchTransportType called with: {hardwareCallContext: 'user_interaction', forceTransportType: undefined, operationId: undefined} -HardwareConnectionManager.ts:166 🔍 detectBluetoothAvailability -HardwareConnectionManager.ts:185 🔍 detectBluetoothAvailability bleAvailableState: {available: true, state: 'poweredOn', unsupported: false, initialized: true} -HardwareConnectionManager.ts:300 🔍 CACHE RESULT: shouldSwitch=false, targetType=desktop-web-ble, context=user_interaction -ServiceHardware.ts:829 [Method] call: {allowEmptyConnectId: true, connectId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', method: 'getFeatures'} -ServiceHardware.ts:829 @onekey/hd-core call API: {event: 'iframe-call', type: 'iframe-call', payload: {…}, id: '2'} -index.js:809 @onekey/hd-core EnsureConnected function start, MAX_RETRY_COUNT=5, POLL_INTERVAL_TIME=1000 -index.js:809 @onekey/hd-core EnsureConnected function try count: 1 poll interval time: 1000 -index.js:809 Transport Initializing transports -index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE Transport initialized -index.js:809 Transport Configuring transports -index.js:809 Transport Configuring transports done -index.js:809 DeviceConnector acquire 38fa0c1040f3e5884d1f0d5b2d4feb9d undefined -autoLogger.ts:26 AUTO-LOGS: OneKeyHardwareError: Device not found. Please try reconnecting the device (unplug and plug the USB or turn Bluetooth off and on), then try again. - at convertDeviceError (deviceErrorUtils.ts:81:14) - at convertDeviceResponse (deviceErrorUtils.ts:246:11) - at async ServiceHardware._getFeaturesLowLevel (ServiceHardware.ts:828:22) {name: 'OneKeyHardwareError', constructorName: 'DeviceNotFound', className: 'DeviceNotFound', key: 'hardware.device_not_find_error', code: 105, …} file: /Users/leon/Documents/onekey/x-app-monorepo/packages/kit-bg/src/services/ServiceFirmwareUpdate/ServiceFirmwareUpdate.ts line: 170 column: 16 -eval @ autoLogger.ts:26 -eval @ timerUtils.ts:19 -setTimeout (async) -__webpack_require__.g. @ timerUtils.ts:13 -error @ autoLogger.ts:11 -checkDeviceIsBootloaderMode @ ServiceFirmwareUpdate.ts:170 -await in checkDeviceIsBootloaderMode (async) -checkAllFirmwareRelease @ ServiceFirmwareUpdate.ts:346 -await in checkAllFirmwareRelease (async) -descriptor.value @ backgroundDecorators.ts:203 -callBackgroundMethod @ BackgroundApiProxyBase.ts:163 -callBackground @ BackgroundApiProxyBase.ts:196 -_proxyServiceCache. @ BackgroundServiceProxyBase.ts:39 -PageFirmwareUpdateChangeLog.watchLoading @ PageFirmwareUpdateChangeLog.tsx:72 -await in PageFirmwareUpdateChangeLog.watchLoading (async) -methodWithNonce @ usePromiseResult.ts:167 -runner @ usePromiseResult.ts:193 -callback @ usePromiseResult.ts:268 -eval @ usePromiseResult.ts:275 -react-stack-bottom-frame @ react-dom-client.development.js:22509 -runWithFiberInDEV @ react-dom-client.development.js:543 -commitHookEffectListMount @ react-dom-client.development.js:10758 -commitHookPassiveMountEffects @ react-dom-client.development.js:10878 -reconnectPassiveEffects @ react-dom-client.development.js:12802 -recursivelyTraverseReconnectPassiveEffects @ react-dom-client.development.js:12774 -commitPassiveMountOnFiber @ react-dom-client.development.js:12731 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12755 -recursivelyTraversePassiveMountEffects @ react-dom-client.development.js:12627 -commitPassiveMountOnFiber @ react-dom-client.development.js:12646 -Show 195 more frames -Show less -index.js:809 Device Expected uuid: 38fa0c1040f3e5884d1f0d5b2d4feb9d -index.js:809 Device getInternalState session cache: {} -index.js:809 Device getInternalState session param: device_id: undefined features.device_id: undefined passphraseState: undefined -index.js:809 Device Initialize device begin: {deviceId: undefined, passphraseState: undefined, initSession: undefined, InitializePayload: {…}} -index.js:809 DeviceCommands [DeviceCommands] [call] Sending Initialize -index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE call name: Initialize data: {passphrase_state: undefined, is_contains_attach: true} -index.js:809 DeviceCommands [DeviceCommands] [call] Received Features -index.js:809 DeviceCommands _filterCommonTypes: {type: 'Features', message: {…}} -index.js:809 Device Initialize device end: {vendor: 'trezor.io', major_version: 2, minor_version: 99, patch_version: 99, bootloader_mode: null, …} -index.js:809 Transport Begin reconfiguring transports -index.js:809 @onekey/hd-core Call API - setDevice: 38fa0c1040f3e5884d1f0d5b2d4feb9d -index.js:809 @onekey/hd-core Call API - Device Run: 38fa0c1040f3e5884d1f0d5b2d4feb9d -index.js:809 DeviceConnector acquire 38fa0c1040f3e5884d1f0d5b2d4feb9d undefined -index.js:809 Device Expected uuid: 38fa0c1040f3e5884d1f0d5b2d4feb9d -index.js:809 Device getInternalState session cache: {} -index.js:809 Device getInternalState session param: device_id: undefined features.device_id: 120D13107C62B8D81922E625 passphraseState: undefined -index.js:809 Device Initialize device begin: {deviceId: undefined, passphraseState: undefined, initSession: undefined, InitializePayload: {…}} -index.js:809 DeviceCommands [DeviceCommands] [call] Sending Initialize -index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE call name: Initialize data: {passphrase_state: undefined, is_contains_attach: true} -index.js:809 DeviceCommands [DeviceCommands] [call] Received Features -index.js:809 DeviceCommands _filterCommonTypes: {type: 'Features', message: {…}} -index.js:809 Device Initialize device end: {vendor: 'trezor.io', major_version: 2, minor_version: 99, patch_version: 99, bootloader_mode: null, …} -index.js:809 Device setInternalState session param: state: 33d62a5ac458e49e34c260286cddd868733721025e9b17252b1690d933f4abcd initSession: undefined device_id: 120D13107C62B8D81922E625 passphraseState: undefined -index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'DEVICE_EVENT', type: 'features', payload: {…}} -index.js:809 Transport Begin reconfiguring transports -index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'FIRMWARE_EVENT', type: 'firmware-release-info', payload: {…}} -serviceHardwareUtils.ts:2 ServiceHardwareLog@FIRMWARE_EVENT>RELEASE_INFO: {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} -serviceHardwareUtils.ts:2 ServiceHardwareLog@_checkFirmwareUpdate {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} -index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'FIRMWARE_EVENT', type: 'ble-firmware-release-info', payload: {…}} -serviceHardwareUtils.ts:2 ServiceHardwareLog@FIRMWARE_EVENT>BLE_RELEASE_INFO: {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} -serviceHardwareUtils.ts:2 ServiceHardwareLog@showBleFirmwareReleaseInfo {status: 'valid', changelog: Array(0), release: {…}, bootloaderMode: false, device: {…}, …} -index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'DEVICE_EVENT', type: 'support_features', payload: {…}} -serviceHardwareUtils.ts:2 ServiceHardwareLog@features update {vendor: 'trezor.io', major_version: 2, minor_version: 99, patch_version: 99, bootloader_mode: null, …} -index.js:809 @onekey/hd-core Call API - Inner Method Run: -index.js:809 [Method] hd-common-connect-sdk handleMessage {event: 'UI_EVENT', type: 'ui-close_window', payload: undefined} -index.js:809 @onekey/hd-core Cleanup... -index.js:785 @onekey/hd-core call API Response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '2', success: true, payload: {…}} -index.js:809 [Method] response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '2', success: true, payload: {…}} -HardwareConnectionManager.ts:258 🔍 shouldSwitchTransportType called with: {hardwareCallContext: 'user_interaction', forceTransportType: undefined, operationId: undefined} -HardwareConnectionManager.ts:166 🔍 detectBluetoothAvailability -serviceHardwareUtils.ts:2 ServiceHardwareLog@_checkFirmwareUpdate updateInfo {connectId: '38fa0c1040f3e5884d1f0d5b2d4feb9d', hasUpgrade: true, hasUpgradeForce: false, fromVersion: '3.12.0', toVersion: '3.12.0', …} -HardwareConnectionManager.ts:185 🔍 detectBluetoothAvailability bleAvailableState: {available: true, state: 'poweredOn', unsupported: false, initialized: true} -HardwareConnectionManager.ts:300 🔍 CACHE RESULT: shouldSwitch=false, targetType=desktop-web-ble, context=user_interaction -ServiceFirmwareUpdate.ts:522 [Method] call: {checkBridgeRelease: true, connectId: undefined, method: 'checkAllFirmwareRelease'} -ServiceFirmwareUpdate.ts:522 @onekey/hd-core call API: {event: 'iframe-call', type: 'iframe-call', payload: {…}, id: '3'} -index.js:809 @onekey/hd-core EnsureConnected function start, MAX_RETRY_COUNT=5, POLL_INTERVAL_TIME=1000 -index.js:809 @onekey/hd-core EnsureConnected function try count: 1 poll interval time: 1000 -index.js:809 Transport Initializing transports -index.js:809 @onekey/hd-web-ble-transport [Transport] Noble BLE Transport initialized -index.js:809 Transport Configuring transports -index.js:809 Transport Configuring transports done -index.js:809 Device release device, mainId: 38fa0c1040f3e5884d1f0d5b2d4feb9d -storageChecker.ts:51 checkIfDiskIsFull {quotaInGB: 461.00678212568164, usageInGB: 0.006721090525388718, availableInGB: 461.00006103515625} -index.js:809 DevicePool device pool -> current: (5) [{…}, {…}, {…}, {…}, {…}] -index.js:809 DevicePool device pool -> upcomming: (5) [{…}, {…}, {…}, {…}, {…}] -index.js:809 DevicePool DeviceCache.reportDeviceChange diff: {connected: Array(5), disconnected: Array(0), changedSessions: Array(0), acquired: Array(0), released: Array(0), …} -index.js:809 DeviceConnector acquire 74bd90424494cad0a9c20b26c4f59667 undefined -index.js:38538 ensureConnected error: HardwareError: Polling timeout - at Object.TypedError (index.js:339:12) - at eval (index.js:38800:40) - at eval (timerUtils.ts:19:14) -index.js:785 @onekey/hd-core call API Response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '3', success: false, payload: {…}} -index.js:809 [Method] response: {event: 'RESPONSE_EVENT', type: 'RESPONSE_EVENT', id: '3', success: false, payload: {…}} -index.js:692 response.payload?.code: 809 From 01835e853bd338cda6883f789c30329f10ff0d96 Mon Sep 17 00:00:00 2001 From: Leon Date: Sat, 9 Aug 2025 14:31:00 +0800 Subject: [PATCH 5/8] fix: Bluetooth permission --- packages/hd-transport-electron/src/noble-ble-handler.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/hd-transport-electron/src/noble-ble-handler.ts b/packages/hd-transport-electron/src/noble-ble-handler.ts index 3a8b7d531..52bce838c 100644 --- a/packages/hd-transport-electron/src/noble-ble-handler.ts +++ b/packages/hd-transport-electron/src/noble-ble-handler.ts @@ -251,6 +251,9 @@ async function initializeNoble(): Promise { return; } + // Setup persistent state listener before initialization + setupPersistentStateListener(); + const timeout = setTimeout(() => { reject( ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'Bluetooth initialization timeout') @@ -290,9 +293,6 @@ async function initializeNoble(): Promise { handleDeviceDiscovered(peripheral); }); - // Setup persistent state listener after initialization - setupPersistentStateListener(); - logger?.info('[NobleBLE] Noble initialized successfully'); } catch (error) { logger?.error('[NobleBLE] Failed to initialize Noble:', error); From 4ba56adb0ce6361087d21d2b142e0b0e1888ad15 Mon Sep 17 00:00:00 2001 From: Leon Date: Mon, 11 Aug 2025 09:58:56 +0800 Subject: [PATCH 6/8] chore: update version --- .../connect-examples/electron-example/package.json | 2 +- .../connect-examples/expo-example/package.json | 10 +++++----- .../connect-examples/expo-playground/package.json | 8 ++++---- packages/core/package.json | 6 +++--- packages/hd-ble-sdk/package.json | 8 ++++---- packages/hd-common-connect-sdk/package.json | 14 +++++++------- packages/hd-transport-electron/package.json | 4 ++-- .../hd-transport-electron/src/noble-ble-handler.ts | 1 + packages/hd-transport-emulator/package.json | 6 +++--- packages/hd-transport-http/package.json | 6 +++--- packages/hd-transport-lowlevel/package.json | 6 +++--- packages/hd-transport-react-native/package.json | 6 +++--- packages/hd-transport-web-device/package.json | 6 +++--- packages/hd-transport/package.json | 2 +- packages/hd-web-sdk/package.json | 10 +++++----- packages/shared/package.json | 2 +- 16 files changed, 49 insertions(+), 48 deletions(-) diff --git a/packages/connect-examples/electron-example/package.json b/packages/connect-examples/electron-example/package.json index b00a6fe2a..217d009d2 100644 --- a/packages/connect-examples/electron-example/package.json +++ b/packages/connect-examples/electron-example/package.json @@ -2,7 +2,7 @@ "name": "hardware-example", "productName": "HardwareExample", "executableName": "onekey-hardware-example", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "author": "OneKey", "description": "End-to-end encrypted workspaces for teams", "main": "dist/index.js", diff --git a/packages/connect-examples/expo-example/package.json b/packages/connect-examples/expo-example/package.json index f980f78ee..c27cd7909 100644 --- a/packages/connect-examples/expo-example/package.json +++ b/packages/connect-examples/expo-example/package.json @@ -1,6 +1,6 @@ { "name": "expo-example", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "scripts": { "start": "CONNECT_SRC=https://localhost:8087/ yarn expo start --dev-client", "android": "yarn expo run:android", @@ -19,10 +19,10 @@ "@noble/ed25519": "^2.1.0", "@noble/hashes": "^1.3.3", "@noble/secp256k1": "^1.7.1", - "@onekeyfe/hd-ble-sdk": "^1.1.3", - "@onekeyfe/hd-common-connect-sdk": "^1.1.3", - "@onekeyfe/hd-core": "^1.1.3", - "@onekeyfe/hd-web-sdk": "^1.1.3", + "@onekeyfe/hd-ble-sdk": "^1.1.4-alpha.0", + "@onekeyfe/hd-common-connect-sdk": "^1.1.4-alpha.0", + "@onekeyfe/hd-core": "^1.1.4-alpha.0", + "@onekeyfe/hd-web-sdk": "^1.1.4-alpha.0", "@onekeyfe/react-native-ble-utils": "^0.1.3", "@polkadot/util-crypto": "13.1.1", "@react-native-async-storage/async-storage": "1.21.0", diff --git a/packages/connect-examples/expo-playground/package.json b/packages/connect-examples/expo-playground/package.json index d73d26ec2..33fca8e46 100644 --- a/packages/connect-examples/expo-playground/package.json +++ b/packages/connect-examples/expo-playground/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/onekey-hardware-playground", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "private": true, "sideEffects": [ "app/utils/shim.js", @@ -17,9 +17,9 @@ }, "dependencies": { "@noble/hashes": "^1.8.0", - "@onekeyfe/hd-core": "^1.1.3", - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-web-sdk": "^1.1.3", + "@onekeyfe/hd-core": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-web-sdk": "^1.1.4-alpha.0", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", diff --git a/packages/core/package.json b/packages/core/package.json index d4ff86ee6..dd9f81fd8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-core", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -25,8 +25,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport": "^1.1.4-alpha.0", "axios": "^0.27.2", "bignumber.js": "^9.0.2", "bytebuffer": "^5.0.1", diff --git a/packages/hd-ble-sdk/package.json b/packages/hd-ble-sdk/package.json index aac124aba..e9d247dcc 100644 --- a/packages/hd-ble-sdk/package.json +++ b/packages/hd-ble-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-ble-sdk", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "^1.1.3", - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport-react-native": "^1.1.3" + "@onekeyfe/hd-core": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport-react-native": "^1.1.4-alpha.0" } } diff --git a/packages/hd-common-connect-sdk/package.json b/packages/hd-common-connect-sdk/package.json index 61a9b0abf..6e52865fe 100644 --- a/packages/hd-common-connect-sdk/package.json +++ b/packages/hd-common-connect-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-common-connect-sdk", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,11 +20,11 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "^1.1.3", - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport-emulator": "^1.1.3", - "@onekeyfe/hd-transport-http": "^1.1.3", - "@onekeyfe/hd-transport-lowlevel": "^1.1.3", - "@onekeyfe/hd-transport-web-device": "^1.1.3" + "@onekeyfe/hd-core": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport-emulator": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport-http": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport-lowlevel": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport-web-device": "^1.1.4-alpha.0" } } diff --git a/packages/hd-transport-electron/package.json b/packages/hd-transport-electron/package.json index 654b3e90e..8125aa306 100644 --- a/packages/hd-transport-electron/package.json +++ b/packages/hd-transport-electron/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-electron", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -26,7 +26,7 @@ "electron-log": ">=4.0.0" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", "p-retry": "^6.2.1" }, "devDependencies": { diff --git a/packages/hd-transport-electron/src/noble-ble-handler.ts b/packages/hd-transport-electron/src/noble-ble-handler.ts index 52bce838c..4b6c99cac 100644 --- a/packages/hd-transport-electron/src/noble-ble-handler.ts +++ b/packages/hd-transport-electron/src/noble-ble-handler.ts @@ -1222,6 +1222,7 @@ async function unsubscribeNotifications(deviceId: string): Promise { // Setup IPC handlers export function setupNobleBleHandlers(webContents: WebContents): void { try { + console.log('NOBLE_VERSION_771'); // @ts-ignore – electron-log is only available at runtime // eslint-disable-next-line @typescript-eslint/no-var-requires, global-require logger = require('electron-log') as Logger; diff --git a/packages/hd-transport-emulator/package.json b/packages/hd-transport-emulator/package.json index af22974d0..085bebb58 100644 --- a/packages/hd-transport-emulator/package.json +++ b/packages/hd-transport-emulator/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-emulator", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "description": "hardware emulator transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport": "^1.1.4-alpha.0", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-http/package.json b/packages/hd-transport-http/package.json index 457a06d68..683a70c0f 100644 --- a/packages/hd-transport-http/package.json +++ b/packages/hd-transport-http/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-http", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "description": "hardware http transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport": "^1.1.4-alpha.0", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-lowlevel/package.json b/packages/hd-transport-lowlevel/package.json index 20243bbd0..dcc9008ac 100644 --- a/packages/hd-transport-lowlevel/package.json +++ b/packages/hd-transport-lowlevel/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-lowlevel", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,7 +19,7 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport": "^1.1.3" + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport": "^1.1.4-alpha.0" } } diff --git a/packages/hd-transport-react-native/package.json b/packages/hd-transport-react-native/package.json index e344db494..52be0035c 100644 --- a/packages/hd-transport-react-native/package.json +++ b/packages/hd-transport-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-react-native", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,8 +19,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport": "^1.1.3", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport": "^1.1.4-alpha.0", "@onekeyfe/react-native-ble-utils": "^0.1.4", "react-native-ble-plx": "3.5.0" } diff --git a/packages/hd-transport-web-device/package.json b/packages/hd-transport-web-device/package.json index 6ba7e1002..2310c46c7 100644 --- a/packages/hd-transport-web-device/package.json +++ b/packages/hd-transport-web-device/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-web-device", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport": "^1.1.3" + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport": "^1.1.4-alpha.0" }, "devDependencies": { "@types/w3c-web-usb": "^1.0.6", diff --git a/packages/hd-transport/package.json b/packages/hd-transport/package.json index 0f172ee26..42ce61381 100644 --- a/packages/hd-transport/package.json +++ b/packages/hd-transport/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", diff --git a/packages/hd-web-sdk/package.json b/packages/hd-web-sdk/package.json index d56ae6894..9bf49b66f 100644 --- a/packages/hd-web-sdk/package.json +++ b/packages/hd-web-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-web-sdk", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -21,10 +21,10 @@ }, "dependencies": { "@onekeyfe/cross-inpage-provider-core": "^0.0.17", - "@onekeyfe/hd-core": "^1.1.3", - "@onekeyfe/hd-shared": "^1.1.3", - "@onekeyfe/hd-transport-http": "^1.1.3", - "@onekeyfe/hd-transport-web-device": "^1.1.3" + "@onekeyfe/hd-core": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport-http": "^1.1.4-alpha.0", + "@onekeyfe/hd-transport-web-device": "^1.1.4-alpha.0" }, "devDependencies": { "@babel/plugin-proposal-optional-chaining": "^7.17.12", diff --git a/packages/shared/package.json b/packages/shared/package.json index 8dba2866f..09d9383ea 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-shared", - "version": "1.1.3", + "version": "1.1.4-alpha.0", "description": "Hardware SDK's shared tool library", "keywords": [ "Hardware-SDK", From 445b0a1622293e2e19ccb7d9e62cc43cd906eef1 Mon Sep 17 00:00:00 2001 From: Leon Date: Mon, 11 Aug 2025 09:59:53 +0800 Subject: [PATCH 7/8] chore: update version --- .../connect-examples/electron-example/package.json | 2 +- .../connect-examples/expo-example/package.json | 10 +++++----- .../connect-examples/expo-playground/package.json | 8 ++++---- packages/core/package.json | 6 +++--- packages/hd-ble-sdk/package.json | 8 ++++---- packages/hd-common-connect-sdk/package.json | 14 +++++++------- packages/hd-transport-electron/package.json | 4 ++-- packages/hd-transport-emulator/package.json | 6 +++--- packages/hd-transport-http/package.json | 6 +++--- packages/hd-transport-lowlevel/package.json | 6 +++--- packages/hd-transport-react-native/package.json | 6 +++--- packages/hd-transport-web-device/package.json | 6 +++--- packages/hd-transport/package.json | 2 +- packages/hd-web-sdk/package.json | 10 +++++----- packages/shared/package.json | 2 +- 15 files changed, 48 insertions(+), 48 deletions(-) diff --git a/packages/connect-examples/electron-example/package.json b/packages/connect-examples/electron-example/package.json index 217d009d2..617e69a82 100644 --- a/packages/connect-examples/electron-example/package.json +++ b/packages/connect-examples/electron-example/package.json @@ -2,7 +2,7 @@ "name": "hardware-example", "productName": "HardwareExample", "executableName": "onekey-hardware-example", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "author": "OneKey", "description": "End-to-end encrypted workspaces for teams", "main": "dist/index.js", diff --git a/packages/connect-examples/expo-example/package.json b/packages/connect-examples/expo-example/package.json index c27cd7909..520bc2f75 100644 --- a/packages/connect-examples/expo-example/package.json +++ b/packages/connect-examples/expo-example/package.json @@ -1,6 +1,6 @@ { "name": "expo-example", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "scripts": { "start": "CONNECT_SRC=https://localhost:8087/ yarn expo start --dev-client", "android": "yarn expo run:android", @@ -19,10 +19,10 @@ "@noble/ed25519": "^2.1.0", "@noble/hashes": "^1.3.3", "@noble/secp256k1": "^1.7.1", - "@onekeyfe/hd-ble-sdk": "^1.1.4-alpha.0", - "@onekeyfe/hd-common-connect-sdk": "^1.1.4-alpha.0", - "@onekeyfe/hd-core": "^1.1.4-alpha.0", - "@onekeyfe/hd-web-sdk": "^1.1.4-alpha.0", + "@onekeyfe/hd-ble-sdk": "^1.1.4-alpha.1", + "@onekeyfe/hd-common-connect-sdk": "^1.1.4-alpha.1", + "@onekeyfe/hd-core": "^1.1.4-alpha.1", + "@onekeyfe/hd-web-sdk": "^1.1.4-alpha.1", "@onekeyfe/react-native-ble-utils": "^0.1.3", "@polkadot/util-crypto": "13.1.1", "@react-native-async-storage/async-storage": "1.21.0", diff --git a/packages/connect-examples/expo-playground/package.json b/packages/connect-examples/expo-playground/package.json index 33fca8e46..a7a6b1e9f 100644 --- a/packages/connect-examples/expo-playground/package.json +++ b/packages/connect-examples/expo-playground/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/onekey-hardware-playground", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "private": true, "sideEffects": [ "app/utils/shim.js", @@ -17,9 +17,9 @@ }, "dependencies": { "@noble/hashes": "^1.8.0", - "@onekeyfe/hd-core": "^1.1.4-alpha.0", - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-web-sdk": "^1.1.4-alpha.0", + "@onekeyfe/hd-core": "^1.1.4-alpha.1", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-web-sdk": "^1.1.4-alpha.1", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", diff --git a/packages/core/package.json b/packages/core/package.json index dd9f81fd8..fcde8725c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-core", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -25,8 +25,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport": "^1.1.4-alpha.1", "axios": "^0.27.2", "bignumber.js": "^9.0.2", "bytebuffer": "^5.0.1", diff --git a/packages/hd-ble-sdk/package.json b/packages/hd-ble-sdk/package.json index e9d247dcc..fc0b9295a 100644 --- a/packages/hd-ble-sdk/package.json +++ b/packages/hd-ble-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-ble-sdk", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "^1.1.4-alpha.0", - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport-react-native": "^1.1.4-alpha.0" + "@onekeyfe/hd-core": "^1.1.4-alpha.1", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport-react-native": "^1.1.4-alpha.1" } } diff --git a/packages/hd-common-connect-sdk/package.json b/packages/hd-common-connect-sdk/package.json index 6e52865fe..a4d9e81c4 100644 --- a/packages/hd-common-connect-sdk/package.json +++ b/packages/hd-common-connect-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-common-connect-sdk", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,11 +20,11 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "^1.1.4-alpha.0", - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport-emulator": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport-http": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport-lowlevel": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport-web-device": "^1.1.4-alpha.0" + "@onekeyfe/hd-core": "^1.1.4-alpha.1", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport-emulator": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport-http": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport-lowlevel": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport-web-device": "^1.1.4-alpha.1" } } diff --git a/packages/hd-transport-electron/package.json b/packages/hd-transport-electron/package.json index 8125aa306..03b43b4e7 100644 --- a/packages/hd-transport-electron/package.json +++ b/packages/hd-transport-electron/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-electron", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -26,7 +26,7 @@ "electron-log": ">=4.0.0" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", "p-retry": "^6.2.1" }, "devDependencies": { diff --git a/packages/hd-transport-emulator/package.json b/packages/hd-transport-emulator/package.json index 085bebb58..e5bc5f74f 100644 --- a/packages/hd-transport-emulator/package.json +++ b/packages/hd-transport-emulator/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-emulator", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "description": "hardware emulator transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport": "^1.1.4-alpha.1", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-http/package.json b/packages/hd-transport-http/package.json index 683a70c0f..1c8c186ae 100644 --- a/packages/hd-transport-http/package.json +++ b/packages/hd-transport-http/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-http", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "description": "hardware http transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport": "^1.1.4-alpha.1", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-lowlevel/package.json b/packages/hd-transport-lowlevel/package.json index dcc9008ac..0add08cc2 100644 --- a/packages/hd-transport-lowlevel/package.json +++ b/packages/hd-transport-lowlevel/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-lowlevel", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,7 +19,7 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport": "^1.1.4-alpha.0" + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport": "^1.1.4-alpha.1" } } diff --git a/packages/hd-transport-react-native/package.json b/packages/hd-transport-react-native/package.json index 52be0035c..6668897c8 100644 --- a/packages/hd-transport-react-native/package.json +++ b/packages/hd-transport-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-react-native", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,8 +19,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport": "^1.1.4-alpha.0", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport": "^1.1.4-alpha.1", "@onekeyfe/react-native-ble-utils": "^0.1.4", "react-native-ble-plx": "3.5.0" } diff --git a/packages/hd-transport-web-device/package.json b/packages/hd-transport-web-device/package.json index 2310c46c7..548ecd578 100644 --- a/packages/hd-transport-web-device/package.json +++ b/packages/hd-transport-web-device/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-web-device", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport": "^1.1.4-alpha.0" + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport": "^1.1.4-alpha.1" }, "devDependencies": { "@types/w3c-web-usb": "^1.0.6", diff --git a/packages/hd-transport/package.json b/packages/hd-transport/package.json index 42ce61381..06506de50 100644 --- a/packages/hd-transport/package.json +++ b/packages/hd-transport/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", diff --git a/packages/hd-web-sdk/package.json b/packages/hd-web-sdk/package.json index 9bf49b66f..7e9dcf883 100644 --- a/packages/hd-web-sdk/package.json +++ b/packages/hd-web-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-web-sdk", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -21,10 +21,10 @@ }, "dependencies": { "@onekeyfe/cross-inpage-provider-core": "^0.0.17", - "@onekeyfe/hd-core": "^1.1.4-alpha.0", - "@onekeyfe/hd-shared": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport-http": "^1.1.4-alpha.0", - "@onekeyfe/hd-transport-web-device": "^1.1.4-alpha.0" + "@onekeyfe/hd-core": "^1.1.4-alpha.1", + "@onekeyfe/hd-shared": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport-http": "^1.1.4-alpha.1", + "@onekeyfe/hd-transport-web-device": "^1.1.4-alpha.1" }, "devDependencies": { "@babel/plugin-proposal-optional-chaining": "^7.17.12", diff --git a/packages/shared/package.json b/packages/shared/package.json index 09d9383ea..01be19cff 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-shared", - "version": "1.1.4-alpha.0", + "version": "1.1.4-alpha.1", "description": "Hardware SDK's shared tool library", "keywords": [ "Hardware-SDK", From 63a08c692fb4d9e73c89c84b87a922fcc0d65c1a Mon Sep 17 00:00:00 2001 From: Leon Date: Tue, 12 Aug 2025 15:36:24 +0800 Subject: [PATCH 8/8] chore: update version --- .../connect-examples/electron-example/package.json | 2 +- .../connect-examples/expo-example/package.json | 10 +++++----- .../connect-examples/expo-playground/package.json | 8 ++++---- packages/core/package.json | 6 +++--- packages/hd-ble-sdk/package.json | 8 ++++---- packages/hd-common-connect-sdk/package.json | 14 +++++++------- packages/hd-transport-electron/package.json | 4 ++-- packages/hd-transport-emulator/package.json | 6 +++--- packages/hd-transport-http/package.json | 6 +++--- packages/hd-transport-lowlevel/package.json | 6 +++--- packages/hd-transport-react-native/package.json | 6 +++--- packages/hd-transport-web-device/package.json | 8 ++++---- packages/hd-transport/package.json | 2 +- packages/hd-web-sdk/package.json | 10 +++++----- packages/shared/package.json | 2 +- 15 files changed, 49 insertions(+), 49 deletions(-) diff --git a/packages/connect-examples/electron-example/package.json b/packages/connect-examples/electron-example/package.json index 553bc875a..f3c880766 100644 --- a/packages/connect-examples/electron-example/package.json +++ b/packages/connect-examples/electron-example/package.json @@ -2,7 +2,7 @@ "name": "hardware-example", "productName": "HardwareExample", "executableName": "onekey-hardware-example", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "author": "OneKey", "description": "End-to-end encrypted workspaces for teams", "main": "dist/index.js", diff --git a/packages/connect-examples/expo-example/package.json b/packages/connect-examples/expo-example/package.json index b3796078e..519e0cc63 100644 --- a/packages/connect-examples/expo-example/package.json +++ b/packages/connect-examples/expo-example/package.json @@ -1,6 +1,6 @@ { "name": "expo-example", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "scripts": { "start": "cross-env CONNECT_SRC=https://localhost:8087/ yarn expo start --dev-client", "android": "yarn expo run:android", @@ -19,10 +19,10 @@ "@noble/ed25519": "^2.1.0", "@noble/hashes": "^1.3.3", "@noble/secp256k1": "^1.7.1", - "@onekeyfe/hd-ble-sdk": "1.1.4-alpha.4", - "@onekeyfe/hd-common-connect-sdk": "1.1.4-alpha.4", - "@onekeyfe/hd-core": "1.1.4-alpha.4", - "@onekeyfe/hd-web-sdk": "1.1.4-alpha.4", + "@onekeyfe/hd-ble-sdk": "1.1.5", + "@onekeyfe/hd-common-connect-sdk": "1.1.5", + "@onekeyfe/hd-core": "1.1.5", + "@onekeyfe/hd-web-sdk": "1.1.5", "@onekeyfe/react-native-ble-utils": "^0.1.3", "@polkadot/util-crypto": "13.1.1", "@react-native-async-storage/async-storage": "1.21.0", diff --git a/packages/connect-examples/expo-playground/package.json b/packages/connect-examples/expo-playground/package.json index 9839f16e9..ee5fb378a 100644 --- a/packages/connect-examples/expo-playground/package.json +++ b/packages/connect-examples/expo-playground/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/onekey-hardware-playground", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "private": true, "sideEffects": [ "app/utils/shim.js", @@ -17,9 +17,9 @@ }, "dependencies": { "@noble/hashes": "^1.8.0", - "@onekeyfe/hd-core": "1.1.4-alpha.4", - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-web-sdk": "1.1.4-alpha.4", + "@onekeyfe/hd-core": "1.1.5", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-web-sdk": "1.1.5", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", diff --git a/packages/core/package.json b/packages/core/package.json index 0c6829c79..120b92ff3 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-core", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -25,8 +25,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport": "1.1.4-alpha.4", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport": "1.1.5", "axios": "^0.27.2", "bignumber.js": "^9.0.2", "bytebuffer": "^5.0.1", diff --git a/packages/hd-ble-sdk/package.json b/packages/hd-ble-sdk/package.json index 4904c34c3..69fc9f64d 100644 --- a/packages/hd-ble-sdk/package.json +++ b/packages/hd-ble-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-ble-sdk", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "1.1.4-alpha.4", - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport-react-native": "1.1.4-alpha.4" + "@onekeyfe/hd-core": "1.1.5", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport-react-native": "1.1.5" } } diff --git a/packages/hd-common-connect-sdk/package.json b/packages/hd-common-connect-sdk/package.json index c845ce260..32211181f 100644 --- a/packages/hd-common-connect-sdk/package.json +++ b/packages/hd-common-connect-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-common-connect-sdk", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -20,11 +20,11 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "1.1.4-alpha.4", - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport-emulator": "1.1.4-alpha.4", - "@onekeyfe/hd-transport-http": "1.1.4-alpha.4", - "@onekeyfe/hd-transport-lowlevel": "1.1.4-alpha.4", - "@onekeyfe/hd-transport-web-device": "1.1.4-alpha.4" + "@onekeyfe/hd-core": "1.1.5", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport-emulator": "1.1.5", + "@onekeyfe/hd-transport-http": "1.1.5", + "@onekeyfe/hd-transport-lowlevel": "1.1.5", + "@onekeyfe/hd-transport-web-device": "1.1.5" } } diff --git a/packages/hd-transport-electron/package.json b/packages/hd-transport-electron/package.json index 2945d456a..222a0a5fc 100644 --- a/packages/hd-transport-electron/package.json +++ b/packages/hd-transport-electron/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-electron", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -25,7 +25,7 @@ "electron-log": ">=4.0.0" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.4-alpha.4" + "@onekeyfe/hd-shared": "1.1.5" }, "devDependencies": { "@types/web-bluetooth": "^0.0.17", diff --git a/packages/hd-transport-emulator/package.json b/packages/hd-transport-emulator/package.json index 10276dd6c..4711949dd 100644 --- a/packages/hd-transport-emulator/package.json +++ b/packages/hd-transport-emulator/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-emulator", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "description": "hardware emulator transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport": "1.1.4-alpha.4", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport": "1.1.5", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-http/package.json b/packages/hd-transport-http/package.json index 16a36643e..f45b3a217 100644 --- a/packages/hd-transport-http/package.json +++ b/packages/hd-transport-http/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-http", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "description": "hardware http transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport": "1.1.4-alpha.4", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport": "1.1.5", "axios": "^0.27.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-lowlevel/package.json b/packages/hd-transport-lowlevel/package.json index 7890c91c8..488699a05 100644 --- a/packages/hd-transport-lowlevel/package.json +++ b/packages/hd-transport-lowlevel/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-lowlevel", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,7 +19,7 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport": "1.1.4-alpha.4" + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport": "1.1.5" } } diff --git a/packages/hd-transport-react-native/package.json b/packages/hd-transport-react-native/package.json index a79d7e5ac..3ce73aa34 100644 --- a/packages/hd-transport-react-native/package.json +++ b/packages/hd-transport-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-react-native", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,8 +19,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport": "1.1.4-alpha.4", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport": "1.1.5", "@onekeyfe/react-native-ble-utils": "^0.1.4", "react-native-ble-plx": "3.5.0" } diff --git a/packages/hd-transport-web-device/package.json b/packages/hd-transport-web-device/package.json index 4dfb2cf9e..c3725f320 100644 --- a/packages/hd-transport-web-device/package.json +++ b/packages/hd-transport-web-device/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-web-device", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -20,11 +20,11 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport": "1.1.4-alpha.4" + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport": "1.1.5" }, "devDependencies": { - "@onekeyfe/hd-transport-electron": "1.1.4-alpha.4", + "@onekeyfe/hd-transport-electron": "1.1.5", "@types/w3c-web-usb": "^1.0.6", "@types/web-bluetooth": "^0.0.17" } diff --git a/packages/hd-transport/package.json b/packages/hd-transport/package.json index 7d5429640..e78095419 100644 --- a/packages/hd-transport/package.json +++ b/packages/hd-transport/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "description": "> TODO: description", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", diff --git a/packages/hd-web-sdk/package.json b/packages/hd-web-sdk/package.json index 6171ffedd..fdeea6935 100644 --- a/packages/hd-web-sdk/package.json +++ b/packages/hd-web-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-web-sdk", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -21,10 +21,10 @@ }, "dependencies": { "@onekeyfe/cross-inpage-provider-core": "^0.0.17", - "@onekeyfe/hd-core": "1.1.4-alpha.4", - "@onekeyfe/hd-shared": "1.1.4-alpha.4", - "@onekeyfe/hd-transport-http": "1.1.4-alpha.4", - "@onekeyfe/hd-transport-web-device": "1.1.4-alpha.4" + "@onekeyfe/hd-core": "1.1.5", + "@onekeyfe/hd-shared": "1.1.5", + "@onekeyfe/hd-transport-http": "1.1.5", + "@onekeyfe/hd-transport-web-device": "1.1.5" }, "devDependencies": { "@babel/plugin-proposal-optional-chaining": "^7.17.12", diff --git a/packages/shared/package.json b/packages/shared/package.json index 329d9e9f6..950262763 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-shared", - "version": "1.1.4-alpha.4", + "version": "1.1.5", "description": "Hardware SDK's shared tool library", "keywords": [ "Hardware-SDK",