@onekeyfe/hd-core 1.1.34-alpha.3 → 1.1.34-alpha.4
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__/DeviceCommands.test.ts +0 -217
- package/__tests__/evmLedgerLegacySafety.test.ts +4 -15
- package/__tests__/evmSignTransaction.test.ts +1 -1
- package/__tests__/evmSignTypedData.test.ts +1 -1
- package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +31 -48
- package/__tests__/preInitialize.test.ts +0 -33
- package/dist/api/BaseMethod.d.ts +0 -12
- package/dist/api/BaseMethod.d.ts.map +1 -1
- package/dist/api/CheckAllFirmwareRelease.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/FirmwareUpdate.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV2.d.ts +3 -14
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV3.d.ts +3 -10
- package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
- package/dist/api/SearchDevices.d.ts +1 -5
- package/dist/api/SearchDevices.d.ts.map +1 -1
- package/dist/api/alephium/AlephiumGetAddress.d.ts +6 -2
- package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
- package/dist/api/alephium/AlephiumSignMessage.d.ts +5 -2
- package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
- package/dist/api/alephium/AlephiumSignTransaction.d.ts +8 -5
- package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
- package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
- package/dist/api/benfen/BenfenGetAddress.d.ts +9 -2
- package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
- package/dist/api/benfen/BenfenGetPublicKey.d.ts +9 -2
- package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
- package/dist/api/benfen/BenfenSignMessage.d.ts +8 -2
- package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
- package/dist/api/benfen/BenfenSignTransaction.d.ts +8 -2
- package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
- package/dist/api/btc/BTCGetAddress.d.ts +11 -1
- package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
- package/dist/api/btc/BTCGetPublicKey.d.ts +11 -1
- package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
- package/dist/api/btc/BTCSignMessage.d.ts +15 -1
- package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
- package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
- package/dist/api/btc/BTCSignTransaction.d.ts +11 -1
- package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
- package/dist/api/btc/BTCVerifyMessage.d.ts +11 -1
- package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
- package/dist/api/btc/helpers/versionLimit.d.ts +11 -2
- package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
- package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
- package/dist/api/conflux/ConfluxSignTransaction.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 +2 -1
- 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 +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/DeviceSupportFeatures.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 +1 -7
- package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
- package/dist/api/device/DeviceUploadResource.d.ts.map +1 -1
- package/dist/api/device/DeviceVerify.d.ts.map +1 -1
- package/dist/api/device/DeviceWipe.d.ts.map +1 -1
- package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
- package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
- package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
- package/dist/api/evm/EVMSignMessageEIP712.d.ts +8 -2
- package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
- package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
- package/dist/api/evm/latest/signTypedData.d.ts +1 -1
- package/dist/api/evm/latest/signTypedData.d.ts.map +1 -1
- package/dist/api/evm/latest/signTypedHash.d.ts.map +1 -1
- package/dist/api/evm/legacyV1/getAddress.d.ts.map +1 -1
- package/dist/api/evm/legacyV1/getPublicKey.d.ts.map +1 -1
- package/dist/api/evm/legacyV1/signMessage.d.ts.map +1 -1
- package/dist/api/evm/legacyV1/signTypedData.d.ts +1 -1
- package/dist/api/evm/legacyV1/signTypedData.d.ts.map +1 -1
- package/dist/api/evm/legacyV1/signTypedHash.d.ts.map +1 -1
- package/dist/api/evm/legacyV1/verifyMessage.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +1 -10
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
- package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -1
- package/dist/api/firmware/getBinary.d.ts +0 -11
- package/dist/api/firmware/getBinary.d.ts.map +1 -1
- package/dist/api/firmware/updateBootloader.d.ts +0 -2
- package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts +1 -9
- package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
- package/dist/api/helpers/batchGetPublickeys.d.ts +0 -3
- package/dist/api/helpers/batchGetPublickeys.d.ts.map +1 -1
- package/dist/api/index.d.ts +0 -29
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
- package/dist/api/lightning/LnurlAuth.d.ts +0 -4
- package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
- package/dist/api/neo/NeoGetAddress.d.ts +8 -2
- package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
- package/dist/api/neo/NeoSignTransaction.d.ts +8 -2
- package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
- package/dist/api/nervos/NervosGetAddress.d.ts +9 -2
- package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
- package/dist/api/nervos/NervosSignTransaction.d.ts +12 -9
- package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
- package/dist/api/nexa/NexaGetAddress.d.ts +8 -2
- package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
- package/dist/api/nexa/NexaSignTransaction.d.ts +9 -2
- package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
- package/dist/api/polkadot/PolkadotGetAddress.d.ts +0 -3
- package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
- package/dist/api/polkadot/networks.d.ts +0 -3
- package/dist/api/polkadot/networks.d.ts.map +1 -1
- package/dist/api/scdo/ScdoGetAddress.d.ts +6 -2
- package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
- package/dist/api/scdo/ScdoSignMessage.d.ts +5 -2
- package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
- package/dist/api/scdo/ScdoSignTransaction.d.ts +5 -2
- package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
- package/dist/api/solana/SolGetAddress.d.ts +0 -1
- package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
- package/dist/api/solana/SolSignMessage.d.ts +0 -3
- package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
- package/dist/api/solana/SolSignOffchainMessage.d.ts +0 -3
- package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
- package/dist/api/solana/SolSignTransaction.d.ts +0 -6
- package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
- package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
- package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
- package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
- package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
- package/dist/api/sui/SuiGetAddress.d.ts +0 -3
- package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
- package/dist/api/sui/SuiGetPublicKey.d.ts +0 -3
- package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
- package/dist/api/sui/SuiSignMessage.d.ts +0 -3
- package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
- package/dist/api/sui/SuiSignTransaction.d.ts +2 -5
- package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
- package/dist/api/ton/TonGetAddress.d.ts +0 -3
- package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
- package/dist/api/ton/TonSignData.d.ts +0 -1
- package/dist/api/ton/TonSignData.d.ts.map +1 -1
- package/dist/api/ton/TonSignMessage.d.ts +0 -3
- package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
- package/dist/api/ton/TonSignProof.d.ts +0 -3
- package/dist/api/ton/TonSignProof.d.ts.map +1 -1
- package/dist/api/tron/TronSignMessage.d.ts +0 -3
- package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
- package/dist/api/tron/TronSignTransaction.d.ts +0 -3
- package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
- package/dist/api/utils.d.ts +1 -2
- package/dist/api/utils.d.ts.map +1 -1
- package/dist/constants/index.d.ts +1 -2
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/core/RequestQueue.d.ts +1 -19
- package/dist/core/RequestQueue.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/data-manager/DataManager.d.ts +5 -9
- package/dist/data-manager/DataManager.d.ts.map +1 -1
- package/dist/data-manager/MessagesConfig.d.ts +2 -2
- package/dist/data-manager/MessagesConfig.d.ts.map +1 -1
- package/dist/data-manager/TransportManager.d.ts +4 -5
- package/dist/data-manager/TransportManager.d.ts.map +1 -1
- package/dist/data-manager/connectSettings.d.ts.map +1 -1
- package/dist/device/Device.d.ts +16 -60
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts +14 -16
- package/dist/device/DeviceCommands.d.ts.map +1 -1
- package/dist/device/DeviceConnector.d.ts +1 -2
- package/dist/device/DeviceConnector.d.ts.map +1 -1
- package/dist/device/DevicePool.d.ts +2 -4
- package/dist/device/DevicePool.d.ts.map +1 -1
- package/dist/events/call.d.ts +0 -7
- package/dist/events/call.d.ts.map +1 -1
- package/dist/events/core.d.ts +2 -2
- package/dist/events/core.d.ts.map +1 -1
- package/dist/events/device.d.ts +2 -11
- package/dist/events/device.d.ts.map +1 -1
- package/dist/events/iframe.d.ts +0 -1
- package/dist/events/iframe.d.ts.map +1 -1
- package/dist/events/logBlockEvent.d.ts +0 -1
- package/dist/events/logBlockEvent.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +2 -26
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +451 -1797
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5556 -26855
- package/dist/inject.d.ts +2 -3
- package/dist/inject.d.ts.map +1 -1
- package/dist/lowLevelInject.d.ts +1 -2
- package/dist/lowLevelInject.d.ts.map +1 -1
- package/dist/topLevelInject.d.ts.map +1 -1
- package/dist/types/api/checkAllFirmwareRelease.d.ts +2 -4
- package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
- package/dist/types/api/deviceSettings.d.ts +0 -9
- package/dist/types/api/deviceSettings.d.ts.map +1 -1
- package/dist/types/api/deviceUnlock.d.ts +1 -1
- package/dist/types/api/deviceUnlock.d.ts.map +1 -1
- package/dist/types/api/deviceUpdateBootloader.d.ts +1 -6
- package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
- package/dist/types/api/export.d.ts +1 -4
- package/dist/types/api/export.d.ts.map +1 -1
- package/dist/types/api/firmwareUpdate.d.ts +1 -114
- package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
- 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 +1 -2
- package/dist/types/api/getPassphraseState.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +2 -48
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/types/api/searchDevices.d.ts +2 -2
- package/dist/types/api/searchDevices.d.ts.map +1 -1
- package/dist/types/device.d.ts +5 -207
- package/dist/types/device.d.ts.map +1 -1
- package/dist/types/params.d.ts +0 -3
- package/dist/types/params.d.ts.map +1 -1
- package/dist/types/settings.d.ts +0 -33
- package/dist/types/settings.d.ts.map +1 -1
- package/dist/utils/capabilitieUtils.d.ts.map +1 -1
- package/dist/utils/deviceFeaturesUtils.d.ts +9 -17
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
- package/dist/utils/deviceInfoUtils.d.ts +8 -10
- package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
- package/dist/utils/deviceSettings.d.ts +0 -2
- package/dist/utils/deviceSettings.d.ts.map +1 -1
- package/dist/utils/deviceVersionUtils.d.ts +5 -6
- package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
- package/dist/utils/findDefectiveBatchDevice.d.ts +1 -1
- package/dist/utils/homescreen.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -3
- package/dist/utils/index.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/tracing.d.ts.map +1 -1
- package/dist/utils/versionUtils.d.ts +1 -1
- package/package.json +4 -4
- package/src/api/BaseMethod.ts +23 -60
- package/src/api/CheckAllFirmwareRelease.ts +3 -16
- package/src/api/CheckBootloaderRelease.ts +2 -1
- package/src/api/CheckFirmwareRelease.ts +2 -1
- package/src/api/FirmwareUpdate.ts +7 -15
- package/src/api/FirmwareUpdateV2.ts +148 -354
- package/src/api/FirmwareUpdateV3.ts +62 -376
- package/src/api/GetFeatures.ts +4 -12
- package/src/api/GetOnekeyFeatures.ts +3 -15
- package/src/api/GetPassphraseState.ts +10 -9
- package/src/api/PromptWebDeviceAccess.ts +1 -10
- package/src/api/SearchDevices.ts +3 -33
- package/src/api/alephium/AlephiumGetAddress.ts +2 -6
- package/src/api/alephium/AlephiumSignMessage.ts +1 -6
- package/src/api/alephium/AlephiumSignTransaction.ts +4 -15
- package/src/api/allnetwork/AllNetworkGetAddressBase.ts +21 -25
- package/src/api/aptos/AptosGetAddress.ts +3 -2
- package/src/api/benfen/BenfenGetAddress.ts +7 -11
- package/src/api/benfen/BenfenGetPublicKey.ts +2 -6
- package/src/api/benfen/BenfenSignMessage.ts +1 -6
- package/src/api/benfen/BenfenSignTransaction.ts +1 -6
- package/src/api/btc/BTCGetPublicKey.ts +2 -3
- package/src/api/btc/BTCSignPsbt.ts +2 -1
- package/src/api/btc/helpers/versionLimit.ts +1 -7
- package/src/api/cardano/CardanoSignTransaction.ts +4 -2
- package/src/api/conflux/ConfluxSignTransaction.ts +2 -5
- package/src/api/device/DeviceCancel.ts +0 -1
- package/src/api/device/DeviceChangePin.ts +0 -24
- package/src/api/device/DeviceFullyUploadResource.ts +7 -6
- package/src/api/device/DeviceLock.ts +3 -2
- package/src/api/device/DeviceRebootToBoardloader.ts +1 -11
- package/src/api/device/DeviceRebootToBootloader.ts +1 -11
- package/src/api/device/DeviceSettings.ts +0 -121
- package/src/api/device/DeviceSupportFeatures.ts +13 -2
- package/src/api/device/DeviceUnlock.ts +0 -9
- package/src/api/device/DeviceUpdateBootloader.ts +11 -175
- package/src/api/device/DeviceUploadResource.ts +5 -4
- package/src/api/device/DeviceVerify.ts +2 -1
- package/src/api/device/DeviceWipe.ts +0 -19
- package/src/api/dynex/DnxGetAddress.ts +0 -6
- package/src/api/dynex/DnxSignTransaction.ts +0 -6
- package/src/api/evm/EVMGetAddress.ts +1 -1
- package/src/api/evm/EVMGetPublicKey.ts +4 -3
- package/src/api/evm/EVMSignMessage.ts +1 -1
- package/src/api/evm/EVMSignMessageEIP712.ts +1 -14
- package/src/api/evm/EVMSignTransaction.ts +1 -1
- package/src/api/evm/EVMSignTypedData.ts +18 -30
- package/src/api/evm/EVMVerifyMessage.ts +1 -1
- package/src/api/evm/latest/signTypedHash.ts +4 -2
- package/src/api/evm/legacyV1/getAddress.ts +3 -5
- package/src/api/evm/legacyV1/getPublicKey.ts +3 -5
- package/src/api/evm/legacyV1/signMessage.ts +3 -5
- package/src/api/evm/legacyV1/signTypedData.ts +8 -9
- package/src/api/evm/legacyV1/signTypedHash.ts +7 -7
- package/src/api/evm/legacyV1/verifyMessage.ts +3 -5
- package/src/api/firmware/FirmwareUpdateBaseMethod.ts +15 -83
- package/src/api/firmware/bootloaderHelper.ts +2 -3
- package/src/api/firmware/getBinary.ts +1 -1
- package/src/api/firmware/releaseHelper.ts +3 -3
- package/src/api/firmware/updateBootloader.ts +4 -19
- package/src/api/firmware/uploadFirmware.ts +34 -148
- package/src/api/helpers/batchGetPublickeys.ts +6 -51
- package/src/api/index.ts +0 -32
- package/src/api/kaspa/KaspaSignTransaction.ts +3 -2
- package/src/api/lightning/LnurlAuth.ts +0 -4
- package/src/api/neo/NeoGetAddress.ts +1 -6
- package/src/api/neo/NeoSignTransaction.ts +1 -6
- package/src/api/nervos/NervosGetAddress.ts +2 -6
- package/src/api/nervos/NervosSignTransaction.ts +4 -14
- package/src/api/nexa/NexaGetAddress.ts +2 -6
- package/src/api/nexa/NexaSignTransaction.ts +12 -11
- package/src/api/polkadot/networks.ts +0 -9
- package/src/api/scdo/ScdoGetAddress.ts +2 -6
- package/src/api/scdo/ScdoSignMessage.ts +1 -6
- package/src/api/scdo/ScdoSignTransaction.ts +2 -6
- package/src/api/solana/SolGetAddress.ts +0 -4
- package/src/api/solana/SolSignMessage.ts +0 -3
- package/src/api/solana/SolSignOffchainMessage.ts +0 -3
- package/src/api/solana/SolSignTransaction.ts +0 -6
- package/src/api/stellar/StellarGetAddress.ts +1 -10
- package/src/api/stellar/StellarSignTransaction.ts +1 -14
- package/src/api/sui/SuiGetAddress.ts +3 -5
- package/src/api/sui/SuiGetPublicKey.ts +0 -3
- package/src/api/sui/SuiSignMessage.ts +0 -3
- package/src/api/sui/SuiSignTransaction.ts +12 -14
- package/src/api/ton/TonGetAddress.ts +0 -3
- package/src/api/ton/TonSignData.ts +3 -6
- package/src/api/ton/TonSignMessage.ts +5 -6
- package/src/api/ton/TonSignProof.ts +0 -3
- package/src/api/tron/TronSignMessage.ts +1 -4
- package/src/api/tron/TronSignTransaction.ts +0 -3
- package/src/api/utils.ts +3 -7
- package/src/api/xrp/XrpSignTransaction.ts +1 -1
- package/src/constants/index.ts +1 -7
- package/src/core/RequestQueue.ts +4 -124
- package/src/core/index.ts +116 -255
- package/src/data-manager/DataManager.ts +49 -61
- package/src/data-manager/MessagesConfig.ts +14 -14
- package/src/data-manager/TransportManager.ts +12 -38
- package/src/data-manager/connectSettings.ts +0 -15
- package/src/device/Device.ts +164 -759
- package/src/device/DeviceCommands.ts +36 -245
- package/src/device/DeviceConnector.ts +4 -29
- package/src/device/DevicePool.ts +21 -69
- package/src/events/call.ts +0 -6
- package/src/events/core.ts +0 -2
- package/src/events/device.ts +1 -17
- package/src/events/iframe.ts +0 -1
- package/src/events/logBlockEvent.ts +0 -30
- package/src/events/ui-request.ts +2 -32
- package/src/index.ts +0 -9
- package/src/inject.ts +3 -75
- package/src/lowLevelInject.ts +1 -8
- package/src/topLevelInject.ts +1 -7
- package/src/types/api/checkAllFirmwareRelease.ts +2 -4
- package/src/types/api/deviceSettings.ts +0 -9
- package/src/types/api/deviceUnlock.ts +1 -1
- package/src/types/api/deviceUpdateBootloader.ts +1 -10
- package/src/types/api/export.ts +0 -25
- package/src/types/api/firmwareUpdate.ts +1 -163
- package/src/types/api/getFeatures.ts +0 -3
- package/src/types/api/getOnekeyFeatures.ts +0 -3
- package/src/types/api/getPassphraseState.ts +2 -10
- package/src/types/api/index.ts +2 -89
- package/src/types/api/searchDevices.ts +2 -2
- package/src/types/device.ts +5 -266
- package/src/types/params.ts +0 -11
- package/src/types/settings.ts +29 -54
- package/src/utils/capabilitieUtils.ts +2 -1
- package/src/utils/deviceFeaturesUtils.ts +84 -122
- package/src/utils/deviceInfoUtils.ts +87 -38
- package/src/utils/deviceSettings.ts +0 -48
- package/src/utils/deviceVersionUtils.ts +62 -25
- package/src/utils/findDefectiveBatchDevice.ts +8 -8
- package/src/utils/homescreen.ts +0 -10
- package/src/utils/index.ts +0 -4
- package/src/utils/tracing.ts +1 -3
- package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +0 -75
- package/__tests__/RequestQueue.test.ts +0 -140
- package/__tests__/UploadPortfolio.test.ts +0 -46
- package/__tests__/connectSettings.test.ts +0 -61
- package/__tests__/device-lifecycle-events.test.ts +0 -117
- package/__tests__/device-pool-state.test.ts +0 -132
- package/__tests__/device-settings.test.ts +0 -286
- package/__tests__/device-state-mapper.test.ts +0 -229
- package/__tests__/device-utils.test.ts +0 -106
- package/__tests__/device-wallet-session-store.test.ts +0 -191
- package/__tests__/filesystemValidation.test.ts +0 -53
- package/__tests__/firmware-update/firmware-artifact-source.test.ts +0 -119
- package/__tests__/firmware-update/firmware-checkpoint.test.ts +0 -105
- package/__tests__/firmware-update/firmware-host-binding.test.ts +0 -73
- package/__tests__/firmware-update/firmware-update-capabilities.test.ts +0 -17
- package/__tests__/firmware-update/firmware-update-plan.test.ts +0 -358
- package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +0 -200
- package/__tests__/firmware-update/firmware-update-recovery.test.ts +0 -81
- package/__tests__/firmware-update/firmware-upload-source.test.ts +0 -70
- package/__tests__/get-device-state.test.ts +0 -403
- package/__tests__/logBlockEvent.test.ts +0 -61
- package/__tests__/logger.test.ts +0 -34
- package/__tests__/open-wallet-session.test.ts +0 -565
- package/__tests__/pro2Wallpaper.test.ts +0 -39
- package/__tests__/protocol-v2-bootloader-mode.test.ts +0 -37
- package/__tests__/protocol-v2-firmware-targets.test.ts +0 -19
- package/__tests__/protocol-v2.test.ts +0 -6008
- package/__tests__/protocolV2FileWrite.test.ts +0 -67
- package/__tests__/public-pro2-api-boundary.test.ts +0 -66
- package/__tests__/search-devices.test.ts +0 -136
- package/dist/api/ClearSessionCache.d.ts +0 -9
- package/dist/api/ClearSessionCache.d.ts.map +0 -1
- package/dist/api/DirList.d.ts +0 -10
- package/dist/api/DirList.d.ts.map +0 -1
- package/dist/api/DirMake.d.ts +0 -9
- package/dist/api/DirMake.d.ts.map +0 -1
- package/dist/api/DirRemove.d.ts +0 -9
- package/dist/api/DirRemove.d.ts.map +0 -1
- package/dist/api/FileDelete.d.ts +0 -9
- package/dist/api/FileDelete.d.ts.map +0 -1
- package/dist/api/FileRead.d.ts +0 -19
- package/dist/api/FileRead.d.ts.map +0 -1
- package/dist/api/FileWrite.d.ts +0 -25
- package/dist/api/FileWrite.d.ts.map +0 -1
- package/dist/api/FirmwareUpdateV4.d.ts +0 -75
- package/dist/api/FirmwareUpdateV4.d.ts.map +0 -1
- package/dist/api/GetDeviceState.d.ts +0 -7
- package/dist/api/GetDeviceState.d.ts.map +0 -1
- package/dist/api/OpenWalletSession.d.ts +0 -14
- package/dist/api/OpenWalletSession.d.ts.map +0 -1
- package/dist/api/PathInfo.d.ts +0 -10
- package/dist/api/PathInfo.d.ts.map +0 -1
- package/dist/api/UploadPortfolio.d.ts +0 -18
- package/dist/api/UploadPortfolio.d.ts.map +0 -1
- package/dist/api/firmware/FirmwareArtifactSource.d.ts +0 -26
- package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +0 -1
- package/dist/api/firmware/FirmwareCheckpoint.d.ts +0 -15
- package/dist/api/firmware/FirmwareCheckpoint.d.ts.map +0 -1
- package/dist/api/firmware/FirmwareHostBinding.d.ts +0 -6
- package/dist/api/firmware/FirmwareHostBinding.d.ts.map +0 -1
- package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +0 -3
- package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +0 -1
- package/dist/api/firmware/FirmwareUpdatePlan.d.ts +0 -29
- package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +0 -1
- package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +0 -25
- package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +0 -1
- package/dist/api/firmware/progressThrottle.d.ts +0 -3
- package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
- package/dist/api/helpers/filesystemValidation.d.ts +0 -10
- package/dist/api/helpers/filesystemValidation.d.ts.map +0 -1
- package/dist/api/helpers/protocolV2FileWrite.d.ts +0 -33
- package/dist/api/helpers/protocolV2FileWrite.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +0 -6
- package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +0 -7
- package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +0 -7
- package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +0 -7
- package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +0 -6
- package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceInfoGet.d.ts +0 -28
- package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceReboot.d.ts +0 -7
- package/dist/api/protocol-v2/DeviceReboot.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceSessionOpen.d.ts +0 -28
- package/dist/api/protocol-v2/DeviceSessionOpen.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +0 -6
- package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +0 -16
- package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +0 -12
- package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceStatusGet.d.ts +0 -6
- package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +0 -1
- package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +0 -26
- package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +0 -1
- package/dist/api/protocol-v2/FilesystemFormat.d.ts +0 -6
- package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +0 -1
- package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +0 -6
- package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +0 -1
- package/dist/api/protocol-v2/Ping.d.ts +0 -8
- package/dist/api/protocol-v2/Ping.d.ts.map +0 -1
- package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +0 -6
- package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +0 -1
- package/dist/api/protocol-v2/helpers.d.ts +0 -42
- package/dist/api/protocol-v2/helpers.d.ts.map +0 -1
- package/dist/core/deviceEventRegistration.d.ts +0 -11
- package/dist/core/deviceEventRegistration.d.ts.map +0 -1
- package/dist/device/DeviceFeaturesState.d.ts +0 -4
- package/dist/device/DeviceFeaturesState.d.ts.map +0 -1
- package/dist/device/DeviceStateMapper.d.ts +0 -13
- package/dist/device/DeviceStateMapper.d.ts.map +0 -1
- package/dist/device/DeviceStateProjector.d.ts +0 -7
- package/dist/device/DeviceStateProjector.d.ts.map +0 -1
- package/dist/device/DeviceStateStore.d.ts +0 -21
- package/dist/device/DeviceStateStore.d.ts.map +0 -1
- package/dist/device/DeviceWalletSessionStore.d.ts +0 -15
- package/dist/device/DeviceWalletSessionStore.d.ts.map +0 -1
- package/dist/device/cloneDeviceState.d.ts +0 -2
- package/dist/device/cloneDeviceState.d.ts.map +0 -1
- package/dist/device/deviceIdentity.d.ts +0 -5
- package/dist/device/deviceIdentity.d.ts.map +0 -1
- package/dist/deviceProfile/buildDeviceFeatures.d.ts +0 -12
- package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +0 -1
- package/dist/deviceProfile/index.d.ts +0 -2
- package/dist/deviceProfile/index.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/deviceSession.d.ts +0 -7
- package/dist/protocols/protocol-v2/deviceSession.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/features.d.ts +0 -88
- package/dist/protocols/protocol-v2/features.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/firmware.d.ts +0 -15
- package/dist/protocols/protocol-v2/firmware.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/index.d.ts +0 -5
- package/dist/protocols/protocol-v2/index.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/lockedError.d.ts +0 -2
- package/dist/protocols/protocol-v2/lockedError.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +0 -16
- package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/uiInteraction.d.ts +0 -39
- package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/unlockRetry.d.ts +0 -11
- package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +0 -1
- package/dist/protocols/protocol-v2/walletSession.d.ts +0 -21
- package/dist/protocols/protocol-v2/walletSession.d.ts.map +0 -1
- package/dist/types/api/firmwareUpdateCapabilities.d.ts +0 -13
- package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +0 -1
- package/dist/types/api/firmwareUpdatePlan.d.ts +0 -35
- package/dist/types/api/firmwareUpdatePlan.d.ts.map +0 -1
- package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +0 -43
- package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +0 -1
- package/dist/types/api/getDeviceState.d.ts +0 -12
- package/dist/types/api/getDeviceState.d.ts.map +0 -1
- package/dist/types/api/openWalletSession.d.ts +0 -35
- package/dist/types/api/openWalletSession.d.ts.map +0 -1
- package/dist/types/api/protocolV2.d.ts +0 -113
- package/dist/types/api/protocolV2.d.ts.map +0 -1
- package/dist/types/api/sessionCache.d.ts +0 -10
- package/dist/types/api/sessionCache.d.ts.map +0 -1
- package/dist/utils/deviceFeaturesCompat.d.ts +0 -13
- package/dist/utils/deviceFeaturesCompat.d.ts.map +0 -1
- package/dist/utils/pro2Wallpaper.d.ts +0 -12
- package/dist/utils/pro2Wallpaper.d.ts.map +0 -1
- package/src/api/ClearSessionCache.ts +0 -28
- package/src/api/DirList.ts +0 -33
- package/src/api/DirMake.ts +0 -23
- package/src/api/DirRemove.ts +0 -23
- package/src/api/FileDelete.ts +0 -23
- package/src/api/FileRead.ts +0 -183
- package/src/api/FileWrite.ts +0 -71
- package/src/api/FirmwareUpdateV4.ts +0 -2279
- package/src/api/GetDeviceState.ts +0 -55
- package/src/api/OpenWalletSession.ts +0 -211
- package/src/api/PathInfo.ts +0 -41
- package/src/api/UploadPortfolio.ts +0 -50
- package/src/api/firmware/FirmwareArtifactSource.ts +0 -278
- package/src/api/firmware/FirmwareCheckpoint.ts +0 -188
- package/src/api/firmware/FirmwareHostBinding.ts +0 -108
- package/src/api/firmware/FirmwareUpdateCapabilities.ts +0 -13
- package/src/api/firmware/FirmwareUpdatePlan.ts +0 -729
- package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +0 -403
- package/src/api/firmware/progressThrottle.ts +0 -44
- package/src/api/helpers/filesystemValidation.ts +0 -112
- package/src/api/helpers/protocolV2FileWrite.ts +0 -193
- package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +0 -20
- package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +0 -32
- package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +0 -61
- package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +0 -55
- package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +0 -18
- package/src/api/protocol-v2/DeviceInfoGet.ts +0 -145
- package/src/api/protocol-v2/DeviceReboot.ts +0 -26
- package/src/api/protocol-v2/DeviceSessionOpen.ts +0 -102
- package/src/api/protocol-v2/DeviceSettingsGet.ts +0 -18
- package/src/api/protocol-v2/DeviceSettingsPageShow.ts +0 -70
- package/src/api/protocol-v2/DeviceSettingsSet.ts +0 -44
- package/src/api/protocol-v2/DeviceStatusGet.ts +0 -16
- package/src/api/protocol-v2/DeviceUploadWallpaper.ts +0 -131
- package/src/api/protocol-v2/FilesystemFormat.ts +0 -19
- package/src/api/protocol-v2/FilesystemPermissionFix.ts +0 -16
- package/src/api/protocol-v2/Ping.ts +0 -18
- package/src/api/protocol-v2/ProtocolInfoRequest.ts +0 -16
- package/src/api/protocol-v2/helpers.ts +0 -203
- package/src/core/deviceEventRegistration.ts +0 -23
- package/src/data/messages/messages-protocol-v2.json +0 -13544
- package/src/device/DeviceFeaturesState.ts +0 -34
- package/src/device/DeviceStateMapper.ts +0 -348
- package/src/device/DeviceStateProjector.ts +0 -95
- package/src/device/DeviceStateStore.ts +0 -201
- package/src/device/DeviceWalletSessionStore.ts +0 -78
- package/src/device/cloneDeviceState.ts +0 -39
- package/src/device/deviceIdentity.ts +0 -18
- package/src/deviceProfile/buildDeviceFeatures.ts +0 -391
- package/src/deviceProfile/index.ts +0 -4
- package/src/protocols/protocol-v2/deviceSession.ts +0 -24
- package/src/protocols/protocol-v2/features.ts +0 -163
- package/src/protocols/protocol-v2/firmware.ts +0 -21
- package/src/protocols/protocol-v2/index.ts +0 -18
- package/src/protocols/protocol-v2/lockedError.ts +0 -10
- package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +0 -61
- package/src/protocols/protocol-v2/uiInteraction.ts +0 -210
- package/src/protocols/protocol-v2/unlockRetry.ts +0 -76
- package/src/protocols/protocol-v2/walletSession.ts +0 -202
- package/src/types/api/firmwareUpdateCapabilities.ts +0 -13
- package/src/types/api/firmwareUpdatePlan.ts +0 -52
- package/src/types/api/firmwareUpdatePreparedPlan.ts +0 -55
- package/src/types/api/getDeviceState.ts +0 -19
- package/src/types/api/openWalletSession.ts +0 -54
- package/src/types/api/protocolV2.ts +0 -244
- package/src/types/api/sessionCache.ts +0 -14
- package/src/utils/deviceFeaturesCompat.ts +0 -173
- package/src/utils/pro2Wallpaper.ts +0 -109
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { ERRORS, HardwareError, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
2
|
-
import { DeviceSessionOpen_FailureSubCodes } from '@onekeyfe/hd-transport';
|
|
3
2
|
|
|
4
3
|
import TransportManager from '../data-manager/TransportManager';
|
|
5
4
|
import DataManager from '../data-manager/DataManager';
|
|
6
|
-
import { LoggerNames, getLogger, patchFeatures } from '../utils';
|
|
5
|
+
import { LoggerNames, getDeviceType, getLogger, patchFeatures } from '../utils';
|
|
7
6
|
import { DEVICE, type PassphraseRequestPayload } from '../events';
|
|
8
7
|
import { DeviceModelToTypes } from '../types';
|
|
9
8
|
import {
|
|
@@ -13,12 +12,7 @@ import {
|
|
|
13
12
|
} from '../utils/tracing';
|
|
14
13
|
|
|
15
14
|
import type { Device } from './Device';
|
|
16
|
-
import type {
|
|
17
|
-
FailureType,
|
|
18
|
-
Messages,
|
|
19
|
-
Transport,
|
|
20
|
-
TransportCallOptions,
|
|
21
|
-
} from '@onekeyfe/hd-transport';
|
|
15
|
+
import type { FailureType, Messages, Transport } from '@onekeyfe/hd-transport';
|
|
22
16
|
|
|
23
17
|
export type PassphrasePromptResponse = {
|
|
24
18
|
passphrase?: string;
|
|
@@ -28,137 +22,15 @@ export type PassphrasePromptResponse = {
|
|
|
28
22
|
};
|
|
29
23
|
|
|
30
24
|
type MessageType = Messages.MessageType;
|
|
31
|
-
type MessageKey =
|
|
25
|
+
type MessageKey = keyof MessageType;
|
|
32
26
|
export type TypedResponseMessage<T extends MessageKey> = {
|
|
33
27
|
type: T;
|
|
34
28
|
message: MessageType[T];
|
|
35
29
|
};
|
|
36
30
|
type TypedCallResponseMap = {
|
|
37
|
-
[K in
|
|
38
|
-
};
|
|
39
|
-
export type DefaultMessageResponse = TypedCallResponseMap[MessageKey];
|
|
40
|
-
|
|
41
|
-
const MAX_DEBUG_ARRAY_ITEMS = 20;
|
|
42
|
-
const MAX_DEBUG_OBJECT_KEYS = 40;
|
|
43
|
-
const MAX_DEBUG_STRING_LENGTH = 512;
|
|
44
|
-
const MAX_DEBUG_DEPTH = 4;
|
|
45
|
-
const HIGH_VOLUME_DEBUG_CALLS = new Set([
|
|
46
|
-
'FilesystemFileRead',
|
|
47
|
-
'FilesystemFileWrite',
|
|
48
|
-
'FileRead',
|
|
49
|
-
'FileWrite',
|
|
50
|
-
'EmmcFileRead',
|
|
51
|
-
'EmmcFileWrite',
|
|
52
|
-
'FirmwareUpload',
|
|
53
|
-
'ResourceAck',
|
|
54
|
-
]);
|
|
55
|
-
|
|
56
|
-
function shouldReduceDebugForCall(type: string) {
|
|
57
|
-
return HIGH_VOLUME_DEBUG_CALLS.has(type);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function getBinaryByteLength(value: unknown): number | undefined {
|
|
61
|
-
if (value instanceof ArrayBuffer) {
|
|
62
|
-
return value.byteLength;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (ArrayBuffer.isView(value)) {
|
|
66
|
-
return value.byteLength;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (typeof Blob !== 'undefined' && value instanceof Blob) {
|
|
70
|
-
return value.size;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function summarizeRedactedData(value: unknown): string {
|
|
77
|
-
const byteLength = getBinaryByteLength(value);
|
|
78
|
-
if (byteLength !== undefined) {
|
|
79
|
-
return `[redacted data: ${byteLength} bytes]`;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (typeof value === 'string') {
|
|
83
|
-
return `[redacted data: string length=${value.length}]`;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (Array.isArray(value)) {
|
|
87
|
-
return `[redacted data: array length=${value.length}]`;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
if (value && typeof value === 'object') {
|
|
91
|
-
return `[redacted data: object keys=${Object.keys(value).length}]`;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return `[redacted data: ${typeof value}]`;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function sanitizeDebugPayload(value: unknown, key = '', depth = 0): unknown {
|
|
98
|
-
if (key === 'data' && value !== null && value !== undefined) {
|
|
99
|
-
return summarizeRedactedData(value);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Redact passphrase-bearing keys as defense in depth so commands such as
|
|
103
|
-
// Protocol V2 DeviceSessionOpen can never write hidden-wallet secrets to logs.
|
|
104
|
-
if (key && /passphrase/i.test(key)) {
|
|
105
|
-
return '[redacted passphrase]';
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const byteLength = getBinaryByteLength(value);
|
|
109
|
-
if (byteLength !== undefined) {
|
|
110
|
-
return `[binary: ${byteLength} bytes]`;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (typeof value === 'string') {
|
|
114
|
-
return value.length > MAX_DEBUG_STRING_LENGTH
|
|
115
|
-
? `${value.slice(0, MAX_DEBUG_STRING_LENGTH)}... (len=${value.length})`
|
|
116
|
-
: value;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (!value || typeof value !== 'object') {
|
|
120
|
-
return value;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (depth >= MAX_DEBUG_DEPTH) {
|
|
124
|
-
return Array.isArray(value)
|
|
125
|
-
? `[array length=${value.length}]`
|
|
126
|
-
: `[object keys=${Object.keys(value).length}]`;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if (Array.isArray(value)) {
|
|
130
|
-
const items = value
|
|
131
|
-
.slice(0, MAX_DEBUG_ARRAY_ITEMS)
|
|
132
|
-
.map(item => sanitizeDebugPayload(item, key, depth + 1));
|
|
133
|
-
if (value.length > MAX_DEBUG_ARRAY_ITEMS) {
|
|
134
|
-
items.push(`... (${value.length - MAX_DEBUG_ARRAY_ITEMS} more)`);
|
|
135
|
-
}
|
|
136
|
-
return items;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const entries = Object.entries(value).slice(0, MAX_DEBUG_OBJECT_KEYS);
|
|
140
|
-
const sanitized: Record<string, unknown> = {};
|
|
141
|
-
entries.forEach(([entryKey, entryValue]) => {
|
|
142
|
-
sanitized[entryKey] = sanitizeDebugPayload(entryValue, entryKey, depth + 1);
|
|
143
|
-
});
|
|
144
|
-
if (Object.keys(value).length > MAX_DEBUG_OBJECT_KEYS) {
|
|
145
|
-
sanitized.__truncated__ = `${Object.keys(value).length - MAX_DEBUG_OBJECT_KEYS} more keys`;
|
|
146
|
-
}
|
|
147
|
-
return sanitized;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Interactive acknowledgements must not inherit timeoutMs from the original call.
|
|
152
|
-
* User confirmation and PIN/passphrase entry have unbounded think time. Preserve only
|
|
153
|
-
* response-related options such as expectedTypes and intermediateTypes.
|
|
154
|
-
*/
|
|
155
|
-
const stripInteractiveAckTimeout = (
|
|
156
|
-
options?: TransportCallOptions
|
|
157
|
-
): TransportCallOptions | undefined => {
|
|
158
|
-
if (!options) return options;
|
|
159
|
-
const { timeoutMs: _timeoutMs, ...rest } = options;
|
|
160
|
-
return rest;
|
|
31
|
+
[K in keyof MessageType]: TypedResponseMessage<K>;
|
|
161
32
|
};
|
|
33
|
+
export type DefaultMessageResponse = TypedCallResponseMap[keyof MessageType];
|
|
162
34
|
|
|
163
35
|
const assertType = (res: DefaultMessageResponse, resType: string | string[]) => {
|
|
164
36
|
const splitResTypes = Array.isArray(resType) ? resType : resType.split('|');
|
|
@@ -352,21 +224,17 @@ export class DeviceCommands {
|
|
|
352
224
|
// Sends an async message to the opened device.
|
|
353
225
|
async call(
|
|
354
226
|
type: MessageKey,
|
|
355
|
-
msg
|
|
356
|
-
options?: TransportCallOptions
|
|
227
|
+
msg: DefaultMessageResponse['message'] = {}
|
|
357
228
|
): Promise<DefaultMessageResponse> {
|
|
358
|
-
|
|
359
|
-
if (!shouldReduceDebug) {
|
|
360
|
-
Log.debug('[DeviceCommands] [call] Sending', type);
|
|
361
|
-
}
|
|
229
|
+
Log.debug('[DeviceCommands] [call] Sending', type);
|
|
362
230
|
|
|
363
231
|
try {
|
|
364
|
-
const promise = this.transport.call(this.mainId, type, msg
|
|
232
|
+
const promise = this.transport.call(this.mainId, type, msg) as any;
|
|
365
233
|
this.callPromise = promise;
|
|
366
234
|
const res = await promise;
|
|
367
235
|
if (res.type === 'Failure') {
|
|
368
236
|
LogCore.debug('[DeviceCommands] [call] Received', res.type, res.message);
|
|
369
|
-
} else
|
|
237
|
+
} else {
|
|
370
238
|
LogCore.debug('[DeviceCommands] [call] Received', res.type);
|
|
371
239
|
}
|
|
372
240
|
return res;
|
|
@@ -415,22 +283,19 @@ export class DeviceCommands {
|
|
|
415
283
|
typedCall<T extends MessageKey, R extends MessageKey[]>(
|
|
416
284
|
type: T,
|
|
417
285
|
resType: R,
|
|
418
|
-
msg?: MessageType[T]
|
|
419
|
-
options?: TransportCallOptions
|
|
286
|
+
msg?: MessageType[T]
|
|
420
287
|
): Promise<TypedCallResponseMap[R[number]]>;
|
|
421
288
|
|
|
422
289
|
typedCall<T extends MessageKey, R extends MessageKey>(
|
|
423
290
|
type: T,
|
|
424
291
|
resType: R,
|
|
425
|
-
msg?: MessageType[T]
|
|
426
|
-
options?: TransportCallOptions
|
|
292
|
+
msg?: MessageType[T]
|
|
427
293
|
): Promise<TypedResponseMessage<R>>;
|
|
428
294
|
|
|
429
295
|
async typedCall(
|
|
430
296
|
type: MessageKey,
|
|
431
297
|
resType: MessageKey | MessageKey[],
|
|
432
|
-
msg?: DefaultMessageResponse['message']
|
|
433
|
-
options?: TransportCallOptions
|
|
298
|
+
msg?: DefaultMessageResponse['message']
|
|
434
299
|
) {
|
|
435
300
|
if (this.disposed) {
|
|
436
301
|
throw ERRORS.TypedError(
|
|
@@ -446,30 +311,17 @@ export class DeviceCommands {
|
|
|
446
311
|
'PinMatrixAck',
|
|
447
312
|
'PassphraseAck',
|
|
448
313
|
'Cancel',
|
|
449
|
-
'DeviceSessionOpen',
|
|
450
314
|
'BixinPinInputOnDevice',
|
|
451
|
-
'FilesystemFileRead',
|
|
452
|
-
'FilesystemFileWrite',
|
|
453
|
-
'FileRead',
|
|
454
|
-
'FileWrite',
|
|
455
|
-
'EmmcFileRead',
|
|
456
|
-
'EmmcFileWrite',
|
|
457
|
-
'FirmwareUpload',
|
|
458
|
-
'ResourceAck',
|
|
459
315
|
] as any;
|
|
460
316
|
if (!skipTypes.includes(type) && msg) {
|
|
461
317
|
// Use debug channel to avoid noise escalation
|
|
462
|
-
Log.debug('[DeviceCommands] [typedCall] Sending payload', type,
|
|
318
|
+
Log.debug('[DeviceCommands] [typedCall] Sending payload', type, msg);
|
|
463
319
|
}
|
|
464
320
|
} catch (e) {
|
|
465
321
|
// ignore logging errors
|
|
466
322
|
}
|
|
467
323
|
|
|
468
|
-
const
|
|
469
|
-
const response = await this._commonCall(type, msg, {
|
|
470
|
-
...options,
|
|
471
|
-
expectedTypes: options?.expectedTypes ?? expectedTypes,
|
|
472
|
-
});
|
|
324
|
+
const response = await this._commonCall(type, msg);
|
|
473
325
|
try {
|
|
474
326
|
assertType(response, resType);
|
|
475
327
|
} catch (error) {
|
|
@@ -482,12 +334,6 @@ export class DeviceCommands {
|
|
|
482
334
|
// throw bridge network error
|
|
483
335
|
if (error instanceof HardwareError) {
|
|
484
336
|
if (error.errorCode === HardwareErrorCode.ResponseUnexpectTypeError) {
|
|
485
|
-
Log.debug('[DeviceCommands] [typedCall] Unexpected response type', {
|
|
486
|
-
request: type,
|
|
487
|
-
expected: resType,
|
|
488
|
-
received: response.type,
|
|
489
|
-
response: sanitizeDebugPayload(response.message),
|
|
490
|
-
});
|
|
491
337
|
// Do not intercept CallMethodError
|
|
492
338
|
// Do not intercept “assertType: Response of unexpected type” error
|
|
493
339
|
// Blocking the above two messages will not know what the specific error message is, and the specific error should be handled by the subsequent business logic.
|
|
@@ -501,7 +347,7 @@ export class DeviceCommands {
|
|
|
501
347
|
if (error.message.indexOf('BridgeDeviceDisconnected') > -1) {
|
|
502
348
|
throw ERRORS.TypedError(HardwareErrorCode.BridgeDeviceDisconnected);
|
|
503
349
|
}
|
|
504
|
-
throw
|
|
350
|
+
throw ERRORS.TypedError(HardwareErrorCode.ResponseUnexpectTypeError);
|
|
505
351
|
}
|
|
506
352
|
} else {
|
|
507
353
|
// throw error anyway, next call should be resolved properly// throw error anyway, next call should be resolved properly
|
|
@@ -511,27 +357,20 @@ export class DeviceCommands {
|
|
|
511
357
|
return response;
|
|
512
358
|
}
|
|
513
359
|
|
|
514
|
-
async _commonCall(
|
|
515
|
-
type
|
|
516
|
-
|
|
517
|
-
options?: TransportCallOptions
|
|
518
|
-
) {
|
|
519
|
-
const resp = await this.call(type, msg, options);
|
|
520
|
-
return this._filterCommonTypes(resp, type, options);
|
|
360
|
+
async _commonCall(type: MessageKey, msg?: DefaultMessageResponse['message']) {
|
|
361
|
+
const resp = await this.call(type, msg);
|
|
362
|
+
return this._filterCommonTypes(resp, type);
|
|
521
363
|
}
|
|
522
364
|
|
|
523
365
|
_filterCommonTypes(
|
|
524
366
|
res: DefaultMessageResponse,
|
|
525
|
-
callType: MessageKey
|
|
526
|
-
options?: TransportCallOptions
|
|
367
|
+
callType: MessageKey
|
|
527
368
|
): Promise<DefaultMessageResponse> {
|
|
528
369
|
try {
|
|
529
|
-
if (
|
|
530
|
-
|
|
531
|
-
} else if (DataManager.getSettings('env') === 'react-native') {
|
|
532
|
-
Log.debug('_filterCommonTypes: ', JSON.stringify(sanitizeDebugPayload(res)));
|
|
370
|
+
if (DataManager.getSettings('env') === 'react-native') {
|
|
371
|
+
Log.debug('_filterCommonTypes: ', JSON.stringify(res));
|
|
533
372
|
} else {
|
|
534
|
-
Log.debug('_filterCommonTypes: ',
|
|
373
|
+
Log.debug('_filterCommonTypes: ', res);
|
|
535
374
|
}
|
|
536
375
|
} catch (error) {
|
|
537
376
|
// ignore
|
|
@@ -539,9 +378,8 @@ export class DeviceCommands {
|
|
|
539
378
|
|
|
540
379
|
this.device.clearCancelableAction();
|
|
541
380
|
if (res.type === 'Failure') {
|
|
542
|
-
const { code,
|
|
381
|
+
const { code, message } = res.message as {
|
|
543
382
|
code?: string | FailureType;
|
|
544
|
-
subcode?: number;
|
|
545
383
|
message?: string;
|
|
546
384
|
};
|
|
547
385
|
let error: HardwareError | null = null;
|
|
@@ -585,25 +423,8 @@ export class DeviceCommands {
|
|
|
585
423
|
}
|
|
586
424
|
|
|
587
425
|
if (code === 'Failure_ProcessError') {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
callType === 'DeviceSessionOpen' &&
|
|
591
|
-
subcode === DeviceSessionOpen_FailureSubCodes.InvalidSession;
|
|
592
|
-
const isLegacyProtocolV2LockedFailure =
|
|
593
|
-
this.device.isProtocolV2() && /^device (?:is )?locked$/i.test(message?.trim() ?? '');
|
|
594
|
-
if (isInvalidWalletSession) {
|
|
595
|
-
error = ERRORS.TypedError(HardwareErrorCode.WalletSessionInvalid, message, {
|
|
596
|
-
failureCode: code,
|
|
597
|
-
subcode,
|
|
598
|
-
firmwareMessage: message,
|
|
599
|
-
});
|
|
600
|
-
} else if (subcode === 9 || isLegacyProtocolV2LockedFailure) {
|
|
601
|
-
error = ERRORS.TypedError(HardwareErrorCode.DeviceLocked, message, {
|
|
602
|
-
failureCode: code,
|
|
603
|
-
subcode,
|
|
604
|
-
firmwareMessage: message,
|
|
605
|
-
});
|
|
606
|
-
} else if (
|
|
426
|
+
// Handle firmware verification failures
|
|
427
|
+
if (
|
|
607
428
|
message?.includes('Bootloader file verify failed') ||
|
|
608
429
|
message?.includes('verify failed')
|
|
609
430
|
) {
|
|
@@ -640,7 +461,7 @@ export class DeviceCommands {
|
|
|
640
461
|
}
|
|
641
462
|
|
|
642
463
|
if (res.type === 'ButtonRequest') {
|
|
643
|
-
const deviceType = this.device.
|
|
464
|
+
const deviceType = getDeviceType(this.device.features);
|
|
644
465
|
if (DeviceModelToTypes.model_mini.includes(deviceType)) {
|
|
645
466
|
this.device.setCancelableAction(() => this.cancelDeviceOnOneKeyDevice());
|
|
646
467
|
} else {
|
|
@@ -651,7 +472,7 @@ export class DeviceCommands {
|
|
|
651
472
|
} else {
|
|
652
473
|
this.device.emit(DEVICE.BUTTON, this.device, res.message);
|
|
653
474
|
}
|
|
654
|
-
return this._commonCall('ButtonAck', {}
|
|
475
|
+
return this._commonCall('ButtonAck', {});
|
|
655
476
|
}
|
|
656
477
|
|
|
657
478
|
if (res.type === 'EntropyRequest') {
|
|
@@ -664,15 +485,11 @@ export class DeviceCommands {
|
|
|
664
485
|
if (pin === '@@ONEKEY_INPUT_PIN_IN_DEVICE') {
|
|
665
486
|
// only classic\1s\mini\pure
|
|
666
487
|
this.device.setCancelableAction(() => this.cancelDeviceOnOneKeyDevice());
|
|
667
|
-
return this._commonCall(
|
|
668
|
-
'BixinPinInputOnDevice',
|
|
669
|
-
{},
|
|
670
|
-
stripInteractiveAckTimeout(options)
|
|
671
|
-
).finally(() => {
|
|
488
|
+
return this._commonCall('BixinPinInputOnDevice').finally(() => {
|
|
672
489
|
this.device.clearCancelableAction();
|
|
673
490
|
});
|
|
674
491
|
}
|
|
675
|
-
return this._commonCall('PinMatrixAck', { pin }
|
|
492
|
+
return this._commonCall('PinMatrixAck', { pin });
|
|
676
493
|
},
|
|
677
494
|
error => Promise.reject(error)
|
|
678
495
|
);
|
|
@@ -680,27 +497,19 @@ export class DeviceCommands {
|
|
|
680
497
|
|
|
681
498
|
if (res.type === 'PassphraseRequest') {
|
|
682
499
|
const existsAttachPinUser = res.message.exists_attach_pin_user;
|
|
683
|
-
return this.
|
|
500
|
+
return this._promptPassphrase({
|
|
684
501
|
existsAttachPinUser,
|
|
685
502
|
}).then(response => {
|
|
686
503
|
const { passphrase, passphraseOnDevice, attachPinOnDevice } = response;
|
|
687
504
|
|
|
688
505
|
// Attach PIN on device
|
|
689
506
|
if (attachPinOnDevice && existsAttachPinUser) {
|
|
690
|
-
return this._commonCall(
|
|
691
|
-
'PassphraseAck',
|
|
692
|
-
{ on_device_attach_pin: true },
|
|
693
|
-
stripInteractiveAckTimeout(options)
|
|
694
|
-
);
|
|
507
|
+
return this._commonCall('PassphraseAck', { on_device_attach_pin: true });
|
|
695
508
|
}
|
|
696
509
|
|
|
697
510
|
return !passphraseOnDevice
|
|
698
|
-
? this._commonCall('PassphraseAck', { passphrase }
|
|
699
|
-
: this._commonCall(
|
|
700
|
-
'PassphraseAck',
|
|
701
|
-
{ on_device: true },
|
|
702
|
-
stripInteractiveAckTimeout(options)
|
|
703
|
-
);
|
|
511
|
+
? this._commonCall('PassphraseAck', { passphrase })
|
|
512
|
+
: this._commonCall('PassphraseAck', { on_device: true });
|
|
704
513
|
});
|
|
705
514
|
}
|
|
706
515
|
|
|
@@ -778,27 +587,10 @@ export class DeviceCommands {
|
|
|
778
587
|
});
|
|
779
588
|
}
|
|
780
589
|
|
|
781
|
-
|
|
782
|
-
options: PassphraseRequestPayload,
|
|
783
|
-
promptOptions: { cancelDeviceOnReject?: boolean } = {}
|
|
784
|
-
) {
|
|
590
|
+
_promptPassphrase(options: PassphraseRequestPayload) {
|
|
785
591
|
return new Promise<PassphrasePromptResponse>((resolve, reject) => {
|
|
786
|
-
const cancelAndReject = (_error?: Error) =>
|
|
787
|
-
|
|
788
|
-
reject(
|
|
789
|
-
ERRORS.TypedError(
|
|
790
|
-
HardwareErrorCode.CallQueueActionCancelled,
|
|
791
|
-
`${DEVICE.PASSPHRASE} canceled`
|
|
792
|
-
)
|
|
793
|
-
);
|
|
794
|
-
};
|
|
795
|
-
|
|
796
|
-
if (promptOptions.cancelDeviceOnReject === false) {
|
|
797
|
-
rejectWithCancelledError();
|
|
798
|
-
return Promise.resolve();
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
return cancelDeviceInPrompt(this.device, false)
|
|
592
|
+
const cancelAndReject = (_error?: Error) =>
|
|
593
|
+
cancelDeviceInPrompt(this.device, false)
|
|
802
594
|
.then(onCancel => {
|
|
803
595
|
const error = ERRORS.TypedError(
|
|
804
596
|
HardwareErrorCode.CallQueueActionCancelled,
|
|
@@ -815,7 +607,6 @@ export class DeviceCommands {
|
|
|
815
607
|
.catch(error => {
|
|
816
608
|
reject(error);
|
|
817
609
|
});
|
|
818
|
-
};
|
|
819
610
|
|
|
820
611
|
if (this.device.listenerCount(DEVICE.PASSPHRASE) > 0) {
|
|
821
612
|
this.device.setCancelableAction(cancelAndReject);
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
2
|
-
|
|
3
1
|
import { safeThrowError } from '../constants';
|
|
4
2
|
import { DataManager } from '../data-manager';
|
|
5
3
|
import TransportManager from '../data-manager/TransportManager';
|
|
@@ -8,7 +6,6 @@ import { resolveAfter } from '../utils/promiseUtils';
|
|
|
8
6
|
import { LoggerNames, getLogger } from '../utils';
|
|
9
7
|
|
|
10
8
|
import type { DeviceDescriptorDiff } from './DevicePool';
|
|
11
|
-
import type { HardwareConnectProtocol } from '@onekeyfe/hd-shared';
|
|
12
9
|
import type { OneKeyDeviceInfo as DeviceDescriptor, Transport } from '@onekeyfe/hd-transport';
|
|
13
10
|
|
|
14
11
|
const Log = getLogger(LoggerNames.DeviceConnector);
|
|
@@ -78,37 +75,15 @@ export default class DeviceConnector {
|
|
|
78
75
|
this.listening = false;
|
|
79
76
|
}
|
|
80
77
|
|
|
81
|
-
async acquire(
|
|
82
|
-
path
|
|
83
|
-
session?: string | null,
|
|
84
|
-
forceCleanRunPromise?: boolean,
|
|
85
|
-
connectProtocol?: HardwareConnectProtocol
|
|
86
|
-
) {
|
|
87
|
-
Log.debug('acquire', path, session, connectProtocol);
|
|
78
|
+
async acquire(path: string, session?: string | null, forceCleanRunPromise?: boolean) {
|
|
79
|
+
Log.debug('acquire', path, session);
|
|
88
80
|
const env = DataManager.getSettings('env');
|
|
89
81
|
try {
|
|
90
82
|
let res;
|
|
91
83
|
if (DataManager.isBleConnect(env)) {
|
|
92
|
-
res = await this.transport.acquire({
|
|
93
|
-
uuid: path,
|
|
94
|
-
forceCleanRunPromise,
|
|
95
|
-
expectedProtocol: connectProtocol,
|
|
96
|
-
});
|
|
84
|
+
res = await this.transport.acquire({ uuid: path, forceCleanRunPromise });
|
|
97
85
|
} else {
|
|
98
|
-
res = await this.transport.acquire({
|
|
99
|
-
path,
|
|
100
|
-
previous: session ?? null,
|
|
101
|
-
expectedProtocol: connectProtocol,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
if (connectProtocol) {
|
|
105
|
-
const detectedProtocol = this.transport.getProtocolType(path);
|
|
106
|
-
if (detectedProtocol !== connectProtocol) {
|
|
107
|
-
throw ERRORS.TypedError(
|
|
108
|
-
HardwareErrorCode.RuntimeError,
|
|
109
|
-
`Device protocol mismatch: expected ${connectProtocol}, detected ${detectedProtocol}`
|
|
110
|
-
);
|
|
111
|
-
}
|
|
86
|
+
res = await this.transport.acquire({ path, previous: session ?? null });
|
|
112
87
|
}
|
|
113
88
|
return res;
|
|
114
89
|
} catch (error) {
|
package/src/device/DevicePool.ts
CHANGED
|
@@ -3,7 +3,7 @@ import EventEmitter from 'events';
|
|
|
3
3
|
// eslint-disable-next-line import/no-cycle
|
|
4
4
|
import { Device } from './Device';
|
|
5
5
|
import { DEVICE } from '../events';
|
|
6
|
-
import { LoggerNames, getLogger } from '../utils';
|
|
6
|
+
import { LoggerNames, getDeviceUUID, getLogger } from '../utils';
|
|
7
7
|
|
|
8
8
|
import type { InitOptions } from './Device';
|
|
9
9
|
import type { OneKeyDeviceInfo as DeviceDescriptor } from '@onekeyfe/hd-transport';
|
|
@@ -106,32 +106,26 @@ export class DevicePool extends EventEmitter {
|
|
|
106
106
|
if (exist) {
|
|
107
107
|
// Log.debug('find existed Device: ', connectId);
|
|
108
108
|
device.updateDescriptor(exist, true);
|
|
109
|
-
await this._refreshRuntimeState(device, initOptions);
|
|
110
109
|
devices[connectId] = device;
|
|
111
110
|
deviceList.push(device);
|
|
112
|
-
await this._checkDevicePool(initOptions
|
|
111
|
+
await this._checkDevicePool(initOptions);
|
|
113
112
|
return { devices, deviceList };
|
|
114
113
|
}
|
|
115
114
|
Log.debug('found device in cache, but path is different: ', connectId);
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
117
|
|
|
119
|
-
const
|
|
120
|
-
? descriptorList.find(descriptor => descriptor.path === connectId)
|
|
121
|
-
: undefined;
|
|
122
|
-
const descriptorsToInitialize = matchedDescriptor ? [matchedDescriptor] : descriptorList;
|
|
123
|
-
|
|
124
|
-
for await (const descriptor of descriptorsToInitialize) {
|
|
118
|
+
for await (const descriptor of descriptorList) {
|
|
125
119
|
const device = await this._createDevice(descriptor, initOptions);
|
|
126
120
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (this.devicesCache[
|
|
130
|
-
const cache = this.devicesCache[
|
|
121
|
+
if (device.features) {
|
|
122
|
+
const uuid = getDeviceUUID(device.features);
|
|
123
|
+
if (this.devicesCache[uuid]) {
|
|
124
|
+
const cache = this.devicesCache[uuid];
|
|
131
125
|
cache.updateDescriptor(descriptor, true);
|
|
132
126
|
}
|
|
133
|
-
this.devicesCache[
|
|
134
|
-
devices[
|
|
127
|
+
this.devicesCache[uuid] = device;
|
|
128
|
+
devices[uuid] = device;
|
|
135
129
|
}
|
|
136
130
|
|
|
137
131
|
deviceList.push(device);
|
|
@@ -139,7 +133,7 @@ export class DevicePool extends EventEmitter {
|
|
|
139
133
|
// Log.debug('get devices result : ', devices, deviceList);
|
|
140
134
|
// console.log('device poll -> connected: ', this.connectedPool);
|
|
141
135
|
// console.log('device poll -> disconnected: ', this.disconnectPool);
|
|
142
|
-
await this._checkDevicePool(initOptions
|
|
136
|
+
await this._checkDevicePool(initOptions);
|
|
143
137
|
return { devices, deviceList };
|
|
144
138
|
}
|
|
145
139
|
|
|
@@ -156,74 +150,33 @@ export class DevicePool extends EventEmitter {
|
|
|
156
150
|
if (!device) {
|
|
157
151
|
device = Device.fromDescriptor(descriptor);
|
|
158
152
|
device.deviceConnector = this.connector;
|
|
159
|
-
await device.connect(
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (initOptions?.refreshRuntimeState && device.isProtocolV2()) {
|
|
163
|
-
await this._refreshProtocolV2DiscoveryState(device);
|
|
164
|
-
}
|
|
165
|
-
} finally {
|
|
166
|
-
await device.release();
|
|
167
|
-
}
|
|
153
|
+
await device.connect();
|
|
154
|
+
await device.initialize(initOptions);
|
|
155
|
+
await device.release();
|
|
168
156
|
}
|
|
169
157
|
return device;
|
|
170
158
|
}
|
|
171
159
|
|
|
172
|
-
static async
|
|
173
|
-
|
|
174
|
-
let refreshError: unknown;
|
|
175
|
-
await device.run(
|
|
176
|
-
async () => {
|
|
177
|
-
try {
|
|
178
|
-
await this._refreshProtocolV2DiscoveryState(device);
|
|
179
|
-
} catch (error) {
|
|
180
|
-
// Device.run releases after the callback; then propagate the actual read error.
|
|
181
|
-
refreshError = error;
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
{ connectProtocol: initOptions.connectProtocol }
|
|
185
|
-
);
|
|
186
|
-
if (refreshError instanceof Error) throw refreshError;
|
|
187
|
-
if (refreshError) throw new Error(String(refreshError));
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Device lists require live mode and name data. A status failure remains a connection
|
|
192
|
-
* error; settings only supplies a label, so its failure retains the existing name.
|
|
193
|
-
* Device.getDeviceState skips unsupported status/settings calls in loader mode.
|
|
194
|
-
*/
|
|
195
|
-
static async _refreshProtocolV2DiscoveryState(device: Device) {
|
|
196
|
-
await device.getDeviceState({ refreshSections: ['status'] });
|
|
197
|
-
try {
|
|
198
|
-
await device.getDeviceState({ refreshSections: ['settings'] });
|
|
199
|
-
} catch (error) {
|
|
200
|
-
Log.debug('Unable to refresh Protocol V2 device label during discovery', error);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
static async _checkDevicePool(initOptions?: InitOptions, connectId?: string) {
|
|
205
|
-
await this._sendConnectMessage(initOptions, connectId);
|
|
160
|
+
static async _checkDevicePool(initOptions?: InitOptions) {
|
|
161
|
+
await this._sendConnectMessage(initOptions);
|
|
206
162
|
this._sendDisconnectMessage();
|
|
207
163
|
}
|
|
208
164
|
|
|
209
|
-
static async _sendConnectMessage(initOptions?: InitOptions
|
|
165
|
+
static async _sendConnectMessage(initOptions?: InitOptions) {
|
|
210
166
|
for (let i = this.connectedPool.length - 1; i >= 0; i--) {
|
|
211
167
|
const descriptor = this.connectedPool[i];
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
this.connectedPool.splice(i, 1);
|
|
217
|
-
}
|
|
168
|
+
const device = await this._createDevice(descriptor, initOptions);
|
|
169
|
+
Log.debug('emit DEVICE.CONNECT: ', device?.features);
|
|
170
|
+
this.emitter.emit(DEVICE.CONNECT, device);
|
|
171
|
+
this.connectedPool.splice(i, 1);
|
|
218
172
|
}
|
|
219
173
|
}
|
|
220
174
|
|
|
221
175
|
static _sendDisconnectMessage() {
|
|
222
176
|
for (let i = this.disconnectPool.length - 1; i >= 0; i--) {
|
|
223
|
-
const descriptor = this.
|
|
177
|
+
const descriptor = this.connectedPool[i];
|
|
224
178
|
const device = descriptor?.path ? this.getDeviceByPath(descriptor.path) : null;
|
|
225
179
|
if (device) {
|
|
226
|
-
device.markTransportDisconnected();
|
|
227
180
|
this.emitter.emit(DEVICE.DISCONNECT, device);
|
|
228
181
|
}
|
|
229
182
|
this.disconnectPool.splice(i, 1);
|
|
@@ -263,7 +216,6 @@ export class DevicePool extends EventEmitter {
|
|
|
263
216
|
}
|
|
264
217
|
|
|
265
218
|
Log.debug('emit DEVICE.DISCONNECT: ', device.features);
|
|
266
|
-
device.markTransportDisconnected();
|
|
267
219
|
this.emitter.emit(DEVICE.DISCONNECT, device);
|
|
268
220
|
});
|
|
269
221
|
}
|
package/src/events/call.ts
CHANGED
|
@@ -53,12 +53,6 @@ export interface IFrameCancelMessage {
|
|
|
53
53
|
payload: { connectId?: string };
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
export interface IFrameCancelOperationMessage {
|
|
57
|
-
event: typeof IFRAME.CANCEL_OPERATION;
|
|
58
|
-
type: typeof IFRAME.CANCEL_OPERATION;
|
|
59
|
-
payload: { operationId: string };
|
|
60
|
-
}
|
|
61
|
-
|
|
62
56
|
export interface IFrameSwitchTransportMessage {
|
|
63
57
|
event: typeof IFRAME.SWITCH_TRANSPORT;
|
|
64
58
|
type: typeof IFRAME.SWITCH_TRANSPORT;
|
package/src/events/core.ts
CHANGED
|
@@ -5,7 +5,6 @@ import type {
|
|
|
5
5
|
IFrameCallMessage,
|
|
6
6
|
IFrameCallbackMessage,
|
|
7
7
|
IFrameCancelMessage,
|
|
8
|
-
IFrameCancelOperationMessage,
|
|
9
8
|
IFrameSwitchTransportMessage,
|
|
10
9
|
} from './call';
|
|
11
10
|
import type { DeviceEventMessage } from './device';
|
|
@@ -24,7 +23,6 @@ export type CoreMessage = {
|
|
|
24
23
|
| IFrameEventMessage
|
|
25
24
|
| IFrameCallMessage
|
|
26
25
|
| IFrameCancelMessage
|
|
27
|
-
| IFrameCancelOperationMessage
|
|
28
26
|
| IFrameSwitchTransportMessage
|
|
29
27
|
| IFrameCallbackMessage
|
|
30
28
|
| UiResponseMessage
|