@onekeyfe/hd-core 1.2.0-alpha.2 → 1.2.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +75 -0
- package/__tests__/DeviceCommands.test.ts +285 -0
- package/__tests__/DeviceEventRegistration.test.ts +43 -0
- package/__tests__/connectSettings.test.ts +19 -0
- package/__tests__/core-dispose.test.ts +34 -0
- package/__tests__/core-error-output.test.ts +39 -0
- package/__tests__/device-features-state.test.ts +78 -0
- package/__tests__/device-identity.test.ts +30 -0
- package/__tests__/device-lifecycle-events.test.ts +117 -0
- package/__tests__/device-pool-state.test.ts +132 -0
- package/__tests__/device-settings.test.ts +391 -0
- package/__tests__/device-state-contract.test.ts +27 -0
- package/__tests__/device-state-events.test.ts +162 -0
- package/__tests__/device-state-mapper.test.ts +241 -0
- package/__tests__/device-state-projector.test.ts +94 -0
- package/__tests__/device-state-store.test.ts +82 -0
- package/__tests__/device-utils.test.ts +106 -0
- package/__tests__/device-wallet-session-store.test.ts +213 -0
- package/__tests__/deviceFeaturesUtils.test.ts +39 -0
- package/__tests__/deviceSettings.test.ts +103 -0
- package/__tests__/evmLedgerLegacySafety.test.ts +10 -6
- package/__tests__/evmSignTypedData.test.ts +80 -0
- package/__tests__/filesystemValidation.test.ts +53 -0
- package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +402 -0
- package/__tests__/get-device-state.test.ts +410 -0
- package/__tests__/homescreen.test.ts +24 -0
- package/__tests__/kaspaSignTransaction.test.ts +591 -0
- package/__tests__/logBlockEvent.test.ts +26 -0
- package/__tests__/networkUtils.test.ts +386 -0
- package/__tests__/open-wallet-session-error-response.test.ts +43 -0
- package/__tests__/open-wallet-session.test.ts +559 -0
- package/__tests__/preInitialize.test.ts +33 -0
- package/__tests__/pro2Wallpaper.test.ts +50 -0
- package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
- package/__tests__/protocol-v2-firmware-targets.test.ts +19 -0
- package/__tests__/protocol-v2.test.ts +3954 -1191
- package/__tests__/protocolV2FileWrite.test.ts +92 -0
- package/__tests__/protocolV2UiInteraction.test.ts +266 -0
- package/__tests__/public-device-state-api.test.ts +257 -0
- package/__tests__/public-pro2-api-boundary.test.ts +110 -0
- package/__tests__/refresh-device-state.test.ts +101 -0
- package/__tests__/request-context-logging.test.ts +16 -0
- package/__tests__/search-devices.test.ts +136 -0
- package/dist/api/BaseMethod.d.ts +8 -0
- package/dist/api/BaseMethod.d.ts.map +1 -1
- package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
- package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
- package/dist/api/ClearSessionCache.d.ts +9 -0
- package/dist/api/ClearSessionCache.d.ts.map +1 -0
- package/dist/api/DirList.d.ts.map +1 -1
- package/dist/api/FileRead.d.ts.map +1 -1
- package/dist/api/FileWrite.d.ts +1 -0
- package/dist/api/FileWrite.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV2.d.ts +2 -2
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV4.d.ts +25 -5
- package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
- package/dist/api/GetDeviceState.d.ts +7 -0
- package/dist/api/GetDeviceState.d.ts.map +1 -0
- package/dist/api/GetFeatures.d.ts +1 -1
- package/dist/api/GetFeatures.d.ts.map +1 -1
- package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
- package/dist/api/GetPassphraseState.d.ts +1 -6
- package/dist/api/GetPassphraseState.d.ts.map +1 -1
- package/dist/api/OpenWalletSession.d.ts +14 -0
- package/dist/api/OpenWalletSession.d.ts.map +1 -0
- package/dist/api/PathInfo.d.ts.map +1 -1
- package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
- package/dist/api/SearchDevices.d.ts +3 -0
- package/dist/api/SearchDevices.d.ts.map +1 -1
- package/dist/api/UploadPortfolio.d.ts +17 -0
- package/dist/api/UploadPortfolio.d.ts.map +1 -0
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
- package/dist/api/device/DeviceCancel.d.ts.map +1 -1
- package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
- package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
- package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
- package/dist/api/device/DeviceLock.d.ts.map +1 -1
- package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
- package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
- package/dist/api/device/DeviceSettings.d.ts.map +1 -1
- package/dist/api/device/DeviceUnlock.d.ts +1 -1
- package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
- package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
- package/dist/api/device/DeviceWipe.d.ts.map +1 -1
- package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +1 -0
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
- package/dist/api/firmware/getBinary.d.ts +11 -3
- package/dist/api/firmware/getBinary.d.ts.map +1 -1
- package/dist/api/firmware/progressThrottle.d.ts +3 -0
- package/dist/api/firmware/progressThrottle.d.ts.map +1 -0
- package/dist/api/helpers/filesystemValidation.d.ts +3 -0
- package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
- package/dist/api/helpers/paramsValidator.d.ts +1 -0
- package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
- package/dist/api/helpers/protocolV2FileWrite.d.ts +33 -0
- package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
- package/dist/api/index.d.ts +12 -19
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/kaspa/KaspaSignTransaction.d.ts +5 -1
- package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
- package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +6 -0
- package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -0
- package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +7 -0
- package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -0
- package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -1
- package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +3 -2
- package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +1 -1
- package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceInfoGet.d.ts +28 -0
- package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -0
- package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceStatusGet.d.ts +6 -0
- package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
- package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +26 -0
- package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
- package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
- package/dist/api/protocol-v2/{FilesystemFixPermission.d.ts → FilesystemPermissionFix.d.ts} +2 -2
- package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -0
- package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +6 -0
- package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -0
- package/dist/api/protocol-v2/helpers.d.ts +27 -19
- package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
- package/dist/api/ton/TonSignData.d.ts +1 -5
- package/dist/api/ton/TonSignData.d.ts.map +1 -1
- package/dist/api/utils.d.ts +2 -1
- package/dist/api/utils.d.ts.map +1 -1
- package/dist/constants/index.d.ts +2 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/core/RequestQueue.d.ts.map +1 -1
- package/dist/core/deviceEventRegistration.d.ts +11 -0
- package/dist/core/deviceEventRegistration.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/data-manager/DataManager.d.ts +1 -1
- package/dist/data-manager/DataManager.d.ts.map +1 -1
- package/dist/data-manager/connectSettings.d.ts.map +1 -1
- package/dist/device/Device.d.ts +35 -11
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts +8 -6
- package/dist/device/DeviceCommands.d.ts.map +1 -1
- package/dist/device/DeviceFeaturesState.d.ts +3 -0
- package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
- package/dist/device/DevicePool.d.ts +4 -2
- package/dist/device/DevicePool.d.ts.map +1 -1
- package/dist/device/DeviceStateMapper.d.ts +13 -0
- package/dist/device/DeviceStateMapper.d.ts.map +1 -0
- package/dist/device/DeviceStateProjector.d.ts +7 -0
- package/dist/device/DeviceStateProjector.d.ts.map +1 -0
- package/dist/device/DeviceStateStore.d.ts +21 -0
- package/dist/device/DeviceStateStore.d.ts.map +1 -0
- package/dist/device/DeviceWalletSessionStore.d.ts +20 -0
- package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
- package/dist/device/cloneDeviceState.d.ts +2 -0
- package/dist/device/cloneDeviceState.d.ts.map +1 -0
- package/dist/device/deviceIdentity.d.ts +5 -0
- package/dist/device/deviceIdentity.d.ts.map +1 -0
- package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
- package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
- package/dist/deviceProfile/index.d.ts +0 -1
- package/dist/deviceProfile/index.d.ts.map +1 -1
- package/dist/events/device.d.ts +11 -2
- package/dist/events/device.d.ts.map +1 -1
- package/dist/events/logBlockEvent.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +18 -2
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +1361 -609
- package/dist/index.js +5898 -2860
- package/dist/inject.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
- package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/features.d.ts +23 -28
- package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/firmware.d.ts +11 -9
- package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/index.d.ts +3 -2
- package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/lockedError.d.ts +2 -0
- package/dist/protocols/protocol-v2/lockedError.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +16 -0
- package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/uiInteraction.d.ts +39 -0
- package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/unlockRetry.d.ts +11 -0
- package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/walletSession.d.ts +19 -0
- package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
- package/dist/types/api/checkAllFirmwareRelease.d.ts +1 -2
- package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
- package/dist/types/api/deviceSettings.d.ts +11 -2
- package/dist/types/api/deviceSettings.d.ts.map +1 -1
- package/dist/types/api/deviceUnlock.d.ts +2 -2
- package/dist/types/api/deviceUnlock.d.ts.map +1 -1
- package/dist/types/api/firmwareUpdate.d.ts +6 -6
- package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
- package/dist/types/api/getDeviceState.d.ts +12 -0
- package/dist/types/api/getDeviceState.d.ts.map +1 -0
- package/dist/types/api/getFeatures.d.ts.map +1 -1
- package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
- package/dist/types/api/getPassphraseState.d.ts +2 -10
- package/dist/types/api/getPassphraseState.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +22 -25
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/types/api/kaspaSignTransaction.d.ts +27 -2
- package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
- package/dist/types/api/openWalletSession.d.ts +41 -0
- package/dist/types/api/openWalletSession.d.ts.map +1 -0
- package/dist/types/api/protocolV2.d.ts +23 -28
- package/dist/types/api/protocolV2.d.ts.map +1 -1
- package/dist/types/api/sessionCache.d.ts +10 -0
- package/dist/types/api/sessionCache.d.ts.map +1 -0
- package/dist/types/device.d.ts +121 -5
- package/dist/types/device.d.ts.map +1 -1
- package/dist/types/params.d.ts +1 -0
- package/dist/types/params.d.ts.map +1 -1
- package/dist/types/settings.d.ts +21 -1
- package/dist/types/settings.d.ts.map +1 -1
- package/dist/utils/assets.d.ts +2 -1
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/deviceFeaturesCompat.d.ts +13 -0
- package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
- package/dist/utils/deviceFeaturesUtils.d.ts +13 -3
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
- package/dist/utils/deviceInfoUtils.d.ts +9 -8
- package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
- package/dist/utils/deviceSettings.d.ts +38 -7
- package/dist/utils/deviceSettings.d.ts.map +1 -1
- package/dist/utils/deviceVersionUtils.d.ts +6 -5
- package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
- package/dist/utils/homescreen.d.ts.map +1 -1
- package/dist/utils/index.d.ts +5 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/networkUtils.d.ts +9 -1
- package/dist/utils/networkUtils.d.ts.map +1 -1
- package/dist/utils/patch.d.ts +1 -1
- package/dist/utils/patch.d.ts.map +1 -1
- package/dist/utils/pro2Wallpaper.d.ts +12 -0
- package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
- package/dist/utils/tracing.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/BaseMethod.ts +36 -9
- package/src/api/CheckBootloaderRelease.ts +1 -2
- package/src/api/CheckFirmwareRelease.ts +1 -2
- package/src/api/ClearSessionCache.ts +28 -0
- package/src/api/DirList.ts +5 -3
- package/src/api/DirMake.ts +3 -3
- package/src/api/DirRemove.ts +3 -3
- package/src/api/FileDelete.ts +3 -3
- package/src/api/FileRead.ts +23 -7
- package/src/api/FileWrite.ts +23 -168
- package/src/api/FirmwareUpdate.ts +4 -4
- package/src/api/FirmwareUpdateV2.ts +133 -45
- package/src/api/FirmwareUpdateV3.ts +3 -5
- package/src/api/FirmwareUpdateV4.ts +1138 -357
- package/src/api/GetDeviceState.ts +55 -0
- package/src/api/GetFeatures.ts +8 -3
- package/src/api/GetOnekeyFeatures.ts +3 -72
- package/src/api/GetPassphraseState.ts +11 -18
- package/src/api/OpenWalletSession.ts +221 -0
- package/src/api/PathInfo.ts +5 -3
- package/src/api/PromptWebDeviceAccess.ts +2 -3
- package/src/api/SearchDevices.ts +29 -4
- package/src/api/UploadPortfolio.ts +40 -0
- package/src/api/alephium/AlephiumSignTransaction.ts +2 -2
- package/src/api/allnetwork/AllNetworkGetAddressBase.ts +4 -8
- package/src/api/benfen/BenfenGetAddress.ts +1 -1
- package/src/api/btc/BTCGetPublicKey.ts +1 -1
- package/src/api/cardano/CardanoSignMessage.ts +1 -1
- package/src/api/cardano/CardanoSignTransaction.ts +1 -1
- package/src/api/device/DeviceCancel.ts +1 -0
- package/src/api/device/DeviceChangePin.ts +24 -0
- package/src/api/device/DeviceFullyUploadResource.ts +4 -5
- package/src/api/device/DeviceLock.ts +1 -0
- package/src/api/device/DeviceRebootToBoardloader.ts +5 -4
- package/src/api/device/DeviceRebootToBootloader.ts +5 -4
- package/src/api/device/DeviceSettings.ts +183 -1
- package/src/api/device/DeviceUnlock.ts +11 -1
- package/src/api/device/DeviceUpdateBootloader.ts +1 -2
- package/src/api/device/DeviceWipe.ts +19 -0
- package/src/api/evm/EVMSignTypedData.ts +3 -5
- package/src/api/evm/legacyV1/getAddress.ts +2 -2
- package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
- package/src/api/evm/legacyV1/signMessage.ts +2 -2
- package/src/api/evm/legacyV1/signTypedData.ts +2 -2
- package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
- package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
- package/src/api/firmware/FirmwareUpdateBaseMethod.ts +21 -7
- package/src/api/firmware/getBinary.ts +8 -3
- package/src/api/firmware/progressThrottle.ts +44 -0
- package/src/api/helpers/batchGetPublickeys.ts +2 -2
- package/src/api/helpers/filesystemValidation.ts +61 -0
- package/src/api/helpers/paramsValidator.ts +1 -1
- package/src/api/helpers/protocolV2FileWrite.ts +193 -0
- package/src/api/index.ts +14 -20
- package/src/api/kaspa/KaspaSignTransaction.ts +341 -22
- package/src/api/kaspa/helpers/TransferSerialize.ts +14 -0
- package/src/api/nervos/NervosSignTransaction.ts +2 -2
- package/src/api/nexa/NexaSignTransaction.ts +1 -1
- package/src/api/protocol-v2/{FactoryGetDeviceInfo.ts → DeviceFactoryInfoGet.ts} +4 -4
- package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +32 -0
- package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +7 -9
- package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +41 -6
- package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +6 -4
- package/src/api/protocol-v2/DeviceInfoGet.ts +145 -0
- package/src/api/protocol-v2/DeviceReboot.ts +5 -3
- package/src/api/protocol-v2/DeviceStatusGet.ts +16 -0
- package/src/api/protocol-v2/DeviceUploadWallpaper.ts +131 -0
- package/src/api/protocol-v2/FilesystemFormat.ts +5 -2
- package/src/api/protocol-v2/{FilesystemFixPermission.ts → FilesystemPermissionFix.ts} +3 -3
- package/src/api/protocol-v2/Ping.ts +1 -1
- package/src/api/protocol-v2/{GetProtoVersion.ts → ProtocolInfoRequest.ts} +3 -3
- package/src/api/protocol-v2/helpers.ts +58 -62
- package/src/api/ton/TonSignData.ts +1 -5
- package/src/api/utils.ts +7 -3
- package/src/constants/index.ts +7 -1
- package/src/core/RequestQueue.ts +1 -0
- package/src/core/deviceEventRegistration.ts +23 -0
- package/src/core/index.ts +140 -35
- package/src/data/messages/messages-protocol-v2.json +825 -709
- package/src/data/messages/messages.json +286 -1
- package/src/data-manager/DataManager.ts +13 -6
- package/src/data-manager/connectSettings.ts +4 -0
- package/src/device/Device.ts +480 -192
- package/src/device/DeviceCommands.ts +81 -25
- package/src/device/DeviceFeaturesState.ts +25 -0
- package/src/device/DevicePool.ts +67 -19
- package/src/device/DeviceStateMapper.ts +349 -0
- package/src/device/DeviceStateProjector.ts +95 -0
- package/src/device/DeviceStateStore.ts +201 -0
- package/src/device/DeviceWalletSessionStore.ts +105 -0
- package/src/device/cloneDeviceState.ts +39 -0
- package/src/device/deviceIdentity.ts +18 -0
- package/src/deviceProfile/buildDeviceFeatures.ts +235 -210
- package/src/deviceProfile/index.ts +0 -1
- package/src/events/device.ts +17 -1
- package/src/events/logBlockEvent.ts +8 -1
- package/src/events/ui-request.ts +24 -2
- package/src/inject.ts +23 -34
- package/src/protocols/protocol-v2/deviceSession.ts +24 -0
- package/src/protocols/protocol-v2/features.ts +68 -82
- package/src/protocols/protocol-v2/firmware.ts +12 -36
- package/src/protocols/protocol-v2/index.ts +3 -1
- package/src/protocols/protocol-v2/lockedError.ts +10 -0
- package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +61 -0
- package/src/protocols/protocol-v2/uiInteraction.ts +210 -0
- package/src/protocols/protocol-v2/unlockRetry.ts +76 -0
- package/src/protocols/protocol-v2/walletSession.ts +107 -0
- package/src/types/api/checkAllFirmwareRelease.ts +1 -2
- package/src/types/api/deviceSettings.ts +26 -2
- package/src/types/api/deviceUnlock.ts +5 -2
- package/src/types/api/firmwareUpdate.ts +28 -20
- package/src/types/api/getDeviceState.ts +19 -0
- package/src/types/api/getFeatures.ts +3 -0
- package/src/types/api/getOnekeyFeatures.ts +3 -0
- package/src/types/api/getPassphraseState.ts +8 -11
- package/src/types/api/index.ts +30 -53
- package/src/types/api/kaspaSignTransaction.ts +40 -2
- package/src/types/api/openWalletSession.ts +64 -0
- package/src/types/api/protocolV2.ts +58 -55
- package/src/types/api/sessionCache.ts +14 -0
- package/src/types/device.ts +170 -4
- package/src/types/params.ts +4 -0
- package/src/types/settings.ts +42 -30
- package/src/utils/assets.ts +4 -1
- package/src/utils/deviceFeaturesCompat.ts +173 -0
- package/src/utils/deviceFeaturesUtils.ts +68 -24
- package/src/utils/deviceInfoUtils.ts +26 -64
- package/src/utils/deviceSettings.ts +161 -39
- package/src/utils/deviceVersionUtils.ts +25 -44
- package/src/utils/findDefectiveBatchDevice.ts +3 -3
- package/src/utils/homescreen.ts +10 -0
- package/src/utils/index.ts +21 -1
- package/src/utils/networkUtils.ts +270 -14
- package/src/utils/pro2Wallpaper.ts +109 -0
- package/src/utils/tracing.ts +3 -1
- package/dist/api/GetDeviceInfo.d.ts +0 -9
- package/dist/api/GetDeviceInfo.d.ts.map +0 -1
- package/dist/api/protocol-v2/DevReboot.d.ts +0 -7
- package/dist/api/protocol-v2/DevReboot.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceGetDeviceInfo.d.ts +0 -29
- package/dist/api/protocol-v2/DeviceGetDeviceInfo.d.ts.map +0 -1
- package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts +0 -7
- package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts.map +0 -1
- package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts +0 -6
- package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts.map +0 -1
- package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
- package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
- package/dist/api/protocol-v2/FilesystemFixPermission.d.ts.map +0 -1
- package/dist/api/protocol-v2/GetProtoVersion.d.ts +0 -6
- package/dist/api/protocol-v2/GetProtoVersion.d.ts.map +0 -1
- package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
- package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
- package/dist/types/api/getDeviceInfo.d.ts +0 -85
- package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
- package/src/api/GetDeviceInfo.ts +0 -145
- package/src/api/protocol-v2/DevReboot.ts +0 -24
- package/src/api/protocol-v2/DeviceGetDeviceInfo.ts +0 -118
- package/src/api/protocol-v2/FactoryDeviceInfoSettings.ts +0 -29
- package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
- package/src/deviceProfile/buildDeviceProfile.ts +0 -334
- package/src/types/api/getDeviceInfo.ts +0 -99
|
@@ -7,9 +7,12 @@ import { findLatestRelease } from '../../utils/release';
|
|
|
7
7
|
import { getFirmwareUpdateField } from '../../utils/deviceFeaturesUtils';
|
|
8
8
|
|
|
9
9
|
import type { Features } from '../../types';
|
|
10
|
+
import type { HttpRequestOptions } from '../../utils/networkUtils';
|
|
10
11
|
import type { EFirmwareType } from '@onekeyfe/hd-shared';
|
|
11
12
|
import type { IFirmwareField } from '../../data-manager/DataManager';
|
|
12
13
|
|
|
14
|
+
export type FirmwareBinary = ArrayBuffer | Buffer;
|
|
15
|
+
|
|
13
16
|
export interface GetInfoProps {
|
|
14
17
|
features: Features;
|
|
15
18
|
updateType: 'firmware' | 'ble';
|
|
@@ -20,6 +23,7 @@ export interface GetInfoProps {
|
|
|
20
23
|
|
|
21
24
|
interface GetBinaryProps extends GetInfoProps {
|
|
22
25
|
version?: number[];
|
|
26
|
+
requestOptions?: HttpRequestOptions;
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
export const getBinary = async ({
|
|
@@ -28,6 +32,7 @@ export const getBinary = async ({
|
|
|
28
32
|
version,
|
|
29
33
|
isUpdateBootloader,
|
|
30
34
|
firmwareType,
|
|
35
|
+
requestOptions,
|
|
31
36
|
}: GetBinaryProps) => {
|
|
32
37
|
const releaseInfo = getInfo({
|
|
33
38
|
features,
|
|
@@ -55,9 +60,9 @@ export const getBinary = async ({
|
|
|
55
60
|
: isUpdateBootloader
|
|
56
61
|
? releaseInfo.bootloaderResource
|
|
57
62
|
: releaseInfo.url;
|
|
58
|
-
let fw;
|
|
63
|
+
let fw: FirmwareBinary;
|
|
59
64
|
try {
|
|
60
|
-
fw = await httpRequest(url, 'binary');
|
|
65
|
+
fw = await httpRequest(url, 'binary', requestOptions);
|
|
61
66
|
} catch {
|
|
62
67
|
throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'Method_FirmwareUpdate_DownloadFailed');
|
|
63
68
|
}
|
|
@@ -69,7 +74,7 @@ export const getBinary = async ({
|
|
|
69
74
|
};
|
|
70
75
|
|
|
71
76
|
export const getSysResourceBinary = async (url: string) => {
|
|
72
|
-
let fw;
|
|
77
|
+
let fw: FirmwareBinary;
|
|
73
78
|
try {
|
|
74
79
|
fw = await httpRequest(url, 'binary');
|
|
75
80
|
} catch {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { IFirmwareUpdateProgressType } from '../../events/ui-request';
|
|
2
|
+
|
|
3
|
+
const DEFAULT_FIRMWARE_PROGRESS_INTERVAL_MS = 250;
|
|
4
|
+
|
|
5
|
+
type FirmwareProgressThrottleState = {
|
|
6
|
+
lastEmittedAt: number;
|
|
7
|
+
lastProgress?: number;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const createFirmwareProgressThrottle = (
|
|
11
|
+
intervalMs = DEFAULT_FIRMWARE_PROGRESS_INTERVAL_MS
|
|
12
|
+
) => {
|
|
13
|
+
const stateByType = new Map<IFirmwareUpdateProgressType, FirmwareProgressThrottleState>();
|
|
14
|
+
|
|
15
|
+
return (progress: number, progressType: IFirmwareUpdateProgressType) => {
|
|
16
|
+
if (progressType !== 'transferData') {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const normalizedProgress = Math.max(0, Math.min(100, Math.floor(progress)));
|
|
21
|
+
if (normalizedProgress === 0 || normalizedProgress === 100) {
|
|
22
|
+
stateByType.set(progressType, {
|
|
23
|
+
lastEmittedAt: Date.now(),
|
|
24
|
+
lastProgress: normalizedProgress,
|
|
25
|
+
});
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const now = Date.now();
|
|
30
|
+
const state = stateByType.get(progressType);
|
|
31
|
+
if (
|
|
32
|
+
state &&
|
|
33
|
+
(state.lastProgress === normalizedProgress || now - state.lastEmittedAt < intervalMs)
|
|
34
|
+
) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
stateByType.set(progressType, {
|
|
39
|
+
lastEmittedAt: now,
|
|
40
|
+
lastProgress: normalizedProgress,
|
|
41
|
+
});
|
|
42
|
+
return true;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
@@ -27,8 +27,8 @@ export function supportBatchPublicKeyByDevice(
|
|
|
27
27
|
const currentVersion = device.getCurrentFirmwareVersionString() ?? '0.0.0';
|
|
28
28
|
const deviceType = device.getCurrentDeviceType();
|
|
29
29
|
|
|
30
|
-
// Pro2
|
|
31
|
-
//
|
|
30
|
+
// Pro2 has an independent version line and supports batch/include_node from its first
|
|
31
|
+
// firmware version, so the Protocol V1 Pro 4.x threshold does not apply.
|
|
32
32
|
if (device.isProtocolV2() || deviceType === EDeviceType.Pro2) {
|
|
33
33
|
return true;
|
|
34
34
|
}
|
|
@@ -10,6 +10,67 @@ export function validateNonEmptyString(value: unknown, name: string): string {
|
|
|
10
10
|
return value;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
const PROTOCOL_V2_FILESYSTEM_VOLUMES = new Set(['vol0', 'vol1']);
|
|
14
|
+
// Bootloader and romloader reserve 128 bytes including the terminating NUL.
|
|
15
|
+
const MAX_PROTOCOL_V2_FILESYSTEM_PATH_BYTES = 127;
|
|
16
|
+
|
|
17
|
+
function getUtf8ByteLength(value: string) {
|
|
18
|
+
return Array.from(value).reduce((length, character) => {
|
|
19
|
+
const codePoint = character.codePointAt(0) ?? 0;
|
|
20
|
+
if (codePoint <= 0x7f) return length + 1;
|
|
21
|
+
if (codePoint <= 0x7ff) return length + 2;
|
|
22
|
+
if (codePoint <= 0xffff) return length + 3;
|
|
23
|
+
return length + 4;
|
|
24
|
+
}, 0);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function validateProtocolV2FilesystemPath(
|
|
28
|
+
value: unknown,
|
|
29
|
+
name: string,
|
|
30
|
+
options: { allowVolumeRoot?: boolean } = {}
|
|
31
|
+
): string {
|
|
32
|
+
const rawPath = validateNonEmptyString(value, name).trim();
|
|
33
|
+
const containsUnsupportedCharacter = Array.from(rawPath).some(character => {
|
|
34
|
+
const codePoint = character.charCodeAt(0);
|
|
35
|
+
return codePoint <= 0x1f || codePoint === 0x7f || character === '\\';
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
if (containsUnsupportedCharacter) {
|
|
39
|
+
throw invalidParameter(`Parameter [${name}] contains unsupported path characters.`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const match = /^([a-zA-Z0-9]+):(.*)$/.exec(rawPath);
|
|
43
|
+
if (!match) {
|
|
44
|
+
throw invalidParameter(
|
|
45
|
+
`Parameter [${name}] must use a supported Protocol V2 filesystem volume.`
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const volume = match[1].toLowerCase();
|
|
50
|
+
if (!PROTOCOL_V2_FILESYSTEM_VOLUMES.has(volume)) {
|
|
51
|
+
throw invalidParameter(`Parameter [${name}] uses an unsupported filesystem volume.`);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const rawSuffix = match[2];
|
|
55
|
+
if (rawSuffix.length === 0) {
|
|
56
|
+
if (options.allowVolumeRoot) return `${volume}:`;
|
|
57
|
+
throw invalidParameter(`Parameter [${name}] must identify a filesystem entry.`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const suffix = rawSuffix.startsWith('/') ? rawSuffix : `/${rawSuffix}`;
|
|
61
|
+
const segments = suffix.slice(1).split('/');
|
|
62
|
+
if (segments.some(segment => segment.length === 0 || segment === '.' || segment === '..')) {
|
|
63
|
+
throw invalidParameter(`Parameter [${name}] contains an invalid path segment.`);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const canonicalPath = `${volume}:${rawSuffix.startsWith('/') ? '/' : ''}${segments.join('/')}`;
|
|
67
|
+
if (getUtf8ByteLength(canonicalPath) > MAX_PROTOCOL_V2_FILESYSTEM_PATH_BYTES) {
|
|
68
|
+
throw invalidParameter(`Parameter [${name}] exceeds the maximum filesystem path length.`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return canonicalPath;
|
|
72
|
+
}
|
|
73
|
+
|
|
13
74
|
export function validateNonNegativeInteger(
|
|
14
75
|
value: unknown,
|
|
15
76
|
name: string,
|
|
@@ -20,7 +20,7 @@ export type SchemaParam = {
|
|
|
20
20
|
allowNegative?: boolean;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
const invalidParameter = (message: string) =>
|
|
23
|
+
export const invalidParameter = (message: string) =>
|
|
24
24
|
ERRORS.TypedError(HardwareErrorCode.CallMethodInvalidParameter, message);
|
|
25
25
|
|
|
26
26
|
const invalidResponse = (message: string) =>
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PROTOCOL_V2_BLE_FILE_CHUNK_SIZE,
|
|
3
|
+
PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE,
|
|
4
|
+
} from '@onekeyfe/hd-transport';
|
|
5
|
+
import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
6
|
+
|
|
7
|
+
import { DataManager } from '../../data-manager';
|
|
8
|
+
|
|
9
|
+
import type { DeviceCommands } from '../../device/DeviceCommands';
|
|
10
|
+
|
|
11
|
+
export type ProtocolV2FileWriteData = ArrayBuffer | Uint8Array | Blob | string;
|
|
12
|
+
|
|
13
|
+
export type ProtocolV2FileWriteProgress = {
|
|
14
|
+
progress: number;
|
|
15
|
+
transferredBytes: number;
|
|
16
|
+
totalBytes: number;
|
|
17
|
+
rateBytesPerSecond?: number;
|
|
18
|
+
elapsedMs: number;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export type ProtocolV2FileWriteOptions = {
|
|
22
|
+
commands: Pick<DeviceCommands, 'typedCall'>;
|
|
23
|
+
path: string;
|
|
24
|
+
data: ProtocolV2FileWriteData;
|
|
25
|
+
offset?: number;
|
|
26
|
+
totalSize?: number;
|
|
27
|
+
chunkSize?: number;
|
|
28
|
+
chunkLen?: number;
|
|
29
|
+
overwrite?: boolean;
|
|
30
|
+
append?: boolean;
|
|
31
|
+
uiPercentage?: number;
|
|
32
|
+
timeoutMs?: number;
|
|
33
|
+
maxChunkRetries?: number;
|
|
34
|
+
throwIfAborted?: () => void;
|
|
35
|
+
onProgress?: (progress: ProtocolV2FileWriteProgress) => void;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const MIN_FILE_CHUNK_SIZE = 64;
|
|
39
|
+
|
|
40
|
+
function isRetryableFileWriteTimeout(error: unknown) {
|
|
41
|
+
if (!error || typeof error !== 'object') return false;
|
|
42
|
+
const candidate = error as { errorCode?: number; code?: number; message?: string };
|
|
43
|
+
const code = candidate.errorCode ?? candidate.code;
|
|
44
|
+
return (
|
|
45
|
+
code === HardwareErrorCode.BleTimeoutError ||
|
|
46
|
+
/Lowlevel response timeout/i.test(candidate.message ?? '')
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function getProtocolV2FileChunkLimit() {
|
|
51
|
+
const env = DataManager.getSettings('env');
|
|
52
|
+
return env && DataManager.isBleConnect(env)
|
|
53
|
+
? PROTOCOL_V2_BLE_FILE_CHUNK_SIZE
|
|
54
|
+
: PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async function dataToUint8Array(data: ProtocolV2FileWriteData): Promise<Uint8Array> {
|
|
58
|
+
if (typeof data === 'string') return new TextEncoder().encode(data);
|
|
59
|
+
if (data instanceof ArrayBuffer) return new Uint8Array(data);
|
|
60
|
+
if (ArrayBuffer.isView(data)) {
|
|
61
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
62
|
+
}
|
|
63
|
+
if (typeof Blob !== 'undefined' && data instanceof Blob) {
|
|
64
|
+
return new Uint8Array(await data.arrayBuffer());
|
|
65
|
+
}
|
|
66
|
+
throw ERRORS.TypedError(
|
|
67
|
+
HardwareErrorCode.CallMethodInvalidParameter,
|
|
68
|
+
'Unsupported FilesystemFileWrite data'
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function normalizeChunkSize(value: unknown, maxChunkSize: number): number {
|
|
73
|
+
const numeric = Number(value);
|
|
74
|
+
if (!Number.isFinite(numeric) || numeric <= 0) return maxChunkSize;
|
|
75
|
+
return Math.min(Math.max(Math.floor(numeric), MIN_FILE_CHUNK_SIZE), maxChunkSize);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function getDeviceTransferProgress(before: number, after: number, total: number) {
|
|
79
|
+
if (!Number.isFinite(total) || total <= 0) return 100;
|
|
80
|
+
if (before <= 0 && after < total) return 0;
|
|
81
|
+
if (after >= total) return 100;
|
|
82
|
+
return Math.min(Math.max(Math.ceil((after / total) * 100), 1), 99);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function getConfirmedProgress(processed: number, total: number, written: number, length: number) {
|
|
86
|
+
if (Number.isFinite(processed) && Number.isFinite(total) && total > 0) {
|
|
87
|
+
if (processed >= total) return 100;
|
|
88
|
+
return Math.min(Math.max(Math.floor((processed / total) * 100), 0), 99);
|
|
89
|
+
}
|
|
90
|
+
if (length > 0) return written >= length ? 100 : Math.floor((written / length) * 100);
|
|
91
|
+
return 100;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export async function writeProtocolV2File(options: ProtocolV2FileWriteOptions) {
|
|
95
|
+
options.throwIfAborted?.();
|
|
96
|
+
const data = await dataToUint8Array(options.data);
|
|
97
|
+
const dataLength = data.byteLength;
|
|
98
|
+
const startOffset =
|
|
99
|
+
Number.isFinite(options.offset) && Number(options.offset) > 0 ? Number(options.offset) : 0;
|
|
100
|
+
const totalSize =
|
|
101
|
+
Number.isFinite(options.totalSize) && Number(options.totalSize) > 0
|
|
102
|
+
? Number(options.totalSize)
|
|
103
|
+
: startOffset + dataLength;
|
|
104
|
+
|
|
105
|
+
if (totalSize < startOffset + dataLength) {
|
|
106
|
+
throw ERRORS.TypedError(
|
|
107
|
+
HardwareErrorCode.RuntimeError,
|
|
108
|
+
`FilesystemFileWrite totalSize ${totalSize} is smaller than offset + data length ${
|
|
109
|
+
startOffset + dataLength
|
|
110
|
+
}`
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const chunkSize = normalizeChunkSize(
|
|
115
|
+
options.chunkSize ?? options.chunkLen,
|
|
116
|
+
getProtocolV2FileChunkLimit()
|
|
117
|
+
);
|
|
118
|
+
let written = 0;
|
|
119
|
+
let chunks = 0;
|
|
120
|
+
let lastMessage: Record<string, unknown> | undefined;
|
|
121
|
+
const startTime = Date.now();
|
|
122
|
+
|
|
123
|
+
while (written < dataLength) {
|
|
124
|
+
options.throwIfAborted?.();
|
|
125
|
+
const chunk = data.slice(written, Math.min(written + chunkSize, dataLength));
|
|
126
|
+
const offset = startOffset + written;
|
|
127
|
+
const progress =
|
|
128
|
+
options.uiPercentage ??
|
|
129
|
+
getDeviceTransferProgress(offset, offset + chunk.byteLength, totalSize);
|
|
130
|
+
const request = {
|
|
131
|
+
file: { path: options.path, offset, total_size: totalSize, data: chunk },
|
|
132
|
+
overwrite: chunks === 0 ? options.overwrite ?? false : false,
|
|
133
|
+
append: options.append ?? false,
|
|
134
|
+
ui_percentage: progress,
|
|
135
|
+
};
|
|
136
|
+
const maxChunkRetries = Math.max(Math.floor(options.maxChunkRetries ?? 0), 0);
|
|
137
|
+
let retryCount = 0;
|
|
138
|
+
let response;
|
|
139
|
+
let isWritePending = true;
|
|
140
|
+
while (isWritePending) {
|
|
141
|
+
try {
|
|
142
|
+
response = await options.commands.typedCall(
|
|
143
|
+
'FilesystemFileWrite',
|
|
144
|
+
'FilesystemFile',
|
|
145
|
+
request,
|
|
146
|
+
{ timeoutMs: options.timeoutMs }
|
|
147
|
+
);
|
|
148
|
+
isWritePending = false;
|
|
149
|
+
} catch (error) {
|
|
150
|
+
if (retryCount >= maxChunkRetries || !isRetryableFileWriteTimeout(error)) throw error;
|
|
151
|
+
retryCount += 1;
|
|
152
|
+
options.throwIfAborted?.();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
options.throwIfAborted?.();
|
|
156
|
+
lastMessage = response.message;
|
|
157
|
+
const rawProcessedByte = response.message?.processed_byte;
|
|
158
|
+
const processedByte = Number(rawProcessedByte);
|
|
159
|
+
if (
|
|
160
|
+
rawProcessedByte !== undefined &&
|
|
161
|
+
(!Number.isFinite(processedByte) ||
|
|
162
|
+
processedByte <= offset ||
|
|
163
|
+
processedByte > offset + chunk.byteLength)
|
|
164
|
+
) {
|
|
165
|
+
throw ERRORS.TypedError(
|
|
166
|
+
HardwareErrorCode.RuntimeError,
|
|
167
|
+
`FilesystemFileWrite invalid processed_byte ${processedByte}`
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
written =
|
|
171
|
+
rawProcessedByte === undefined ? written + chunk.byteLength : processedByte - startOffset;
|
|
172
|
+
chunks += 1;
|
|
173
|
+
const elapsedMs = Date.now() - startTime;
|
|
174
|
+
const transferredBytes = Math.min(written, dataLength);
|
|
175
|
+
options.onProgress?.({
|
|
176
|
+
progress: getConfirmedProgress(startOffset + written, totalSize, written, dataLength),
|
|
177
|
+
transferredBytes,
|
|
178
|
+
totalBytes: dataLength,
|
|
179
|
+
rateBytesPerSecond:
|
|
180
|
+
elapsedMs > 0 ? Math.round((transferredBytes / elapsedMs) * 1000) : undefined,
|
|
181
|
+
elapsedMs,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return {
|
|
186
|
+
...lastMessage,
|
|
187
|
+
path: options.path,
|
|
188
|
+
offset: startOffset,
|
|
189
|
+
total_size: totalSize,
|
|
190
|
+
processed_byte: startOffset + written,
|
|
191
|
+
chunks,
|
|
192
|
+
};
|
|
193
|
+
}
|
package/src/api/index.ts
CHANGED
|
@@ -3,10 +3,12 @@ export { default as preInitialize } from './device/PreInitialize';
|
|
|
3
3
|
|
|
4
4
|
export { default as searchDevices } from './SearchDevices';
|
|
5
5
|
export { default as getFeatures } from './GetFeatures';
|
|
6
|
-
export { default as
|
|
6
|
+
export { default as getDeviceState } from './GetDeviceState';
|
|
7
7
|
export { default as getOnekeyFeatures } from './GetOnekeyFeatures';
|
|
8
8
|
export { default as getPassphraseState } from './GetPassphraseState';
|
|
9
|
+
export { default as openWalletSession } from './OpenWalletSession';
|
|
9
10
|
export { default as getLogs } from './GetLogs';
|
|
11
|
+
export { default as clearSessionCache } from './ClearSessionCache';
|
|
10
12
|
export { default as checkFirmwareRelease } from './CheckFirmwareRelease';
|
|
11
13
|
export { default as checkBLEFirmwareRelease } from './CheckBLEFirmwareRelease';
|
|
12
14
|
export { default as checkBridgeStatus } from './CheckBridgeStatus';
|
|
@@ -42,23 +44,21 @@ export { default as firmwareUpdateV3 } from './FirmwareUpdateV3';
|
|
|
42
44
|
export { default as firmwareUpdateV4 } from './FirmwareUpdateV4';
|
|
43
45
|
export { default as promptWebDeviceAccess } from './PromptWebDeviceAccess';
|
|
44
46
|
|
|
45
|
-
//
|
|
46
|
-
export { default as getProtoVersion } from './protocol-v2/GetProtoVersion';
|
|
47
|
-
export { default as ping } from './protocol-v2/Ping';
|
|
47
|
+
// Pro2 business API
|
|
48
48
|
export { default as deviceReboot } from './protocol-v2/DeviceReboot';
|
|
49
|
-
export { default as deviceGetDeviceInfo } from './protocol-v2/DeviceGetDeviceInfo';
|
|
50
49
|
export { default as deviceGetOnboardingStatus } from './protocol-v2/DeviceGetOnboardingStatus';
|
|
50
|
+
export { default as deviceUploadWallpaper } from './protocol-v2/DeviceUploadWallpaper';
|
|
51
|
+
// Protocol V2 development APIs. These remain public while Pro2 integration is in development.
|
|
52
|
+
export { default as deviceInfoGet } from './protocol-v2/DeviceInfoGet';
|
|
53
|
+
export { default as deviceStatusGet } from './protocol-v2/DeviceStatusGet';
|
|
54
|
+
export { default as protocolInfoRequest } from './protocol-v2/ProtocolInfoRequest';
|
|
55
|
+
export { default as ping } from './protocol-v2/Ping';
|
|
51
56
|
export { default as deviceFirmwareUpdate } from './protocol-v2/DeviceFirmwareUpdate';
|
|
52
57
|
export { default as deviceGetFirmwareUpdateStatus } from './protocol-v2/DeviceGetFirmwareUpdateStatus';
|
|
53
|
-
export { default as
|
|
54
|
-
export { default as
|
|
55
|
-
export { default as
|
|
56
|
-
export { default as devGetFirmwareUpdateStatus } from './protocol-v2/DeviceGetFirmwareUpdateStatus';
|
|
57
|
-
export { default as factoryDeviceInfoSettings } from './protocol-v2/FactoryDeviceInfoSettings';
|
|
58
|
-
export { default as factoryGetDeviceInfo } from './protocol-v2/FactoryGetDeviceInfo';
|
|
59
|
-
export { default as filesystemFixPermission } from './protocol-v2/FilesystemFixPermission';
|
|
58
|
+
export { default as deviceFactoryInfoSet } from './protocol-v2/DeviceFactoryInfoSet';
|
|
59
|
+
export { default as deviceFactoryInfoGet } from './protocol-v2/DeviceFactoryInfoGet';
|
|
60
|
+
export { default as filesystemPermissionFix } from './protocol-v2/FilesystemPermissionFix';
|
|
60
61
|
export { default as filesystemFormat } from './protocol-v2/FilesystemFormat';
|
|
61
|
-
export { default as filesystemDiskControl } from './protocol-v2/FilesystemDiskControl';
|
|
62
62
|
export { default as fileRead } from './FileRead';
|
|
63
63
|
export { default as fileWrite } from './FileWrite';
|
|
64
64
|
export { default as fileDelete } from './FileDelete';
|
|
@@ -66,13 +66,7 @@ export { default as dirList } from './DirList';
|
|
|
66
66
|
export { default as dirMake } from './DirMake';
|
|
67
67
|
export { default as dirRemove } from './DirRemove';
|
|
68
68
|
export { default as pathInfo } from './PathInfo';
|
|
69
|
-
export { default as
|
|
70
|
-
export { default as filesystemFileWrite } from './FileWrite';
|
|
71
|
-
export { default as filesystemFileDelete } from './FileDelete';
|
|
72
|
-
export { default as filesystemDirList } from './DirList';
|
|
73
|
-
export { default as filesystemDirMake } from './DirMake';
|
|
74
|
-
export { default as filesystemDirRemove } from './DirRemove';
|
|
75
|
-
export { default as filesystemPathInfoQuery } from './PathInfo';
|
|
69
|
+
export { default as uploadPortfolio } from './UploadPortfolio';
|
|
76
70
|
|
|
77
71
|
export { default as cipherKeyValue } from './CipherKeyValue';
|
|
78
72
|
|