@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
|
@@ -5,11 +5,12 @@ import { UI_REQUEST } from '../../constants/ui-request';
|
|
|
5
5
|
import { BaseMethod } from '../BaseMethod';
|
|
6
6
|
import { getSysResourceBinary } from '../firmware/getBinary';
|
|
7
7
|
import { updateResources } from '../firmware/uploadFirmware';
|
|
8
|
+
import { getDeviceFirmwareVersion, getDeviceType, getFirmwareType } from '../../utils';
|
|
8
9
|
import { createUiMessage } from '../../events/ui-request';
|
|
9
10
|
import { DataManager } from '../../data-manager';
|
|
10
11
|
|
|
11
12
|
import type { Deferred } from '@onekeyfe/hd-shared';
|
|
12
|
-
import type { KnownDevice } from '../../types';
|
|
13
|
+
import type { Features, KnownDevice } from '../../types';
|
|
13
14
|
import type { DeviceFullyUploadResourceParams } from '../../types/api/deviceFullyUploadResource';
|
|
14
15
|
|
|
15
16
|
export default class DeviceFullyUploadResource extends BaseMethod {
|
|
@@ -32,12 +33,12 @@ export default class DeviceFullyUploadResource extends BaseMethod {
|
|
|
32
33
|
);
|
|
33
34
|
};
|
|
34
35
|
|
|
35
|
-
isSupportResourceUpdate(updateType: string) {
|
|
36
|
+
isSupportResourceUpdate(features: Features, updateType: string) {
|
|
36
37
|
if (updateType !== 'firmware') return false;
|
|
37
38
|
|
|
38
|
-
const deviceType =
|
|
39
|
+
const deviceType = getDeviceType(features);
|
|
39
40
|
const isTouchMode = deviceType === EDeviceType.Touch || deviceType === EDeviceType.Pro;
|
|
40
|
-
const currentVersion =
|
|
41
|
+
const currentVersion = getDeviceFirmwareVersion(features).join('.');
|
|
41
42
|
|
|
42
43
|
return isTouchMode && semver.gte(currentVersion, '3.4.0');
|
|
43
44
|
}
|
|
@@ -48,10 +49,10 @@ export default class DeviceFullyUploadResource extends BaseMethod {
|
|
|
48
49
|
|
|
49
50
|
const payload = this.payload as DeviceFullyUploadResourceParams;
|
|
50
51
|
|
|
51
|
-
const deviceFirmwareType =
|
|
52
|
+
const deviceFirmwareType = getFirmwareType(features);
|
|
52
53
|
const firmwareType = payload.firmwareType ?? deviceFirmwareType;
|
|
53
54
|
|
|
54
|
-
if (!
|
|
55
|
+
if (!features?.bootloader_mode && features) {
|
|
55
56
|
// check & upgrade firmware resource
|
|
56
57
|
if (features) {
|
|
57
58
|
let { binary } = this.payload;
|
|
@@ -5,10 +5,11 @@ import type { LockDevice } from '@onekeyfe/hd-transport';
|
|
|
5
5
|
export default class DeviceLock extends BaseMethod<LockDevice> {
|
|
6
6
|
init() {
|
|
7
7
|
this.useDevicePassphraseState = false;
|
|
8
|
-
this.unlockPolicy = 'none';
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
async run() {
|
|
12
|
-
|
|
11
|
+
const res = await this.device.commands.typedCall('LockDevice', 'Success');
|
|
12
|
+
|
|
13
|
+
return Promise.resolve(res.message);
|
|
13
14
|
}
|
|
14
15
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { DeviceRebootType } from '@onekeyfe/hd-transport';
|
|
2
|
-
|
|
3
1
|
import { BaseMethod } from '../BaseMethod';
|
|
4
2
|
|
|
5
3
|
import type { RebootToBoardloaderParams } from '../../types/api/deviceRebootToBoardloader';
|
|
@@ -23,18 +21,10 @@ export default class DeviceRebootToBoardloader extends BaseMethod<RebootToBoardl
|
|
|
23
21
|
}
|
|
24
22
|
|
|
25
23
|
async run() {
|
|
26
|
-
// Protocol V2 submodule firmware uses DeviceReboot with reboot_type enum.
|
|
27
|
-
if (this.device.isProtocolV2()) {
|
|
28
|
-
const res = await this.device.commands.typedCall('DeviceReboot', 'Success', {
|
|
29
|
-
reboot_type: DeviceRebootType.Romloader,
|
|
30
|
-
});
|
|
31
|
-
this.device.markProtocolV2Reboot(DeviceRebootType.Romloader);
|
|
32
|
-
return Promise.resolve(res.message);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
24
|
// On Touch devices, messsage code 904 is RebootToBoardloader
|
|
36
25
|
// so BininOutMessageSE message code 904 is used here
|
|
37
26
|
const res = await this.device.commands.typedCall('BixinOutMessageSE', 'Success');
|
|
27
|
+
|
|
38
28
|
return Promise.resolve(res.message);
|
|
39
29
|
}
|
|
40
30
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { DeviceRebootType } from '@onekeyfe/hd-transport';
|
|
2
|
-
|
|
3
1
|
import { BaseMethod } from '../BaseMethod';
|
|
4
2
|
|
|
5
3
|
import type { RebootToBootloader } from '@onekeyfe/hd-transport';
|
|
@@ -23,16 +21,8 @@ export default class DeviceRebootToBootloader extends BaseMethod<RebootToBootloa
|
|
|
23
21
|
}
|
|
24
22
|
|
|
25
23
|
async run() {
|
|
26
|
-
// Protocol V2 submodule firmware uses DeviceReboot with reboot_type enum.
|
|
27
|
-
if (this.device.isProtocolV2()) {
|
|
28
|
-
const res = await this.device.commands.typedCall('DeviceReboot', 'Success', {
|
|
29
|
-
reboot_type: DeviceRebootType.Bootloader,
|
|
30
|
-
});
|
|
31
|
-
this.device.markProtocolV2Reboot(DeviceRebootType.Bootloader);
|
|
32
|
-
return Promise.resolve(res.message);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
24
|
const res = await this.device.commands.typedCall('RebootToBootloader', 'Success');
|
|
25
|
+
|
|
36
26
|
return Promise.resolve(res.message);
|
|
37
27
|
}
|
|
38
28
|
}
|
|
@@ -1,31 +1,10 @@
|
|
|
1
1
|
import { HardwareErrorCode, TypedError } from '@onekeyfe/hd-shared';
|
|
2
|
-
import { DeviceSettingsPage } from '@onekeyfe/hd-transport';
|
|
3
2
|
|
|
4
3
|
import { BaseMethod } from '../BaseMethod';
|
|
5
|
-
import { invalidParameter } from '../helpers/filesystemValidation';
|
|
6
4
|
import { validateParams } from '../helpers/paramsValidator';
|
|
7
|
-
import {
|
|
8
|
-
mapApplySettingsToState,
|
|
9
|
-
mapCommonSettingsToProtocolV2,
|
|
10
|
-
mapDeviceSettingsToState,
|
|
11
|
-
} from '../../device/DeviceStateMapper';
|
|
12
|
-
import { getProtocolV2SettingsBehavior } from '../../protocols/protocol-v2/settingsUnlockPolicy';
|
|
13
5
|
import { LANGUAGE_LABELS } from '../../utils/deviceSettings';
|
|
14
6
|
|
|
15
7
|
import type { ApplySettings } from '@onekeyfe/hd-transport';
|
|
16
|
-
import type { DeviceSettingsParams } from '../../types/api/deviceSettings';
|
|
17
|
-
|
|
18
|
-
const settingsPageForPayload = (
|
|
19
|
-
payload: DeviceSettingsParams
|
|
20
|
-
): DeviceSettingsPage.DevicePassphrase | DeviceSettingsPage.DeviceAirgap | undefined => {
|
|
21
|
-
if (payload.usePassphrase !== undefined) {
|
|
22
|
-
return DeviceSettingsPage.DevicePassphrase;
|
|
23
|
-
}
|
|
24
|
-
if (payload.airgapMode !== undefined) {
|
|
25
|
-
return DeviceSettingsPage.DeviceAirgap;
|
|
26
|
-
}
|
|
27
|
-
return undefined;
|
|
28
|
-
};
|
|
29
8
|
|
|
30
9
|
export default class DeviceSettings extends BaseMethod<ApplySettings> {
|
|
31
10
|
init() {
|
|
@@ -45,16 +24,7 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
|
|
|
45
24
|
{ name: 'experimentalFeatures', type: 'boolean' },
|
|
46
25
|
{ name: 'autoShutdownDelayMs', type: 'number' },
|
|
47
26
|
{ name: 'changeBrightness', type: 'boolean' },
|
|
48
|
-
{ name: 'brightness', type: 'number' },
|
|
49
27
|
{ name: 'hapticFeedback', type: 'boolean' },
|
|
50
|
-
{ name: 'bluetoothEnabled', type: 'boolean' },
|
|
51
|
-
{ name: 'airgapMode', type: 'boolean' },
|
|
52
|
-
{ name: 'animationEnabled', type: 'boolean' },
|
|
53
|
-
{ name: 'tapToWake', type: 'boolean' },
|
|
54
|
-
{ name: 'deviceNameDisplayEnabled', type: 'boolean' },
|
|
55
|
-
{ name: 'fidoEnabled', type: 'boolean' },
|
|
56
|
-
{ name: 'usbLockEnabled', type: 'boolean' },
|
|
57
|
-
{ name: 'randomKeypad', type: 'boolean' },
|
|
58
28
|
]);
|
|
59
29
|
|
|
60
30
|
// init params
|
|
@@ -75,28 +45,6 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
|
|
|
75
45
|
: undefined),
|
|
76
46
|
haptic_feedback: this.payload.hapticFeedback,
|
|
77
47
|
};
|
|
78
|
-
const page = settingsPageForPayload(this.payload);
|
|
79
|
-
const directSettings = mapCommonSettingsToProtocolV2(this.payload);
|
|
80
|
-
const hasConflictingPages =
|
|
81
|
-
this.payload.usePassphrase !== undefined && this.payload.airgapMode !== undefined;
|
|
82
|
-
const combinesPageWithDirectSettings =
|
|
83
|
-
page !== undefined && Object.keys(directSettings).length > 0;
|
|
84
|
-
if (hasConflictingPages || combinesPageWithDirectSettings) {
|
|
85
|
-
// V1 may still accept passphrase plus direct settings. Suppress only the
|
|
86
|
-
// Protocol V2 pre-run interaction; run() returns the protocol-specific error.
|
|
87
|
-
this.unlockPolicy = 'none';
|
|
88
|
-
this.protocolV2UiInteraction = undefined;
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const behavior =
|
|
92
|
-
page === undefined
|
|
93
|
-
? getProtocolV2SettingsBehavior({
|
|
94
|
-
kind: 'direct',
|
|
95
|
-
settings: directSettings,
|
|
96
|
-
})
|
|
97
|
-
: getProtocolV2SettingsBehavior({ kind: 'page', page });
|
|
98
|
-
this.unlockPolicy = behavior.unlockPolicy;
|
|
99
|
-
this.protocolV2UiInteraction = behavior.uiInteraction;
|
|
100
48
|
}
|
|
101
49
|
|
|
102
50
|
getVersionRange() {
|
|
@@ -112,78 +60,9 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
|
|
|
112
60
|
|
|
113
61
|
async run() {
|
|
114
62
|
try {
|
|
115
|
-
if (this.device.isProtocolV2()) {
|
|
116
|
-
const settings = mapCommonSettingsToProtocolV2(this.payload);
|
|
117
|
-
const requestedPassphrase = this.payload.usePassphrase;
|
|
118
|
-
const requestedAirgap = this.payload.airgapMode;
|
|
119
|
-
const hasPassphrasePage = requestedPassphrase !== undefined;
|
|
120
|
-
const hasAirgapPage = requestedAirgap !== undefined;
|
|
121
|
-
|
|
122
|
-
if (hasPassphrasePage && hasAirgapPage) {
|
|
123
|
-
throw invalidParameter(
|
|
124
|
-
'Protocol V2 passphrase and air-gap settings must be changed in separate calls.'
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
if ((hasPassphrasePage || hasAirgapPage) && Object.keys(settings).length > 0) {
|
|
128
|
-
throw invalidParameter(
|
|
129
|
-
'Protocol V2 on-device settings must not be combined with direct settings.'
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
if (requestedPassphrase !== undefined) {
|
|
133
|
-
const current = await this.device.getDeviceState({ refreshSections: ['status'] });
|
|
134
|
-
if (current.status.passphraseProtection === requestedPassphrase) {
|
|
135
|
-
return { message: 'Settings already match requested value.' };
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const res = await this.device.commands.typedCall('DeviceSettingsPageShow', 'Success', {
|
|
139
|
-
page: DeviceSettingsPage.DevicePassphrase,
|
|
140
|
-
});
|
|
141
|
-
const updated = await this.device.getDeviceState({ refreshSections: ['status'] });
|
|
142
|
-
if (updated.status.passphraseProtection !== requestedPassphrase) {
|
|
143
|
-
throw TypedError(
|
|
144
|
-
HardwareErrorCode.RuntimeError,
|
|
145
|
-
'Protocol V2 passphrase setting did not reach the requested value.'
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
return res.message;
|
|
149
|
-
}
|
|
150
|
-
if (requestedAirgap !== undefined) {
|
|
151
|
-
const current = await this.device.getDeviceState({ refreshSections: ['settings'] });
|
|
152
|
-
if (current.settings.airgapMode === requestedAirgap) {
|
|
153
|
-
return { message: 'Settings already match requested value.' };
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const res = await this.device.commands.typedCall('DeviceSettingsPageShow', 'Success', {
|
|
157
|
-
page: DeviceSettingsPage.DeviceAirgap,
|
|
158
|
-
});
|
|
159
|
-
const updated = await this.device.getDeviceState({ refreshSections: ['settings'] });
|
|
160
|
-
if (updated.settings.airgapMode !== requestedAirgap) {
|
|
161
|
-
throw TypedError(
|
|
162
|
-
HardwareErrorCode.RuntimeError,
|
|
163
|
-
'Protocol V2 air-gap setting did not reach the requested value.'
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
return res.message;
|
|
167
|
-
}
|
|
168
|
-
if (Object.keys(settings).length === 0) {
|
|
169
|
-
throw invalidParameter('No Protocol V2 compatible setting provided.');
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
const res = await this.device.commands.typedCall('DeviceSettingsSet', 'Success', {
|
|
173
|
-
settings,
|
|
174
|
-
});
|
|
175
|
-
this.device.updateState(mapDeviceSettingsToState(settings), 'apply-settings');
|
|
176
|
-
return res.message;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
if (this.payload.airgapMode !== undefined) {
|
|
180
|
-
throw invalidParameter('Air-gap settings are not supported by Protocol V1.');
|
|
181
|
-
}
|
|
182
|
-
|
|
183
63
|
const res = await this.device.commands.typedCall('ApplySettings', 'Success', {
|
|
184
64
|
...this.params,
|
|
185
65
|
});
|
|
186
|
-
this.device.updateState(mapApplySettingsToState(this.params), 'apply-settings');
|
|
187
66
|
return res.message;
|
|
188
67
|
} catch (error) {
|
|
189
68
|
if (error.message?.toLowerCase().includes('no setting provided')) {
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
supportInputPinOnSoftware,
|
|
5
|
+
supportModifyHomescreen,
|
|
6
|
+
} from '../../utils/deviceFeaturesUtils';
|
|
1
7
|
import { BaseMethod } from '../BaseMethod';
|
|
2
8
|
|
|
3
9
|
export default class DeviceSupportFeatures extends BaseMethod {
|
|
@@ -7,8 +13,13 @@ export default class DeviceSupportFeatures extends BaseMethod {
|
|
|
7
13
|
}
|
|
8
14
|
|
|
9
15
|
run() {
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
if (!this.device.features)
|
|
17
|
+
return Promise.reject(
|
|
18
|
+
ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'Device not initialized')
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
const inputPinOnSoftware = supportInputPinOnSoftware(this.device.features);
|
|
22
|
+
const modifyHomescreen = supportModifyHomescreen(this.device.features);
|
|
12
23
|
return Promise.resolve({
|
|
13
24
|
inputPinOnSoftware,
|
|
14
25
|
modifyHomescreen,
|
|
@@ -5,15 +5,6 @@ import type { LockDevice } from '@onekeyfe/hd-transport';
|
|
|
5
5
|
export default class DeviceUnlock extends BaseMethod<LockDevice> {
|
|
6
6
|
init() {
|
|
7
7
|
this.useDevicePassphraseState = false;
|
|
8
|
-
this.unlockPolicy = 'none';
|
|
9
|
-
this.protocolV2UiInteraction = {
|
|
10
|
-
request: 'pin',
|
|
11
|
-
source: 'method-lifecycle',
|
|
12
|
-
reason: 'device-unlock',
|
|
13
|
-
completion: 'operation-completed',
|
|
14
|
-
deviceOnly: true,
|
|
15
|
-
operation: 'unlock-device',
|
|
16
|
-
};
|
|
17
8
|
}
|
|
18
9
|
|
|
19
10
|
async run() {
|
|
@@ -5,20 +5,16 @@ import { UI_REQUEST } from '../../constants/ui-request';
|
|
|
5
5
|
import { FirmwareUpdateTipMessage } from '../../events/ui-request';
|
|
6
6
|
import { FirmwareUpdateBaseMethod } from '../firmware/FirmwareUpdateBaseMethod';
|
|
7
7
|
import { getSysResourceBinary } from '../firmware/getBinary';
|
|
8
|
-
import { updateBootloader
|
|
8
|
+
import { updateBootloader } from '../firmware/uploadFirmware';
|
|
9
9
|
import { DeviceModelToTypes } from '../../types';
|
|
10
10
|
import { DataManager } from '../../data-manager';
|
|
11
|
-
import { checkBootloaderLength
|
|
12
|
-
import {
|
|
13
|
-
import { FirmwareCheckpointWriter } from '../firmware/FirmwareCheckpoint';
|
|
14
|
-
import { resolveFirmwareUpdateHostBinding } from '../firmware/FirmwareHostBinding';
|
|
15
|
-
import { assertFirmwareUpdatePreparedPlanBinding } from '../firmware/FirmwareUpdatePreparedPlan';
|
|
11
|
+
import { checkBootloaderLength } from '../firmware/updateBootloader';
|
|
12
|
+
import { getDeviceType, getFirmwareType } from '../../utils';
|
|
16
13
|
|
|
17
14
|
import type { DeviceUpdateBootloaderParams } from '../../types/api/deviceUpdateBootloader';
|
|
18
15
|
import type { EFirmwareType } from '@onekeyfe/hd-shared';
|
|
19
16
|
import type { Device } from '../../device/Device';
|
|
20
17
|
import type { Features } from '../../types';
|
|
21
|
-
import type { FirmwareByteSource } from '../firmware/FirmwareArtifactSource';
|
|
22
18
|
|
|
23
19
|
export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any> {
|
|
24
20
|
init() {
|
|
@@ -48,94 +44,17 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
|
|
|
48
44
|
return true;
|
|
49
45
|
}
|
|
50
46
|
|
|
51
|
-
async updateBootloaderWithEmmcFileWriteFromSource(_device: Device, source: FirmwareByteSource) {
|
|
52
|
-
const filePath = '0:boot/bootloader.bin';
|
|
53
|
-
|
|
54
|
-
this.postTipMessage(FirmwareUpdateTipMessage.StartTransferData);
|
|
55
|
-
await this.emmcCommonUpdateProcessFromSource({
|
|
56
|
-
source,
|
|
57
|
-
filePath,
|
|
58
|
-
});
|
|
59
|
-
this.postTipMessage(FirmwareUpdateTipMessage.ConfirmOnDevice);
|
|
60
|
-
await this.reboot(RebootType.Normal);
|
|
61
|
-
this.postTipMessage(FirmwareUpdateTipMessage.UpdateBootloaderSuccess);
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
47
|
async updateTouchBootloader({
|
|
66
48
|
device,
|
|
67
49
|
features,
|
|
68
50
|
firmwareType,
|
|
69
|
-
binary: preparedBinary,
|
|
70
|
-
source: preparedSource,
|
|
71
|
-
checkpointWriter,
|
|
72
51
|
}: {
|
|
73
52
|
device: Device;
|
|
74
53
|
features?: Features;
|
|
75
54
|
firmwareType: EFirmwareType;
|
|
76
|
-
binary?: ArrayBuffer;
|
|
77
|
-
source?: FirmwareByteSource;
|
|
78
|
-
checkpointWriter: FirmwareCheckpointWriter;
|
|
79
55
|
}) {
|
|
80
|
-
|
|
81
|
-
if (!(await checkBootloaderSourceLength(preparedSource))) {
|
|
82
|
-
throw ERRORS.TypedError(HardwareErrorCode.CheckDownloadFileError);
|
|
83
|
-
}
|
|
84
|
-
if (features && device.isBootloader()) {
|
|
85
|
-
this.postTipMessage(FirmwareUpdateTipMessage.UpdateBootloader);
|
|
86
|
-
await checkpointWriter.commit({
|
|
87
|
-
stage: 'FILE_TRANSFER_STARTED',
|
|
88
|
-
target: 'bootloader',
|
|
89
|
-
});
|
|
90
|
-
const result = await this.updateBootloaderWithEmmcFileWriteFromSource(
|
|
91
|
-
device,
|
|
92
|
-
preparedSource
|
|
93
|
-
);
|
|
94
|
-
await checkpointWriter.commit({
|
|
95
|
-
stage: 'FILE_TRANSFER_COMPLETED',
|
|
96
|
-
target: 'bootloader',
|
|
97
|
-
});
|
|
98
|
-
await checkpointWriter.commit({
|
|
99
|
-
stage: 'FINAL_VERIFIED',
|
|
100
|
-
target: 'bootloader',
|
|
101
|
-
});
|
|
102
|
-
return result;
|
|
103
|
-
}
|
|
104
|
-
if (features && !device.isBootloader()) {
|
|
105
|
-
await checkpointWriter.commit({
|
|
106
|
-
stage: 'FILE_TRANSFER_STARTED',
|
|
107
|
-
target: 'bootloader',
|
|
108
|
-
});
|
|
109
|
-
await updateBootloaderFromSource(
|
|
110
|
-
this.device.getCommands().typedCall.bind(this.device.getCommands()),
|
|
111
|
-
this.postMessage,
|
|
112
|
-
device,
|
|
113
|
-
preparedSource
|
|
114
|
-
);
|
|
115
|
-
await checkpointWriter.commit({
|
|
116
|
-
stage: 'FILE_TRANSFER_COMPLETED',
|
|
117
|
-
target: 'bootloader',
|
|
118
|
-
});
|
|
119
|
-
await checkpointWriter.commit({
|
|
120
|
-
stage: 'FINAL_VERIFIED',
|
|
121
|
-
target: 'bootloader',
|
|
122
|
-
});
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
let binary = preparedBinary;
|
|
56
|
+
let { binary } = this.payload;
|
|
128
57
|
if (!binary) {
|
|
129
|
-
if (DataManager.getSettings('firmwareManifestMode') === 'external-only') {
|
|
130
|
-
throw ERRORS.TypedError(
|
|
131
|
-
HardwareErrorCode.RuntimeError,
|
|
132
|
-
'Bootloader must be prepared by the external firmware host',
|
|
133
|
-
{
|
|
134
|
-
firmwareUpdateCode: 'FirmwareArtifactsNotPrepared',
|
|
135
|
-
artifactName: 'bootloader',
|
|
136
|
-
}
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
58
|
this.postTipMessage(FirmwareUpdateTipMessage.CheckLatestUiResource);
|
|
140
59
|
const resourceUrl = features
|
|
141
60
|
? DataManager.getBootloaderResource(features, firmwareType)
|
|
@@ -150,50 +69,25 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
|
|
|
150
69
|
}
|
|
151
70
|
}
|
|
152
71
|
|
|
153
|
-
if (!
|
|
72
|
+
if (!checkBootloaderLength(binary)) {
|
|
154
73
|
throw ERRORS.TypedError(HardwareErrorCode.CheckDownloadFileError);
|
|
155
74
|
}
|
|
156
75
|
|
|
157
76
|
// Check if device is in bootloader mode
|
|
158
|
-
if (features &&
|
|
77
|
+
if (features && features.bootloader_mode) {
|
|
159
78
|
// Use emmcFileWrite + reboot logic for bootloader mode
|
|
160
79
|
this.postTipMessage(FirmwareUpdateTipMessage.UpdateBootloader);
|
|
161
|
-
|
|
162
|
-
stage: 'FILE_TRANSFER_STARTED',
|
|
163
|
-
target: 'bootloader',
|
|
164
|
-
});
|
|
165
|
-
const result = await this.updateBootloaderWithEmmcFileWrite(device, binary);
|
|
166
|
-
await checkpointWriter.commit({
|
|
167
|
-
stage: 'FILE_TRANSFER_COMPLETED',
|
|
168
|
-
target: 'bootloader',
|
|
169
|
-
});
|
|
170
|
-
await checkpointWriter.commit({
|
|
171
|
-
stage: 'FINAL_VERIFIED',
|
|
172
|
-
target: 'bootloader',
|
|
173
|
-
});
|
|
174
|
-
return result;
|
|
80
|
+
return this.updateBootloaderWithEmmcFileWrite(device, binary);
|
|
175
81
|
}
|
|
176
82
|
|
|
177
|
-
if (features && !
|
|
83
|
+
if (features && !features.bootloader_mode) {
|
|
178
84
|
// Use original updateBootloader logic for normal mode
|
|
179
|
-
await checkpointWriter.commit({
|
|
180
|
-
stage: 'FILE_TRANSFER_STARTED',
|
|
181
|
-
target: 'bootloader',
|
|
182
|
-
});
|
|
183
85
|
await updateBootloader(
|
|
184
86
|
this.device.getCommands().typedCall.bind(this.device.getCommands()),
|
|
185
87
|
this.postMessage,
|
|
186
88
|
device,
|
|
187
89
|
binary
|
|
188
90
|
);
|
|
189
|
-
await checkpointWriter.commit({
|
|
190
|
-
stage: 'FILE_TRANSFER_COMPLETED',
|
|
191
|
-
target: 'bootloader',
|
|
192
|
-
});
|
|
193
|
-
await checkpointWriter.commit({
|
|
194
|
-
stage: 'FINAL_VERIFIED',
|
|
195
|
-
target: 'bootloader',
|
|
196
|
-
});
|
|
197
91
|
return Promise.resolve(true);
|
|
198
92
|
}
|
|
199
93
|
}
|
|
@@ -203,71 +97,13 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
|
|
|
203
97
|
const { features } = device;
|
|
204
98
|
|
|
205
99
|
const payload = this.payload as DeviceUpdateBootloaderParams;
|
|
206
|
-
const hostBinding = payload.artifact
|
|
207
|
-
? resolveFirmwareUpdateHostBinding(payload.hostBindingGeneration)
|
|
208
|
-
: undefined;
|
|
209
|
-
const executionParams = {
|
|
210
|
-
...payload,
|
|
211
|
-
artifactReader: hostBinding?.artifactReader ?? payload.artifactReader,
|
|
212
|
-
checkpointSink: hostBinding?.checkpointSink ?? payload.checkpointSink,
|
|
213
|
-
};
|
|
214
|
-
const checkpointWriter = new FirmwareCheckpointWriter(executionParams, {
|
|
215
|
-
required: !!hostBinding,
|
|
216
|
-
});
|
|
217
|
-
if (payload.artifact) {
|
|
218
|
-
assertFirmwareUpdatePreparedPlanBinding({
|
|
219
|
-
preparedPlan: payload.preparedPlan,
|
|
220
|
-
executor: 'v2',
|
|
221
|
-
scopeTargets: ['bootloader'],
|
|
222
|
-
bindings: [
|
|
223
|
-
{
|
|
224
|
-
target: 'bootloader',
|
|
225
|
-
artifact: payload.artifact,
|
|
226
|
-
},
|
|
227
|
-
],
|
|
228
|
-
});
|
|
229
|
-
const source = await openFirmwareByteSource({
|
|
230
|
-
artifact: payload.artifact,
|
|
231
|
-
reader: executionParams.artifactReader,
|
|
232
|
-
});
|
|
233
|
-
if (!source) {
|
|
234
|
-
throw ERRORS.TypedError(
|
|
235
|
-
HardwareErrorCode.RuntimeError,
|
|
236
|
-
'Bootloader artifact is not prepared'
|
|
237
|
-
);
|
|
238
|
-
}
|
|
239
|
-
try {
|
|
240
|
-
const deviceType = device.getCurrentDeviceType();
|
|
241
|
-
const deviceFirmwareType = device.getCurrentFirmwareType();
|
|
242
|
-
const firmwareType = payload.firmwareType ?? deviceFirmwareType;
|
|
243
|
-
if (DeviceModelToTypes.model_touch.includes(deviceType)) {
|
|
244
|
-
return await this.updateTouchBootloader({
|
|
245
|
-
device,
|
|
246
|
-
features,
|
|
247
|
-
firmwareType,
|
|
248
|
-
source,
|
|
249
|
-
checkpointWriter,
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
return true;
|
|
253
|
-
} finally {
|
|
254
|
-
await source.close();
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
100
|
|
|
258
|
-
const
|
|
259
|
-
const
|
|
260
|
-
const deviceFirmwareType = device.getCurrentFirmwareType();
|
|
101
|
+
const deviceType = getDeviceType(features);
|
|
102
|
+
const deviceFirmwareType = getFirmwareType(features);
|
|
261
103
|
const firmwareType = payload.firmwareType ?? deviceFirmwareType;
|
|
262
104
|
|
|
263
105
|
if (DeviceModelToTypes.model_touch.includes(deviceType)) {
|
|
264
|
-
return this.updateTouchBootloader({
|
|
265
|
-
device,
|
|
266
|
-
features,
|
|
267
|
-
firmwareType,
|
|
268
|
-
binary,
|
|
269
|
-
checkpointWriter,
|
|
270
|
-
});
|
|
106
|
+
return this.updateTouchBootloader({ device, features, firmwareType });
|
|
271
107
|
}
|
|
272
108
|
|
|
273
109
|
return Promise.resolve(true);
|
|
@@ -8,6 +8,7 @@ import { DeviceModelToTypes } from '../../types';
|
|
|
8
8
|
import { BaseMethod } from '../BaseMethod';
|
|
9
9
|
import { validateParams } from '../helpers/paramsValidator';
|
|
10
10
|
import { hexToBytes } from '../helpers/hexUtils';
|
|
11
|
+
import { getDeviceFirmwareVersion, getDeviceType } from '../../utils';
|
|
11
12
|
import { PROTO } from '../../constants';
|
|
12
13
|
|
|
13
14
|
import type { DeviceUploadResourceParams, DeviceUploadResourceResponse } from '../../types';
|
|
@@ -36,8 +37,8 @@ export default class DeviceUploadResource extends BaseMethod<ResourceUpload> {
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
checkUploadNFTSupport() {
|
|
39
|
-
const deviceType = this.device.
|
|
40
|
-
const currentVersion = this.device.
|
|
40
|
+
const deviceType = getDeviceType(this.device.features);
|
|
41
|
+
const currentVersion = getDeviceFirmwareVersion(this.device.features).join('.');
|
|
41
42
|
if (!DeviceModelToTypes.model_touch.includes(deviceType)) {
|
|
42
43
|
throw ERRORS.TypedError(HardwareErrorCode.CallMethodError, 'Device Not Support Upload NFT');
|
|
43
44
|
}
|
|
@@ -137,8 +138,8 @@ export default class DeviceUploadResource extends BaseMethod<ResourceUpload> {
|
|
|
137
138
|
};
|
|
138
139
|
response.applyScreen = true;
|
|
139
140
|
|
|
140
|
-
const firmwareVersion = this.device.
|
|
141
|
-
const deviceType = this.device.
|
|
141
|
+
const firmwareVersion = getDeviceFirmwareVersion(this.device.features).join('.');
|
|
142
|
+
const deviceType = getDeviceType(this.device.features);
|
|
142
143
|
if (deviceType === EDeviceType.Pro && semver.gte(firmwareVersion, '4.17.0')) {
|
|
143
144
|
response.applyScreen = false;
|
|
144
145
|
}
|
|
@@ -5,6 +5,7 @@ import { bytesToHex } from '@noble/hashes/utils';
|
|
|
5
5
|
import { formatAnyHex } from '../helpers/hexUtils';
|
|
6
6
|
import { BaseMethod } from '../BaseMethod';
|
|
7
7
|
import { validateParams, validateResult } from '../helpers/paramsValidator';
|
|
8
|
+
import { getDeviceType } from '../../utils';
|
|
8
9
|
import { DeviceModelToTypes } from '../../types';
|
|
9
10
|
|
|
10
11
|
import type { BixinVerifyDeviceRequest } from '@onekeyfe/hd-transport';
|
|
@@ -25,7 +26,7 @@ export default class DeviceVerify extends BaseMethod<BixinVerifyDeviceRequest> {
|
|
|
25
26
|
|
|
26
27
|
async run() {
|
|
27
28
|
// For Classic、Mini device we use EthereumSignTypedData
|
|
28
|
-
const deviceType = this.device.
|
|
29
|
+
const deviceType = getDeviceType(this.device.features);
|
|
29
30
|
let response: DeviceVerifySignature | undefined;
|
|
30
31
|
|
|
31
32
|
if (DeviceModelToTypes.model_classic.includes(deviceType)) {
|
|
@@ -1,32 +1,13 @@
|
|
|
1
|
-
import { DeviceSettingsPage } from '@onekeyfe/hd-transport';
|
|
2
|
-
|
|
3
1
|
import { BaseMethod } from '../BaseMethod';
|
|
4
2
|
|
|
5
3
|
import type { WipeDevice } from '@onekeyfe/hd-transport';
|
|
6
4
|
|
|
7
5
|
export default class DeviceWipe extends BaseMethod<WipeDevice> {
|
|
8
6
|
init() {
|
|
9
|
-
this.unlockPolicy = 'retry-on-locked';
|
|
10
7
|
this.useDevicePassphraseState = false;
|
|
11
|
-
this.protocolV2UiInteraction = {
|
|
12
|
-
request: 'button',
|
|
13
|
-
source: 'method-lifecycle',
|
|
14
|
-
reason: 'device-management',
|
|
15
|
-
completion: 'operation-completed',
|
|
16
|
-
deviceOnly: true,
|
|
17
|
-
page: DeviceSettingsPage.DeviceReset,
|
|
18
|
-
operation: 'wipe-device',
|
|
19
|
-
};
|
|
20
8
|
}
|
|
21
9
|
|
|
22
10
|
async run() {
|
|
23
|
-
if (this.device.isProtocolV2()) {
|
|
24
|
-
const res = await this.device.commands.typedCall('DeviceSettingsPageShow', 'Success', {
|
|
25
|
-
page: DeviceSettingsPage.DeviceReset,
|
|
26
|
-
});
|
|
27
|
-
return Promise.resolve(res.message);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
11
|
const res = await this.device.commands.typedCall('WipeDevice', 'Success');
|
|
31
12
|
|
|
32
13
|
return Promise.resolve(res.message);
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
|
|
2
|
-
|
|
3
1
|
import { UI_REQUEST } from '../../constants/ui-request';
|
|
4
2
|
import { serializedPath, validatePath } from '../helpers/pathUtils';
|
|
5
3
|
import { BaseMethod } from '../BaseMethod';
|
|
@@ -49,10 +47,6 @@ export default class DnxGetAddress extends BaseMethod<HardwareDnxGetAddress[]> {
|
|
|
49
47
|
}
|
|
50
48
|
|
|
51
49
|
async run() {
|
|
52
|
-
if (this.device.isProtocolV2()) {
|
|
53
|
-
throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
|
|
54
|
-
}
|
|
55
|
-
|
|
56
50
|
const responses: DnxAddress[] = [];
|
|
57
51
|
|
|
58
52
|
for (let i = 0; i < this.params.length; i++) {
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
|
|
2
|
-
|
|
3
1
|
import { UI_REQUEST } from '../../constants/ui-request';
|
|
4
2
|
import { serializedPath, validatePath } from '../helpers/pathUtils';
|
|
5
3
|
import { BaseMethod } from '../BaseMethod';
|
|
@@ -118,10 +116,6 @@ export default class DnxSignTransaction extends BaseMethod<DnxSignTx> {
|
|
|
118
116
|
}
|
|
119
117
|
|
|
120
118
|
async run() {
|
|
121
|
-
if (this.device.isProtocolV2()) {
|
|
122
|
-
throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
|
|
123
|
-
}
|
|
124
|
-
|
|
125
119
|
const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
|
|
126
120
|
|
|
127
121
|
const res = await this.device.commands.typedCall('DnxSignTx', 'DnxInputRequest', {
|