@onekeyfe/hd-core 1.2.0-alpha.6 → 1.2.0-alpha.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +390 -0
- package/__tests__/DeviceCommands.test.ts +563 -0
- package/__tests__/DeviceEventRegistration.test.ts +49 -0
- package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
- package/__tests__/check-all-firmware-release-protocol-v2.test.ts +477 -0
- package/__tests__/connectSettings.test.ts +19 -0
- package/__tests__/core-dispose.test.ts +34 -0
- package/__tests__/core-error-output.test.ts +39 -0
- package/__tests__/core-initialization.test.ts +23 -0
- package/__tests__/device-connector-protocol.test.ts +81 -0
- package/__tests__/device-features-state.test.ts +78 -0
- package/__tests__/device-identity.test.ts +52 -0
- package/__tests__/device-lifecycle-events.test.ts +351 -0
- package/__tests__/device-pool-state.test.ts +166 -0
- package/__tests__/device-settings.test.ts +437 -0
- package/__tests__/device-state-contract.test.ts +28 -0
- package/__tests__/device-state-events.test.ts +286 -0
- package/__tests__/device-state-mapper.test.ts +273 -0
- package/__tests__/device-state-projector.test.ts +94 -0
- package/__tests__/device-state-store.test.ts +82 -0
- package/__tests__/device-utils.test.ts +154 -0
- package/__tests__/device-wallet-session-store.test.ts +478 -0
- package/__tests__/deviceFeaturesUtils.test.ts +39 -0
- package/__tests__/deviceSettings.test.ts +113 -0
- package/__tests__/deviceUploadNft.test.ts +316 -0
- package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
- package/__tests__/evmSignTransaction.test.ts +69 -0
- package/__tests__/evmSignTypedData.test.ts +80 -0
- package/__tests__/filesystemValidation.test.ts +53 -0
- package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +402 -0
- package/__tests__/get-device-state.test.ts +578 -0
- package/__tests__/homescreen.test.ts +64 -0
- package/__tests__/kaspa-public-types.type-test.ts +16 -0
- package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
- package/__tests__/kaspaSignTransaction.test.ts +578 -0
- package/__tests__/known-device-public-types.type-test.ts +3 -0
- package/__tests__/logBlockEvent.test.ts +128 -1
- package/__tests__/method-protocol-support.test.ts +132 -0
- package/__tests__/networkUtils.test.ts +406 -0
- package/__tests__/open-wallet-session-error-response.test.ts +43 -0
- package/__tests__/open-wallet-session.test.ts +1899 -0
- package/__tests__/pro2Nft.test.ts +108 -0
- package/__tests__/pro2Wallpaper.test.ts +39 -0
- package/__tests__/protocol-binding.test.ts +89 -0
- package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
- package/__tests__/protocol-v2-firmware-targets.test.ts +37 -0
- package/__tests__/protocol-v2-ping.test.ts +28 -0
- package/__tests__/protocol-v2-resources.test.ts +340 -0
- package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
- package/__tests__/protocol-v2-unlock-policy.test.ts +245 -0
- package/__tests__/protocol-v2.test.ts +6478 -2536
- package/__tests__/protocolV2FileWrite.test.ts +244 -0
- package/__tests__/protocolV2UiInteraction.test.ts +329 -0
- package/__tests__/public-device-state-api.test.ts +275 -0
- package/__tests__/public-pro2-api-boundary.test.ts +107 -0
- package/__tests__/refresh-device-state.test.ts +101 -0
- package/__tests__/request-context-logging.test.ts +16 -0
- package/__tests__/search-devices.test.ts +145 -0
- package/__tests__/tron-sign-message-init.test.ts +74 -0
- package/__tests__/uiProgressThrottle.test.ts +74 -0
- package/__tests__/uiPromiseRegistry.test.ts +115 -0
- package/dist/api/BaseMethod.d.ts +16 -1
- package/dist/api/BaseMethod.d.ts.map +1 -1
- package/dist/api/CheckAllFirmwareRelease.d.ts +25 -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/CipherKeyValue.d.ts +1 -0
- package/dist/api/CipherKeyValue.d.ts.map +1 -1
- package/dist/api/ClearSessionCache.d.ts +9 -0
- package/dist/api/ClearSessionCache.d.ts.map +1 -0
- package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
- package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
- package/dist/api/DirList.d.ts +1 -0
- package/dist/api/DirList.d.ts.map +1 -1
- package/dist/api/DirMake.d.ts +1 -0
- package/dist/api/DirMake.d.ts.map +1 -1
- package/dist/api/DirRemove.d.ts +1 -0
- package/dist/api/DirRemove.d.ts.map +1 -1
- package/dist/api/FileDelete.d.ts +1 -0
- package/dist/api/FileDelete.d.ts.map +1 -1
- package/dist/api/FileRead.d.ts +1 -0
- package/dist/api/FileRead.d.ts.map +1 -1
- package/dist/api/FileWrite.d.ts +2 -0
- package/dist/api/FileWrite.d.ts.map +1 -1
- package/dist/api/FirmwareUpdate.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV2.d.ts +2 -2
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV4.d.ts +26 -16
- package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
- package/dist/api/GetDeviceState.d.ts +8 -0
- package/dist/api/GetDeviceState.d.ts.map +1 -0
- package/dist/api/GetFeatures.d.ts +1 -1
- package/dist/api/GetFeatures.d.ts.map +1 -1
- package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
- package/dist/api/GetPassphraseState.d.ts +2 -6
- package/dist/api/GetPassphraseState.d.ts.map +1 -1
- package/dist/api/OpenWalletSession.d.ts +8 -0
- package/dist/api/OpenWalletSession.d.ts.map +1 -0
- package/dist/api/PathInfo.d.ts +1 -0
- package/dist/api/PathInfo.d.ts.map +1 -1
- package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
- package/dist/api/SearchDevices.d.ts +3 -0
- package/dist/api/SearchDevices.d.ts.map +1 -1
- package/dist/api/UploadPortfolio.d.ts +17 -0
- package/dist/api/UploadPortfolio.d.ts.map +1 -0
- package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
- package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
- package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
- package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
- package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
- package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
- package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
- package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
- package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
- package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
- package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
- package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
- package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
- package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
- package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
- package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
- package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
- package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
- package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
- package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
- package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
- package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
- package/dist/api/btc/BTCGetAddress.d.ts +1 -0
- package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
- package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
- package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
- package/dist/api/btc/BTCSignMessage.d.ts +1 -0
- package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
- package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
- package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
- package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
- package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
- package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
- package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
- package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
- package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
- package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
- package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
- package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
- package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
- package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
- package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
- package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
- package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
- package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
- package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
- package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
- package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
- package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
- package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
- package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
- package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
- package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
- package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
- package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
- package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
- package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
- package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
- package/dist/api/device/DeviceCancel.d.ts +1 -0
- package/dist/api/device/DeviceCancel.d.ts.map +1 -1
- package/dist/api/device/DeviceChangePin.d.ts +1 -0
- package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
- package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
- package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
- package/dist/api/device/DeviceLock.d.ts +1 -0
- package/dist/api/device/DeviceLock.d.ts.map +1 -1
- package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
- package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
- package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
- package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
- package/dist/api/device/DeviceSettings.d.ts +1 -0
- package/dist/api/device/DeviceSettings.d.ts.map +1 -1
- package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
- package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
- package/dist/api/device/DeviceUnlock.d.ts +3 -2
- package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
- package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
- package/dist/api/device/DeviceWipe.d.ts +1 -0
- package/dist/api/device/DeviceWipe.d.ts.map +1 -1
- package/dist/api/device/PreInitialize.d.ts +1 -0
- package/dist/api/device/PreInitialize.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/EVMGetAddress.d.ts +1 -0
- package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
- package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
- package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
- package/dist/api/evm/EVMSignMessage.d.ts +1 -0
- package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
- package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
- package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
- package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
- package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
- package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
- package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
- package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
- package/dist/api/evm/protocol.d.ts +3 -0
- package/dist/api/evm/protocol.d.ts.map +1 -0
- package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
- package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
- package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
- package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +4 -3
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
- package/dist/api/firmware/getBinary.d.ts +8 -4
- package/dist/api/firmware/getBinary.d.ts.map +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
- package/dist/api/helpers/filesystemValidation.d.ts +3 -0
- package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
- package/dist/api/helpers/paramsValidator.d.ts +1 -0
- package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
- package/dist/api/helpers/protocolV2FileWrite.d.ts +42 -0
- package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
- package/dist/api/index.d.ts +9 -25
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
- package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
- package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
- package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
- package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
- package/dist/api/lightning/LnurlAuth.d.ts +0 -4
- package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
- package/dist/api/near/NearGetAddress.d.ts +1 -0
- package/dist/api/near/NearGetAddress.d.ts.map +1 -1
- package/dist/api/near/NearSignTransaction.d.ts +1 -0
- package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
- package/dist/api/nem/NEMGetAddress.d.ts +1 -0
- package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
- package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
- package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
- package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
- package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
- package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
- package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
- package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
- package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
- package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
- package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
- package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
- package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
- package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
- package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
- package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
- package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
- package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
- package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
- package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
- package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -1
- package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
- package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
- package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
- package/dist/api/polkadot/networks.d.ts +1 -1
- package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
- package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
- package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
- package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
- package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
- package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
- package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
- package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
- package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
- package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
- package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
- package/dist/api/protocol-v2/DeviceUploadNft.d.ts +31 -0
- package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
- package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
- package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
- package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
- package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
- package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
- package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
- package/dist/api/protocol-v2/Ping.d.ts +3 -0
- package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
- package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
- package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
- package/dist/api/protocol-v2/helpers.d.ts +1 -1
- package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
- package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
- package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
- package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
- package/dist/api/solana/SolGetAddress.d.ts +1 -0
- package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
- package/dist/api/solana/SolSignMessage.d.ts +2 -1
- package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
- package/dist/api/solana/SolSignOffchainMessage.d.ts +2 -1
- package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
- package/dist/api/solana/SolSignTransaction.d.ts +3 -2
- package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
- package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
- package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
- package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
- package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
- package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
- package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
- package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
- package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
- package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
- package/dist/api/starcoin/StarcoinVerifyMessage.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 +1 -2
- package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
- package/dist/api/sui/SuiGetAddress.d.ts +2 -1
- package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
- package/dist/api/sui/SuiGetPublicKey.d.ts +2 -1
- package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
- package/dist/api/sui/SuiSignMessage.d.ts +2 -1
- package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
- package/dist/api/sui/SuiSignTransaction.d.ts +2 -1
- package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
- package/dist/api/ton/TonGetAddress.d.ts +2 -1
- package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
- package/dist/api/ton/TonSignData.d.ts +1 -0
- package/dist/api/ton/TonSignData.d.ts.map +1 -1
- package/dist/api/ton/TonSignMessage.d.ts +2 -1
- package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
- package/dist/api/ton/TonSignProof.d.ts +2 -1
- package/dist/api/ton/TonSignProof.d.ts.map +1 -1
- package/dist/api/tron/TronGetAddress.d.ts +1 -0
- package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
- package/dist/api/tron/TronSignMessage.d.ts +6 -1
- package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
- package/dist/api/tron/TronSignTransaction.d.ts +2 -1
- package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
- package/dist/api/utils.d.ts +2 -1
- package/dist/api/utils.d.ts.map +1 -1
- package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
- package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
- package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
- package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/core/RequestQueue.d.ts.map +1 -1
- package/dist/core/deviceEventRegistration.d.ts +13 -0
- package/dist/core/deviceEventRegistration.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/uiPromiseRegistry.d.ts +6 -0
- package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
- package/dist/data-manager/DataManager.d.ts +9 -3
- package/dist/data-manager/DataManager.d.ts.map +1 -1
- 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 +71 -17
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts +8 -6
- package/dist/device/DeviceCommands.d.ts.map +1 -1
- package/dist/device/DeviceConnector.d.ts +3 -2
- package/dist/device/DeviceConnector.d.ts.map +1 -1
- package/dist/device/DeviceFeaturesState.d.ts +3 -0
- package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
- package/dist/device/DevicePool.d.ts +5 -2
- package/dist/device/DevicePool.d.ts.map +1 -1
- package/dist/device/DeviceStateMapper.d.ts +13 -0
- package/dist/device/DeviceStateMapper.d.ts.map +1 -0
- package/dist/device/DeviceStateProjector.d.ts +7 -0
- package/dist/device/DeviceStateProjector.d.ts.map +1 -0
- package/dist/device/DeviceStateStore.d.ts +21 -0
- package/dist/device/DeviceStateStore.d.ts.map +1 -0
- package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
- package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
- package/dist/device/cloneDeviceState.d.ts +2 -0
- package/dist/device/cloneDeviceState.d.ts.map +1 -0
- package/dist/device/deviceIdentity.d.ts +5 -0
- package/dist/device/deviceIdentity.d.ts.map +1 -0
- package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
- package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
- package/dist/deviceProfile/index.d.ts +0 -1
- package/dist/deviceProfile/index.d.ts.map +1 -1
- package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
- package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
- package/dist/events/device.d.ts +16 -2
- package/dist/events/device.d.ts.map +1 -1
- package/dist/events/logBlockEvent.d.ts +2 -0
- package/dist/events/logBlockEvent.d.ts.map +1 -1
- package/dist/events/ui-promise.d.ts +4 -2
- package/dist/events/ui-promise.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +50 -4
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/events/ui-response.d.ts +10 -2
- package/dist/events/ui-response.d.ts.map +1 -1
- package/dist/index.d.ts +1593 -773
- package/dist/index.js +8507 -3894
- package/dist/inject.d.ts +6 -1
- package/dist/inject.d.ts.map +1 -1
- package/dist/lowLevelInject.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
- package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/features.d.ts +21 -17
- package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/index.d.ts +3 -2
- package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
- package/dist/protocols/protocol-v2/resources.d.ts +30 -0
- package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
- package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/uiInteraction.d.ts +42 -0
- package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
- package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
- package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
- package/dist/protocols/protocol-v2/walletSession.d.ts +27 -0
- package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
- package/dist/topLevelInject.d.ts.map +1 -1
- package/dist/types/api/checkAllFirmwareRelease.d.ts +27 -4
- package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
- package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
- package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
- package/dist/types/api/deviceSettings.d.ts +11 -2
- package/dist/types/api/deviceSettings.d.ts.map +1 -1
- package/dist/types/api/deviceUnlock.d.ts +6 -2
- package/dist/types/api/deviceUnlock.d.ts.map +1 -1
- package/dist/types/api/export.d.ts +4 -2
- package/dist/types/api/export.d.ts.map +1 -1
- package/dist/types/api/firmwareUpdate.d.ts +8 -1
- package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
- package/dist/types/api/getDeviceState.d.ts +12 -0
- package/dist/types/api/getDeviceState.d.ts.map +1 -0
- package/dist/types/api/getFeatures.d.ts.map +1 -1
- package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
- package/dist/types/api/getPassphraseState.d.ts +2 -10
- package/dist/types/api/getPassphraseState.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +23 -30
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
- package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
- package/dist/types/api/openWalletSession.d.ts +35 -0
- package/dist/types/api/openWalletSession.d.ts.map +1 -0
- package/dist/types/api/protocolV2.d.ts +18 -84
- package/dist/types/api/protocolV2.d.ts.map +1 -1
- package/dist/types/api/sessionCache.d.ts +13 -0
- package/dist/types/api/sessionCache.d.ts.map +1 -0
- package/dist/types/device.d.ts +134 -10
- package/dist/types/device.d.ts.map +1 -1
- package/dist/types/params.d.ts +1 -0
- package/dist/types/params.d.ts.map +1 -1
- package/dist/types/settings.d.ts +44 -21
- package/dist/types/settings.d.ts.map +1 -1
- package/dist/utils/assets.d.ts +2 -1
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/deviceFeaturesCompat.d.ts +13 -0
- package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
- package/dist/utils/deviceFeaturesUtils.d.ts +10 -3
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
- package/dist/utils/deviceInfoUtils.d.ts +9 -9
- package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
- package/dist/utils/deviceSettings.d.ts +38 -7
- package/dist/utils/deviceSettings.d.ts.map +1 -1
- package/dist/utils/deviceVersionUtils.d.ts +7 -5
- package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
- package/dist/utils/homescreen.d.ts +4 -0
- package/dist/utils/homescreen.d.ts.map +1 -1
- package/dist/utils/index.d.ts +6 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/networkUtils.d.ts +10 -1
- package/dist/utils/networkUtils.d.ts.map +1 -1
- package/dist/utils/patch.d.ts +1 -1
- package/dist/utils/patch.d.ts.map +1 -1
- package/dist/utils/pro2Nft.d.ts +31 -0
- package/dist/utils/pro2Nft.d.ts.map +1 -0
- package/dist/utils/pro2Wallpaper.d.ts +22 -0
- package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
- package/dist/utils/tracing.d.ts.map +1 -1
- package/dist/utils/uiProgressThrottle.d.ts +3 -0
- package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
- package/package.json +4 -4
- package/src/api/BaseMethod.ts +53 -20
- package/src/api/CheckAllFirmwareRelease.ts +340 -1
- package/src/api/CheckBootloaderRelease.ts +1 -2
- package/src/api/CheckFirmwareRelease.ts +1 -2
- package/src/api/CipherKeyValue.ts +4 -0
- package/src/api/ClearSessionCache.ts +32 -0
- package/src/api/DetectDeviceConnectProtocol.ts +18 -0
- package/src/api/DirList.ts +9 -4
- package/src/api/DirMake.ts +7 -4
- package/src/api/DirRemove.ts +7 -4
- package/src/api/FileDelete.ts +7 -4
- package/src/api/FileRead.ts +15 -9
- package/src/api/FileWrite.ts +26 -181
- package/src/api/FirmwareUpdate.ts +17 -14
- package/src/api/FirmwareUpdateV2.ts +137 -54
- package/src/api/FirmwareUpdateV3.ts +9 -13
- package/src/api/FirmwareUpdateV4.ts +805 -626
- package/src/api/GetDeviceState.ts +59 -0
- package/src/api/GetFeatures.ts +6 -4
- package/src/api/GetOnekeyFeatures.ts +1 -75
- package/src/api/GetPassphraseState.ts +36 -21
- package/src/api/OpenWalletSession.ts +268 -0
- package/src/api/PathInfo.ts +9 -4
- package/src/api/PromptWebDeviceAccess.ts +2 -7
- package/src/api/SearchDevices.ts +31 -4
- package/src/api/UploadPortfolio.ts +40 -0
- package/src/api/alephium/AlephiumGetAddress.ts +0 -4
- package/src/api/alephium/AlephiumSignMessage.ts +0 -4
- package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
- package/src/api/algo/AlgoGetAddress.ts +4 -0
- package/src/api/algo/AlgoSignTransaction.ts +4 -0
- package/src/api/allnetwork/AllNetworkGetAddress.ts +21 -21
- package/src/api/allnetwork/AllNetworkGetAddressBase.ts +45 -32
- package/src/api/aptos/AptosGetAddress.ts +4 -0
- package/src/api/aptos/AptosGetPublicKey.ts +4 -0
- package/src/api/aptos/AptosSignInMessage.ts +4 -0
- package/src/api/aptos/AptosSignMessage.ts +4 -0
- package/src/api/aptos/AptosSignTransaction.ts +4 -0
- package/src/api/benfen/BenfenGetAddress.ts +11 -7
- package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
- package/src/api/benfen/BenfenSignMessage.ts +0 -4
- package/src/api/benfen/BenfenSignTransaction.ts +0 -4
- package/src/api/btc/BTCGetAddress.ts +8 -1
- package/src/api/btc/BTCGetPublicKey.ts +9 -2
- package/src/api/btc/BTCSignMessage.ts +8 -1
- package/src/api/btc/BTCSignPsbt.ts +4 -0
- package/src/api/btc/BTCSignTransaction.ts +8 -1
- package/src/api/btc/BTCVerifyMessage.ts +8 -1
- package/src/api/btc/helpers/versionLimit.ts +7 -4
- package/src/api/cardano/CardanoGetAddress.ts +4 -0
- package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
- package/src/api/cardano/CardanoSignMessage.ts +5 -1
- package/src/api/cardano/CardanoSignTransaction.ts +5 -1
- package/src/api/conflux/ConfluxGetAddress.ts +6 -0
- package/src/api/conflux/ConfluxSignMessage.ts +6 -0
- package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
- package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
- package/src/api/cosmos/CosmosGetAddress.ts +4 -0
- package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
- package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
- package/src/api/device/DeviceCancel.ts +5 -0
- package/src/api/device/DeviceChangePin.ts +28 -0
- package/src/api/device/DeviceFullyUploadResource.ts +4 -5
- package/src/api/device/DeviceLock.ts +5 -0
- package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
- package/src/api/device/DeviceRebootToBootloader.ts +5 -0
- package/src/api/device/DeviceSettings.ts +195 -1
- package/src/api/device/DeviceSupportFeatures.ts +4 -0
- package/src/api/device/DeviceUnlock.ts +21 -3
- package/src/api/device/DeviceUpdateBootloader.ts +1 -2
- package/src/api/device/DeviceWipe.ts +25 -0
- package/src/api/device/PreInitialize.ts +4 -0
- package/src/api/dynex/DnxGetAddress.ts +0 -6
- package/src/api/dynex/DnxSignTransaction.ts +0 -6
- package/src/api/evm/EVMGetAddress.ts +6 -2
- package/src/api/evm/EVMGetPublicKey.ts +6 -2
- package/src/api/evm/EVMSignMessage.ts +6 -2
- package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
- package/src/api/evm/EVMSignTransaction.ts +6 -2
- package/src/api/evm/EVMSignTypedData.ts +42 -50
- package/src/api/evm/EVMVerifyMessage.ts +6 -2
- package/src/api/evm/legacyV1/getAddress.ts +2 -2
- package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
- package/src/api/evm/legacyV1/signMessage.ts +2 -2
- package/src/api/evm/legacyV1/signTypedData.ts +2 -2
- package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
- package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
- package/src/api/evm/protocol.ts +6 -0
- package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
- package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
- package/src/api/firmware/FirmwareUpdateBaseMethod.ts +30 -15
- package/src/api/firmware/getBinary.ts +8 -3
- package/src/api/firmware/uploadFirmware.ts +17 -4
- package/src/api/helpers/batchGetPublickeys.ts +2 -2
- package/src/api/helpers/filesystemValidation.ts +61 -0
- package/src/api/helpers/paramsValidator.ts +1 -1
- package/src/api/helpers/protocolV2FileWrite.ts +338 -0
- package/src/api/index.ts +10 -26
- package/src/api/kaspa/KaspaGetAddress.ts +7 -0
- package/src/api/kaspa/KaspaSignTransaction.ts +369 -29
- package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
- package/src/api/lightning/LnurlAuth.ts +0 -4
- package/src/api/near/NearGetAddress.ts +4 -0
- package/src/api/near/NearSignTransaction.ts +4 -0
- package/src/api/nem/NEMGetAddress.ts +4 -0
- package/src/api/nem/NEMSignTransaction.ts +4 -0
- package/src/api/neo/NeoGetAddress.ts +0 -4
- package/src/api/neo/NeoSignTransaction.ts +0 -4
- package/src/api/nervos/NervosGetAddress.ts +0 -4
- package/src/api/nervos/NervosSignTransaction.ts +2 -6
- package/src/api/nexa/NexaGetAddress.ts +0 -4
- package/src/api/nexa/NexaSignTransaction.ts +3 -5
- package/src/api/nostr/NostrDecryptMessage.ts +4 -0
- package/src/api/nostr/NostrEncryptMessage.ts +4 -0
- package/src/api/nostr/NostrGetPublicKey.ts +4 -0
- package/src/api/nostr/NostrSignEvent.ts +4 -0
- package/src/api/nostr/NostrSignSchnorr.ts +4 -0
- package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
- package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
- package/src/api/polkadot/networks.ts +3 -3
- package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
- package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
- package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
- package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
- package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
- package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
- package/src/api/protocol-v2/DeviceReboot.ts +7 -3
- package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
- package/src/api/protocol-v2/DeviceUploadNft.ts +197 -0
- package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
- package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
- package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
- package/src/api/protocol-v2/Ping.ts +37 -3
- package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
- package/src/api/protocol-v2/helpers.ts +17 -17
- package/src/api/scdo/ScdoGetAddress.ts +0 -4
- package/src/api/scdo/ScdoSignMessage.ts +0 -4
- package/src/api/scdo/ScdoSignTransaction.ts +0 -4
- package/src/api/solana/SolGetAddress.ts +4 -0
- package/src/api/solana/SolSignMessage.ts +5 -1
- package/src/api/solana/SolSignOffchainMessage.ts +5 -1
- package/src/api/solana/SolSignTransaction.ts +6 -2
- package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
- package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
- package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
- package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
- package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
- package/src/api/stellar/StellarGetAddress.ts +1 -10
- package/src/api/stellar/StellarSignTransaction.ts +1 -14
- package/src/api/sui/SuiGetAddress.ts +5 -1
- package/src/api/sui/SuiGetPublicKey.ts +5 -1
- package/src/api/sui/SuiSignMessage.ts +5 -1
- package/src/api/sui/SuiSignTransaction.ts +5 -1
- package/src/api/ton/TonGetAddress.ts +5 -1
- package/src/api/ton/TonSignData.ts +5 -1
- package/src/api/ton/TonSignMessage.ts +5 -1
- package/src/api/ton/TonSignProof.ts +5 -1
- package/src/api/tron/TronGetAddress.ts +4 -0
- package/src/api/tron/TronSignMessage.ts +19 -8
- package/src/api/tron/TronSignTransaction.ts +5 -1
- package/src/api/utils.ts +7 -3
- package/src/api/xrp/XrpGetAddress.ts +4 -0
- package/src/api/xrp/XrpSignTransaction.ts +5 -1
- package/src/constants/index.ts +1 -4
- package/src/core/RequestQueue.ts +1 -0
- package/src/core/deviceEventRegistration.ts +27 -0
- package/src/core/index.ts +365 -152
- package/src/core/uiPromiseRegistry.ts +63 -0
- package/src/data/messages/messages-protocol-v2.json +1138 -441
- package/src/data/messages/messages.json +286 -1
- package/src/data-manager/DataManager.ts +88 -16
- package/src/data-manager/TransportManager.ts +7 -1
- package/src/data-manager/connectSettings.ts +4 -0
- package/src/device/Device.ts +891 -295
- package/src/device/DeviceCommands.ts +193 -158
- package/src/device/DeviceConnector.ts +43 -20
- package/src/device/DeviceFeaturesState.ts +25 -0
- package/src/device/DevicePool.ts +86 -22
- package/src/device/DeviceStateMapper.ts +374 -0
- package/src/device/DeviceStateProjector.ts +94 -0
- package/src/device/DeviceStateStore.ts +201 -0
- package/src/device/DeviceWalletSessionStore.ts +144 -0
- package/src/device/cloneDeviceState.ts +39 -0
- package/src/device/deviceIdentity.ts +18 -0
- package/src/deviceProfile/buildDeviceFeatures.ts +223 -189
- package/src/deviceProfile/index.ts +0 -1
- package/src/deviceProfile/protocolV2DeviceIdentity.ts +35 -0
- package/src/events/device.ts +22 -1
- package/src/events/logBlockEvent.ts +80 -2
- package/src/events/ui-promise.ts +4 -2
- package/src/events/ui-request.ts +61 -4
- package/src/events/ui-response.ts +12 -2
- package/src/inject.ts +73 -43
- package/src/lowLevelInject.ts +6 -3
- package/src/protocols/protocol-v2/deviceSession.ts +24 -0
- package/src/protocols/protocol-v2/features.ts +100 -33
- package/src/protocols/protocol-v2/firmware.ts +3 -1
- package/src/protocols/protocol-v2/index.ts +8 -1
- package/src/protocols/protocol-v2/resources.ts +390 -0
- package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
- package/src/protocols/protocol-v2/uiInteraction.ts +250 -0
- package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
- package/src/protocols/protocol-v2/unlockPolicyRunner.ts +118 -0
- package/src/protocols/protocol-v2/walletSession.ts +463 -0
- package/src/topLevelInject.ts +6 -3
- package/src/types/api/checkAllFirmwareRelease.ts +48 -4
- package/src/types/api/detectDeviceConnectProtocol.ts +6 -0
- package/src/types/api/deviceSettings.ts +26 -2
- package/src/types/api/deviceUnlock.ts +13 -2
- package/src/types/api/export.ts +9 -0
- package/src/types/api/firmwareUpdate.ts +26 -5
- package/src/types/api/getDeviceState.ts +19 -0
- package/src/types/api/getFeatures.ts +3 -0
- package/src/types/api/getOnekeyFeatures.ts +3 -0
- package/src/types/api/getPassphraseState.ts +9 -11
- package/src/types/api/index.ts +38 -64
- package/src/types/api/kaspaSignTransaction.ts +60 -4
- package/src/types/api/openWalletSession.ts +54 -0
- package/src/types/api/protocolV2.ts +33 -141
- package/src/types/api/sessionCache.ts +19 -0
- package/src/types/device.ts +200 -10
- package/src/types/params.ts +9 -2
- package/src/types/settings.ts +76 -24
- package/src/utils/assets.ts +4 -1
- package/src/utils/deviceFeaturesCompat.ts +185 -0
- package/src/utils/deviceFeaturesUtils.ts +65 -47
- package/src/utils/deviceInfoUtils.ts +29 -69
- package/src/utils/deviceSettings.ts +174 -39
- package/src/utils/deviceVersionUtils.ts +25 -44
- package/src/utils/findDefectiveBatchDevice.ts +3 -3
- package/src/utils/homescreen.ts +36 -0
- package/src/utils/index.ts +27 -3
- package/src/utils/networkUtils.ts +274 -16
- package/src/utils/pro2Nft.ts +142 -0
- package/src/utils/pro2Wallpaper.ts +130 -0
- package/src/utils/tracing.ts +3 -1
- package/src/utils/uiProgressThrottle.ts +63 -0
- package/tsconfig.type-tests.json +12 -0
- package/dist/api/GetDeviceInfo.d.ts +0 -9
- package/dist/api/GetDeviceInfo.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/protocol-v2/FilesystemDiskControl.d.ts +0 -13
- package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
- package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
- package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
- package/dist/types/api/getDeviceInfo.d.ts +0 -87
- package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
- package/src/api/GetDeviceInfo.ts +0 -145
- package/src/api/firmware/progressThrottle.ts +0 -44
- package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
- package/src/deviceProfile/buildDeviceProfile.ts +0 -352
- package/src/types/api/getDeviceInfo.ts +0 -101
|
@@ -2,15 +2,19 @@ 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 TransportManager from '../../data-manager/TransportManager';
|
|
6
5
|
import getPublicKey from './latest/getPublicKey';
|
|
7
6
|
import getPublicKeyLegacyV1 from './legacyV1/getPublicKey';
|
|
7
|
+
import { shouldUseLegacyV1EvmMessages } from './protocol';
|
|
8
8
|
import { batchGetPublickeys, supportBatchPublicKeyByDevice } from '../helpers/batchGetPublickeys';
|
|
9
9
|
|
|
10
10
|
import type { EVMGetPublicKeyParams, EVMPublicKey } from '../../types';
|
|
11
11
|
import type { EthereumGetPublicKey, EthereumGetPublicKeyOneKey } from '@onekeyfe/hd-transport';
|
|
12
12
|
|
|
13
13
|
export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneKey[]> {
|
|
14
|
+
getSupportedProtocols() {
|
|
15
|
+
return ['V1', 'V2'] as const;
|
|
16
|
+
}
|
|
17
|
+
|
|
14
18
|
hasBundle = false;
|
|
15
19
|
|
|
16
20
|
confirmShowOnOneKey = false;
|
|
@@ -56,7 +60,7 @@ export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneK
|
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
getEvmPublicKey(param: EthereumGetPublicKey) {
|
|
59
|
-
if (
|
|
63
|
+
if (shouldUseLegacyV1EvmMessages(this.device)) {
|
|
60
64
|
return getPublicKeyLegacyV1({
|
|
61
65
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
62
66
|
param,
|
|
@@ -3,13 +3,17 @@ import { validatePath } from '../helpers/pathUtils';
|
|
|
3
3
|
import { BaseMethod } from '../BaseMethod';
|
|
4
4
|
import { validateParams } from '../helpers/paramsValidator';
|
|
5
5
|
import { formatAnyHex } from '../helpers/hexUtils';
|
|
6
|
-
import TransportManager from '../../data-manager/TransportManager';
|
|
7
6
|
import signMessage from './latest/signMessage';
|
|
8
7
|
import signMessageLegacyV1 from './legacyV1/signMessage';
|
|
8
|
+
import { shouldUseLegacyV1EvmMessages } from './protocol';
|
|
9
9
|
|
|
10
10
|
import type { EthereumSignMessageOneKey } from '@onekeyfe/hd-transport';
|
|
11
11
|
|
|
12
12
|
export default class EVMSignMessage extends BaseMethod<EthereumSignMessageOneKey> {
|
|
13
|
+
getSupportedProtocols() {
|
|
14
|
+
return ['V1', 'V2'] as const;
|
|
15
|
+
}
|
|
16
|
+
|
|
13
17
|
init() {
|
|
14
18
|
this.checkDeviceId = true;
|
|
15
19
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
|
|
@@ -36,7 +40,7 @@ export default class EVMSignMessage extends BaseMethod<EthereumSignMessageOneKey
|
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
async run() {
|
|
39
|
-
if (
|
|
43
|
+
if (shouldUseLegacyV1EvmMessages(this.device)) {
|
|
40
44
|
return signMessageLegacyV1({
|
|
41
45
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
42
46
|
params: this.params,
|
|
@@ -35,10 +35,6 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
|
|
|
35
35
|
|
|
36
36
|
getVersionRange(): DeviceFirmwareRange {
|
|
37
37
|
return {
|
|
38
|
-
pro2: {
|
|
39
|
-
min: '0.0.0',
|
|
40
|
-
unsupported: true,
|
|
41
|
-
},
|
|
42
38
|
model_mini: {
|
|
43
39
|
min: '2.1.9',
|
|
44
40
|
},
|
|
@@ -49,13 +45,7 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
|
|
|
49
45
|
}
|
|
50
46
|
|
|
51
47
|
async run() {
|
|
52
|
-
this.
|
|
53
|
-
() => true,
|
|
54
|
-
() => this.getVersionRange(),
|
|
55
|
-
{
|
|
56
|
-
strictCheckDeviceSupport: true,
|
|
57
|
-
}
|
|
58
|
-
);
|
|
48
|
+
this.assertProtocolSupported(this.device.getProtocol(), this.device.getCurrentFirmwareType());
|
|
59
49
|
|
|
60
50
|
const res = await this.device.commands.typedCall(
|
|
61
51
|
'EthereumSignMessageEIP712',
|
|
@@ -5,9 +5,9 @@ import { validatePath } from '../helpers/pathUtils';
|
|
|
5
5
|
import { BaseMethod } from '../BaseMethod';
|
|
6
6
|
import { validateParams } from '../helpers/paramsValidator';
|
|
7
7
|
import { formatAnyHex } from '../helpers/hexUtils';
|
|
8
|
-
import TransportManager from '../../data-manager/TransportManager';
|
|
9
8
|
import { signTransaction } from './latest/signTransaction';
|
|
10
9
|
import { signTransaction as signTransactionLegacyV1 } from './legacyV1/signTransaction';
|
|
10
|
+
import { shouldUseLegacyV1EvmMessages } from './protocol';
|
|
11
11
|
|
|
12
12
|
import type {
|
|
13
13
|
EVMSignTransactionParams,
|
|
@@ -18,6 +18,10 @@ import type {
|
|
|
18
18
|
import type { SchemaParam } from '../helpers/paramsValidator';
|
|
19
19
|
|
|
20
20
|
export default class EVMSignTransaction extends BaseMethod {
|
|
21
|
+
getSupportedProtocols() {
|
|
22
|
+
return ['V1', 'V2'] as const;
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
addressN: number[] = [];
|
|
22
26
|
|
|
23
27
|
isEIP1559 = false;
|
|
@@ -122,7 +126,7 @@ export default class EVMSignTransaction extends BaseMethod {
|
|
|
122
126
|
|
|
123
127
|
if (formattedTx == null) throw ERRORS.TypedError('Runtime', 'formattedTx is not set');
|
|
124
128
|
|
|
125
|
-
if (
|
|
129
|
+
if (shouldUseLegacyV1EvmMessages(this.device)) {
|
|
126
130
|
return signTransactionLegacyV1({
|
|
127
131
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
128
132
|
addressN,
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
type EthereumSignTypedDataMessage,
|
|
16
16
|
type EthereumSignTypedDataTypes,
|
|
17
17
|
} from '../../types';
|
|
18
|
-
import TransportManager from '../../data-manager/TransportManager';
|
|
19
18
|
import { signTypedHash as signTypedHashLegacyV1 } from './legacyV1/signTypedHash';
|
|
19
|
+
import { shouldUseLegacyV1EvmMessages } from './protocol';
|
|
20
20
|
import { signTypedHash } from './latest/signTypedHash';
|
|
21
21
|
import { signTypedData as signTypedDataLegacyV1 } from './legacyV1/signTypedData';
|
|
22
22
|
import { signTypedData } from './latest/signTypedData';
|
|
@@ -32,9 +32,8 @@ import type {
|
|
|
32
32
|
} from '@onekeyfe/hd-transport';
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* EthereumTypedDataStructAckOneKey
|
|
36
|
-
*
|
|
37
|
-
* 这里做无运行时成本的名义转换,避免在调用点散落 any。
|
|
35
|
+
* EthereumTypedDataStructAckOneKey and EthereumTypedDataStructAck have identical
|
|
36
|
+
* fields and enum values. This zero-cost nominal conversion avoids scattered `any`.
|
|
38
37
|
*/
|
|
39
38
|
const toOneKeyStructAck = (ack: EthereumTypedDataStructAck): EthereumTypedDataStructAckOneKey =>
|
|
40
39
|
ack as unknown as EthereumTypedDataStructAckOneKey;
|
|
@@ -57,6 +56,10 @@ const MINI_MAX_ARRAY_TYPE_FIELDS = 24;
|
|
|
57
56
|
const MINI_MAX_ARRAY_ELEMENTS = 24;
|
|
58
57
|
|
|
59
58
|
export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams> {
|
|
59
|
+
getSupportedProtocols() {
|
|
60
|
+
return ['V1', 'V2'] as const;
|
|
61
|
+
}
|
|
62
|
+
|
|
60
63
|
init() {
|
|
61
64
|
this.checkDeviceId = true;
|
|
62
65
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
|
|
@@ -227,8 +230,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
227
230
|
if (response.type === 'EthereumGnosisSafeTxRequest') {
|
|
228
231
|
const { data } = this.params;
|
|
229
232
|
const verifyingContract = data.domain?.verifyingContract;
|
|
230
|
-
//
|
|
231
|
-
// Gnosis Safe 签名缺少 verifyingContract 没有意义,这里给出明确的参数错误。
|
|
233
|
+
// verifyingContract is required by proto and essential to a Gnosis Safe signature.
|
|
232
234
|
if (!verifyingContract) {
|
|
233
235
|
throw ERRORS.TypedError(
|
|
234
236
|
HardwareErrorCode.CallMethodInvalidParameter,
|
|
@@ -276,29 +278,23 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
276
278
|
|
|
277
279
|
let supportTrezor = false;
|
|
278
280
|
let response: MessageResponse<MessageKey>;
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
addressN,
|
|
297
|
-
data,
|
|
298
|
-
metamaskV4Compat,
|
|
299
|
-
chainId,
|
|
300
|
-
});
|
|
301
|
-
break;
|
|
281
|
+
if (shouldUseLegacyV1EvmMessages(this.device)) {
|
|
282
|
+
supportTrezor = true;
|
|
283
|
+
response = await signTypedDataLegacyV1({
|
|
284
|
+
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
285
|
+
addressN,
|
|
286
|
+
data,
|
|
287
|
+
metamaskV4Compat,
|
|
288
|
+
chainId,
|
|
289
|
+
});
|
|
290
|
+
} else {
|
|
291
|
+
response = await signTypedData({
|
|
292
|
+
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
293
|
+
addressN,
|
|
294
|
+
data,
|
|
295
|
+
metamaskV4Compat,
|
|
296
|
+
chainId,
|
|
297
|
+
});
|
|
302
298
|
}
|
|
303
299
|
|
|
304
300
|
return this.handleSignTypedData({
|
|
@@ -324,28 +320,24 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
|
|
|
324
320
|
}) {
|
|
325
321
|
if (!domainHash) throw ERRORS.TypedError('Runtime', 'domainHash is required');
|
|
326
322
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
});
|
|
337
|
-
|
|
338
|
-
case 'v1CurrentSchema':
|
|
339
|
-
default:
|
|
340
|
-
return signTypedHash({
|
|
341
|
-
typedCall,
|
|
342
|
-
addressN,
|
|
343
|
-
domainHash,
|
|
344
|
-
messageHash,
|
|
345
|
-
chainId,
|
|
346
|
-
device: this.device,
|
|
347
|
-
});
|
|
323
|
+
if (shouldUseLegacyV1EvmMessages(this.device)) {
|
|
324
|
+
return signTypedHashLegacyV1({
|
|
325
|
+
typedCall,
|
|
326
|
+
addressN,
|
|
327
|
+
domainHash,
|
|
328
|
+
messageHash,
|
|
329
|
+
chainId,
|
|
330
|
+
device: this.device,
|
|
331
|
+
});
|
|
348
332
|
}
|
|
333
|
+
return signTypedHash({
|
|
334
|
+
typedCall,
|
|
335
|
+
addressN,
|
|
336
|
+
domainHash,
|
|
337
|
+
messageHash,
|
|
338
|
+
chainId,
|
|
339
|
+
device: this.device,
|
|
340
|
+
});
|
|
349
341
|
}
|
|
350
342
|
|
|
351
343
|
getVersionRange() {
|
|
@@ -2,13 +2,17 @@ import { UI_REQUEST } from '../../constants/ui-request';
|
|
|
2
2
|
import { BaseMethod } from '../BaseMethod';
|
|
3
3
|
import { validateParams } from '../helpers/paramsValidator';
|
|
4
4
|
import { formatAnyHex } from '../helpers/hexUtils';
|
|
5
|
-
import TransportManager from '../../data-manager/TransportManager';
|
|
6
5
|
import verifyMessageLegacyV1 from './legacyV1/verifyMessage';
|
|
7
6
|
import verifyMessage from './latest/verifyMessage';
|
|
7
|
+
import { shouldUseLegacyV1EvmMessages } from './protocol';
|
|
8
8
|
|
|
9
9
|
import type { EthereumVerifyMessageOneKey } from '@onekeyfe/hd-transport';
|
|
10
10
|
|
|
11
11
|
export default class EVMSignMessage extends BaseMethod<EthereumVerifyMessageOneKey> {
|
|
12
|
+
getSupportedProtocols() {
|
|
13
|
+
return ['V1', 'V2'] as const;
|
|
14
|
+
}
|
|
15
|
+
|
|
12
16
|
init() {
|
|
13
17
|
this.checkDeviceId = true;
|
|
14
18
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
|
|
@@ -31,7 +35,7 @@ export default class EVMSignMessage extends BaseMethod<EthereumVerifyMessageOneK
|
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
async run() {
|
|
34
|
-
if (
|
|
38
|
+
if (shouldUseLegacyV1EvmMessages(this.device)) {
|
|
35
39
|
return verifyMessageLegacyV1({
|
|
36
40
|
typedCall: this.device.commands.typedCall.bind(this.device.commands),
|
|
37
41
|
params: this.params,
|
|
@@ -7,8 +7,8 @@ export default async function ({
|
|
|
7
7
|
typedCall: TypedCall;
|
|
8
8
|
param: EthereumGetAddressOneKey;
|
|
9
9
|
}): Promise<MessageResponse<'EthereumAddress'>> {
|
|
10
|
-
// legacy
|
|
11
|
-
//
|
|
10
|
+
// The generated legacy type omits chain_id, but old firmware accepts the OneKey
|
|
11
|
+
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
12
12
|
const message = {
|
|
13
13
|
address_n: param.address_n,
|
|
14
14
|
show_display: param.show_display,
|
|
@@ -11,8 +11,8 @@ export default async function ({
|
|
|
11
11
|
typedCall: TypedCall;
|
|
12
12
|
param: EthereumGetPublicKeyOneKey;
|
|
13
13
|
}): Promise<MessageResponse<'EthereumPublicKey'>> {
|
|
14
|
-
// legacy
|
|
15
|
-
//
|
|
14
|
+
// The generated legacy type omits chain_id, but old firmware accepts the OneKey
|
|
15
|
+
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
16
16
|
const message = {
|
|
17
17
|
address_n: param.address_n,
|
|
18
18
|
show_display: param.show_display,
|
|
@@ -11,8 +11,8 @@ export default async function ({
|
|
|
11
11
|
typedCall: TypedCall;
|
|
12
12
|
params: EthereumSignMessageOneKey;
|
|
13
13
|
}): Promise<EthereumMessageSignature> {
|
|
14
|
-
// legacy
|
|
15
|
-
//
|
|
14
|
+
// The generated legacy type omits chain_id, but old firmware accepts the OneKey
|
|
15
|
+
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
16
16
|
const message = {
|
|
17
17
|
address_n: params.address_n,
|
|
18
18
|
message: params.message,
|
|
@@ -16,8 +16,8 @@ export const signTypedData = async ({
|
|
|
16
16
|
}) => {
|
|
17
17
|
const { primaryType }: EthereumSignTypedDataMessage<EthereumSignTypedDataTypes> = data;
|
|
18
18
|
|
|
19
|
-
// legacy
|
|
20
|
-
//
|
|
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
21
|
const message = {
|
|
22
22
|
address_n: addressN,
|
|
23
23
|
primary_type: primaryType as string,
|
|
@@ -38,8 +38,8 @@ export const signTypedHash = async ({
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
// legacy
|
|
42
|
-
//
|
|
41
|
+
// The generated legacy type omits chain_id, but old firmware accepts the OneKey
|
|
42
|
+
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
43
43
|
const message = {
|
|
44
44
|
address_n: addressN,
|
|
45
45
|
domain_separator_hash: domainHash ?? '',
|
|
@@ -7,8 +7,8 @@ export default async function ({
|
|
|
7
7
|
typedCall: TypedCall;
|
|
8
8
|
params: EthereumVerifyMessageOneKey;
|
|
9
9
|
}): Promise<Success> {
|
|
10
|
-
// legacy
|
|
11
|
-
//
|
|
10
|
+
// The generated legacy type omits chain_id, but old firmware accepts the OneKey
|
|
11
|
+
// extension. A non-fresh object preserves that runtime field without a type cast.
|
|
12
12
|
const message = {
|
|
13
13
|
signature: params.signature,
|
|
14
14
|
message: params.message,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import TransportManager from '../../data-manager/TransportManager';
|
|
2
|
+
|
|
3
|
+
import type { Device } from '../../device/Device';
|
|
4
|
+
|
|
5
|
+
export const shouldUseLegacyV1EvmMessages = (device: Pick<Device, 'isProtocolV2'>): boolean =>
|
|
6
|
+
!device.isProtocolV2() && TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema';
|
|
@@ -7,6 +7,10 @@ import type { FilecoinGetAddress as HardwareFilecoinGetAddress } from '@onekeyfe
|
|
|
7
7
|
import type { FilecoinAddress, FilecoinGetAddressParams } from '../../types';
|
|
8
8
|
|
|
9
9
|
export default class FilecoinGetAddress extends BaseMethod<HardwareFilecoinGetAddress[]> {
|
|
10
|
+
getSupportedProtocols() {
|
|
11
|
+
return ['V1', 'V2'] as const;
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
hasBundle = false;
|
|
11
15
|
|
|
12
16
|
init() {
|
|
@@ -7,6 +7,10 @@ import type { FilecoinSignTransactionParams } from '../../types';
|
|
|
7
7
|
import type { FilecoinSignTx as HardwareFilecoinSignTx } from '@onekeyfe/hd-transport';
|
|
8
8
|
|
|
9
9
|
export default class FilecoinSignTransaction extends BaseMethod<HardwareFilecoinSignTx> {
|
|
10
|
+
getSupportedProtocols() {
|
|
11
|
+
return ['V1', 'V2'] as const;
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
hasBundle = false;
|
|
11
15
|
|
|
12
16
|
init() {
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
|
|
9
9
|
import { FirmwareUpdateTipMessage, UI_REQUEST, createUiMessage } from '../../events/ui-request';
|
|
10
10
|
import { DevicePool } from '../../device/DevicePool';
|
|
11
|
-
import { LoggerNames,
|
|
11
|
+
import { LoggerNames, 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
16
|
|
|
18
17
|
import type {
|
|
18
|
+
FirmwareProgress,
|
|
19
19
|
IFirmwareUpdateProgressType,
|
|
20
20
|
IFirmwareUpdateTipMessage,
|
|
21
21
|
} from '../../events/ui-request';
|
|
@@ -29,6 +29,11 @@ const Log = getLogger(LoggerNames.Method);
|
|
|
29
29
|
const SESSION_ERROR = 'session not found';
|
|
30
30
|
const FIRMWARE_UPDATE_CONFIRM = 'Firmware install confirmed';
|
|
31
31
|
|
|
32
|
+
type FirmwareTransferMetrics = Pick<
|
|
33
|
+
FirmwareProgress['payload'],
|
|
34
|
+
'transferredBytes' | 'totalBytes' | 'rateBytesPerSecond' | 'elapsedMs'
|
|
35
|
+
>;
|
|
36
|
+
|
|
32
37
|
const isDeviceDisconnectedError = (error: unknown) => {
|
|
33
38
|
const message = error instanceof Error ? error.message : String(error ?? '');
|
|
34
39
|
return (
|
|
@@ -41,8 +46,6 @@ const isDeviceDisconnectedError = (error: unknown) => {
|
|
|
41
46
|
export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
42
47
|
checkPromise: Deferred<any> | null = null;
|
|
43
48
|
|
|
44
|
-
private shouldPostFirmwareProgress = createFirmwareProgressThrottle();
|
|
45
|
-
|
|
46
49
|
init(): void {}
|
|
47
50
|
|
|
48
51
|
run(): Promise<any> {
|
|
@@ -85,16 +88,17 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
85
88
|
* @description Post the progress message
|
|
86
89
|
* @param progress Post the percentage of the progress
|
|
87
90
|
*/
|
|
88
|
-
postProgressMessage = (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
postProgressMessage = (
|
|
92
|
+
progress: number,
|
|
93
|
+
progressType: IFirmwareUpdateProgressType,
|
|
94
|
+
metrics?: FirmwareTransferMetrics
|
|
95
|
+
) => {
|
|
93
96
|
this.postMessage(
|
|
94
97
|
createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS, {
|
|
95
98
|
device: this.device.toMessageObject() as KnownDevice,
|
|
96
99
|
progress,
|
|
97
100
|
progressType,
|
|
101
|
+
...metrics,
|
|
98
102
|
})
|
|
99
103
|
);
|
|
100
104
|
};
|
|
@@ -198,7 +202,8 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
198
202
|
await this.device.deviceConnector?.acquire(
|
|
199
203
|
this.device.originalDescriptor.id,
|
|
200
204
|
null,
|
|
201
|
-
true
|
|
205
|
+
true,
|
|
206
|
+
this.payload.connectProtocol ?? this.device.originalDescriptor.protocolType
|
|
202
207
|
);
|
|
203
208
|
await this.device.initialize();
|
|
204
209
|
if (this.device.isBootloader()) {
|
|
@@ -232,7 +237,9 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
232
237
|
) {
|
|
233
238
|
const deviceDiff = await this.device.deviceConnector?.enumerate();
|
|
234
239
|
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
235
|
-
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, connectId
|
|
240
|
+
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, connectId, {
|
|
241
|
+
connectProtocol: this.payload.connectProtocol ?? this.device.originalDescriptor.protocolType,
|
|
242
|
+
});
|
|
236
243
|
|
|
237
244
|
if (deviceList.length === 1 && deviceList[0]?.isBootloader()) {
|
|
238
245
|
// should update current device from cache
|
|
@@ -251,7 +258,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
251
258
|
async enterBootloaderMode() {
|
|
252
259
|
const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
|
|
253
260
|
if (this.device.features && !this.device.isBootloader()) {
|
|
254
|
-
const
|
|
261
|
+
const serialNo = this.device.getCurrentSerialNo();
|
|
255
262
|
const deviceType = this.device.getCurrentDeviceType();
|
|
256
263
|
// auto go to bootloader mode
|
|
257
264
|
try {
|
|
@@ -266,7 +273,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
266
273
|
|
|
267
274
|
// force clean classic device cache so that the device can initialize again
|
|
268
275
|
if (DeviceModelToTypes.model_classic.includes(deviceType)) {
|
|
269
|
-
DevicePool.clearDeviceCache(
|
|
276
|
+
DevicePool.clearDeviceCache(serialNo);
|
|
270
277
|
}
|
|
271
278
|
delete DevicePool.devicesCache[''];
|
|
272
279
|
await this.checkPromise?.promise;
|
|
@@ -441,7 +448,12 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
441
448
|
const env = DataManager.getSettings('env');
|
|
442
449
|
if (DataManager.isBleConnect(env)) {
|
|
443
450
|
await wait(3000);
|
|
444
|
-
await this.device.deviceConnector?.acquire(
|
|
451
|
+
await this.device.deviceConnector?.acquire(
|
|
452
|
+
this.device.originalDescriptor.id,
|
|
453
|
+
null,
|
|
454
|
+
true,
|
|
455
|
+
this.payload.connectProtocol ?? this.device.originalDescriptor.protocolType
|
|
456
|
+
);
|
|
445
457
|
await this.device.initialize();
|
|
446
458
|
} else if (
|
|
447
459
|
error?.message?.indexOf(SESSION_ERROR) > -1 ||
|
|
@@ -449,7 +461,10 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
|
|
|
449
461
|
) {
|
|
450
462
|
const deviceDiff = await this.device.deviceConnector?.enumerate();
|
|
451
463
|
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
452
|
-
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined
|
|
464
|
+
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined, {
|
|
465
|
+
connectProtocol:
|
|
466
|
+
this.payload.connectProtocol ?? this.device.originalDescriptor.protocolType,
|
|
467
|
+
});
|
|
453
468
|
if (deviceList.length === 1 && deviceList[0]?.isBootloader()) {
|
|
454
469
|
this.device.updateFromCache(deviceList[0]);
|
|
455
470
|
await this.device.acquire();
|
|
@@ -7,9 +7,12 @@ import { findLatestRelease } from '../../utils/release';
|
|
|
7
7
|
import { getFirmwareUpdateField } from '../../utils/deviceFeaturesUtils';
|
|
8
8
|
|
|
9
9
|
import type { Features } from '../../types';
|
|
10
|
+
import type { HttpRequestOptions } from '../../utils/networkUtils';
|
|
10
11
|
import type { EFirmwareType } from '@onekeyfe/hd-shared';
|
|
11
12
|
import type { IFirmwareField } from '../../data-manager/DataManager';
|
|
12
13
|
|
|
14
|
+
export type FirmwareBinary = ArrayBuffer | Buffer;
|
|
15
|
+
|
|
13
16
|
export interface GetInfoProps {
|
|
14
17
|
features: Features;
|
|
15
18
|
updateType: 'firmware' | 'ble';
|
|
@@ -20,6 +23,7 @@ export interface GetInfoProps {
|
|
|
20
23
|
|
|
21
24
|
interface GetBinaryProps extends GetInfoProps {
|
|
22
25
|
version?: number[];
|
|
26
|
+
requestOptions?: HttpRequestOptions;
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
export const getBinary = async ({
|
|
@@ -28,6 +32,7 @@ export const getBinary = async ({
|
|
|
28
32
|
version,
|
|
29
33
|
isUpdateBootloader,
|
|
30
34
|
firmwareType,
|
|
35
|
+
requestOptions,
|
|
31
36
|
}: GetBinaryProps) => {
|
|
32
37
|
const releaseInfo = getInfo({
|
|
33
38
|
features,
|
|
@@ -55,9 +60,9 @@ export const getBinary = async ({
|
|
|
55
60
|
: isUpdateBootloader
|
|
56
61
|
? releaseInfo.bootloaderResource
|
|
57
62
|
: releaseInfo.url;
|
|
58
|
-
let fw;
|
|
63
|
+
let fw: FirmwareBinary;
|
|
59
64
|
try {
|
|
60
|
-
fw = await httpRequest(url, 'binary');
|
|
65
|
+
fw = await httpRequest(url, 'binary', requestOptions);
|
|
61
66
|
} catch {
|
|
62
67
|
throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'Method_FirmwareUpdate_DownloadFailed');
|
|
63
68
|
}
|
|
@@ -69,7 +74,7 @@ export const getBinary = async ({
|
|
|
69
74
|
};
|
|
70
75
|
|
|
71
76
|
export const getSysResourceBinary = async (url: string) => {
|
|
72
|
-
let fw;
|
|
77
|
+
let fw: FirmwareBinary;
|
|
73
78
|
try {
|
|
74
79
|
fw = await httpRequest(url, 'binary');
|
|
75
80
|
} catch {
|
|
@@ -322,7 +322,12 @@ const newTouchUpdateProcess = async (
|
|
|
322
322
|
try {
|
|
323
323
|
if (isBleReconnect) {
|
|
324
324
|
try {
|
|
325
|
-
await device.deviceConnector?.acquire(
|
|
325
|
+
await device.deviceConnector?.acquire(
|
|
326
|
+
device.originalDescriptor.id,
|
|
327
|
+
null,
|
|
328
|
+
true,
|
|
329
|
+
device.originalDescriptor.protocolType
|
|
330
|
+
);
|
|
326
331
|
const typedCall = device.getCommands().typedCall.bind(device.getCommands());
|
|
327
332
|
await Promise.race([
|
|
328
333
|
typedCall('Initialize', 'Features', {}),
|
|
@@ -341,7 +346,8 @@ const newTouchUpdateProcess = async (
|
|
|
341
346
|
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
342
347
|
const { deviceList } = await DevicePool.getDevices(
|
|
343
348
|
devicesDescriptor,
|
|
344
|
-
device.originalDescriptor.id
|
|
349
|
+
device.originalDescriptor.id,
|
|
350
|
+
{ connectProtocol: device.originalDescriptor.protocolType }
|
|
345
351
|
);
|
|
346
352
|
if (deviceList.length === 1) {
|
|
347
353
|
device.updateFromCache(deviceList[0]);
|
|
@@ -416,7 +422,12 @@ const emmcFileWriteWithRetry = async (
|
|
|
416
422
|
const env = DataManager.getSettings('env');
|
|
417
423
|
if (DataManager.isBleConnect(env)) {
|
|
418
424
|
await wait(3000);
|
|
419
|
-
await device.deviceConnector?.acquire(
|
|
425
|
+
await device.deviceConnector?.acquire(
|
|
426
|
+
device.originalDescriptor.id,
|
|
427
|
+
null,
|
|
428
|
+
true,
|
|
429
|
+
device.originalDescriptor.protocolType
|
|
430
|
+
);
|
|
420
431
|
await device.initialize();
|
|
421
432
|
} else if (
|
|
422
433
|
error?.message?.indexOf(SESSION_ERROR) > -1 ||
|
|
@@ -424,7 +435,9 @@ const emmcFileWriteWithRetry = async (
|
|
|
424
435
|
) {
|
|
425
436
|
const deviceDiff = await device.deviceConnector?.enumerate();
|
|
426
437
|
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
427
|
-
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined
|
|
438
|
+
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined, {
|
|
439
|
+
connectProtocol: device.originalDescriptor.protocolType,
|
|
440
|
+
});
|
|
428
441
|
if (deviceList.length === 1 && deviceList[0]?.isBootloader()) {
|
|
429
442
|
device.updateFromCache(deviceList[0]);
|
|
430
443
|
await device.acquire();
|
|
@@ -27,8 +27,8 @@ export function supportBatchPublicKeyByDevice(
|
|
|
27
27
|
const currentVersion = device.getCurrentFirmwareVersionString() ?? '0.0.0';
|
|
28
28
|
const deviceType = device.getCurrentDeviceType();
|
|
29
29
|
|
|
30
|
-
// Pro2
|
|
31
|
-
//
|
|
30
|
+
// Pro2 has an independent version line and supports batch/include_node from its first
|
|
31
|
+
// firmware version, so the Protocol V1 Pro 4.x threshold does not apply.
|
|
32
32
|
if (device.isProtocolV2() || deviceType === EDeviceType.Pro2) {
|
|
33
33
|
return true;
|
|
34
34
|
}
|