@onekeyfe/hd-core 0.3.23 → 0.3.24
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/dist/api/firmware/getBinary.d.ts.map +1 -1
- package/dist/data-manager/DataManager.d.ts +1 -0
- package/dist/data-manager/DataManager.d.ts.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +41 -18
- package/dist/types/settings.d.ts +0 -1
- package/dist/types/settings.d.ts.map +1 -1
- package/dist/utils/deviceFeaturesUtils.d.ts +6 -2
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/firmware/getBinary.ts +6 -9
- package/src/data-manager/DataManager.ts +30 -9
- package/src/types/settings.ts +0 -1
- package/src/utils/deviceFeaturesUtils.ts +16 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,2DAKnB,cAAc;;;;;;;;;;;;;;;;;;;;EAiChB,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAe,MAAM;;EAWrD,CAAC;AAEF,eAAO,MAAM,OAAO,4CAA6C,YAAY,2DAY5E,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AssetsMap, ConnectSettings, DeviceTypeMap, Features, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, ITransportStatus, IVersionArray } from '../types';
|
|
2
|
+
export declare type FirmwareField = 'firmware' | 'firmware-v2' | 'firmware-v4';
|
|
2
3
|
export declare type MessageVersion = 'latest' | 'v1';
|
|
3
4
|
export default class DataManager {
|
|
4
5
|
static deviceMap: DeviceTypeMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/DataManager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EAEd,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/DataManager.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EAEd,MAAM,UAAU,CAAC;AAGlB,oBAAY,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;AAEvE,oBAAY,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,MAAM,CAAC,SAAS,EAAE,aAAa,CAiB7B;IAEF,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEvC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC;IAEjC,MAAM,CAAC,QAAQ,EAAE;SAAG,OAAO,IAAI,cAAc,GAAG,IAAI;KAAE,CAGpD;IAEF,MAAM,CAAC,kBAAkB,SAAK;IAE9B,MAAM,CAAC,iBAAiB,aAAc,QAAQ,KAAG,qBAAqB,CAepE;IAMF,MAAM,CAAC,4BAA4B,aAAc,QAAQ,+DAmBvD;IAMF,MAAM,CAAC,kBAAkB,aAAc,QAAQ,wBAa7C;IAEF,MAAM,CAAC,qBAAqB,aAAc,QAAQ,wBAYhD;IAEF,MAAM,CAAC,0BAA0B,aAAc,QAAQ,KAAG,aAAa,GAAG,SAAS,CAWjF;IAEF,MAAM,CAAC,mCAAmC,aAAc,QAAQ,KAAG,aAAa,GAAG,SAAS,CAc1F;IAEF,MAAM,CAAC,oBAAoB,aAAc,QAAQ;;;QAkB/C;IAEF,MAAM,CAAC,wBAAwB,aAAc,QAAQ,yDAmBnD;IAEF,MAAM,CAAC,oBAAoB,aAAc,QAAQ,KAAG,wBAAwB,CAY1E;IAEF,MAAM,CAAC,uBAAuB,aAAc,QAAQ;;;QAWlD;IAEF,MAAM,CAAC,2BAA2B,aAAc,QAAQ,4DAItD;IAEF,MAAM,CAAC,kBAAkB,iBAAkB,MAAM,KAAG,gBAAgB,CAKlE;WAEW,IAAI,CAAC,QAAQ,EAAE,eAAe;WA4B9B,kBAAkB;IAQ/B,MAAM,CAAC,mBAAmB,CAAC,cAAc,GAAE,cAAyB,GAAG,IAAI;IAI3E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,eAAe;IAEpD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;CAShF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -199,7 +199,6 @@ declare type DeviceTypeMap = {
|
|
|
199
199
|
[k in IDeviceType]: {
|
|
200
200
|
firmware: IFirmwareReleaseInfo[];
|
|
201
201
|
'firmware-v2'?: IFirmwareReleaseInfo[];
|
|
202
|
-
'firmware-v3'?: IFirmwareReleaseInfo[];
|
|
203
202
|
'firmware-v4'?: IFirmwareReleaseInfo[];
|
|
204
203
|
ble: IBLEFirmwareReleaseInfo[];
|
|
205
204
|
};
|
|
@@ -2250,6 +2249,7 @@ declare const versionCompare: (a: string | number[], b: string | number[]) => 0
|
|
|
2250
2249
|
|
|
2251
2250
|
declare function patchFeatures(response: DefaultMessageResponse): TypedResponseMessage<"Address"> | TypedResponseMessage<"AptosMessagePayload"> | TypedResponseMessage<"BinanceInputOutput"> | TypedResponseMessage<"BinanceCoin"> | TypedResponseMessage<"HDNodePathType"> | TypedResponseMessage<"HDNodeType"> | TypedResponseMessage<"MultisigRedeemScriptType"> | TypedResponseMessage<"TxRequestDetailsType"> | TypedResponseMessage<"TxRequestSerializedType"> | TypedResponseMessage<"TxInputType"> | TypedResponseMessage<"TxOutputBinType"> | TypedResponseMessage<"TxOutputType"> | TypedResponseMessage<"TxAckInputWrapper"> | TypedResponseMessage<"TxAckOutputWrapper"> | TypedResponseMessage<"PrevTx"> | TypedResponseMessage<"TxAckPrevInputWrapper"> | TypedResponseMessage<"PrevInput"> | TypedResponseMessage<"TxAckPrevOutputWrapper"> | TypedResponseMessage<"PrevOutput"> | TypedResponseMessage<"TxAckPrevExtraDataWrapper"> | TypedResponseMessage<"BIP32Address"> | TypedResponseMessage<"CardanoNativeScript"> | TypedResponseMessage<"CardanoBlockchainPointerType"> | TypedResponseMessage<"CardanoAddressParametersType"> | TypedResponseMessage<"CardanoPoolMetadataType"> | TypedResponseMessage<"CardanoPoolParametersType"> | TypedResponseMessage<"CardanoGovernanceRegistrationDelegation"> | TypedResponseMessage<"CardanoGovernanceRegistrationParametersType"> | TypedResponseMessage<"IdentityType"> | TypedResponseMessage<"Path"> | TypedResponseMessage<"EmmcFile"> | TypedResponseMessage<"EosTxHeader"> | TypedResponseMessage<"EosActionCommon"> | TypedResponseMessage<"EosActionTransfer"> | TypedResponseMessage<"EosActionDelegate"> | TypedResponseMessage<"EosActionUndelegate"> | TypedResponseMessage<"EosActionRefund"> | TypedResponseMessage<"EosActionBuyRam"> | TypedResponseMessage<"EosActionBuyRamBytes"> | TypedResponseMessage<"EosActionSellRam"> | TypedResponseMessage<"EosActionVoteProducer"> | TypedResponseMessage<"EosActionUpdateAuth"> | TypedResponseMessage<"EosActionDeleteAuth"> | TypedResponseMessage<"EosActionLinkAuth"> | TypedResponseMessage<"EosActionUnlinkAuth"> | TypedResponseMessage<"EosActionNewAccount"> | TypedResponseMessage<"EosActionUnknown"> | TypedResponseMessage<"EosPermissionLevel"> | TypedResponseMessage<"EosAuthorizationKey"> | TypedResponseMessage<"EosAuthorizationAccount"> | TypedResponseMessage<"EosAuthorizationWait"> | TypedResponseMessage<"EosAsset"> | TypedResponseMessage<"EosAuthorization"> | TypedResponseMessage<"EthereumStructMemberOneKey"> | TypedResponseMessage<"EthereumFieldTypeOneKey"> | TypedResponseMessage<"EthereumDefinitions"> | TypedResponseMessage<"EthereumStructMember"> | TypedResponseMessage<"EthereumFieldType"> | TypedResponseMessage<"EthereumAccessListOneKey"> | TypedResponseMessage<"EthereumAccessList"> | TypedResponseMessage<"FileInfo"> | TypedResponseMessage<"MoneroOutputEntry"> | TypedResponseMessage<"MoneroMultisigKLRki"> | TypedResponseMessage<"MoneroRctKeyPublic"> | TypedResponseMessage<"MoneroAccountPublicAddress"> | TypedResponseMessage<"MoneroTransactionData"> | TypedResponseMessage<"MoneroTransactionDestinationEntry"> | TypedResponseMessage<"MoneroTransactionRsigData"> | TypedResponseMessage<"MoneroTransactionSourceEntry"> | TypedResponseMessage<"MoneroRingCtSig"> | TypedResponseMessage<"MoneroSubAddressIndicesList"> | TypedResponseMessage<"MoneroTransferDetails"> | TypedResponseMessage<"MoneroExportedKeyImage"> | TypedResponseMessage<"NEMTransactionCommon"> | TypedResponseMessage<"NEMTransfer"> | TypedResponseMessage<"NEMProvisionNamespace"> | TypedResponseMessage<"NEMMosaicCreation"> | TypedResponseMessage<"NEMMosaicSupplyChange"> | TypedResponseMessage<"NEMAggregateModification"> | TypedResponseMessage<"NEMImportanceTransfer"> | TypedResponseMessage<"NEMMosaic"> | TypedResponseMessage<"NEMMosaicDefinition"> | TypedResponseMessage<"NEMCosignatoryModification"> | TypedResponseMessage<"RipplePayment"> | TypedResponseMessage<"StellarAsset"> | TypedResponseMessage<"TezosRevealOp"> | TypedResponseMessage<"TezosTransactionOp"> | TypedResponseMessage<"TezosOriginationOp"> | TypedResponseMessage<"TezosDelegationOp"> | TypedResponseMessage<"TezosProposalOp"> | TypedResponseMessage<"TezosBallotOp"> | TypedResponseMessage<"TezosContractID"> | TypedResponseMessage<"TezosParametersManager"> | TypedResponseMessage<"TezosManagerTransfer"> | TypedResponseMessage<"TronContract"> | TypedResponseMessage<"TronTransferContract"> | TypedResponseMessage<"TronFreezeBalanceContract"> | TypedResponseMessage<"TronUnfreezeBalanceContract"> | TypedResponseMessage<"TronWithdrawBalanceContract"> | TypedResponseMessage<"TronTriggerSmartContract"> | TypedResponseMessage<"TronFreezeBalanceV2Contract"> | TypedResponseMessage<"TronUnfreezeBalanceV2Contract"> | TypedResponseMessage<"TronWithdrawExpireUnfreezeContract"> | TypedResponseMessage<"TronDelegateResourceContract"> | TypedResponseMessage<"TronUnDelegateResourceContract"> | TypedResponseMessage<"AlgorandGetAddress"> | TypedResponseMessage<"AlgorandAddress"> | TypedResponseMessage<"AlgorandSignTx"> | TypedResponseMessage<"AlgorandSignedTx"> | TypedResponseMessage<"AptosGetAddress"> | TypedResponseMessage<"AptosAddress"> | TypedResponseMessage<"AptosSignTx"> | TypedResponseMessage<"AptosSignedTx"> | TypedResponseMessage<"AptosSignMessage"> | TypedResponseMessage<"AptosMessageSignature"> | TypedResponseMessage<"BinanceGetAddress"> | TypedResponseMessage<"BinanceAddress"> | TypedResponseMessage<"BinanceGetPublicKey"> | TypedResponseMessage<"BinancePublicKey"> | TypedResponseMessage<"BinanceSignTx"> | TypedResponseMessage<"BinanceTxRequest"> | TypedResponseMessage<"BinanceTransferMsg"> | TypedResponseMessage<"BinanceOrderMsg"> | TypedResponseMessage<"BinanceCancelMsg"> | TypedResponseMessage<"BinanceSignedTx"> | TypedResponseMessage<"GetPublicKey"> | TypedResponseMessage<"PublicKey"> | TypedResponseMessage<"GetAddress"> | TypedResponseMessage<"GetOwnershipId"> | TypedResponseMessage<"OwnershipId"> | TypedResponseMessage<"SignMessage"> | TypedResponseMessage<"MessageSignature"> | TypedResponseMessage<"VerifyMessage"> | TypedResponseMessage<"SignTx"> | TypedResponseMessage<"TxRequest"> | TypedResponseMessage<"TxAck"> | TypedResponseMessage<"TxAckInput"> | TypedResponseMessage<"TxAckOutput"> | TypedResponseMessage<"TxAckPrevMeta"> | TypedResponseMessage<"TxAckPrevInput"> | TypedResponseMessage<"TxAckPrevOutput"> | TypedResponseMessage<"TxAckPrevExtraData"> | TypedResponseMessage<"GetOwnershipProof"> | TypedResponseMessage<"OwnershipProof"> | TypedResponseMessage<"AuthorizeCoinJoin"> | TypedResponseMessage<"GetPublicKeyMultiple"> | TypedResponseMessage<"PublicKeyMultiple"> | TypedResponseMessage<"FirmwareErase"> | TypedResponseMessage<"FirmwareRequest"> | TypedResponseMessage<"FirmwareUpload"> | TypedResponseMessage<"SelfTest"> | TypedResponseMessage<"FirmwareErase_ex"> | TypedResponseMessage<"Reboot"> | TypedResponseMessage<"FirmwareUpdateEmmc"> | TypedResponseMessage<"CardanoGetNativeScriptHash"> | TypedResponseMessage<"CardanoNativeScriptHash"> | TypedResponseMessage<"CardanoGetAddress"> | TypedResponseMessage<"CardanoAddress"> | TypedResponseMessage<"CardanoGetPublicKey"> | TypedResponseMessage<"CardanoPublicKey"> | TypedResponseMessage<"CardanoSignTxInit"> | TypedResponseMessage<"CardanoTxInput"> | TypedResponseMessage<"CardanoTxOutput"> | TypedResponseMessage<"CardanoAssetGroup"> | TypedResponseMessage<"CardanoToken"> | TypedResponseMessage<"CardanoTxInlineDatumChunk"> | TypedResponseMessage<"CardanoTxReferenceScriptChunk"> | TypedResponseMessage<"CardanoPoolOwner"> | TypedResponseMessage<"CardanoPoolRelayParameters"> | TypedResponseMessage<"CardanoTxCertificate"> | TypedResponseMessage<"CardanoTxWithdrawal"> | TypedResponseMessage<"CardanoTxAuxiliaryData"> | TypedResponseMessage<"CardanoTxMint"> | TypedResponseMessage<"CardanoTxCollateralInput"> | TypedResponseMessage<"CardanoTxRequiredSigner"> | TypedResponseMessage<"CardanoTxReferenceInput"> | TypedResponseMessage<"CardanoTxItemAck"> | TypedResponseMessage<"CardanoTxAuxiliaryDataSupplement"> | TypedResponseMessage<"CardanoTxWitnessRequest"> | TypedResponseMessage<"CardanoTxWitnessResponse"> | TypedResponseMessage<"CardanoTxHostAck"> | TypedResponseMessage<"CardanoTxBodyHash"> | TypedResponseMessage<"CardanoSignTxFinished"> | TypedResponseMessage<"CardanoSignMessage"> | TypedResponseMessage<"CardanoMessageSignature"> | TypedResponseMessage<"Success"> | TypedResponseMessage<"Failure"> | TypedResponseMessage<"ButtonRequest"> | TypedResponseMessage<"ButtonAck"> | TypedResponseMessage<"PinMatrixRequest"> | TypedResponseMessage<"PinMatrixAck"> | TypedResponseMessage<"PassphraseRequest"> | TypedResponseMessage<"PassphraseAck"> | TypedResponseMessage<"Deprecated_PassphraseStateRequest"> | TypedResponseMessage<"Deprecated_PassphraseStateAck"> | TypedResponseMessage<"BixinPinInputOnDevice"> | TypedResponseMessage<"ConfluxGetAddress"> | TypedResponseMessage<"ConfluxAddress"> | TypedResponseMessage<"ConfluxSignTx"> | TypedResponseMessage<"ConfluxTxRequest"> | TypedResponseMessage<"ConfluxTxAck"> | TypedResponseMessage<"ConfluxSignMessage"> | TypedResponseMessage<"ConfluxMessageSignature"> | TypedResponseMessage<"ConfluxSignMessageCIP23"> | TypedResponseMessage<"CosmosGetAddress"> | TypedResponseMessage<"CosmosAddress"> | TypedResponseMessage<"CosmosSignTx"> | TypedResponseMessage<"CosmosSignedTx"> | TypedResponseMessage<"CipherKeyValue"> | TypedResponseMessage<"CipheredKeyValue"> | TypedResponseMessage<"SignIdentity"> | TypedResponseMessage<"SignedIdentity"> | TypedResponseMessage<"GetECDHSessionKey"> | TypedResponseMessage<"ECDHSessionKey"> | TypedResponseMessage<"BatchGetPublickeys"> | TypedResponseMessage<"EcdsaPublicKeys"> | TypedResponseMessage<"EmmcFixPermission"> | TypedResponseMessage<"EmmcPath"> | TypedResponseMessage<"EmmcPathInfo"> | TypedResponseMessage<"EmmcFileRead"> | TypedResponseMessage<"EmmcFileWrite"> | TypedResponseMessage<"EmmcFileDelete"> | TypedResponseMessage<"EmmcDir"> | TypedResponseMessage<"EmmcDirList"> | TypedResponseMessage<"EmmcDirMake"> | TypedResponseMessage<"EmmcDirRemove"> | TypedResponseMessage<"EosGetPublicKey"> | TypedResponseMessage<"EosPublicKey"> | TypedResponseMessage<"EosSignTx"> | TypedResponseMessage<"EosTxActionRequest"> | TypedResponseMessage<"EosTxActionAck"> | TypedResponseMessage<"EosSignedTx"> | TypedResponseMessage<"EthereumNetworkInfo"> | TypedResponseMessage<"EthereumTokenInfo"> | TypedResponseMessage<"EthereumSignTypedDataOneKey"> | TypedResponseMessage<"EthereumTypedDataStructRequestOneKey"> | TypedResponseMessage<"EthereumTypedDataStructAckOneKey"> | TypedResponseMessage<"EthereumTypedDataValueRequestOneKey"> | TypedResponseMessage<"EthereumTypedDataValueAckOneKey"> | TypedResponseMessage<"EthereumSignTypedData"> | TypedResponseMessage<"EthereumTypedDataStructRequest"> | TypedResponseMessage<"EthereumTypedDataStructAck"> | TypedResponseMessage<"EthereumTypedDataValueRequest"> | TypedResponseMessage<"EthereumTypedDataValueAck"> | TypedResponseMessage<"EthereumGetPublicKeyOneKey"> | TypedResponseMessage<"EthereumPublicKeyOneKey"> | TypedResponseMessage<"EthereumGetAddressOneKey"> | TypedResponseMessage<"EthereumAddressOneKey"> | TypedResponseMessage<"EthereumSignTxOneKey"> | TypedResponseMessage<"EthereumSignTxEIP1559OneKey"> | TypedResponseMessage<"EthereumTxRequestOneKey"> | TypedResponseMessage<"EthereumTxAckOneKey"> | TypedResponseMessage<"EthereumSignMessageOneKey"> | TypedResponseMessage<"EthereumMessageSignatureOneKey"> | TypedResponseMessage<"EthereumVerifyMessageOneKey"> | TypedResponseMessage<"EthereumSignTypedHashOneKey"> | TypedResponseMessage<"EthereumTypedDataSignatureOneKey"> | TypedResponseMessage<"EthereumSignMessageEIP712"> | TypedResponseMessage<"EthereumGetPublicKey"> | TypedResponseMessage<"EthereumPublicKey"> | TypedResponseMessage<"EthereumGetAddress"> | TypedResponseMessage<"EthereumAddress"> | TypedResponseMessage<"EthereumSignTx"> | TypedResponseMessage<"EthereumSignTxEIP1559"> | TypedResponseMessage<"EthereumTxRequest"> | TypedResponseMessage<"EthereumTxAck"> | TypedResponseMessage<"EthereumSignMessage"> | TypedResponseMessage<"EthereumMessageSignature"> | TypedResponseMessage<"EthereumVerifyMessage"> | TypedResponseMessage<"EthereumSignTypedHash"> | TypedResponseMessage<"EthereumTypedDataSignature"> | TypedResponseMessage<"FilecoinGetAddress"> | TypedResponseMessage<"FilecoinAddress"> | TypedResponseMessage<"FilecoinSignTx"> | TypedResponseMessage<"FilecoinSignedTx"> | TypedResponseMessage<"KaspaGetAddress"> | TypedResponseMessage<"KaspaAddress"> | TypedResponseMessage<"KaspaSignTx"> | TypedResponseMessage<"KaspaTxInputRequest"> | TypedResponseMessage<"KaspaTxInputAck"> | TypedResponseMessage<"KaspaSignedTx"> | TypedResponseMessage<"Initialize"> | TypedResponseMessage<"GetFeatures"> | TypedResponseMessage<"Features"> | TypedResponseMessage<"LockDevice"> | TypedResponseMessage<"EndSession"> | TypedResponseMessage<"ApplySettings"> | TypedResponseMessage<"ApplyFlags"> | TypedResponseMessage<"ChangePin"> | TypedResponseMessage<"ChangeWipeCode"> | TypedResponseMessage<"SdProtect"> | TypedResponseMessage<"Ping"> | TypedResponseMessage<"Cancel"> | TypedResponseMessage<"GetEntropy"> | TypedResponseMessage<"Entropy"> | TypedResponseMessage<"WipeDevice"> | TypedResponseMessage<"ResetDevice"> | TypedResponseMessage<"BackupDevice"> | TypedResponseMessage<"EntropyRequest"> | TypedResponseMessage<"EntropyAck"> | TypedResponseMessage<"RecoveryDevice"> | TypedResponseMessage<"WordRequest"> | TypedResponseMessage<"WordAck"> | TypedResponseMessage<"SetU2FCounter"> | TypedResponseMessage<"GetNextU2FCounter"> | TypedResponseMessage<"NextU2FCounter"> | TypedResponseMessage<"DoPreauthorized"> | TypedResponseMessage<"PreauthorizedRequest"> | TypedResponseMessage<"CancelAuthorization"> | TypedResponseMessage<"BixinSeedOperate"> | TypedResponseMessage<"BixinMessageSE"> | TypedResponseMessage<"BixinOutMessageSE"> | TypedResponseMessage<"DeviceBackToBoot"> | TypedResponseMessage<"BixinBackupRequest"> | TypedResponseMessage<"BixinBackupAck"> | TypedResponseMessage<"BixinRestoreRequest"> | TypedResponseMessage<"BixinRestoreAck"> | TypedResponseMessage<"BixinVerifyDeviceRequest"> | TypedResponseMessage<"BixinVerifyDeviceAck"> | TypedResponseMessage<"BixinWhiteListRequest"> | TypedResponseMessage<"BixinWhiteListAck"> | TypedResponseMessage<"BixinLoadDevice"> | TypedResponseMessage<"BixinBackupDevice"> | TypedResponseMessage<"BixinBackupDeviceAck"> | TypedResponseMessage<"DeviceInfoSettings"> | TypedResponseMessage<"GetDeviceInfo"> | TypedResponseMessage<"DeviceInfo"> | TypedResponseMessage<"ReadSEPublicKey"> | TypedResponseMessage<"SEPublicKey"> | TypedResponseMessage<"WriteSEPublicCert"> | TypedResponseMessage<"ReadSEPublicCert"> | TypedResponseMessage<"SEPublicCert"> | TypedResponseMessage<"SpiFlashWrite"> | TypedResponseMessage<"SpiFlashRead"> | TypedResponseMessage<"SpiFlashData"> | TypedResponseMessage<"SESignMessage"> | TypedResponseMessage<"SEMessageSignature"> | TypedResponseMessage<"ResourceUpload"> | TypedResponseMessage<"ZoomRequest"> | TypedResponseMessage<"ResourceRequest"> | TypedResponseMessage<"ResourceAck"> | TypedResponseMessage<"ResourceUpdate"> | TypedResponseMessage<"NFTWriteInfo"> | TypedResponseMessage<"NFTWriteData"> | TypedResponseMessage<"RebootToBootloader"> | TypedResponseMessage<"RebootToBoardloader"> | TypedResponseMessage<"ListResDir"> | TypedResponseMessage<"FileInfoList"> | TypedResponseMessage<"DeviceEraseSector"> | TypedResponseMessage<"MoneroGetAddress"> | TypedResponseMessage<"MoneroAddress"> | TypedResponseMessage<"MoneroGetWatchKey"> | TypedResponseMessage<"MoneroWatchKey"> | TypedResponseMessage<"MoneroTransactionInitRequest"> | TypedResponseMessage<"MoneroTransactionInitAck"> | TypedResponseMessage<"MoneroTransactionSetInputRequest"> | TypedResponseMessage<"MoneroTransactionSetInputAck"> | TypedResponseMessage<"MoneroTransactionInputsPermutationRequest"> | TypedResponseMessage<"MoneroTransactionInputsPermutationAck"> | TypedResponseMessage<"MoneroTransactionInputViniRequest"> | TypedResponseMessage<"MoneroTransactionInputViniAck"> | TypedResponseMessage<"MoneroTransactionAllInputsSetRequest"> | TypedResponseMessage<"MoneroTransactionAllInputsSetAck"> | TypedResponseMessage<"MoneroTransactionSetOutputRequest"> | TypedResponseMessage<"MoneroTransactionSetOutputAck"> | TypedResponseMessage<"MoneroTransactionAllOutSetRequest"> | TypedResponseMessage<"MoneroTransactionAllOutSetAck"> | TypedResponseMessage<"MoneroTransactionSignInputRequest"> | TypedResponseMessage<"MoneroTransactionSignInputAck"> | TypedResponseMessage<"MoneroTransactionFinalRequest"> | TypedResponseMessage<"MoneroTransactionFinalAck"> | TypedResponseMessage<"MoneroKeyImageExportInitRequest"> | TypedResponseMessage<"MoneroKeyImageExportInitAck"> | TypedResponseMessage<"MoneroKeyImageSyncStepRequest"> | TypedResponseMessage<"MoneroKeyImageSyncStepAck"> | TypedResponseMessage<"MoneroKeyImageSyncFinalRequest"> | TypedResponseMessage<"MoneroKeyImageSyncFinalAck"> | TypedResponseMessage<"MoneroGetTxKeyRequest"> | TypedResponseMessage<"MoneroGetTxKeyAck"> | TypedResponseMessage<"MoneroLiveRefreshStartRequest"> | TypedResponseMessage<"MoneroLiveRefreshStartAck"> | TypedResponseMessage<"MoneroLiveRefreshStepRequest"> | TypedResponseMessage<"MoneroLiveRefreshStepAck"> | TypedResponseMessage<"MoneroLiveRefreshFinalRequest"> | TypedResponseMessage<"MoneroLiveRefreshFinalAck"> | TypedResponseMessage<"NearGetAddress"> | TypedResponseMessage<"NearAddress"> | TypedResponseMessage<"NearSignTx"> | TypedResponseMessage<"NearSignedTx"> | TypedResponseMessage<"NEMGetAddress"> | TypedResponseMessage<"NEMAddress"> | TypedResponseMessage<"NEMSignTx"> | TypedResponseMessage<"NEMSignedTx"> | TypedResponseMessage<"NEMDecryptMessage"> | TypedResponseMessage<"NEMDecryptedMessage"> | TypedResponseMessage<"NexaGetAddress"> | TypedResponseMessage<"NexaAddress"> | TypedResponseMessage<"NexaSignTx"> | TypedResponseMessage<"NexaTxInputRequest"> | TypedResponseMessage<"NexaTxInputAck"> | TypedResponseMessage<"NexaSignedTx"> | TypedResponseMessage<"PolkadotGetAddress"> | TypedResponseMessage<"PolkadotAddress"> | TypedResponseMessage<"PolkadotSignTx"> | TypedResponseMessage<"PolkadotSignedTx"> | TypedResponseMessage<"RippleGetAddress"> | TypedResponseMessage<"RippleAddress"> | TypedResponseMessage<"RippleSignTx"> | TypedResponseMessage<"RippleSignedTx"> | TypedResponseMessage<"SolanaGetAddress"> | TypedResponseMessage<"SolanaAddress"> | TypedResponseMessage<"SolanaSignTx"> | TypedResponseMessage<"SolanaSignedTx"> | TypedResponseMessage<"StarcoinGetAddress"> | TypedResponseMessage<"StarcoinAddress"> | TypedResponseMessage<"StarcoinGetPublicKey"> | TypedResponseMessage<"StarcoinPublicKey"> | TypedResponseMessage<"StarcoinSignTx"> | TypedResponseMessage<"StarcoinSignedTx"> | TypedResponseMessage<"StarcoinSignMessage"> | TypedResponseMessage<"StarcoinMessageSignature"> | TypedResponseMessage<"StarcoinVerifyMessage"> | TypedResponseMessage<"StellarGetAddress"> | TypedResponseMessage<"StellarAddress"> | TypedResponseMessage<"StellarSignTx"> | TypedResponseMessage<"StellarTxOpRequest"> | TypedResponseMessage<"StellarPaymentOp"> | TypedResponseMessage<"StellarCreateAccountOp"> | TypedResponseMessage<"StellarPathPaymentStrictReceiveOp"> | TypedResponseMessage<"StellarPathPaymentStrictSendOp"> | TypedResponseMessage<"StellarManageSellOfferOp"> | TypedResponseMessage<"StellarManageBuyOfferOp"> | TypedResponseMessage<"StellarCreatePassiveSellOfferOp"> | TypedResponseMessage<"StellarSetOptionsOp"> | TypedResponseMessage<"StellarChangeTrustOp"> | TypedResponseMessage<"StellarAllowTrustOp"> | TypedResponseMessage<"StellarAccountMergeOp"> | TypedResponseMessage<"StellarManageDataOp"> | TypedResponseMessage<"StellarBumpSequenceOp"> | TypedResponseMessage<"StellarSignedTx"> | TypedResponseMessage<"SuiGetAddress"> | TypedResponseMessage<"SuiAddress"> | TypedResponseMessage<"SuiSignTx"> | TypedResponseMessage<"SuiSignedTx"> | TypedResponseMessage<"TezosGetAddress"> | TypedResponseMessage<"TezosAddress"> | TypedResponseMessage<"TezosGetPublicKey"> | TypedResponseMessage<"TezosPublicKey"> | TypedResponseMessage<"TezosSignTx"> | TypedResponseMessage<"TezosSignedTx"> | TypedResponseMessage<"TronGetAddress"> | TypedResponseMessage<"TronAddress"> | TypedResponseMessage<"TronSignTx"> | TypedResponseMessage<"TronSignedTx"> | TypedResponseMessage<"TronSignMessage"> | TypedResponseMessage<"TronMessageSignature"> | TypedResponseMessage<"facotry">;
|
|
2252
2251
|
|
|
2252
|
+
declare type FirmwareField = 'firmware' | 'firmware-v2' | 'firmware-v4';
|
|
2253
2253
|
declare type MessageVersion = 'latest' | 'v1';
|
|
2254
2254
|
declare class DataManager {
|
|
2255
2255
|
static deviceMap: DeviceTypeMap;
|
|
@@ -2290,7 +2290,11 @@ declare const getDeviceTypeByDeviceId: (deviceId?: string | undefined) => IDevic
|
|
|
2290
2290
|
declare const getDeviceUUID: (features: Features) => string;
|
|
2291
2291
|
declare const getDeviceLabel: (features: Features) => string;
|
|
2292
2292
|
declare const supportInputPinOnSoftware: (features: Features) => SupportFeatureType;
|
|
2293
|
-
declare const getFirmwareUpdateField: (features
|
|
2293
|
+
declare const getFirmwareUpdateField: ({ features, updateType, targetVersion, }: {
|
|
2294
|
+
features: Features;
|
|
2295
|
+
updateType: 'firmware' | 'ble';
|
|
2296
|
+
targetVersion?: string | undefined;
|
|
2297
|
+
}) => 'ble' | FirmwareField;
|
|
2294
2298
|
|
|
2295
2299
|
declare const getHDPath: (path: string) => Array<number>;
|
|
2296
2300
|
declare const getScriptType: (path: Array<number>) => InputScriptType;
|
package/dist/index.js
CHANGED
|
@@ -22870,7 +22870,7 @@ DataManager.getFirmwareStatus = (features) => {
|
|
|
22870
22870
|
if (deviceType === 'classic' && features.bootloader_mode) {
|
|
22871
22871
|
return 'unknown';
|
|
22872
22872
|
}
|
|
22873
|
-
const firmwareUpdateField = getFirmwareUpdateField(features, 'firmware');
|
|
22873
|
+
const firmwareUpdateField = getFirmwareUpdateField({ features, updateType: 'firmware' });
|
|
22874
22874
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22875
22875
|
const currentVersion = deviceFirmwareVersion.join('.');
|
|
22876
22876
|
return getReleaseStatus(targetDeviceConfigList, currentVersion);
|
|
@@ -22881,7 +22881,10 @@ DataManager.getSysResourcesLatestRelease = (features, forcedUpdateRes) => {
|
|
|
22881
22881
|
const deviceFirmwareVersion = getDeviceFirmwareVersion(features);
|
|
22882
22882
|
if (deviceType !== 'pro' && deviceType !== 'touch')
|
|
22883
22883
|
return undefined;
|
|
22884
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
22884
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
22885
|
+
features,
|
|
22886
|
+
updateType: 'firmware',
|
|
22887
|
+
});
|
|
22885
22888
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22886
22889
|
const currentVersion = deviceFirmwareVersion.join('.');
|
|
22887
22890
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => forcedUpdateRes
|
|
@@ -22894,7 +22897,10 @@ DataManager.getSysFullResource = (features) => {
|
|
|
22894
22897
|
const deviceType = getDeviceType(features);
|
|
22895
22898
|
if (deviceType !== 'pro' && deviceType !== 'touch')
|
|
22896
22899
|
return undefined;
|
|
22897
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
22900
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
22901
|
+
features,
|
|
22902
|
+
updateType: 'firmware',
|
|
22903
|
+
});
|
|
22898
22904
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22899
22905
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => !!item.fullResource);
|
|
22900
22906
|
return (_d = findLatestRelease(targetDeviceConfig)) === null || _d === void 0 ? void 0 : _d.fullResource;
|
|
@@ -22904,7 +22910,10 @@ DataManager.getBootloaderResource = (features) => {
|
|
|
22904
22910
|
const deviceType = getDeviceType(features);
|
|
22905
22911
|
if (deviceType !== 'pro' && deviceType !== 'touch')
|
|
22906
22912
|
return undefined;
|
|
22907
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
22913
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
22914
|
+
features,
|
|
22915
|
+
updateType: 'firmware',
|
|
22916
|
+
});
|
|
22908
22917
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22909
22918
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => !!item.bootloaderResource);
|
|
22910
22919
|
return (_d = findLatestRelease(targetDeviceConfig)) === null || _d === void 0 ? void 0 : _d.bootloaderResource;
|
|
@@ -22912,7 +22921,10 @@ DataManager.getBootloaderResource = (features) => {
|
|
|
22912
22921
|
DataManager.getBootloaderTargetVersion = (features) => {
|
|
22913
22922
|
var _b, _c, _d, _e;
|
|
22914
22923
|
const deviceType = getDeviceType(features);
|
|
22915
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
22924
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
22925
|
+
features,
|
|
22926
|
+
updateType: 'firmware',
|
|
22927
|
+
});
|
|
22916
22928
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22917
22929
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => !!item.bootloaderResource);
|
|
22918
22930
|
return (_e = (_d = targetDeviceConfig === null || targetDeviceConfig === void 0 ? void 0 : targetDeviceConfig[0]) === null || _d === void 0 ? void 0 : _d.bootloaderVersion) !== null && _e !== void 0 ? _e : undefined;
|
|
@@ -22922,7 +22934,10 @@ DataManager.getBootloaderRelatedFirmwareVersion = (features) => {
|
|
|
22922
22934
|
const deviceType = getDeviceType(features);
|
|
22923
22935
|
if (!(deviceType === 'classic' || deviceType === 'mini'))
|
|
22924
22936
|
return undefined;
|
|
22925
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
22937
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
22938
|
+
features,
|
|
22939
|
+
updateType: 'firmware',
|
|
22940
|
+
});
|
|
22926
22941
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22927
22942
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => !!item.bootloaderRelatedFirmwareVersion);
|
|
22928
22943
|
return (_e = (_d = targetDeviceConfig === null || targetDeviceConfig === void 0 ? void 0 : targetDeviceConfig[0]) === null || _d === void 0 ? void 0 : _d.bootloaderRelatedFirmwareVersion) !== null && _e !== void 0 ? _e : undefined;
|
|
@@ -22935,7 +22950,10 @@ DataManager.getFirmwareChangelog = (features) => {
|
|
|
22935
22950
|
(deviceType === 'classic' && features.bootloader_mode)) {
|
|
22936
22951
|
return [];
|
|
22937
22952
|
}
|
|
22938
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
22953
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
22954
|
+
features,
|
|
22955
|
+
updateType: 'firmware',
|
|
22956
|
+
});
|
|
22939
22957
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22940
22958
|
const currentVersion = deviceFirmwareVersion.join('.');
|
|
22941
22959
|
return getReleaseChangelog(targetDeviceConfigList, currentVersion);
|
|
@@ -22943,7 +22961,10 @@ DataManager.getFirmwareChangelog = (features) => {
|
|
|
22943
22961
|
DataManager.getFirmwareLatestRelease = (features) => {
|
|
22944
22962
|
var _b, _c;
|
|
22945
22963
|
const deviceType = getDeviceType(features);
|
|
22946
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
22964
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
22965
|
+
features,
|
|
22966
|
+
updateType: 'firmware',
|
|
22967
|
+
});
|
|
22947
22968
|
const targetDeviceConfigList = (_c = (_b = _a.deviceMap[deviceType]) === null || _b === void 0 ? void 0 : _b[firmwareUpdateField]) !== null && _c !== void 0 ? _c : [];
|
|
22948
22969
|
const target = findLatestRelease(targetDeviceConfigList);
|
|
22949
22970
|
if (!target)
|
|
@@ -23181,7 +23202,7 @@ const supportModifyHomescreen = (features) => {
|
|
|
23181
23202
|
}
|
|
23182
23203
|
return { support: semver__default["default"].gte(currentVersion, '3.4.0') };
|
|
23183
23204
|
};
|
|
23184
|
-
const getFirmwareUpdateField = (features, updateType) => {
|
|
23205
|
+
const getFirmwareUpdateField = ({ features, updateType, targetVersion, }) => {
|
|
23185
23206
|
const deviceType = getDeviceType(features);
|
|
23186
23207
|
const deviceFirmwareVersion = getDeviceFirmwareVersion(features);
|
|
23187
23208
|
if (updateType === 'ble') {
|
|
@@ -23191,6 +23212,12 @@ const getFirmwareUpdateField = (features, updateType) => {
|
|
|
23191
23212
|
return 'firmware-v4';
|
|
23192
23213
|
}
|
|
23193
23214
|
if (deviceType === 'touch') {
|
|
23215
|
+
if (targetVersion) {
|
|
23216
|
+
if (semver__default["default"].eq(targetVersion, '4.0.0'))
|
|
23217
|
+
return 'firmware-v2';
|
|
23218
|
+
if (semver__default["default"].gt(targetVersion, '4.0.0'))
|
|
23219
|
+
return 'firmware-v4';
|
|
23220
|
+
}
|
|
23194
23221
|
if (semver__default["default"].lt(deviceFirmwareVersion.join('.'), '3.4.0'))
|
|
23195
23222
|
return 'firmware';
|
|
23196
23223
|
return 'firmware-v4';
|
|
@@ -25175,15 +25202,11 @@ const getInfo = ({ features, updateType, targetVersion }) => {
|
|
|
25175
25202
|
var _a, _b;
|
|
25176
25203
|
const deviceType = getDeviceType(features);
|
|
25177
25204
|
const { deviceMap } = DataManager;
|
|
25178
|
-
|
|
25179
|
-
|
|
25180
|
-
|
|
25181
|
-
|
|
25182
|
-
|
|
25183
|
-
else if (semver__default["default"].gt(targetVersion, '4.0.0')) {
|
|
25184
|
-
firmwareUpdateField = 'firmware-v3';
|
|
25185
|
-
}
|
|
25186
|
-
}
|
|
25205
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
25206
|
+
features,
|
|
25207
|
+
updateType,
|
|
25208
|
+
targetVersion,
|
|
25209
|
+
});
|
|
25187
25210
|
const releaseInfo = (_b = (_a = deviceMap === null || deviceMap === void 0 ? void 0 : deviceMap[deviceType]) === null || _a === void 0 ? void 0 : _a[firmwareUpdateField]) !== null && _b !== void 0 ? _b : [];
|
|
25188
25211
|
return findLatestRelease(releaseInfo);
|
|
25189
25212
|
};
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -52,7 +52,6 @@ export declare type DeviceTypeMap = {
|
|
|
52
52
|
[k in IDeviceType]: {
|
|
53
53
|
firmware: IFirmwareReleaseInfo[];
|
|
54
54
|
'firmware-v2'?: IFirmwareReleaseInfo[];
|
|
55
|
-
'firmware-v3'?: IFirmwareReleaseInfo[];
|
|
56
55
|
'firmware-v4'?: IFirmwareReleaseInfo[];
|
|
57
56
|
ble: IBLEFirmwareReleaseInfo[];
|
|
58
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,oBAAY,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,oBAAY,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,oBAAY,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAGxC,oBAAY,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IAEZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,gCAAgC,CAAC,EAAE,aAAa,CAAC;IACjD,mBAAmB,CAAC,EAAE;SACnB,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE;SACR,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;CACH,CAAC;AAGF,oBAAY,uBAAuB,GAAG;IACpC,QAAQ,EAAE,OAAO,CAAC;IAElB,GAAG,EAAE,MAAM,CAAC;IAEZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE;SACR,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;CACH,CAAC;AAEF,oBAAY,aAAa,GAAG;KACzB,CAAC,IAAI,WAAW,GAAG;QAClB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;QACjC,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACvC,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACvC,
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,oBAAY,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,oBAAY,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,oBAAY,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAGxC,oBAAY,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IAEZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,gCAAgC,CAAC,EAAE,aAAa,CAAC;IACjD,mBAAmB,CAAC,EAAE;SACnB,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE;SACR,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;CACH,CAAC;AAGF,oBAAY,uBAAuB,GAAG;IACpC,QAAQ,EAAE,OAAO,CAAC;IAElB,GAAG,EAAE,MAAM,CAAC;IAEZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE;SACR,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;CACH,CAAC;AAEF,oBAAY,aAAa,GAAG;KACzB,CAAC,IAAI,WAAW,GAAG;QAClB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;QACjC,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACvC,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACvC,GAAG,EAAE,uBAAuB,EAAE,CAAC;KAChC;CACF,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,MAAM,EAAE;QACN,OAAO,EAAE,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE;aACR,CAAC,IAAI,OAAO,GAAG,MAAM;SACvB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC7B,GAAG,aAAa,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DeviceCommands } from '../device/DeviceCommands';
|
|
2
2
|
import type { Features, IDeviceModel, IDeviceType, IVersionArray, SupportFeatureType } from '../types';
|
|
3
|
-
import { MessageVersion } from '../data-manager/DataManager';
|
|
3
|
+
import { FirmwareField, MessageVersion } from '../data-manager/DataManager';
|
|
4
4
|
import { Device } from '../device/Device';
|
|
5
5
|
export declare const getDeviceModel: (features?: import("packages/hd-transport/dist").Features | undefined) => IDeviceModel;
|
|
6
6
|
export declare const getDeviceType: (features?: import("packages/hd-transport/dist").Features | undefined) => IDeviceType;
|
|
@@ -22,5 +22,9 @@ export declare const getPassphraseStateWithRefreshDeviceInfo: (device: Device) =
|
|
|
22
22
|
export declare const getPassphraseState: (features: Features | undefined, commands: DeviceCommands) => Promise<string | false>;
|
|
23
23
|
export declare const supportBatchPublicKey: (features?: import("packages/hd-transport/dist").Features | undefined) => boolean;
|
|
24
24
|
export declare const supportModifyHomescreen: (features?: import("packages/hd-transport/dist").Features | undefined) => SupportFeatureType;
|
|
25
|
-
export declare const getFirmwareUpdateField: (features
|
|
25
|
+
export declare const getFirmwareUpdateField: ({ features, updateType, targetVersion, }: {
|
|
26
|
+
features: Features;
|
|
27
|
+
updateType: 'firmware' | 'ble';
|
|
28
|
+
targetVersion?: string | undefined;
|
|
29
|
+
}) => 'ble' | FirmwareField;
|
|
26
30
|
//# sourceMappingURL=deviceFeaturesUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB,OAAoB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB,OAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,MAAM,cAAc,4EAA0B,YAcpD,CAAC;AAEF,eAAO,MAAM,aAAa,4EAA0B,WAUnD,CAAC;AAEF,eAAO,MAAM,yBAAyB,4EAA0B,WACvC,CAAC;AAE1B,eAAO,MAAM,sBAAsB,iCAAoB,WAAW,GAAG,IAKpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,qCAAwB,WAQ3D,CAAC;AAEF,eAAO,MAAM,aAAa,aAAc,QAAQ,WAM/C,CAAC;AAEF,eAAO,MAAM,cAAc,aAAc,QAAQ,WAOhD,CAAC;AAKF,eAAO,MAAM,wBAAwB,aAAc,QAAQ,GAAG,SAAS,kBAOtE,CAAC;AAKF,eAAO,MAAM,2BAA2B,aAAc,QAAQ,KAAG,aAAa,GAAG,IAQhF,CAAC;AAEF,eAAO,MAAM,0BAA0B,aAAc,QAAQ,kBAW5D,CAAC;AAEF,eAAO,MAAM,wBAAwB,aACzB,QAAQ,GAAG,SAAS,KAC7B;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAiClD,CAAC;AAEF,eAAO,MAAM,yBAAyB,aAAc,QAAQ,KAAG,kBAU9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,4EAA0B,kBAW1D,CAAC;AAEF,eAAO,MAAM,uCAAuC,WAAkB,MAAM,4BAY3E,CAAC;AAEF,eAAO,MAAM,kBAAkB,aACnB,QAAQ,GAAG,SAAS,YACpB,cAAc,4BAgBzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,4EAA0B,OAU3D,CAAC;AAEF,eAAO,MAAM,uBAAuB,4EAA0B,kBAU7D,CAAC;AAKF,eAAO,MAAM,sBAAsB;cAKvB,QAAQ;gBACN,UAAU,GAAG,KAAK;;MAE5B,KAAK,GAAG,aAsBX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.24",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-shared": "^0.3.
|
|
29
|
-
"@onekeyfe/hd-transport": "^0.3.
|
|
28
|
+
"@onekeyfe/hd-shared": "^0.3.24",
|
|
29
|
+
"@onekeyfe/hd-transport": "^0.3.24",
|
|
30
30
|
"axios": "^0.27.2",
|
|
31
31
|
"bignumber.js": "^9.0.2",
|
|
32
32
|
"bytebuffer": "^5.0.1",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"@types/semver": "^7.3.9",
|
|
45
45
|
"ripple-keypairs": "^1.1.4"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "cf0501a0a46436855b6a34f23b31ee97777a644e"
|
|
48
48
|
}
|
|
@@ -5,6 +5,7 @@ import { getDeviceType, httpRequest } from '../../utils';
|
|
|
5
5
|
import { DataManager } from '../../data-manager';
|
|
6
6
|
import { findLatestRelease } from '../../utils/release';
|
|
7
7
|
import { getFirmwareUpdateField } from '../../utils/deviceFeaturesUtils';
|
|
8
|
+
import { FirmwareField } from '../../data-manager/DataManager';
|
|
8
9
|
|
|
9
10
|
export interface GetInfoProps {
|
|
10
11
|
features: Features;
|
|
@@ -74,15 +75,11 @@ export const getInfo = ({ features, updateType, targetVersion }: GetInfoProps) =
|
|
|
74
75
|
const deviceType = getDeviceType(features);
|
|
75
76
|
const { deviceMap } = DataManager;
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
} else if (semver.gt(targetVersion, '4.0.0')) {
|
|
83
|
-
firmwareUpdateField = 'firmware-v3';
|
|
84
|
-
}
|
|
85
|
-
}
|
|
78
|
+
const firmwareUpdateField: 'ble' | FirmwareField = getFirmwareUpdateField({
|
|
79
|
+
features,
|
|
80
|
+
updateType,
|
|
81
|
+
targetVersion,
|
|
82
|
+
});
|
|
86
83
|
|
|
87
84
|
const releaseInfo = deviceMap?.[deviceType]?.[firmwareUpdateField] ?? [];
|
|
88
85
|
return findLatestRelease(releaseInfo);
|
|
@@ -23,7 +23,7 @@ import type {
|
|
|
23
23
|
} from '../types';
|
|
24
24
|
import { findLatestRelease, getReleaseChangelog, getReleaseStatus } from '../utils/release';
|
|
25
25
|
|
|
26
|
-
type FirmwareField = 'firmware' | 'firmware-v2' | 'firmware-
|
|
26
|
+
export type FirmwareField = 'firmware' | 'firmware-v2' | 'firmware-v4';
|
|
27
27
|
|
|
28
28
|
export type MessageVersion = 'latest' | 'v1';
|
|
29
29
|
|
|
@@ -69,7 +69,7 @@ export default class DataManager {
|
|
|
69
69
|
return 'unknown';
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
const firmwareUpdateField = getFirmwareUpdateField(features, 'firmware');
|
|
72
|
+
const firmwareUpdateField = getFirmwareUpdateField({ features, updateType: 'firmware' });
|
|
73
73
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
74
74
|
const currentVersion = deviceFirmwareVersion.join('.');
|
|
75
75
|
return getReleaseStatus(targetDeviceConfigList, currentVersion);
|
|
@@ -85,7 +85,10 @@ export default class DataManager {
|
|
|
85
85
|
|
|
86
86
|
if (deviceType !== 'pro' && deviceType !== 'touch') return undefined;
|
|
87
87
|
|
|
88
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
88
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
89
|
+
features,
|
|
90
|
+
updateType: 'firmware',
|
|
91
|
+
}) as FirmwareField;
|
|
89
92
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
90
93
|
const currentVersion = deviceFirmwareVersion.join('.');
|
|
91
94
|
const targetDeviceConfig = targetDeviceConfigList.filter(item =>
|
|
@@ -106,7 +109,10 @@ export default class DataManager {
|
|
|
106
109
|
|
|
107
110
|
if (deviceType !== 'pro' && deviceType !== 'touch') return undefined;
|
|
108
111
|
|
|
109
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
112
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
113
|
+
features,
|
|
114
|
+
updateType: 'firmware',
|
|
115
|
+
}) as FirmwareField;
|
|
110
116
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
111
117
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => !!item.fullResource);
|
|
112
118
|
|
|
@@ -117,7 +123,10 @@ export default class DataManager {
|
|
|
117
123
|
const deviceType = getDeviceType(features);
|
|
118
124
|
|
|
119
125
|
if (deviceType !== 'pro' && deviceType !== 'touch') return undefined;
|
|
120
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
126
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
127
|
+
features,
|
|
128
|
+
updateType: 'firmware',
|
|
129
|
+
}) as FirmwareField;
|
|
121
130
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
122
131
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => !!item.bootloaderResource);
|
|
123
132
|
|
|
@@ -127,7 +136,10 @@ export default class DataManager {
|
|
|
127
136
|
static getBootloaderTargetVersion = (features: Features): IVersionArray | undefined => {
|
|
128
137
|
const deviceType = getDeviceType(features);
|
|
129
138
|
|
|
130
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
139
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
140
|
+
features,
|
|
141
|
+
updateType: 'firmware',
|
|
142
|
+
}) as FirmwareField;
|
|
131
143
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
132
144
|
const targetDeviceConfig = targetDeviceConfigList.filter(item => !!item.bootloaderResource);
|
|
133
145
|
|
|
@@ -138,7 +150,10 @@ export default class DataManager {
|
|
|
138
150
|
const deviceType = getDeviceType(features);
|
|
139
151
|
|
|
140
152
|
if (!(deviceType === 'classic' || deviceType === 'mini')) return undefined;
|
|
141
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
153
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
154
|
+
features,
|
|
155
|
+
updateType: 'firmware',
|
|
156
|
+
}) as FirmwareField;
|
|
142
157
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
143
158
|
const targetDeviceConfig = targetDeviceConfigList.filter(
|
|
144
159
|
item => !!item.bootloaderRelatedFirmwareVersion
|
|
@@ -158,7 +173,10 @@ export default class DataManager {
|
|
|
158
173
|
return [];
|
|
159
174
|
}
|
|
160
175
|
|
|
161
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
176
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
177
|
+
features,
|
|
178
|
+
updateType: 'firmware',
|
|
179
|
+
}) as FirmwareField;
|
|
162
180
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
163
181
|
const currentVersion = deviceFirmwareVersion.join('.');
|
|
164
182
|
return getReleaseChangelog(targetDeviceConfigList, currentVersion);
|
|
@@ -166,7 +184,10 @@ export default class DataManager {
|
|
|
166
184
|
|
|
167
185
|
static getFirmwareLatestRelease = (features: Features) => {
|
|
168
186
|
const deviceType = getDeviceType(features);
|
|
169
|
-
const firmwareUpdateField = getFirmwareUpdateField(
|
|
187
|
+
const firmwareUpdateField = getFirmwareUpdateField({
|
|
188
|
+
features,
|
|
189
|
+
updateType: 'firmware',
|
|
190
|
+
}) as FirmwareField;
|
|
170
191
|
const targetDeviceConfigList = this.deviceMap[deviceType]?.[firmwareUpdateField] ?? [];
|
|
171
192
|
|
|
172
193
|
const target = findLatestRelease(targetDeviceConfigList);
|
package/src/types/settings.ts
CHANGED
|
@@ -10,7 +10,7 @@ import type {
|
|
|
10
10
|
SupportFeatureType,
|
|
11
11
|
} from '../types';
|
|
12
12
|
import { DeviceTypeToModels } from '../types';
|
|
13
|
-
import DataManager, { MessageVersion } from '../data-manager/DataManager';
|
|
13
|
+
import DataManager, { FirmwareField, MessageVersion } from '../data-manager/DataManager';
|
|
14
14
|
import { PROTOBUF_MESSAGE_CONFIG } from '../data-manager/MessagesConfig';
|
|
15
15
|
import { Device } from '../device/Device';
|
|
16
16
|
|
|
@@ -240,10 +240,15 @@ export const supportModifyHomescreen = (features?: Features): SupportFeatureType
|
|
|
240
240
|
/**
|
|
241
241
|
* Since 3.5.0, Touch uses the firmware-v3 field to get firmware release info
|
|
242
242
|
*/
|
|
243
|
-
export const getFirmwareUpdateField = (
|
|
244
|
-
features
|
|
245
|
-
updateType
|
|
246
|
-
|
|
243
|
+
export const getFirmwareUpdateField = ({
|
|
244
|
+
features,
|
|
245
|
+
updateType,
|
|
246
|
+
targetVersion,
|
|
247
|
+
}: {
|
|
248
|
+
features: Features;
|
|
249
|
+
updateType: 'firmware' | 'ble';
|
|
250
|
+
targetVersion?: string;
|
|
251
|
+
}): 'ble' | FirmwareField => {
|
|
247
252
|
const deviceType = getDeviceType(features);
|
|
248
253
|
const deviceFirmwareVersion = getDeviceFirmwareVersion(features);
|
|
249
254
|
if (updateType === 'ble') {
|
|
@@ -255,7 +260,13 @@ export const getFirmwareUpdateField = (
|
|
|
255
260
|
}
|
|
256
261
|
|
|
257
262
|
if (deviceType === 'touch') {
|
|
263
|
+
if (targetVersion) {
|
|
264
|
+
if (semver.eq(targetVersion, '4.0.0')) return 'firmware-v2';
|
|
265
|
+
if (semver.gt(targetVersion, '4.0.0')) return 'firmware-v4';
|
|
266
|
+
}
|
|
267
|
+
|
|
258
268
|
if (semver.lt(deviceFirmwareVersion.join('.'), '3.4.0')) return 'firmware';
|
|
269
|
+
|
|
259
270
|
return 'firmware-v4';
|
|
260
271
|
}
|
|
261
272
|
return 'firmware';
|