@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
|
@@ -44,7 +44,7 @@ export default class EvmGetAddress extends BaseMethod<EthereumGetAddressOneKey[]
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
async getEvmAddress(param: EthereumGetAddressOneKey) {
|
|
47
|
-
if (TransportManager.
|
|
47
|
+
if (TransportManager.getMessageVersion() === 'v1') {
|
|
48
48
|
return getAddressLegacyV1({
|
|
49
49
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
50
50
|
param,
|
|
@@ -2,10 +2,11 @@ import { UI_REQUEST } from '../../constants/ui-request';
|
|
|
2
2
|
import { serializedPath, validatePath } from '../helpers/pathUtils';
|
|
3
3
|
import { BaseMethod } from '../BaseMethod';
|
|
4
4
|
import { validateParams, validateResult } from '../helpers/paramsValidator';
|
|
5
|
+
import { supportBatchPublicKey } from '../../utils/deviceFeaturesUtils';
|
|
5
6
|
import TransportManager from '../../data-manager/TransportManager';
|
|
6
7
|
import getPublicKey from './latest/getPublicKey';
|
|
7
8
|
import getPublicKeyLegacyV1 from './legacyV1/getPublicKey';
|
|
8
|
-
import { batchGetPublickeys
|
|
9
|
+
import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
|
|
9
10
|
|
|
10
11
|
import type { EVMGetPublicKeyParams, EVMPublicKey } from '../../types';
|
|
11
12
|
import type { EthereumGetPublicKey, EthereumGetPublicKeyOneKey } from '@onekeyfe/hd-transport';
|
|
@@ -56,7 +57,7 @@ export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneK
|
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
getEvmPublicKey(param: EthereumGetPublicKey) {
|
|
59
|
-
if (TransportManager.
|
|
60
|
+
if (TransportManager.getMessageVersion() === 'v1') {
|
|
60
61
|
return getPublicKeyLegacyV1({
|
|
61
62
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
62
63
|
param,
|
|
@@ -72,7 +73,7 @@ export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneK
|
|
|
72
73
|
async run() {
|
|
73
74
|
const responses: EVMPublicKey[] = [];
|
|
74
75
|
|
|
75
|
-
if (this.useBatch &&
|
|
76
|
+
if (this.useBatch && supportBatchPublicKey(this.device?.features)) {
|
|
76
77
|
try {
|
|
77
78
|
const res = await batchGetPublickeys(this.device, this.params, 'secp256k1', 60, {
|
|
78
79
|
includeNode: false,
|
|
@@ -36,7 +36,7 @@ export default class EVMSignMessage extends BaseMethod<EthereumSignMessageOneKey
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
async run() {
|
|
39
|
-
if (TransportManager.
|
|
39
|
+
if (TransportManager.getMessageVersion() === 'v1') {
|
|
40
40
|
return signMessageLegacyV1({
|
|
41
41
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
42
42
|
params: this.params,
|
|
@@ -5,7 +5,6 @@ import { validateParams } from '../helpers/paramsValidator';
|
|
|
5
5
|
import { formatAnyHex } from '../helpers/hexUtils';
|
|
6
6
|
|
|
7
7
|
import type { EthereumSignMessageEIP712 } from '@onekeyfe/hd-transport';
|
|
8
|
-
import type { DeviceFirmwareRange } from '../../types';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* @deprecated Use EVMSignTypedData instead.
|
|
@@ -33,12 +32,8 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
|
|
|
33
32
|
};
|
|
34
33
|
}
|
|
35
34
|
|
|
36
|
-
getVersionRange()
|
|
35
|
+
getVersionRange() {
|
|
37
36
|
return {
|
|
38
|
-
pro2: {
|
|
39
|
-
min: '0.0.0',
|
|
40
|
-
unsupported: true,
|
|
41
|
-
},
|
|
42
37
|
model_mini: {
|
|
43
38
|
min: '2.1.9',
|
|
44
39
|
},
|
|
@@ -49,14 +44,6 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
|
|
|
49
44
|
}
|
|
50
45
|
|
|
51
46
|
async run() {
|
|
52
|
-
this.checkFeatureVersionLimit(
|
|
53
|
-
() => true,
|
|
54
|
-
() => this.getVersionRange(),
|
|
55
|
-
{
|
|
56
|
-
strictCheckDeviceSupport: true,
|
|
57
|
-
}
|
|
58
|
-
);
|
|
59
|
-
|
|
60
47
|
const res = await this.device.commands.typedCall(
|
|
61
48
|
'EthereumSignMessageEIP712',
|
|
62
49
|
'EthereumMessageSignature',
|
|
@@ -122,7 +122,7 @@ export default class EVMSignTransaction extends BaseMethod {
|
|
|
122
122
|
|
|
123
123
|
if (formattedTx == null) throw ERRORS.TypedError('Runtime', 'formattedTx is not set');
|
|
124
124
|
|
|
125
|
-
if (TransportManager.
|
|
125
|
+
if (TransportManager.getMessageVersion() === 'v1') {
|
|
126
126
|
return signTransactionLegacyV1({
|
|
127
127
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
128
128
|
addressN,
|
|
@@ -9,6 +9,7 @@ import { validatePath } from '../helpers/pathUtils';
|
|
|
9
9
|
import { BaseMethod } from '../BaseMethod';
|
|
10
10
|
import { validateParams } from '../helpers/paramsValidator';
|
|
11
11
|
import { formatAnyHex, parseChainId, stripHexStartZeroes } from '../helpers/hexUtils';
|
|
12
|
+
import { getDeviceFirmwareVersion, getDeviceType } from '../../utils';
|
|
12
13
|
import { existCapability } from '../../utils/capabilitieUtils';
|
|
13
14
|
import {
|
|
14
15
|
DeviceModelToTypes,
|
|
@@ -25,19 +26,11 @@ import { encodeData, getFieldType, parseArrayType } from '../helpers/typeNameUti
|
|
|
25
26
|
import type {
|
|
26
27
|
EthereumTypedDataSignature,
|
|
27
28
|
EthereumTypedDataStructAck,
|
|
28
|
-
EthereumTypedDataStructAckOneKey,
|
|
29
29
|
MessageKey,
|
|
30
30
|
MessageResponse,
|
|
31
31
|
TypedCall,
|
|
32
32
|
} from '@onekeyfe/hd-transport';
|
|
33
33
|
|
|
34
|
-
/**
|
|
35
|
-
* EthereumTypedDataStructAckOneKey and EthereumTypedDataStructAck have identical
|
|
36
|
-
* fields and enum values. This zero-cost nominal conversion avoids scattered `any`.
|
|
37
|
-
*/
|
|
38
|
-
const toOneKeyStructAck = (ack: EthereumTypedDataStructAck): EthereumTypedDataStructAckOneKey =>
|
|
39
|
-
ack as unknown as EthereumTypedDataStructAckOneKey;
|
|
40
|
-
|
|
41
34
|
export type EVMSignTypedDataParams = {
|
|
42
35
|
addressN: number[];
|
|
43
36
|
metamaskV4Compat: boolean;
|
|
@@ -137,6 +130,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
137
130
|
if (supportTrezor) {
|
|
138
131
|
response = await typedCall(
|
|
139
132
|
'EthereumTypedDataStructAck',
|
|
133
|
+
// @ts-ignore
|
|
140
134
|
[
|
|
141
135
|
'EthereumTypedDataStructRequest',
|
|
142
136
|
'EthereumTypedDataValueRequest',
|
|
@@ -147,12 +141,13 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
147
141
|
} else {
|
|
148
142
|
response = await typedCall(
|
|
149
143
|
'EthereumTypedDataStructAckOneKey',
|
|
144
|
+
// @ts-ignore
|
|
150
145
|
[
|
|
151
146
|
'EthereumTypedDataStructRequestOneKey',
|
|
152
147
|
'EthereumTypedDataValueRequestOneKey',
|
|
153
148
|
'EthereumTypedDataSignatureOneKey',
|
|
154
149
|
],
|
|
155
|
-
|
|
150
|
+
dataStruckAck
|
|
156
151
|
);
|
|
157
152
|
}
|
|
158
153
|
}
|
|
@@ -188,7 +183,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
188
183
|
} else if (typeof memberData === 'object' && memberData !== null) {
|
|
189
184
|
const memberTypeDefinition = types[memberTypeName][index];
|
|
190
185
|
memberTypeName = memberTypeDefinition.type;
|
|
191
|
-
memberData =
|
|
186
|
+
memberData = memberData[memberTypeDefinition.name];
|
|
192
187
|
} else {
|
|
193
188
|
// TODO
|
|
194
189
|
}
|
|
@@ -225,14 +220,6 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
225
220
|
|
|
226
221
|
if (response.type === 'EthereumGnosisSafeTxRequest') {
|
|
227
222
|
const { data } = this.params;
|
|
228
|
-
const verifyingContract = data.domain?.verifyingContract;
|
|
229
|
-
// verifyingContract is required by proto and essential to a Gnosis Safe signature.
|
|
230
|
-
if (!verifyingContract) {
|
|
231
|
-
throw ERRORS.TypedError(
|
|
232
|
-
HardwareErrorCode.CallMethodInvalidParameter,
|
|
233
|
-
'EIP712Domain.verifyingContract is required for Gnosis Safe transaction'
|
|
234
|
-
);
|
|
235
|
-
}
|
|
236
223
|
const param = {
|
|
237
224
|
to: data.message.to,
|
|
238
225
|
value: formatAnyHex(new BigNumber(data.message.value).toString(16)),
|
|
@@ -245,10 +232,11 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
245
232
|
refundReceiver: data.message.refundReceiver,
|
|
246
233
|
nonce: formatAnyHex(new BigNumber(data.message.nonce).toString(16)),
|
|
247
234
|
chain_id: parseChainId(data.domain.chainId),
|
|
248
|
-
verifyingContract,
|
|
235
|
+
verifyingContract: data.domain.verifyingContract,
|
|
249
236
|
};
|
|
250
237
|
response = await typedCall(
|
|
251
238
|
'EthereumGnosisSafeTxAck',
|
|
239
|
+
// @ts-ignore
|
|
252
240
|
['EthereumTypedDataSignature', 'EthereumTypedDataSignatureOneKey'],
|
|
253
241
|
param
|
|
254
242
|
);
|
|
@@ -274,8 +262,8 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
274
262
|
|
|
275
263
|
let supportTrezor = false;
|
|
276
264
|
let response: MessageResponse<MessageKey>;
|
|
277
|
-
switch (TransportManager.
|
|
278
|
-
case '
|
|
265
|
+
switch (TransportManager.getMessageVersion()) {
|
|
266
|
+
case 'v1':
|
|
279
267
|
supportTrezor = true;
|
|
280
268
|
response = await signTypedDataLegacyV1({
|
|
281
269
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
@@ -286,7 +274,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
286
274
|
});
|
|
287
275
|
break;
|
|
288
276
|
|
|
289
|
-
case '
|
|
277
|
+
case 'latest':
|
|
290
278
|
default:
|
|
291
279
|
supportTrezor = false;
|
|
292
280
|
response = await signTypedData({
|
|
@@ -322,8 +310,8 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
322
310
|
}) {
|
|
323
311
|
if (!domainHash) throw ERRORS.TypedError('Runtime', 'domainHash is required');
|
|
324
312
|
|
|
325
|
-
switch (TransportManager.
|
|
326
|
-
case '
|
|
313
|
+
switch (TransportManager.getMessageVersion()) {
|
|
314
|
+
case 'v1':
|
|
327
315
|
return signTypedHashLegacyV1({
|
|
328
316
|
typedCall,
|
|
329
317
|
addressN,
|
|
@@ -333,7 +321,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
333
321
|
device: this.device,
|
|
334
322
|
});
|
|
335
323
|
|
|
336
|
-
case '
|
|
324
|
+
case 'latest':
|
|
337
325
|
default:
|
|
338
326
|
return signTypedHash({
|
|
339
327
|
typedCall,
|
|
@@ -360,8 +348,8 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
360
348
|
|
|
361
349
|
let biggerLimit = 1024; // 1k
|
|
362
350
|
|
|
363
|
-
const currentVersion = this.device.
|
|
364
|
-
const currentDeviceType = this.device.
|
|
351
|
+
const currentVersion = getDeviceFirmwareVersion(this.device.features).join('.');
|
|
352
|
+
const currentDeviceType = getDeviceType(this.device.features);
|
|
365
353
|
const supportBiggerDataVersion = '4.4.0';
|
|
366
354
|
|
|
367
355
|
const supportBiggerData =
|
|
@@ -544,9 +532,9 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
544
532
|
}
|
|
545
533
|
|
|
546
534
|
supportSignTyped() {
|
|
547
|
-
const deviceType = this.device.
|
|
535
|
+
const deviceType = getDeviceType(this.device.features);
|
|
548
536
|
if (DeviceModelToTypes.model_mini.includes(deviceType)) {
|
|
549
|
-
const currentVersion = this.device.
|
|
537
|
+
const currentVersion = getDeviceFirmwareVersion(this.device.features).join('.');
|
|
550
538
|
const supportSignTypedVersion = '2.2.0';
|
|
551
539
|
|
|
552
540
|
if (semver.lt(currentVersion, supportSignTypedVersion)) {
|
|
@@ -576,7 +564,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
576
564
|
// For Classic / Mini:
|
|
577
565
|
// - If parsed typed-data capability is missing, keep using blind-sign.
|
|
578
566
|
// - For Mini with parsed capability, add extra format checks before parsed signing.
|
|
579
|
-
const deviceType = this.device.
|
|
567
|
+
const deviceType = getDeviceType(this.device.features);
|
|
580
568
|
if (
|
|
581
569
|
DeviceModelToTypes.model_mini.includes(deviceType) &&
|
|
582
570
|
(!supportEip712OnClassic || this.hasClassicFamilyTypedDataFormatViolations(this.params.data))
|
|
@@ -31,7 +31,7 @@ export default class EVMSignMessage extends BaseMethod<EthereumVerifyMessageOneK
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
async run() {
|
|
34
|
-
if (TransportManager.
|
|
34
|
+
if (TransportManager.getMessageVersion() === 'v1') {
|
|
35
35
|
return verifyMessageLegacyV1({
|
|
36
36
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
37
37
|
params: this.params,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
import { EDeviceType, ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
3
3
|
|
|
4
|
+
import { getDeviceFirmwareVersion, getDeviceType } from '../../../utils';
|
|
5
|
+
|
|
4
6
|
import type { Device } from '../../../device/Device';
|
|
5
7
|
import type { MessageResponse, TypedCall } from '@onekeyfe/hd-transport';
|
|
6
8
|
|
|
@@ -19,10 +21,10 @@ export const signTypedHash = async ({
|
|
|
19
21
|
domainHash: string;
|
|
20
22
|
messageHash: string | undefined;
|
|
21
23
|
}): Promise<MessageResponse<'EthereumTypedDataSignatureOneKey'>> => {
|
|
22
|
-
const deviceType = device.
|
|
24
|
+
const deviceType = getDeviceType(device.features);
|
|
23
25
|
if (deviceType === EDeviceType.Touch || deviceType === EDeviceType.Pro) {
|
|
24
26
|
// Touch Pro Sign NestedArrays
|
|
25
|
-
const currentVersion = device.
|
|
27
|
+
const currentVersion = getDeviceFirmwareVersion(device.features).join('.');
|
|
26
28
|
const supportNestedArraysSignVersion = '4.2.0';
|
|
27
29
|
|
|
28
30
|
// 4.2.0 is the first version that supports nested arrays in signTypedData
|
|
@@ -7,12 +7,10 @@ export default async function ({
|
|
|
7
7
|
typedCall: TypedCall;
|
|
8
8
|
param: EthereumGetAddressOneKey;
|
|
9
9
|
}): Promise<MessageResponse<'EthereumAddress'>> {
|
|
10
|
-
|
|
11
|
-
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
12
|
-
const message = {
|
|
10
|
+
return typedCall('EthereumGetAddress', 'EthereumAddress', {
|
|
13
11
|
address_n: param.address_n,
|
|
14
12
|
show_display: param.show_display,
|
|
13
|
+
// @ts-ignore
|
|
15
14
|
chain_id: param.chain_id,
|
|
16
|
-
};
|
|
17
|
-
return typedCall('EthereumGetAddress', 'EthereumAddress', message);
|
|
15
|
+
});
|
|
18
16
|
}
|
|
@@ -11,12 +11,10 @@ export default async function ({
|
|
|
11
11
|
typedCall: TypedCall;
|
|
12
12
|
param: EthereumGetPublicKeyOneKey;
|
|
13
13
|
}): Promise<MessageResponse<'EthereumPublicKey'>> {
|
|
14
|
-
|
|
15
|
-
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
16
|
-
const message = {
|
|
14
|
+
return typedCall('EthereumGetPublicKey', 'EthereumPublicKey', {
|
|
17
15
|
address_n: param.address_n,
|
|
18
16
|
show_display: param.show_display,
|
|
17
|
+
// @ts-ignore
|
|
19
18
|
chain_id: param.chain_id,
|
|
20
|
-
};
|
|
21
|
-
return typedCall('EthereumGetPublicKey', 'EthereumPublicKey', message);
|
|
19
|
+
});
|
|
22
20
|
}
|
|
@@ -11,14 +11,12 @@ export default async function ({
|
|
|
11
11
|
typedCall: TypedCall;
|
|
12
12
|
params: EthereumSignMessageOneKey;
|
|
13
13
|
}): Promise<EthereumMessageSignature> {
|
|
14
|
-
|
|
15
|
-
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
16
|
-
const message = {
|
|
14
|
+
const res = await typedCall('EthereumSignMessage', 'EthereumMessageSignature', {
|
|
17
15
|
address_n: params.address_n,
|
|
18
16
|
message: params.message,
|
|
17
|
+
// @ts-ignore
|
|
19
18
|
chain_id: params.chain_id,
|
|
20
|
-
};
|
|
21
|
-
const res = await typedCall('EthereumSignMessage', 'EthereumMessageSignature', message);
|
|
19
|
+
});
|
|
22
20
|
|
|
23
21
|
return Promise.resolve(res.message);
|
|
24
22
|
}
|
|
@@ -16,23 +16,22 @@ export const signTypedData = async ({
|
|
|
16
16
|
}) => {
|
|
17
17
|
const { primaryType }: EthereumSignTypedDataMessage<EthereumSignTypedDataTypes> = data;
|
|
18
18
|
|
|
19
|
-
// The generated legacy type omits chain_id, but old firmware accepts the OneKey
|
|
20
|
-
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
21
|
-
const message = {
|
|
22
|
-
address_n: addressN,
|
|
23
|
-
primary_type: primaryType as string,
|
|
24
|
-
metamask_v4_compat: metamaskV4Compat,
|
|
25
|
-
chain_id: chainId,
|
|
26
|
-
};
|
|
27
19
|
const response = await typedCall(
|
|
28
20
|
'EthereumSignTypedData',
|
|
21
|
+
// @ts-ignore
|
|
29
22
|
[
|
|
30
23
|
'EthereumTypedDataStructRequest',
|
|
31
24
|
'EthereumTypedDataValueRequest',
|
|
32
25
|
'EthereumTypedDataSignature',
|
|
33
26
|
'EthereumGnosisSafeTxRequest',
|
|
34
27
|
],
|
|
35
|
-
|
|
28
|
+
{
|
|
29
|
+
address_n: addressN,
|
|
30
|
+
primary_type: primaryType as string,
|
|
31
|
+
metamask_v4_compat: metamaskV4Compat,
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
chain_id: chainId,
|
|
34
|
+
}
|
|
36
35
|
);
|
|
37
36
|
return response;
|
|
38
37
|
};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
import { EDeviceType, ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
3
3
|
|
|
4
|
+
import { getDeviceFirmwareVersion, getDeviceType } from '../../../utils';
|
|
5
|
+
|
|
4
6
|
import type { Device } from '../../../device/Device';
|
|
5
7
|
import type { MessageResponse, TypedCall } from '@onekeyfe/hd-transport';
|
|
6
8
|
|
|
@@ -22,10 +24,10 @@ export const signTypedHash = async ({
|
|
|
22
24
|
| MessageResponse<'EthereumTypedDataSignature'>
|
|
23
25
|
| MessageResponse<'EthereumTypedDataSignatureOneKey'>
|
|
24
26
|
> => {
|
|
25
|
-
const deviceType = device.
|
|
27
|
+
const deviceType = getDeviceType(device.features);
|
|
26
28
|
if (deviceType === EDeviceType.Touch || deviceType === EDeviceType.Pro) {
|
|
27
29
|
// Touch Pro Sign NestedArrays
|
|
28
|
-
const currentVersion = device.
|
|
30
|
+
const currentVersion = getDeviceFirmwareVersion(device.features).join('.');
|
|
29
31
|
const supportNestedArraysSignVersion = '4.2.0';
|
|
30
32
|
|
|
31
33
|
// 4.2.0 is the first version that supports nested arrays in signTypedData
|
|
@@ -38,13 +40,11 @@ export const signTypedHash = async ({
|
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
43
|
-
const message = {
|
|
43
|
+
return typedCall('EthereumSignTypedHash', 'EthereumTypedDataSignature', {
|
|
44
44
|
address_n: addressN,
|
|
45
45
|
domain_separator_hash: domainHash ?? '',
|
|
46
46
|
message_hash: messageHash,
|
|
47
|
+
// @ts-ignore
|
|
47
48
|
chain_id: chainId,
|
|
48
|
-
};
|
|
49
|
-
return typedCall('EthereumSignTypedHash', 'EthereumTypedDataSignature', message);
|
|
49
|
+
});
|
|
50
50
|
};
|
|
@@ -7,15 +7,13 @@ export default async function ({
|
|
|
7
7
|
typedCall: TypedCall;
|
|
8
8
|
params: EthereumVerifyMessageOneKey;
|
|
9
9
|
}): Promise<Success> {
|
|
10
|
-
|
|
11
|
-
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
12
|
-
const message = {
|
|
10
|
+
const res = await typedCall('EthereumVerifyMessage', 'Success', {
|
|
13
11
|
signature: params.signature,
|
|
14
12
|
message: params.message,
|
|
15
13
|
address: params.address,
|
|
14
|
+
// @ts-ignore
|
|
16
15
|
chain_id: params.chain_id,
|
|
17
|
-
};
|
|
18
|
-
const res = await typedCall('EthereumVerifyMessage', 'Success', message);
|
|
16
|
+
});
|
|
19
17
|
|
|
20
18
|
return Promise.resolve(res.message);
|
|
21
19
|
}
|
|
@@ -8,15 +8,12 @@ import {
|
|
|
8
8
|
|
|
9
9
|
import { FirmwareUpdateTipMessage, UI_REQUEST, createUiMessage } from '../../events/ui-request';
|
|
10
10
|
import { DevicePool } from '../../device/DevicePool';
|
|
11
|
-
import { LoggerNames, getLogger, wait } from '../../utils';
|
|
11
|
+
import { LoggerNames, getDeviceType, getDeviceUUID, getLogger, wait } from '../../utils';
|
|
12
12
|
import { DeviceModelToTypes } from '../../types';
|
|
13
13
|
import { DataManager } from '../../data-manager';
|
|
14
14
|
import { BaseMethod } from '../BaseMethod';
|
|
15
15
|
import { DEVICE } from '../../events';
|
|
16
|
-
import { createFirmwareProgressThrottle } from './progressThrottle';
|
|
17
|
-
import { writeFirmwareByteSource } from './FirmwareArtifactSource';
|
|
18
16
|
|
|
19
|
-
import type { FirmwareCheckpointWriter } from './FirmwareCheckpoint';
|
|
20
17
|
import type {
|
|
21
18
|
IFirmwareUpdateProgressType,
|
|
22
19
|
IFirmwareUpdateTipMessage,
|
|
@@ -26,7 +23,6 @@ import type { RebootType } from '@onekeyfe/hd-transport';
|
|
|
26
23
|
import type { Deferred } from '@onekeyfe/hd-shared';
|
|
27
24
|
import type { KnownDevice } from '../../types';
|
|
28
25
|
import type { TypedResponseMessage } from '../../device/DeviceCommands';
|
|
29
|
-
import type { FirmwareByteSource } from './FirmwareArtifactSource';
|
|
30
26
|
|
|
31
27
|
const Log = getLogger(LoggerNames.Method);
|
|
32
28
|
const SESSION_ERROR = 'session not found';
|
|
@@ -44,8 +40,6 @@ const isDeviceDisconnectedError = (error: unknown) => {
|
|
|
44
40
|
export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
45
41
|
checkPromise: Deferred<any> | null = null;
|
|
46
42
|
|
|
47
|
-
private shouldPostFirmwareProgress = createFirmwareProgressThrottle();
|
|
48
|
-
|
|
49
43
|
init(): void {}
|
|
50
44
|
|
|
51
45
|
run(): Promise<any> {
|
|
@@ -89,10 +83,6 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
89
83
|
* @param progress Post the percentage of the progress
|
|
90
84
|
*/
|
|
91
85
|
postProgressMessage = (progress: number, progressType: IFirmwareUpdateProgressType) => {
|
|
92
|
-
if (!this.shouldPostFirmwareProgress(progress, progressType)) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
86
|
this.postMessage(
|
|
97
87
|
createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS, {
|
|
98
88
|
device: this.device.toMessageObject() as KnownDevice,
|
|
@@ -148,14 +138,12 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
148
138
|
// check device goto bootloader mode
|
|
149
139
|
let isFirstCheck = true;
|
|
150
140
|
let checkCount = 0;
|
|
151
|
-
let hasPromptedWebDevice = false;
|
|
152
|
-
let isPromptingWebDevice = false;
|
|
153
141
|
// eslint-disable-next-line prefer-const
|
|
154
142
|
let timeoutTimer: ReturnType<typeof setTimeout> | undefined;
|
|
155
143
|
|
|
156
144
|
const isTouchOrProDevice =
|
|
157
|
-
this?.device?.
|
|
158
|
-
this?.device?.
|
|
145
|
+
getDeviceType(this?.device?.features) === EDeviceType.Touch ||
|
|
146
|
+
getDeviceType(this?.device?.features) === EDeviceType.Pro;
|
|
159
147
|
|
|
160
148
|
const intervalTimer: ReturnType<typeof setInterval> | undefined = setInterval(
|
|
161
149
|
async () => {
|
|
@@ -170,28 +158,23 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
170
158
|
if (
|
|
171
159
|
checkCount > 4 &&
|
|
172
160
|
DataManager.isBrowserWebUsb(DataManager.getSettings('env')) &&
|
|
173
|
-
!this.payload.skipWebDevicePrompt
|
|
174
|
-
!hasPromptedWebDevice &&
|
|
175
|
-
!isPromptingWebDevice
|
|
161
|
+
!this.payload.skipWebDevicePrompt
|
|
176
162
|
) {
|
|
177
|
-
|
|
163
|
+
clearInterval(intervalTimer);
|
|
164
|
+
clearTimeout(timeoutTimer);
|
|
165
|
+
|
|
178
166
|
try {
|
|
179
167
|
this.postTipMessage(FirmwareUpdateTipMessage.SelectDeviceInBootloaderForWebDevice);
|
|
180
168
|
const confirmed = await this._promptDeviceInBootloaderForWebDevice();
|
|
181
|
-
hasPromptedWebDevice = true;
|
|
182
169
|
if (confirmed) {
|
|
183
170
|
await this._checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer);
|
|
184
171
|
}
|
|
185
172
|
} catch (e) {
|
|
186
|
-
clearInterval(intervalTimer);
|
|
187
|
-
clearTimeout(timeoutTimer);
|
|
188
173
|
Log.log(
|
|
189
174
|
'FirmwareUpdateBaseMethod [checkDeviceToBootloader] _promptDeviceInBootloaderForWebDevice failed: ',
|
|
190
175
|
e
|
|
191
176
|
);
|
|
192
177
|
this.checkPromise?.reject(e);
|
|
193
|
-
} finally {
|
|
194
|
-
isPromptingWebDevice = false;
|
|
195
178
|
}
|
|
196
179
|
return;
|
|
197
180
|
}
|
|
@@ -204,7 +187,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
204
187
|
true
|
|
205
188
|
);
|
|
206
189
|
await this.device.initialize();
|
|
207
|
-
if (this.device.
|
|
190
|
+
if (this.device.features?.bootloader_mode) {
|
|
208
191
|
clearInterval(intervalTimer);
|
|
209
192
|
this.checkPromise?.resolve(true);
|
|
210
193
|
}
|
|
@@ -237,7 +220,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
237
220
|
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
238
221
|
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, connectId);
|
|
239
222
|
|
|
240
|
-
if (deviceList.length === 1 && deviceList[0]?.
|
|
223
|
+
if (deviceList.length === 1 && deviceList[0]?.features?.bootloader_mode) {
|
|
241
224
|
// should update current device from cache
|
|
242
225
|
// because device was reboot and had some new requests
|
|
243
226
|
this.device.updateFromCache(deviceList[0]);
|
|
@@ -251,17 +234,14 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
251
234
|
return false;
|
|
252
235
|
}
|
|
253
236
|
|
|
254
|
-
async enterBootloaderMode(
|
|
237
|
+
async enterBootloaderMode() {
|
|
255
238
|
const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
|
|
256
|
-
if (this.device.features && !this.device.
|
|
257
|
-
const
|
|
258
|
-
const deviceType = this.device.
|
|
239
|
+
if (this.device.features && !this.device.features.bootloader_mode) {
|
|
240
|
+
const uuid = getDeviceUUID(this.device.features);
|
|
241
|
+
const deviceType = getDeviceType(this.device.features);
|
|
259
242
|
// auto go to bootloader mode
|
|
260
243
|
try {
|
|
261
244
|
this.postTipMessage(FirmwareUpdateTipMessage.AutoRebootToBootloader);
|
|
262
|
-
await checkpointWriter?.commit({
|
|
263
|
-
stage: 'BEFORE_DEVICE_MODE_CHANGE',
|
|
264
|
-
});
|
|
265
245
|
const bootRes = await typedCall('DeviceBackToBoot', 'Success');
|
|
266
246
|
// @ts-expect-error
|
|
267
247
|
if (bootRes.type === 'CallMethodError') {
|
|
@@ -272,7 +252,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
272
252
|
|
|
273
253
|
// force clean classic device cache so that the device can initialize again
|
|
274
254
|
if (DeviceModelToTypes.model_classic.includes(deviceType)) {
|
|
275
|
-
DevicePool.clearDeviceCache(
|
|
255
|
+
DevicePool.clearDeviceCache(uuid);
|
|
276
256
|
}
|
|
277
257
|
delete DevicePool.devicesCache[''];
|
|
278
258
|
await this.checkPromise?.promise;
|
|
@@ -393,54 +373,6 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
393
373
|
return totalSize !== undefined ? (processedSize ?? 0) + payload.byteLength : 0;
|
|
394
374
|
}
|
|
395
375
|
|
|
396
|
-
async emmcCommonUpdateProcessFromSource({
|
|
397
|
-
source,
|
|
398
|
-
filePath,
|
|
399
|
-
processedSize,
|
|
400
|
-
totalSize,
|
|
401
|
-
}: {
|
|
402
|
-
source: FirmwareByteSource;
|
|
403
|
-
filePath: string;
|
|
404
|
-
processedSize?: number;
|
|
405
|
-
totalSize?: number;
|
|
406
|
-
}) {
|
|
407
|
-
if (!filePath.startsWith('0:')) {
|
|
408
|
-
throw new Error('filePath must start with 0:');
|
|
409
|
-
}
|
|
410
|
-
const env = DataManager.getSettings('env');
|
|
411
|
-
const chunkSize = 1024 * (DataManager.isBleConnect(env) ? 16 : 128);
|
|
412
|
-
|
|
413
|
-
await writeFirmwareByteSource({
|
|
414
|
-
source,
|
|
415
|
-
chunkSize,
|
|
416
|
-
write: async ({ data, sourceOffset, length, first }) => {
|
|
417
|
-
const progress =
|
|
418
|
-
totalSize !== undefined && processedSize !== undefined
|
|
419
|
-
? Math.min(Math.ceil(((processedSize + sourceOffset + length) / totalSize) * 100), 99)
|
|
420
|
-
: Math.min(Math.ceil(((sourceOffset + length) / source.size) * 100), 99);
|
|
421
|
-
const writeRes = await this.emmcFileWriteWithRetry(
|
|
422
|
-
filePath,
|
|
423
|
-
length,
|
|
424
|
-
sourceOffset,
|
|
425
|
-
data,
|
|
426
|
-
first,
|
|
427
|
-
progress
|
|
428
|
-
);
|
|
429
|
-
if (!writeRes) {
|
|
430
|
-
throw ERRORS.TypedError(
|
|
431
|
-
HardwareErrorCode.EmmcFileWriteFirmwareError,
|
|
432
|
-
'transfer data error'
|
|
433
|
-
);
|
|
434
|
-
}
|
|
435
|
-
const processedBytes = Number(writeRes.message.processed_byte);
|
|
436
|
-
this.postProgressMessage(progress, 'transferData');
|
|
437
|
-
return Number.isFinite(processedBytes) ? processedBytes : length;
|
|
438
|
-
},
|
|
439
|
-
});
|
|
440
|
-
|
|
441
|
-
return totalSize !== undefined ? (processedSize ?? 0) + source.size : 0;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
376
|
async emmcFileWriteWithRetry(
|
|
445
377
|
filePath: string,
|
|
446
378
|
chunkLength: number,
|
|
@@ -504,7 +436,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
504
436
|
const deviceDiff = await this.device.deviceConnector?.enumerate();
|
|
505
437
|
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
506
438
|
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined);
|
|
507
|
-
if (deviceList.length === 1 && deviceList[0]?.
|
|
439
|
+
if (deviceList.length === 1 && deviceList[0]?.features?.bootloader_mode) {
|
|
508
440
|
this.device.updateFromCache(deviceList[0]);
|
|
509
441
|
await this.device.acquire();
|
|
510
442
|
this.device.getCommands().mainId = this.device.mainId ?? '';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
import { EDeviceType } from '@onekeyfe/hd-shared';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { getDeviceType } from '../../utils';
|
|
5
5
|
|
|
6
6
|
import type { Features, IVersionArray } from '../../types';
|
|
7
7
|
|
|
@@ -38,10 +38,9 @@ export function shouldUpdateBootloaderForClassicAndMini({
|
|
|
38
38
|
export function isEnteredManuallyBoot(features: Features, updateType: string) {
|
|
39
39
|
const deviceType = getDeviceType(features);
|
|
40
40
|
const isMini = deviceType === EDeviceType.Mini;
|
|
41
|
-
const bootloaderVersion = getDeviceBootloaderVersion(features).join('.');
|
|
42
41
|
const isBoot183ClassicUpBle =
|
|
43
42
|
updateType === 'firmware' &&
|
|
44
43
|
deviceType === EDeviceType.Classic &&
|
|
45
|
-
|
|
44
|
+
features.bootloader_version === '1.8.3';
|
|
46
45
|
return isMini || isBoot183ClassicUpBle;
|
|
47
46
|
}
|