@trezor/connect 9.7.3 → 10.0.0-beta.1
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/CHANGELOG.md +68 -1334
- package/README.md +9 -45
- package/lib/api/applyFlags.d.ts +17 -14
- package/lib/api/applyFlags.js +19 -20
- package/lib/api/applySettings.d.ts +18 -15
- package/lib/api/applySettings.js +25 -21
- package/lib/api/authenticateDevice.d.ts +24 -10
- package/lib/api/authenticateDevice.js +149 -49
- package/lib/api/authorizeCoinjoin.d.ts +10 -8
- package/lib/api/authorizeCoinjoin.js +21 -25
- package/lib/api/backupDevice.d.ts +16 -14
- package/lib/api/backupDevice.js +20 -21
- package/lib/api/bitcoin/TransactionComposer.d.ts +42 -44
- package/lib/api/bitcoin/TransactionComposer.js +21 -21
- package/lib/api/bitcoin/createPendingTx.d.ts +34 -32
- package/lib/api/bitcoin/createPendingTx.js +8 -15
- package/lib/api/bitcoin/enhanceSignTx.d.ts +2 -4
- package/lib/api/bitcoin/enhanceSignTx.js +5 -46
- package/lib/api/bitcoin/index.d.ts +9 -10
- package/lib/api/bitcoin/index.js +9 -16
- package/lib/api/bitcoin/inputs.d.ts +3 -7
- package/lib/api/bitcoin/inputs.js +12 -34
- package/lib/api/bitcoin/outputs.d.ts +3 -6
- package/lib/api/bitcoin/outputs.js +34 -33
- package/lib/api/bitcoin/refTx.d.ts +16 -12
- package/lib/api/bitcoin/refTx.js +49 -70
- package/lib/api/bitcoin/signtx.d.ts +26 -21
- package/lib/api/bitcoin/signtx.js +47 -39
- package/lib/api/bitcoin/signtxLegacy.d.ts +10 -4
- package/lib/api/bitcoin/signtxLegacy.js +31 -32
- package/lib/api/bitcoin/signtxVerify.d.ts +7 -9
- package/lib/api/bitcoin/signtxVerify.js +35 -35
- package/lib/api/bitcoin/transactionBytes.d.ts +3 -5
- package/lib/api/bitcoin/transactionBytes.js +8 -19
- package/lib/api/bleUnpair.d.ts +10 -8
- package/lib/api/bleUnpair.js +23 -25
- package/lib/api/blockchainDisconnect.d.ts +12 -11
- package/lib/api/blockchainDisconnect.js +22 -28
- package/lib/api/blockchainEstimateFee.d.ts +12 -9
- package/lib/api/blockchainEstimateFee.js +27 -32
- package/lib/api/blockchainEvmRpcCall.d.ts +15 -12
- package/lib/api/blockchainEvmRpcCall.js +22 -27
- package/lib/api/blockchainGetAccountBalanceHistory.d.ts +12 -9
- package/lib/api/blockchainGetAccountBalanceHistory.js +27 -28
- package/lib/api/blockchainGetContractInfo.d.ts +16 -0
- package/lib/api/blockchainGetContractInfo.js +46 -0
- package/lib/api/blockchainGetCurrentFiatRates.d.ts +16 -13
- package/lib/api/blockchainGetCurrentFiatRates.js +22 -27
- package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +19 -16
- package/lib/api/blockchainGetFiatRatesForTimestamps.js +22 -27
- package/lib/api/blockchainGetInfo.d.ts +11 -8
- package/lib/api/blockchainGetInfo.js +22 -27
- package/lib/api/blockchainGetTransactions.d.ts +14 -9
- package/lib/api/blockchainGetTransactions.js +29 -29
- package/lib/api/blockchainSetCustomBackend.d.ts +13 -8
- package/lib/api/blockchainSetCustomBackend.js +26 -28
- package/lib/api/blockchainSubscribe.d.ts +15 -12
- package/lib/api/blockchainSubscribe.js +25 -28
- package/lib/api/blockchainSubscribeFiatRates.d.ts +15 -11
- package/lib/api/blockchainSubscribeFiatRates.js +23 -27
- package/lib/api/blockchainUnsubscribe.d.ts +15 -12
- package/lib/api/blockchainUnsubscribe.js +25 -28
- package/lib/api/blockchainUnsubscribeFiatRates.d.ts +13 -10
- package/lib/api/blockchainUnsubscribeFiatRates.js +22 -27
- package/lib/api/blockchainValidateEvmRpcUrl.d.ts +17 -0
- package/lib/api/blockchainValidateEvmRpcUrl.js +54 -0
- package/lib/api/cancelCoinjoinAuthorization.d.ts +11 -10
- package/lib/api/cancelCoinjoinAuthorization.js +15 -18
- package/lib/api/cardano/api/cardanoComposeTransaction.d.ts +9 -7
- package/lib/api/cardano/api/cardanoComposeTransaction.js +25 -27
- package/lib/api/cardano/api/cardanoGetAddress.d.ts +31 -24
- package/lib/api/cardano/api/cardanoGetAddress.js +75 -70
- package/lib/api/cardano/api/cardanoGetNativeScriptHash.d.ts +11 -12
- package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +47 -56
- package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +19 -14
- package/lib/api/cardano/api/cardanoGetPublicKey.js +62 -43
- package/lib/api/cardano/api/cardanoSignMessage.d.ts +19 -22
- package/lib/api/cardano/api/cardanoSignMessage.js +34 -44
- package/lib/api/cardano/api/cardanoSignTransaction.d.ts +75 -73
- package/lib/api/cardano/api/cardanoSignTransaction.js +64 -62
- package/lib/api/cardano/api/index.d.ts +6 -7
- package/lib/api/cardano/api/index.js +6 -50
- package/lib/api/cardano/cardanoAddressParameters.d.ts +3 -4
- package/lib/api/cardano/cardanoAddressParameters.js +17 -27
- package/lib/api/cardano/cardanoAuxiliaryData.d.ts +3 -4
- package/lib/api/cardano/cardanoAuxiliaryData.js +16 -25
- package/lib/api/cardano/cardanoCertificate.d.ts +9 -10
- package/lib/api/cardano/cardanoCertificate.js +35 -42
- package/lib/api/cardano/cardanoInputs.d.ts +16 -17
- package/lib/api/cardano/cardanoInputs.js +19 -29
- package/lib/api/cardano/cardanoOutputs.d.ts +35 -35
- package/lib/api/cardano/cardanoOutputs.js +25 -34
- package/lib/api/cardano/cardanoTokenBundle.d.ts +10 -11
- package/lib/api/cardano/cardanoTokenBundle.js +9 -17
- package/lib/api/cardano/cardanoUtils.d.ts +13 -5
- package/lib/api/cardano/cardanoUtils.js +19 -33
- package/lib/api/cardano/cardanoWitnesses.d.ts +4 -5
- package/lib/api/cardano/cardanoWitnesses.js +6 -14
- package/lib/api/changeLanguage.d.ts +16 -15
- package/lib/api/changeLanguage.js +22 -23
- package/lib/api/changePin.d.ts +9 -7
- package/lib/api/changePin.js +18 -20
- package/lib/api/changeWipeCode.d.ts +10 -8
- package/lib/api/changeWipeCode.js +17 -19
- package/lib/api/cipherKeyValue.d.ts +16 -12
- package/lib/api/cipherKeyValue.js +35 -33
- package/lib/api/common/AbstractMiscGetAddress.d.ts +37 -0
- package/lib/api/common/AbstractMiscGetAddress.js +126 -0
- package/lib/api/common/Discovery.d.ts +23 -26
- package/lib/api/common/Discovery.js +14 -22
- package/lib/api/common/paramsValidator.d.ts +19 -9
- package/lib/api/common/paramsValidator.js +77 -71
- package/lib/api/common/requestExistingAccounts.d.ts +14 -0
- package/lib/api/common/requestExistingAccounts.js +20 -0
- package/lib/api/composeTransaction.d.ts +31 -39
- package/lib/api/composeTransaction.js +172 -108
- package/lib/api/discoverAccounts.d.ts +36 -29
- package/lib/api/discoverAccounts.js +113 -69
- package/lib/api/ethereum/api/ethereumGetAddress.d.ts +27 -25
- package/lib/api/ethereum/api/ethereumGetAddress.js +80 -62
- package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +49 -41
- package/lib/api/ethereum/api/ethereumGetPublicKey.js +54 -42
- package/lib/api/ethereum/api/ethereumSignMessage.d.ts +24 -21
- package/lib/api/ethereum/api/ethereumSignMessage.js +40 -46
- package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +77 -76
- package/lib/api/ethereum/api/ethereumSignTransaction.js +63 -77
- package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +108 -107
- package/lib/api/ethereum/api/ethereumSignTypedData.js +69 -77
- package/lib/api/ethereum/api/ethereumVerifyMessage.d.ts +11 -9
- package/lib/api/ethereum/api/ethereumVerifyMessage.js +23 -25
- package/lib/api/ethereum/api/index.d.ts +6 -7
- package/lib/api/ethereum/api/index.js +6 -50
- package/lib/api/ethereum/ethereumDefinitions.d.ts +42 -36
- package/lib/api/ethereum/ethereumDefinitions.js +67 -50
- package/lib/api/ethereum/ethereumSignTx.d.ts +15 -21
- package/lib/api/ethereum/ethereumSignTx.js +64 -62
- package/lib/api/ethereum/ethereumSignTypedData.d.ts +28 -5
- package/lib/api/ethereum/ethereumSignTypedData.js +95 -41
- package/lib/api/evoluGetDelegatedIdentityKey.d.ts +13 -10
- package/lib/api/evoluGetDelegatedIdentityKey.js +20 -32
- package/lib/api/evoluGetNode.d.ts +11 -9
- package/lib/api/evoluGetNode.js +16 -20
- package/lib/api/evoluSignRegistrationRequest.d.ts +14 -10
- package/lib/api/evoluSignRegistrationRequest.js +18 -20
- package/lib/api/firmware/calculateFirmwareHash.d.ts +15 -10
- package/lib/api/firmware/calculateFirmwareHash.js +16 -21
- package/lib/api/firmware/calculateXPubHash.d.ts +14 -0
- package/lib/api/firmware/calculateXPubHash.js +16 -0
- package/lib/api/firmware/getBinary.d.ts +11 -8
- package/lib/api/firmware/getBinary.js +12 -21
- package/lib/api/firmware/index.d.ts +6 -6
- package/lib/api/firmware/index.js +6 -54
- package/lib/api/firmware/modifyFirmware.d.ts +2 -3
- package/lib/api/firmware/modifyFirmware.js +6 -14
- package/lib/api/firmware/parseFirmwareHeaders.d.ts +3 -4
- package/lib/api/firmware/parseFirmwareHeaders.js +2 -10
- package/lib/api/firmware/uploadFirmware.d.ts +22 -17
- package/lib/api/firmware/uploadFirmware.js +20 -20
- package/lib/api/firmware/verifyEntropy.d.ts +20 -14
- package/lib/api/firmware/verifyEntropy.js +22 -29
- package/lib/api/getAccountInfo.d.ts +17 -143
- package/lib/api/getAccountInfo.js +92 -184
- package/lib/api/getAddress.d.ts +42 -35
- package/lib/api/getAddress.js +76 -71
- package/lib/api/getCoinInfo.d.ts +144 -146
- package/lib/api/getCoinInfo.js +17 -25
- package/lib/api/getDeviceState.d.ts +7 -8
- package/lib/api/getDeviceState.js +11 -17
- package/lib/api/getFeatures.d.ts +70 -64
- package/lib/api/getFeatures.js +17 -17
- package/lib/api/getFirmwareHash.d.ts +9 -7
- package/lib/api/getFirmwareHash.js +20 -24
- package/lib/api/getNonce.d.ts +10 -9
- package/lib/api/getNonce.js +12 -12
- package/lib/api/getOwnershipId.d.ts +16 -12
- package/lib/api/getOwnershipId.js +54 -37
- package/lib/api/getOwnershipProof.d.ts +16 -12
- package/lib/api/getOwnershipProof.js +54 -39
- package/lib/api/getPublicKey.d.ts +51 -43
- package/lib/api/getPublicKey.js +67 -48
- package/lib/api/getSettings.d.ts +23 -5
- package/lib/api/getSettings.js +16 -14
- package/lib/api/index.d.ts +62 -58
- package/lib/api/index.js +62 -408
- package/lib/api/loadDevice.d.ts +14 -12
- package/lib/api/loadDevice.js +20 -24
- package/lib/api/monero/api/index.d.ts +4 -5
- package/lib/api/monero/api/index.js +4 -36
- package/lib/api/monero/api/moneroGetAddress.d.ts +29 -24
- package/lib/api/monero/api/moneroGetAddress.js +56 -61
- package/lib/api/monero/api/moneroGetWatchKey.d.ts +11 -10
- package/lib/api/monero/api/moneroGetWatchKey.js +26 -29
- package/lib/api/monero/api/moneroKeyImageSync.d.ts +13 -12
- package/lib/api/monero/api/moneroKeyImageSync.js +34 -37
- package/lib/api/monero/api/moneroSignTransaction.d.ts +13 -12
- package/lib/api/monero/api/moneroSignTransaction.js +52 -41
- package/lib/api/nostr/nostrGetPublicKey.d.ts +15 -0
- package/lib/api/nostr/nostrGetPublicKey.js +38 -0
- package/lib/api/nostr/nostrSignEvent.d.ts +13 -0
- package/lib/api/nostr/nostrSignEvent.js +36 -0
- package/lib/api/pingDevice.d.ts +11 -0
- package/lib/api/pingDevice.js +29 -0
- package/lib/api/pushTransaction.d.ts +15 -12
- package/lib/api/pushTransaction.js +25 -30
- package/lib/api/recoveryDevice.d.ts +18 -16
- package/lib/api/recoveryDevice.js +22 -23
- package/lib/api/requestLogin.d.ts +13 -11
- package/lib/api/requestLogin.js +24 -30
- package/lib/api/resetDevice.d.ts +21 -15
- package/lib/api/resetDevice.js +64 -48
- package/lib/api/ripple/api/index.d.ts +2 -3
- package/lib/api/ripple/api/index.js +2 -22
- package/lib/api/ripple/api/rippleGetAddress.d.ts +17 -27
- package/lib/api/ripple/api/rippleGetAddress.js +12 -101
- package/lib/api/ripple/api/rippleSignTransaction.d.ts +12 -10
- package/lib/api/ripple/api/rippleSignTransaction.js +21 -24
- package/lib/api/selectAccount.d.ts +15 -0
- package/lib/api/selectAccount.js +42 -0
- package/lib/api/setBrightness.d.ts +10 -7
- package/lib/api/setBrightness.js +19 -20
- package/lib/api/setBusy.d.ts +10 -8
- package/lib/api/setBusy.js +18 -25
- package/lib/api/showDeviceTutorial.d.ts +11 -10
- package/lib/api/showDeviceTutorial.js +11 -16
- package/lib/api/signMessage.d.ts +24 -18
- package/lib/api/signMessage.js +47 -36
- package/lib/api/signTransaction.d.ts +195 -227
- package/lib/api/signTransaction.js +84 -101
- package/lib/api/solana/api/index.d.ts +4 -5
- package/lib/api/solana/api/index.js +4 -36
- package/lib/api/solana/api/solanaComposeTransaction.d.ts +29 -26
- package/lib/api/solana/api/solanaComposeTransaction.js +47 -36
- package/lib/api/solana/api/solanaGetAddress.d.ts +17 -27
- package/lib/api/solana/api/solanaGetAddress.js +12 -101
- package/lib/api/solana/api/solanaGetPublicKey.d.ts +31 -26
- package/lib/api/solana/api/solanaGetPublicKey.js +54 -39
- package/lib/api/solana/api/solanaSignTransaction.d.ts +38 -36
- package/lib/api/solana/api/solanaSignTransaction.js +134 -133
- package/lib/api/solana/solanaDefinitions.d.ts +5 -4
- package/lib/api/solana/solanaDefinitions.js +12 -25
- package/lib/api/stellar/api/index.d.ts +2 -3
- package/lib/api/stellar/api/index.js +2 -22
- package/lib/api/stellar/api/stellarGetAddress.d.ts +17 -27
- package/lib/api/stellar/api/stellarGetAddress.js +12 -101
- package/lib/api/stellar/api/stellarSignTransaction.d.ts +17 -21
- package/lib/api/stellar/api/stellarSignTransaction.js +39 -44
- package/lib/api/stellar/stellarSignTx.d.ts +7 -7
- package/lib/api/stellar/stellarSignTx.js +37 -51
- package/lib/api/telemetryGet.d.ts +14 -0
- package/lib/api/telemetryGet.js +26 -0
- package/lib/api/tezos/api/index.d.ts +3 -4
- package/lib/api/tezos/api/index.js +3 -29
- package/lib/api/tezos/api/tezosGetAddress.d.ts +17 -27
- package/lib/api/tezos/api/tezosGetAddress.js +12 -101
- package/lib/api/tezos/api/tezosGetPublicKey.d.ts +27 -20
- package/lib/api/tezos/api/tezosGetPublicKey.js +53 -37
- package/lib/api/tezos/api/tezosSignTransaction.d.ts +13 -11
- package/lib/api/tezos/api/tezosSignTransaction.js +20 -26
- package/lib/api/tezos/tezosSignTx.d.ts +66 -67
- package/lib/api/tezos/tezosSignTx.js +12 -19
- package/lib/api/thpGetCredentials.d.ts +12 -9
- package/lib/api/thpGetCredentials.js +21 -25
- package/lib/api/thpRemoveCredentials.d.ts +14 -7
- package/lib/api/thpRemoveCredentials.js +35 -30
- package/lib/api/tron/api/index.d.ts +3 -3
- package/lib/api/tron/api/index.js +3 -22
- package/lib/api/tron/api/tronComposeTransaction.d.ts +17 -0
- package/lib/api/tron/api/tronComposeTransaction.js +52 -0
- package/lib/api/tron/api/tronGetAddress.d.ts +17 -27
- package/lib/api/tron/api/tronGetAddress.js +12 -98
- package/lib/api/tron/api/tronSignTransaction.d.ts +16 -15
- package/lib/api/tron/api/tronSignTransaction.js +101 -27
- package/lib/api/tron/tronEncode.d.ts +11 -0
- package/lib/api/tron/tronEncode.js +157 -0
- package/lib/api/tron/tronProtobuf.d.ts +5 -0
- package/lib/api/tron/tronProtobuf.js +28 -0
- package/lib/api/unlockPath.d.ts +11 -9
- package/lib/api/unlockPath.js +18 -23
- package/lib/api/verifyMessage.d.ts +15 -9
- package/lib/api/verifyMessage.js +30 -34
- package/lib/api/wipeDevice.d.ts +19 -15
- package/lib/api/wipeDevice.js +22 -22
- package/lib/backend/BackendManager.d.ts +26 -20
- package/lib/backend/BackendManager.js +29 -29
- package/lib/backend/Blockchain.d.ts +78 -79
- package/lib/backend/Blockchain.js +34 -35
- package/lib/backend/BlockchainLink.d.ts +6 -6
- package/lib/backend/BlockchainLink.js +14 -27
- package/lib/backend/fees/BitcoinFeeLevels.d.ts +18 -19
- package/lib/backend/fees/BitcoinFeeLevels.js +11 -17
- package/lib/backend/fees/EthereumFeeLevels.d.ts +16 -17
- package/lib/backend/fees/EthereumFeeLevels.js +26 -22
- package/lib/backend/fees/MiscFeeLevels.d.ts +17 -18
- package/lib/backend/fees/MiscFeeLevels.js +13 -16
- package/lib/backend/fees/index.d.ts +4 -5
- package/lib/backend/fees/index.js +12 -21
- package/lib/core/AbstractMethod.d.ts +57 -72
- package/lib/core/AbstractMethod.js +92 -170
- package/lib/core/index.d.ts +25 -28
- package/lib/core/index.js +292 -493
- package/lib/core/method.d.ts +3 -4
- package/lib/core/method.js +9 -18
- package/lib/core/method.native.d.ts +2 -3
- package/lib/core/method.native.js +8 -19
- package/lib/core/onCallFirmwareUpdate.d.ts +33 -32
- package/lib/core/onCallFirmwareUpdate.js +103 -63
- package/lib/data/coinInfo.d.ts +86 -431
- package/lib/data/coinInfo.js +55 -57
- package/lib/data/config.d.ts +5 -30
- package/lib/data/config.js +52 -149
- package/lib/data/defaultFeeLevels.d.ts +10 -11
- package/lib/data/defaultFeeLevels.js +39 -23
- package/lib/data/enabledNetworksStore.d.ts +5 -0
- package/lib/data/enabledNetworksStore.js +20 -0
- package/lib/data/firmwareInfo.d.ts +39 -37
- package/lib/data/firmwareInfo.js +99 -167
- package/lib/data/firmwareReleaseStore.d.ts +10 -0
- package/lib/data/firmwareReleaseStore.js +16 -0
- package/lib/data/localFirmwareStore.d.ts +3 -0
- package/lib/data/localFirmwareStore.js +8 -0
- package/lib/data/protobufLoader.d.ts +1 -0
- package/lib/data/protobufLoader.js +30 -0
- package/lib/data/settingsStore.d.ts +6 -0
- package/lib/data/settingsStore.js +21 -0
- package/lib/device/Device.d.ts +255 -289
- package/lib/device/Device.js +203 -204
- package/lib/device/DeviceCommands.d.ts +82 -69
- package/lib/device/DeviceCommands.js +35 -36
- package/lib/device/DeviceCurrentSession.d.ts +746 -1093
- package/lib/device/DeviceCurrentSession.js +32 -53
- package/lib/device/DeviceList.d.ts +65 -59
- package/lib/device/DeviceList.js +80 -76
- package/lib/device/TransportList.d.ts +3 -9
- package/lib/device/TransportList.js +11 -50
- package/lib/device/TransportManager.d.ts +25 -22
- package/lib/device/TransportManager.js +15 -21
- package/lib/device/calculateRevisionForDevice.d.ts +8 -6
- package/lib/device/calculateRevisionForDevice.js +7 -15
- package/lib/device/checkFirmwareRevision.d.ts +20 -10
- package/lib/device/checkFirmwareRevision.js +43 -22
- package/lib/device/resolveDescriptorForTaproot.d.ts +13 -11
- package/lib/device/resolveDescriptorForTaproot.js +9 -15
- package/lib/device/thp/handshake.d.ts +3 -4
- package/lib/device/thp/handshake.js +27 -39
- package/lib/device/thp/index.d.ts +5 -6
- package/lib/device/thp/index.js +37 -41
- package/lib/device/thp/pairing.d.ts +13 -13
- package/lib/device/thp/pairing.js +88 -84
- package/lib/device/thp/session.d.ts +2 -3
- package/lib/device/thp/session.js +4 -12
- package/lib/device/thp/thpCall.d.ts +22 -32
- package/lib/device/thp/thpCall.js +14 -20
- package/lib/device/validateMessageSize.d.ts +2 -0
- package/lib/device/validateMessageSize.js +9 -0
- package/lib/device/workflow/changeLanguage.d.ts +18 -0
- package/lib/device/workflow/changeLanguage.js +62 -0
- package/lib/device/workflow/checkFirmwareHash.d.ts +10 -8
- package/lib/device/workflow/checkFirmwareHash.js +20 -28
- package/lib/device/workflow/checkFirmwareHashWithRetries.d.ts +5 -6
- package/lib/device/workflow/checkFirmwareHashWithRetries.js +9 -17
- package/lib/device/workflow/handshake.d.ts +11 -8
- package/lib/device/workflow/handshake.js +13 -21
- package/lib/device/workflow/trezorPushNotification.d.ts +5 -3
- package/lib/device/workflow/trezorPushNotification.js +28 -36
- package/lib/device/workflow/validateState.d.ts +2 -3
- package/lib/device/workflow/validateState.js +35 -59
- package/lib/events/ui-promise.d.ts +14 -14
- package/lib/events/ui-promise.js +1 -6
- package/lib/exports.d.ts +3 -5
- package/lib/exports.js +3 -18
- package/lib/impl/core-in-module.d.ts +33 -35
- package/lib/impl/core-in-module.js +124 -146
- package/lib/index.browser.d.ts +7 -0
- package/lib/index.browser.js +34 -0
- package/lib/index.d.ts +3 -9
- package/lib/index.js +15 -178
- package/lib/types/idevice.d.ts +110 -0
- package/lib/types/idevice.js +1 -0
- package/lib/types/typed-call-provider.d.ts +29 -0
- package/lib/types/typed-call-provider.js +1 -0
- package/lib/types/workflow.d.ts +13 -9
- package/lib/types/workflow.js +1 -6
- package/lib/utils/accountUtils.d.ts +4 -5
- package/lib/utils/accountUtils.js +28 -32
- package/lib/utils/addressUtils.d.ts +2 -3
- package/lib/utils/addressUtils.js +4 -12
- package/lib/utils/assetUtils.d.ts +8 -5
- package/lib/utils/assetUtils.js +36 -28
- package/lib/utils/assets.browser.d.ts +1 -0
- package/lib/utils/assets.browser.js +1 -0
- package/lib/utils/assets.d.ts +2 -3
- package/lib/utils/assets.js +8 -17
- package/lib/utils/assets.native.d.ts +2 -3
- package/lib/utils/assets.native.js +5 -12
- package/lib/utils/assetsTypes.d.ts +2 -3
- package/lib/utils/assetsTypes.js +1 -6
- package/lib/utils/buildOutputDescriptor.d.ts +20 -0
- package/lib/utils/buildOutputDescriptor.js +67 -0
- package/lib/utils/deviceFeaturesUtils.d.ts +4 -5
- package/lib/utils/deviceFeaturesUtils.js +24 -38
- package/lib/utils/ethereumUtils.d.ts +2 -3
- package/lib/utils/ethereumUtils.js +3 -11
- package/lib/utils/firmwareReleaseConfigUtils.d.ts +16 -7
- package/lib/utils/firmwareReleaseConfigUtils.js +71 -31
- package/lib/utils/firmwareUtils.d.ts +7 -7
- package/lib/utils/firmwareUtils.js +24 -37
- package/lib/utils/formatUtils.d.ts +6 -8
- package/lib/utils/formatUtils.js +21 -60
- package/lib/utils/hdnodeUtils.d.ts +2 -3
- package/lib/utils/hdnodeUtils.js +14 -25
- package/lib/utils/pathUtils.d.ts +1 -21
- package/lib/utils/pathUtils.js +1 -172
- package/lib/utils/paymentRequest.d.ts +8 -0
- package/lib/utils/paymentRequest.js +25 -0
- package/lib/utils/uiPromiseManager.d.ts +8 -43
- package/lib/utils/uiPromiseManager.js +19 -31
- package/lib/workers/workers.browser.d.ts +10 -0
- package/lib/workers/workers.browser.js +16 -0
- package/lib/workers/workers.d.ts +2 -2
- package/lib/workers/workers.js +8 -60
- package/lib/workers/workers.native.d.ts +2 -3
- package/lib/workers/workers.native.js +7 -20
- package/package.json +84 -75
- package/lib/api/eos/api/eosGetPublicKey.d.ts +0 -23
- package/lib/api/eos/api/eosGetPublicKey.js +0 -69
- package/lib/api/eos/api/eosSignTransaction.d.ts +0 -18
- package/lib/api/eos/api/eosSignTransaction.js +0 -48
- package/lib/api/eos/api/index.d.ts +0 -3
- package/lib/api/eos/api/index.js +0 -22
- package/lib/api/eos/eosSignTx.d.ts +0 -175
- package/lib/api/eos/eosSignTx.js +0 -344
- package/lib/api/getAccountDescriptor.d.ts +0 -22
- package/lib/api/getAccountDescriptor.js +0 -139
- package/lib/api/nem/api/index.d.ts +0 -3
- package/lib/api/nem/api/index.js +0 -22
- package/lib/api/nem/api/nemGetAddress.d.ts +0 -26
- package/lib/api/nem/api/nemGetAddress.js +0 -129
- package/lib/api/nem/api/nemSignTransaction.d.ts +0 -11
- package/lib/api/nem/api/nemSignTransaction.js +0 -39
- package/lib/api/nem/nemSignTx.d.ts +0 -78
- package/lib/api/nem/nemSignTx.js +0 -143
- package/lib/api/setProxy.d.ts +0 -8
- package/lib/api/setProxy.js +0 -32
- package/lib/api/solana/additionalInfo.d.ts +0 -10
- package/lib/api/solana/additionalInfo.js +0 -24
- package/lib/api/solana/solanaUtils.d.ts +0 -49
- package/lib/api/solana/solanaUtils.js +0 -279
- package/lib/constants/cardano.d.ts +0 -14
- package/lib/constants/cardano.js +0 -23
- package/lib/constants/errors.d.ts +0 -64
- package/lib/constants/errors.js +0 -87
- package/lib/constants/firmware.d.ts +0 -4
- package/lib/constants/firmware.js +0 -10
- package/lib/constants/index.d.ts +0 -8
- package/lib/constants/index.js +0 -27
- package/lib/constants/nem.d.ts +0 -29
- package/lib/constants/nem.js +0 -35
- package/lib/constants/network.d.ts +0 -17
- package/lib/constants/network.js +0 -21
- package/lib/constants/utxo.d.ts +0 -3
- package/lib/constants/utxo.js +0 -8
- package/lib/data/DataManager.d.ts +0 -31
- package/lib/data/DataManager.js +0 -100
- package/lib/data/analyticsInfo.d.ts +0 -6
- package/lib/data/analyticsInfo.js +0 -43
- package/lib/data/connectSettings.d.ts +0 -9
- package/lib/data/connectSettings.js +0 -147
- package/lib/data/thpSettings.d.ts +0 -3
- package/lib/data/thpSettings.js +0 -41
- package/lib/data/udevInfo.d.ts +0 -11
- package/lib/data/udevInfo.js +0 -31
- package/lib/data/version.d.ts +0 -6
- package/lib/data/version.js +0 -14
- package/lib/device/StateStorage.d.ts +0 -15
- package/lib/device/StateStorage.js +0 -40
- package/lib/device/workflow/index.d.ts +0 -2
- package/lib/device/workflow/index.js +0 -14
- package/lib/events/blockchain.d.ts +0 -66
- package/lib/events/blockchain.js +0 -22
- package/lib/events/call.d.ts +0 -46
- package/lib/events/call.js +0 -22
- package/lib/events/core.d.ts +0 -24
- package/lib/events/core.js +0 -32
- package/lib/events/device.d.ts +0 -70
- package/lib/events/device.js +0 -42
- package/lib/events/iframe.d.ts +0 -46
- package/lib/events/iframe.js +0 -22
- package/lib/events/index.d.ts +0 -68
- package/lib/events/index.js +0 -25
- package/lib/events/popup.d.ts +0 -88
- package/lib/events/popup.js +0 -29
- package/lib/events/transport.d.ts +0 -51
- package/lib/events/transport.js +0 -26
- package/lib/events/ui-request.d.ts +0 -266
- package/lib/events/ui-request.js +0 -57
- package/lib/events/ui-response.d.ts +0 -104
- package/lib/events/ui-response.js +0 -29
- package/lib/events/webextension.d.ts +0 -8
- package/lib/events/webextension.js +0 -14
- package/lib/factory.d.ts +0 -20
- package/lib/factory.js +0 -50
- package/lib/impl/dynamic.d.ts +0 -39
- package/lib/impl/dynamic.js +0 -125
- package/lib/index-browser.d.ts +0 -7
- package/lib/index-browser.js +0 -29
- package/lib/tsconfig.lib.tsbuildinfo +0 -1
- package/lib/types/account.d.ts +0 -20
- package/lib/types/account.js +0 -6
- package/lib/types/api/applyFlags.d.ts +0 -4
- package/lib/types/api/applyFlags.js +0 -6
- package/lib/types/api/applySettings.d.ts +0 -23
- package/lib/types/api/applySettings.js +0 -12
- package/lib/types/api/authenticateDevice.d.ts +0 -65
- package/lib/types/api/authenticateDevice.js +0 -14
- package/lib/types/api/authorizeCoinjoin.d.ts +0 -17
- package/lib/types/api/authorizeCoinjoin.js +0 -21
- package/lib/types/api/backupDevice.d.ts +0 -4
- package/lib/types/api/backupDevice.js +0 -6
- package/lib/types/api/bitcoin/index.d.ts +0 -101
- package/lib/types/api/bitcoin/index.js +0 -23
- package/lib/types/api/bleUnpair.d.ts +0 -4
- package/lib/types/api/bleUnpair.js +0 -6
- package/lib/types/api/blockchainDisconnect.d.ts +0 -5
- package/lib/types/api/blockchainDisconnect.js +0 -6
- package/lib/types/api/blockchainEstimateFee.d.ts +0 -26
- package/lib/types/api/blockchainEstimateFee.js +0 -6
- package/lib/types/api/blockchainEvmRpcCall.d.ts +0 -4
- package/lib/types/api/blockchainEvmRpcCall.js +0 -6
- package/lib/types/api/blockchainGetAccountBalanceHistory.d.ts +0 -4
- package/lib/types/api/blockchainGetAccountBalanceHistory.js +0 -6
- package/lib/types/api/blockchainGetCurrentFiatRates.d.ts +0 -4
- package/lib/types/api/blockchainGetCurrentFiatRates.js +0 -6
- package/lib/types/api/blockchainGetFiatRatesForTimestamps.d.ts +0 -4
- package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +0 -6
- package/lib/types/api/blockchainGetInfo.d.ts +0 -4
- package/lib/types/api/blockchainGetInfo.js +0 -6
- package/lib/types/api/blockchainGetTransactions.d.ts +0 -7
- package/lib/types/api/blockchainGetTransactions.js +0 -6
- package/lib/types/api/blockchainSetCustomBackend.d.ts +0 -8
- package/lib/types/api/blockchainSetCustomBackend.js +0 -6
- package/lib/types/api/blockchainSubscribe.d.ts +0 -8
- package/lib/types/api/blockchainSubscribe.js +0 -6
- package/lib/types/api/blockchainSubscribeFiatRates.d.ts +0 -7
- package/lib/types/api/blockchainSubscribeFiatRates.js +0 -6
- package/lib/types/api/blockchainUnsubscribe.d.ts +0 -5
- package/lib/types/api/blockchainUnsubscribe.js +0 -6
- package/lib/types/api/blockchainUnsubscribeFiatRates.d.ts +0 -5
- package/lib/types/api/blockchainUnsubscribeFiatRates.js +0 -6
- package/lib/types/api/cancel.d.ts +0 -2
- package/lib/types/api/cancel.js +0 -6
- package/lib/types/api/cancelCoinjoinAuthorization.d.ts +0 -9
- package/lib/types/api/cancelCoinjoinAuthorization.js +0 -11
- package/lib/types/api/cardano/index.d.ts +0 -784
- package/lib/types/api/cardano/index.js +0 -241
- package/lib/types/api/cardanoComposeTransaction.d.ts +0 -150
- package/lib/types/api/cardanoComposeTransaction.js +0 -91
- package/lib/types/api/cardanoGetAddress.d.ts +0 -5
- package/lib/types/api/cardanoGetAddress.js +0 -6
- package/lib/types/api/cardanoGetNativeScriptHash.d.ts +0 -4
- package/lib/types/api/cardanoGetNativeScriptHash.js +0 -6
- package/lib/types/api/cardanoGetPublicKey.d.ts +0 -5
- package/lib/types/api/cardanoGetPublicKey.js +0 -6
- package/lib/types/api/cardanoSignMessage.d.ts +0 -4
- package/lib/types/api/cardanoSignMessage.js +0 -6
- package/lib/types/api/cardanoSignTransaction.d.ts +0 -10
- package/lib/types/api/cardanoSignTransaction.js +0 -6
- package/lib/types/api/changeLanguage.d.ts +0 -15
- package/lib/types/api/changeLanguage.js +0 -17
- package/lib/types/api/changePin.d.ts +0 -4
- package/lib/types/api/changePin.js +0 -6
- package/lib/types/api/changeWipeCode.d.ts +0 -4
- package/lib/types/api/changeWipeCode.js +0 -6
- package/lib/types/api/cipherKeyValue.d.ts +0 -18
- package/lib/types/api/cipherKeyValue.js +0 -18
- package/lib/types/api/composeTransaction.d.ts +0 -74
- package/lib/types/api/composeTransaction.js +0 -6
- package/lib/types/api/device.d.ts +0 -1
- package/lib/types/api/device.js +0 -1
- package/lib/types/api/disableWebUSB.d.ts +0 -2
- package/lib/types/api/disableWebUSB.js +0 -6
- package/lib/types/api/discoverAccounts.d.ts +0 -248
- package/lib/types/api/discoverAccounts.js +0 -210
- package/lib/types/api/dispose.d.ts +0 -2
- package/lib/types/api/dispose.js +0 -6
- package/lib/types/api/eos/index.d.ts +0 -784
- package/lib/types/api/eos/index.js +0 -124
- package/lib/types/api/eosGetPublicKey.d.ts +0 -5
- package/lib/types/api/eosGetPublicKey.js +0 -6
- package/lib/types/api/eosSignTransaction.d.ts +0 -5
- package/lib/types/api/eosSignTransaction.js +0 -6
- package/lib/types/api/ethereum/index.d.ts +0 -307
- package/lib/types/api/ethereum/index.js +0 -101
- package/lib/types/api/ethereumGetAddress.d.ts +0 -4
- package/lib/types/api/ethereumGetAddress.js +0 -6
- package/lib/types/api/ethereumGetPublicKey.d.ts +0 -5
- package/lib/types/api/ethereumGetPublicKey.js +0 -6
- package/lib/types/api/ethereumSignMessage.d.ts +0 -5
- package/lib/types/api/ethereumSignMessage.js +0 -6
- package/lib/types/api/ethereumSignTransaction.d.ts +0 -4
- package/lib/types/api/ethereumSignTransaction.js +0 -6
- package/lib/types/api/ethereumSignTypedData.d.ts +0 -6
- package/lib/types/api/ethereumSignTypedData.js +0 -6
- package/lib/types/api/ethereumVerifyMessage.d.ts +0 -5
- package/lib/types/api/ethereumVerifyMessage.js +0 -6
- package/lib/types/api/evoluGetDelegatedIdentityKey.d.ts +0 -9
- package/lib/types/api/evoluGetDelegatedIdentityKey.js +0 -6
- package/lib/types/api/evoluGetNode.d.ts +0 -4
- package/lib/types/api/evoluGetNode.js +0 -6
- package/lib/types/api/evoluSignRegistrationRequest.d.ts +0 -4
- package/lib/types/api/evoluSignRegistrationRequest.js +0 -6
- package/lib/types/api/firmwareUpdate.d.ts +0 -21
- package/lib/types/api/firmwareUpdate.js +0 -16
- package/lib/types/api/getAccountDescriptor.d.ts +0 -18
- package/lib/types/api/getAccountDescriptor.js +0 -16
- package/lib/types/api/getAccountInfo.d.ts +0 -16
- package/lib/types/api/getAccountInfo.js +0 -6
- package/lib/types/api/getAddress.d.ts +0 -48
- package/lib/types/api/getAddress.js +0 -17
- package/lib/types/api/getCoinInfo.d.ts +0 -6
- package/lib/types/api/getCoinInfo.js +0 -6
- package/lib/types/api/getDeviceState.d.ts +0 -8
- package/lib/types/api/getDeviceState.js +0 -6
- package/lib/types/api/getFeatures.d.ts +0 -4
- package/lib/types/api/getFeatures.js +0 -6
- package/lib/types/api/getFirmwareHash.d.ts +0 -4
- package/lib/types/api/getFirmwareHash.js +0 -6
- package/lib/types/api/getNonce.d.ts +0 -4
- package/lib/types/api/getNonce.js +0 -6
- package/lib/types/api/getOwnershipId.d.ts +0 -41
- package/lib/types/api/getOwnershipId.js +0 -16
- package/lib/types/api/getOwnershipProof.d.ts +0 -45
- package/lib/types/api/getOwnershipProof.js +0 -22
- package/lib/types/api/getPublicKey.d.ts +0 -37
- package/lib/types/api/getPublicKey.js +0 -31
- package/lib/types/api/getSettings.d.ts +0 -4
- package/lib/types/api/getSettings.js +0 -6
- package/lib/types/api/index.d.ts +0 -203
- package/lib/types/api/index.js +0 -6
- package/lib/types/api/init.d.ts +0 -7
- package/lib/types/api/init.js +0 -6
- package/lib/types/api/loadDevice.d.ts +0 -4
- package/lib/types/api/loadDevice.js +0 -6
- package/lib/types/api/manifest.d.ts +0 -3
- package/lib/types/api/manifest.js +0 -6
- package/lib/types/api/monero/index.d.ts +0 -280
- package/lib/types/api/monero/index.js +0 -178
- package/lib/types/api/moneroGetAddress.d.ts +0 -5
- package/lib/types/api/moneroGetAddress.js +0 -6
- package/lib/types/api/moneroGetWatchKey.d.ts +0 -4
- package/lib/types/api/moneroGetWatchKey.js +0 -6
- package/lib/types/api/moneroKeyImageSync.d.ts +0 -4
- package/lib/types/api/moneroKeyImageSync.js +0 -6
- package/lib/types/api/moneroSignTransaction.d.ts +0 -4
- package/lib/types/api/moneroSignTransaction.js +0 -6
- package/lib/types/api/nem/index.d.ts +0 -842
- package/lib/types/api/nem/index.js +0 -99
- package/lib/types/api/nemGetAddress.d.ts +0 -14
- package/lib/types/api/nemGetAddress.js +0 -12
- package/lib/types/api/nemSignTransaction.d.ts +0 -5
- package/lib/types/api/nemSignTransaction.js +0 -6
- package/lib/types/api/off.d.ts +0 -11
- package/lib/types/api/off.js +0 -6
- package/lib/types/api/on.d.ts +0 -14
- package/lib/types/api/on.js +0 -6
- package/lib/types/api/pushTransaction.d.ts +0 -16
- package/lib/types/api/pushTransaction.js +0 -16
- package/lib/types/api/recoveryDevice.d.ts +0 -17
- package/lib/types/api/recoveryDevice.js +0 -12
- package/lib/types/api/removeAllListeners.d.ts +0 -3
- package/lib/types/api/removeAllListeners.js +0 -6
- package/lib/types/api/renderWebUSBButton.d.ts +0 -2
- package/lib/types/api/renderWebUSBButton.js +0 -6
- package/lib/types/api/requestLogin.d.ts +0 -25
- package/lib/types/api/requestLogin.js +0 -16
- package/lib/types/api/requestWebUSBDevice.d.ts +0 -2
- package/lib/types/api/requestWebUSBDevice.js +0 -6
- package/lib/types/api/resetDevice.d.ts +0 -4
- package/lib/types/api/resetDevice.js +0 -6
- package/lib/types/api/ripple/index.d.ts +0 -41
- package/lib/types/api/ripple/index.js +0 -30
- package/lib/types/api/rippleGetAddress.d.ts +0 -4
- package/lib/types/api/rippleGetAddress.js +0 -6
- package/lib/types/api/rippleSignTransaction.d.ts +0 -4
- package/lib/types/api/rippleSignTransaction.js +0 -6
- package/lib/types/api/setBrightness.d.ts +0 -4
- package/lib/types/api/setBrightness.js +0 -6
- package/lib/types/api/setBusy.d.ts +0 -4
- package/lib/types/api/setBusy.js +0 -6
- package/lib/types/api/setProxy.d.ts +0 -8
- package/lib/types/api/setProxy.js +0 -6
- package/lib/types/api/setTransports.d.ts +0 -4
- package/lib/types/api/setTransports.js +0 -6
- package/lib/types/api/showDeviceTutorial.d.ts +0 -4
- package/lib/types/api/showDeviceTutorial.js +0 -6
- package/lib/types/api/signMessage.d.ts +0 -5
- package/lib/types/api/signMessage.js +0 -6
- package/lib/types/api/signTransaction.d.ts +0 -4
- package/lib/types/api/signTransaction.js +0 -6
- package/lib/types/api/solana/index.d.ts +0 -113
- package/lib/types/api/solana/index.js +0 -76
- package/lib/types/api/solanaComposeTransaction.d.ts +0 -4
- package/lib/types/api/solanaComposeTransaction.js +0 -6
- package/lib/types/api/solanaGetAddress.d.ts +0 -4
- package/lib/types/api/solanaGetAddress.js +0 -6
- package/lib/types/api/solanaGetPublicKey.d.ts +0 -5
- package/lib/types/api/solanaGetPublicKey.js +0 -6
- package/lib/types/api/solanaSignTransaction.d.ts +0 -4
- package/lib/types/api/solanaSignTransaction.js +0 -6
- package/lib/types/api/stellar/index.d.ts +0 -914
- package/lib/types/api/stellar/index.js +0 -194
- package/lib/types/api/stellarGetAddress.d.ts +0 -4
- package/lib/types/api/stellarGetAddress.js +0 -6
- package/lib/types/api/stellarSignTransaction.d.ts +0 -4
- package/lib/types/api/stellarSignTransaction.js +0 -6
- package/lib/types/api/tezos/index.d.ts +0 -163
- package/lib/types/api/tezos/index.js +0 -67
- package/lib/types/api/tezosGetAddress.d.ts +0 -4
- package/lib/types/api/tezosGetAddress.js +0 -6
- package/lib/types/api/tezosGetPublicKey.d.ts +0 -4
- package/lib/types/api/tezosGetPublicKey.js +0 -6
- package/lib/types/api/tezosSignTransaction.d.ts +0 -5
- package/lib/types/api/tezosSignTransaction.js +0 -6
- package/lib/types/api/thpGetCredentials.d.ts +0 -4
- package/lib/types/api/thpGetCredentials.js +0 -6
- package/lib/types/api/thpRemoveCredentials.d.ts +0 -7
- package/lib/types/api/thpRemoveCredentials.js +0 -6
- package/lib/types/api/tron/index.d.ts +0 -130
- package/lib/types/api/tron/index.js +0 -62
- package/lib/types/api/tronGetAddress.d.ts +0 -4
- package/lib/types/api/tronGetAddress.js +0 -6
- package/lib/types/api/tronSignTransaction.d.ts +0 -4
- package/lib/types/api/tronSignTransaction.js +0 -6
- package/lib/types/api/uiResponse.d.ts +0 -3
- package/lib/types/api/uiResponse.js +0 -6
- package/lib/types/api/unlockPath.d.ts +0 -10
- package/lib/types/api/unlockPath.js +0 -13
- package/lib/types/api/verifyMessage.d.ts +0 -5
- package/lib/types/api/verifyMessage.js +0 -6
- package/lib/types/api/wipeDevice.d.ts +0 -4
- package/lib/types/api/wipeDevice.js +0 -6
- package/lib/types/coinInfo.d.ts +0 -353
- package/lib/types/coinInfo.js +0 -79
- package/lib/types/device.d.ts +0 -133
- package/lib/types/device.js +0 -13
- package/lib/types/fees.d.ts +0 -36
- package/lib/types/fees.js +0 -39
- package/lib/types/firmware.d.ts +0 -25
- package/lib/types/firmware.js +0 -6
- package/lib/types/index.d.ts +0 -25
- package/lib/types/index.js +0 -39
- package/lib/types/params.d.ts +0 -93
- package/lib/types/params.js +0 -38
- package/lib/types/settings.d.ts +0 -80
- package/lib/types/settings.js +0 -6
- package/lib/types/utils.d.ts +0 -15
- package/lib/types/utils.js +0 -6
- package/lib/utils/assets-browser.d.ts +0 -3
- package/lib/utils/assets-browser.js +0 -29
- package/lib/utils/debug.d.ts +0 -7
- package/lib/utils/debug.js +0 -33
- package/lib/utils/interactionTimeout.d.ts +0 -10
- package/lib/utils/interactionTimeout.js +0 -37
- package/lib/utils/popupPromiseManager.d.ts +0 -8
- package/lib/utils/popupPromiseManager.js +0 -30
- package/lib/utils/proxy-event-emitter.d.ts +0 -21
- package/lib/utils/proxy-event-emitter.js +0 -69
- package/lib/utils/urlUtils.d.ts +0 -13
- package/lib/utils/urlUtils.js +0 -31
- package/lib/utils/versionCheck.d.ts +0 -3
- package/lib/utils/versionCheck.js +0 -16
- package/lib/workers/workers-browser.d.ts +0 -10
- package/lib/workers/workers-browser.js +0 -20
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
MIDDLE_PATH: string;
|
|
7
|
-
}
|
|
8
|
-
type OnlineFirmwareBaseUrl = RemoteBaseInfo & {
|
|
9
|
-
env: FirmwareUpdateSource;
|
|
10
|
-
};
|
|
11
|
-
export declare const getOnlineFirmwareBaseUrl: () => OnlineFirmwareBaseUrl;
|
|
1
|
+
import type { Features } from '@trezor/connect-common/lib/types/device';
|
|
2
|
+
import type { FirmwareReleaseConfigInfo } from '@trezor/connect-common/lib/types/firmware';
|
|
3
|
+
import type { ConditionalRelease, FirmwareRelease, FirmwareReleaseConfig, IntermediaryReleaseConfig } from '@trezor/device-utils';
|
|
4
|
+
import { DeviceModelInternal, FirmwareType } from '@trezor/device-utils';
|
|
5
|
+
import type { VersionArray } from '@trezor/utils/lib/versionUtils';
|
|
12
6
|
export declare const getBundledRelease: (deviceModel: DeviceModelInternal, firmwareType: FirmwareType) => FirmwareRelease | undefined;
|
|
13
7
|
export declare const getOnlineReleaseByVersion: (deviceModel: DeviceModelInternal, firmwareVersion: VersionArray, firmwareType: FirmwareType) => Promise<FirmwareRelease | undefined>;
|
|
14
8
|
export declare const getReleaseConfig: (features: Features, firmwareType: FirmwareType) => ConditionalRelease | undefined;
|
|
@@ -16,38 +10,46 @@ export declare const getReleaseByVersion: (features: Features, firmwareVersion:
|
|
|
16
10
|
export declare const createLocalFirmwareConfig: (baseConfig: FirmwareReleaseConfig) => any;
|
|
17
11
|
export declare const createRemoteFirmwareConfig: (config: FirmwareReleaseConfig) => Promise<any>;
|
|
18
12
|
export declare const initializeFirmwareConfig: (config: FirmwareReleaseConfig, isRemote: boolean) => Promise<{
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
releases: any;
|
|
14
|
+
intermediaries: Record<DeviceModelInternal, IntermediaryReleaseConfig[]>;
|
|
21
15
|
}>;
|
|
22
16
|
export declare const getLanguage: (languageBinPath: string) => Promise<ArrayBuffer | Buffer<ArrayBufferLike>>;
|
|
23
|
-
export type CurrentVersion
|
|
24
|
-
bootloaderVersion: VersionArray | null;
|
|
25
|
-
firmwareVersion: VersionArray | null;
|
|
26
|
-
};
|
|
27
|
-
export declare const getCurrentVersion: (features: Features) => CurrentVersion;
|
|
17
|
+
export type { CurrentVersion } from '@trezor/connect-common/lib/types/firmware';
|
|
28
18
|
interface GetReleaseInfoParams {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
19
|
+
features: Features;
|
|
20
|
+
release: FirmwareRelease;
|
|
21
|
+
conditions: ConditionalRelease['conditions'];
|
|
22
|
+
intermediary: IntermediaryReleaseConfig | undefined;
|
|
23
|
+
firmwareType: FirmwareType;
|
|
24
|
+
isBitcoinOnlyAvailable: boolean;
|
|
25
|
+
releasesOfDevice: FirmwareRelease[];
|
|
36
26
|
}
|
|
37
|
-
export declare const getReleaseInfo: ({
|
|
27
|
+
export declare const getReleaseInfo: ({
|
|
28
|
+
features,
|
|
29
|
+
release,
|
|
30
|
+
conditions,
|
|
31
|
+
intermediary,
|
|
32
|
+
firmwareType,
|
|
33
|
+
isBitcoinOnlyAvailable,
|
|
34
|
+
releasesOfDevice
|
|
35
|
+
}: GetReleaseInfoParams) => FirmwareReleaseConfigInfo;
|
|
38
36
|
export declare const getFirmwareReleaseConfigInfo: (features: Features, firmwareType: FirmwareType) => FirmwareReleaseConfigInfo | undefined;
|
|
39
|
-
export declare const getFirmwareStatus: (features: Features, firmwareType: FirmwareType) => "
|
|
37
|
+
export declare const getFirmwareStatus: (features: Features, firmwareType: FirmwareType) => "custom" | "valid" | "outdated" | "required" | "unknown" | "none";
|
|
40
38
|
type GetFirmwareLocationParam = {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
firmwareVersion: VersionArray;
|
|
40
|
+
remotePath: string;
|
|
41
|
+
deviceModel: DeviceModelInternal;
|
|
42
|
+
firmwareType: FirmwareType;
|
|
43
|
+
intermediaryVersion?: number;
|
|
46
44
|
};
|
|
47
45
|
type FirmwareLocationPathParams = {
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
baseUrl: string;
|
|
47
|
+
path: string;
|
|
50
48
|
};
|
|
51
|
-
export declare const getFirmwareLocation: ({
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
export declare const getFirmwareLocation: ({
|
|
50
|
+
firmwareVersion,
|
|
51
|
+
remotePath,
|
|
52
|
+
deviceModel,
|
|
53
|
+
firmwareType,
|
|
54
|
+
intermediaryVersion
|
|
55
|
+
}: GetFirmwareLocationParam) => FirmwareLocationPathParams;
|
package/lib/data/firmwareInfo.js
CHANGED
|
@@ -1,63 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const assetUtils_1 = require("../utils/assetUtils");
|
|
11
|
-
const assets_1 = require("../utils/assets");
|
|
12
|
-
const firmwareUtils_1 = require("../utils/firmwareUtils");
|
|
13
|
-
const RELEASES_URL_REMOTE_BASE = {
|
|
14
|
-
BASE_URL: 'https://data.trezor.io',
|
|
15
|
-
MIDDLE_PATH: 'firmware'
|
|
16
|
-
};
|
|
17
|
-
const UNSIGNED_URL_REMOTE_BASE = {
|
|
18
|
-
BASE_URL: 'https://data.trezor.io',
|
|
19
|
-
MIDDLE_PATH: 'dev/firmware/releases/unsigned'
|
|
20
|
-
};
|
|
21
|
-
const UNSIGNED_STABLE_URL_REMOTE_BASE = {
|
|
22
|
-
BASE_URL: 'https://data.trezor.io',
|
|
23
|
-
MIDDLE_PATH: 'dev/firmware/releases/unsigned-stable'
|
|
24
|
-
};
|
|
25
|
-
const SIGNED_URL_REMOTE_BASE = {
|
|
26
|
-
BASE_URL: 'https://suite.corp.sldev.cz',
|
|
27
|
-
MIDDLE_PATH: 'firmware/signed'
|
|
28
|
-
};
|
|
29
|
-
const SIGNED_LOCALHOST = {
|
|
30
|
-
BASE_URL: 'http://localhost:3000',
|
|
31
|
-
MIDDLE_PATH: 'firmware/signed'
|
|
32
|
-
};
|
|
33
|
-
const UNSIGNED_LOCALHOST = {
|
|
34
|
-
BASE_URL: 'http://localhost:3000',
|
|
35
|
-
MIDDLE_PATH: 'firmware/unsigned'
|
|
36
|
-
};
|
|
37
|
-
const FIRMWARE_REMOTE_BASE_URLS = {
|
|
38
|
-
production: RELEASES_URL_REMOTE_BASE,
|
|
39
|
-
'test-unsigned': UNSIGNED_URL_REMOTE_BASE,
|
|
40
|
-
'test-unsigned-stable': UNSIGNED_STABLE_URL_REMOTE_BASE,
|
|
41
|
-
'test-signed': SIGNED_URL_REMOTE_BASE,
|
|
42
|
-
'localhost-unsigned': UNSIGNED_LOCALHOST,
|
|
43
|
-
'localhost-signed': SIGNED_LOCALHOST
|
|
44
|
-
};
|
|
45
|
-
const getOnlineFirmwareBaseUrl = () => {
|
|
46
|
-
const firmwareUpdateSource = DataManager_1.DataManager.getSettings('firmwareUpdateSource');
|
|
47
|
-
if (!firmwareUpdateSource) {
|
|
48
|
-
return {
|
|
49
|
-
...FIRMWARE_REMOTE_BASE_URLS['production'],
|
|
50
|
-
env: 'production'
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
...FIRMWARE_REMOTE_BASE_URLS[firmwareUpdateSource],
|
|
55
|
-
env: firmwareUpdateSource
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
exports.getOnlineFirmwareBaseUrl = getOnlineFirmwareBaseUrl;
|
|
1
|
+
import { DeviceModelInternal, FirmwareType, getBootloaderVersionArray, getFirmwareOrBootloaderVersionArray, getFirmwareVersionArray } from "@trezor/device-utils";
|
|
2
|
+
import { getIntegerInRangeFromString, isNotNull, removeTrailingSlashes, versionUtils } from "@trezor/utils";
|
|
3
|
+
import * as firmwareReleaseStore from "./firmwareReleaseStore.js";
|
|
4
|
+
import * as localFirmwareStore from "./localFirmwareStore.js";
|
|
5
|
+
import * as settingsStore from "./settingsStore.js";
|
|
6
|
+
import { getReleaseAsset, getReleasesAssetByDeviceModelAndFirmwareType } from "../utils/assetUtils.js";
|
|
7
|
+
import { httpRequest } from "../utils/assets.js";
|
|
8
|
+
import { getOnlineFirmwareBaseUrl } from "../utils/firmwareReleaseConfigUtils.js";
|
|
9
|
+
import { buildIntermediaryFirmwareFileName, buildLocalFirmwareFileName, buildLocalReleaseName, findBestCompatibleRelease, isFirmwareCacheUsedForSelectedSource, isProductionFirmwareChannel, isStrictFeatures } from "../utils/firmwareUtils.js";
|
|
59
10
|
const getBundledFirmwareVersion = (deviceModel, firmwareType) => {
|
|
60
|
-
const localFirmwareReleaseConfig =
|
|
11
|
+
const localFirmwareReleaseConfig = firmwareReleaseStore.getLocal();
|
|
61
12
|
const modelReleases = localFirmwareReleaseConfig.releases[deviceModel];
|
|
62
13
|
const bundledRelease = modelReleases?.[firmwareType];
|
|
63
14
|
if (!bundledRelease) {
|
|
@@ -69,52 +20,50 @@ const getBundledFirmwareVersion = (deviceModel, firmwareType) => {
|
|
|
69
20
|
}
|
|
70
21
|
return bundledVersion[0];
|
|
71
22
|
};
|
|
72
|
-
const getBundledRelease = (deviceModel, firmwareType) => {
|
|
23
|
+
export const getBundledRelease = (deviceModel, firmwareType) => {
|
|
73
24
|
const version = getBundledFirmwareVersion(deviceModel, firmwareType);
|
|
74
25
|
if (!version) {
|
|
75
26
|
return;
|
|
76
27
|
}
|
|
77
|
-
const versionArray =
|
|
28
|
+
const versionArray = versionUtils.tryParse(version);
|
|
78
29
|
if (!versionArray) {
|
|
79
30
|
throw new Error('There was error parsing bundled release.');
|
|
80
31
|
}
|
|
81
|
-
return
|
|
32
|
+
return getReleaseAsset(deviceModel, versionArray, firmwareType);
|
|
82
33
|
};
|
|
83
|
-
exports.getBundledRelease = getBundledRelease;
|
|
84
34
|
const getOnlineReleaseByPath = async releasePath => {
|
|
85
|
-
const onlineFirmwareBaseUrl = (
|
|
35
|
+
const onlineFirmwareBaseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
86
36
|
const url = `${onlineFirmwareBaseUrl.BASE_URL}/${releasePath}`;
|
|
87
|
-
const response = await
|
|
37
|
+
const response = await httpRequest(url, 'json', {
|
|
88
38
|
signal: AbortSignal.timeout(10000),
|
|
89
39
|
skipLocalForceDownload: true
|
|
90
40
|
});
|
|
91
41
|
return response;
|
|
92
42
|
};
|
|
93
43
|
const getOnlineReleasePath = (deviceModel, firmwareVersion, firmwareType) => {
|
|
94
|
-
const onlineFirmwareBaseUrl = (
|
|
95
|
-
const firmwareTypeFileString = firmwareType ===
|
|
44
|
+
const onlineFirmwareBaseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
45
|
+
const firmwareTypeFileString = firmwareType === FirmwareType.BitcoinOnly ? 'bitcoinonly' : 'universal';
|
|
96
46
|
const relaseJsonFilename = `${deviceModel.toLowerCase()}-${firmwareVersion.join('.')}-${firmwareTypeFileString}.json`;
|
|
97
47
|
const origin = `${onlineFirmwareBaseUrl.MIDDLE_PATH}/${deviceModel.toLowerCase()}/${firmwareTypeFileString}`;
|
|
98
48
|
const releasePath = `${origin}/${relaseJsonFilename}`;
|
|
99
49
|
return releasePath;
|
|
100
50
|
};
|
|
101
|
-
const getOnlineReleaseByVersion = async (deviceModel, firmwareVersion, firmwareType) => {
|
|
51
|
+
export const getOnlineReleaseByVersion = async (deviceModel, firmwareVersion, firmwareType) => {
|
|
102
52
|
const releasePath = getOnlineReleasePath(deviceModel, firmwareVersion, firmwareType);
|
|
103
53
|
const onlineRelease = await getOnlineReleaseByPath(releasePath);
|
|
104
|
-
if (!onlineRelease || !
|
|
54
|
+
if (!onlineRelease || !versionUtils.isEqual(onlineRelease.version, firmwareVersion)) {
|
|
105
55
|
return;
|
|
106
56
|
}
|
|
107
57
|
return onlineRelease;
|
|
108
58
|
};
|
|
109
|
-
|
|
110
|
-
const getReleaseConfig = (features, firmwareType) => {
|
|
59
|
+
export const getReleaseConfig = (features, firmwareType) => {
|
|
111
60
|
const {
|
|
112
61
|
internal_model
|
|
113
62
|
} = features;
|
|
114
|
-
if (internal_model ===
|
|
63
|
+
if (internal_model === DeviceModelInternal.UNKNOWN) {
|
|
115
64
|
return undefined;
|
|
116
65
|
}
|
|
117
|
-
const firmwareReleaseConfig =
|
|
66
|
+
const firmwareReleaseConfig = firmwareReleaseStore.getReleases();
|
|
118
67
|
if (!firmwareReleaseConfig) {
|
|
119
68
|
throw new Error('Firmware release config not loaded.');
|
|
120
69
|
}
|
|
@@ -124,9 +73,9 @@ const getReleaseConfig = (features, firmwareType) => {
|
|
|
124
73
|
}
|
|
125
74
|
return deviceMessageRelease[firmwareType];
|
|
126
75
|
};
|
|
127
|
-
|
|
128
|
-
const getReleaseByVersion = async (features, firmwareVersion, firmwareType) => {
|
|
76
|
+
export const getReleaseByVersion = async (features, firmwareVersion, firmwareType) => {
|
|
129
77
|
const deviceModel = features.internal_model;
|
|
78
|
+
const firmwareChannel = settingsStore.get('firmwareChannel');
|
|
130
79
|
const tryGetRelease = async getter => {
|
|
131
80
|
try {
|
|
132
81
|
return await getter();
|
|
@@ -134,58 +83,57 @@ const getReleaseByVersion = async (features, firmwareVersion, firmwareType) => {
|
|
|
134
83
|
return;
|
|
135
84
|
}
|
|
136
85
|
};
|
|
137
|
-
const releaseFromConfig =
|
|
138
|
-
if (releaseFromConfig &&
|
|
86
|
+
const releaseFromConfig = getReleaseConfig(features, firmwareType)?.release;
|
|
87
|
+
if (releaseFromConfig && versionUtils.isEqual(firmwareVersion, releaseFromConfig.version)) {
|
|
139
88
|
return releaseFromConfig;
|
|
140
89
|
}
|
|
141
|
-
const releaseName =
|
|
90
|
+
const releaseName = buildLocalReleaseName(firmwareType, deviceModel, firmwareVersion);
|
|
142
91
|
const {
|
|
143
92
|
firmwareDir,
|
|
144
93
|
firmwareList
|
|
145
|
-
} =
|
|
146
|
-
if (
|
|
94
|
+
} = localFirmwareStore.get();
|
|
95
|
+
if (isFirmwareCacheUsedForSelectedSource(firmwareChannel) && firmwareList.includes(releaseName)) {
|
|
147
96
|
const localReleasePath = `${firmwareDir}${releaseName}`;
|
|
148
|
-
const localReleaseBuffer = await
|
|
97
|
+
const localReleaseBuffer = await httpRequest(localReleasePath, 'json');
|
|
149
98
|
return JSON.parse(localReleaseBuffer.toString());
|
|
150
99
|
}
|
|
151
|
-
const
|
|
152
|
-
|
|
100
|
+
const useBundledRelease = isProductionFirmwareChannel(firmwareChannel);
|
|
101
|
+
const release = (useBundledRelease ? await tryGetRelease(() => getReleaseAsset(deviceModel, firmwareVersion, firmwareType)) : undefined) || (await tryGetRelease(() => getOnlineReleaseByVersion(deviceModel, firmwareVersion, firmwareType)));
|
|
102
|
+
if (release && versionUtils.isEqual(release.version, firmwareVersion)) {
|
|
153
103
|
return release;
|
|
154
104
|
}
|
|
155
105
|
return;
|
|
156
106
|
};
|
|
157
|
-
|
|
158
|
-
const createLocalFirmwareConfig = baseConfig => {
|
|
107
|
+
export const createLocalFirmwareConfig = baseConfig => {
|
|
159
108
|
const releaseEntries = Object.entries(baseConfig.releases).map(([deviceModel, modelReleases]) => {
|
|
160
109
|
const modelKey = deviceModel;
|
|
161
|
-
if (modelKey ===
|
|
110
|
+
if (modelKey === DeviceModelInternal.UNKNOWN) return null;
|
|
162
111
|
const {
|
|
163
112
|
'bitcoin-only': bitcoinOnlyConfig,
|
|
164
113
|
universal: universalConfig
|
|
165
114
|
} = modelReleases ?? {};
|
|
166
115
|
if (!bitcoinOnlyConfig?.releasePath || !universalConfig?.releasePath) return null;
|
|
167
|
-
const btcOnlyRelease =
|
|
168
|
-
const universalRelease =
|
|
116
|
+
const btcOnlyRelease = getBundledRelease(modelKey, FirmwareType.BitcoinOnly);
|
|
117
|
+
const universalRelease = getBundledRelease(modelKey, FirmwareType.Universal);
|
|
169
118
|
if (!btcOnlyRelease || !universalRelease) return null;
|
|
170
119
|
const releases = {
|
|
171
|
-
[
|
|
120
|
+
[FirmwareType.BitcoinOnly]: {
|
|
172
121
|
...bitcoinOnlyConfig,
|
|
173
122
|
release: btcOnlyRelease
|
|
174
123
|
},
|
|
175
|
-
[
|
|
124
|
+
[FirmwareType.Universal]: {
|
|
176
125
|
...universalConfig,
|
|
177
126
|
release: universalRelease
|
|
178
127
|
}
|
|
179
128
|
};
|
|
180
129
|
return [modelKey, releases];
|
|
181
|
-
}).filter(
|
|
130
|
+
}).filter(isNotNull);
|
|
182
131
|
return Object.fromEntries(releaseEntries);
|
|
183
132
|
};
|
|
184
|
-
|
|
185
|
-
const createRemoteFirmwareConfig = async config => {
|
|
133
|
+
export const createRemoteFirmwareConfig = async config => {
|
|
186
134
|
const releaseEntryPromises = Object.entries(config.releases).map(async ([deviceModel, modelReleases]) => {
|
|
187
135
|
const modelKey = deviceModel;
|
|
188
|
-
if (modelKey ===
|
|
136
|
+
if (modelKey === DeviceModelInternal.UNKNOWN) return null;
|
|
189
137
|
const {
|
|
190
138
|
'bitcoin-only': bitcoinOnlyConfig,
|
|
191
139
|
universal: universalConfig
|
|
@@ -194,70 +142,59 @@ const createRemoteFirmwareConfig = async config => {
|
|
|
194
142
|
const [bitcoinOnlyRelease, universalRelease] = await Promise.all([getOnlineReleaseByPath(bitcoinOnlyConfig.releasePath), getOnlineReleaseByPath(universalConfig.releasePath)]);
|
|
195
143
|
if (!universalRelease || !bitcoinOnlyRelease) return null;
|
|
196
144
|
const releases = {
|
|
197
|
-
[
|
|
145
|
+
[FirmwareType.BitcoinOnly]: {
|
|
198
146
|
...bitcoinOnlyConfig,
|
|
199
147
|
release: bitcoinOnlyRelease
|
|
200
148
|
},
|
|
201
|
-
[
|
|
149
|
+
[FirmwareType.Universal]: {
|
|
202
150
|
...universalConfig,
|
|
203
151
|
release: universalRelease
|
|
204
152
|
}
|
|
205
153
|
};
|
|
206
154
|
return [modelKey, releases];
|
|
207
155
|
});
|
|
208
|
-
const validEntries = (await Promise.all(releaseEntryPromises)).filter(
|
|
156
|
+
const validEntries = (await Promise.all(releaseEntryPromises)).filter(isNotNull);
|
|
209
157
|
return Object.fromEntries(validEntries);
|
|
210
158
|
};
|
|
211
|
-
|
|
212
|
-
const initializeFirmwareConfig = async (config, isRemote) => {
|
|
159
|
+
export const initializeFirmwareConfig = async (config, isRemote) => {
|
|
213
160
|
if (isRemote) {
|
|
214
161
|
try {
|
|
215
|
-
const remoteReleases = await
|
|
162
|
+
const remoteReleases = await createRemoteFirmwareConfig(config);
|
|
216
163
|
return {
|
|
217
164
|
releases: remoteReleases,
|
|
218
165
|
intermediaries: config.intermediaries
|
|
219
166
|
};
|
|
220
167
|
} catch {}
|
|
221
168
|
}
|
|
222
|
-
const localFirmwareReleaseConfig =
|
|
223
|
-
const localReleases =
|
|
169
|
+
const localFirmwareReleaseConfig = firmwareReleaseStore.getLocal();
|
|
170
|
+
const localReleases = createLocalFirmwareConfig(localFirmwareReleaseConfig);
|
|
224
171
|
return {
|
|
225
172
|
releases: localReleases,
|
|
226
173
|
intermediaries: localFirmwareReleaseConfig.intermediaries
|
|
227
174
|
};
|
|
228
175
|
};
|
|
229
|
-
|
|
230
|
-
const
|
|
231
|
-
const baseUrl = (0, exports.getOnlineFirmwareBaseUrl)();
|
|
176
|
+
export const getLanguage = languageBinPath => {
|
|
177
|
+
const baseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
232
178
|
const url = `${baseUrl.BASE_URL}/${languageBinPath}`;
|
|
233
|
-
return
|
|
179
|
+
return httpRequest(url, 'binary');
|
|
234
180
|
};
|
|
235
|
-
exports.getLanguage = getLanguage;
|
|
236
181
|
const getCurrentVersion = features => {
|
|
237
|
-
if (!
|
|
182
|
+
if (!isStrictFeatures(features)) {
|
|
238
183
|
throw new Error('Features of unexpected shape provided.');
|
|
239
184
|
}
|
|
240
|
-
const {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
fw_minor,
|
|
247
|
-
fw_patch
|
|
248
|
-
} = features;
|
|
249
|
-
const fw_version = [fw_major, fw_minor, fw_patch];
|
|
250
|
-
const version = [major_version, minor_version, patch_version];
|
|
251
|
-
const bootloaderVersion = bootloader_mode ? version : null;
|
|
252
|
-
const fwVersion = bootloader_mode ? fw_version : version;
|
|
185
|
+
const bootloaderVersion = getBootloaderVersionArray({
|
|
186
|
+
features
|
|
187
|
+
});
|
|
188
|
+
const firmwareVersion = getFirmwareVersionArray({
|
|
189
|
+
features
|
|
190
|
+
});
|
|
253
191
|
return {
|
|
254
192
|
bootloaderVersion,
|
|
255
|
-
firmwareVersion
|
|
193
|
+
firmwareVersion
|
|
256
194
|
};
|
|
257
195
|
};
|
|
258
|
-
exports.getCurrentVersion = getCurrentVersion;
|
|
259
196
|
const getIntermediaryMessageRelease = features => {
|
|
260
|
-
const config =
|
|
197
|
+
const config = firmwareReleaseStore.getIntermediary();
|
|
261
198
|
if (!config) {
|
|
262
199
|
throw new Error('Firmware release config not loaded.');
|
|
263
200
|
}
|
|
@@ -268,27 +205,27 @@ const getIntermediaryMessageRelease = features => {
|
|
|
268
205
|
const {
|
|
269
206
|
bootloaderVersion,
|
|
270
207
|
firmwareVersion
|
|
271
|
-
} =
|
|
208
|
+
} = getCurrentVersion(features);
|
|
272
209
|
const currentVersion = features.bootloader_mode ? bootloaderVersion : firmwareVersion;
|
|
273
210
|
const minVersionKey = features.bootloader_mode ? 'min_bootloader_version' : 'min_firmware_version';
|
|
274
211
|
if (!currentVersion) {
|
|
275
212
|
return undefined;
|
|
276
213
|
}
|
|
277
|
-
return deviceIntermediaryReleases.find(release =>
|
|
214
|
+
return deviceIntermediaryReleases.find(release => versionUtils.isNewer(release[minVersionKey], currentVersion));
|
|
278
215
|
};
|
|
279
216
|
const getIsBitcoinOnlyAvailable = features => {
|
|
280
217
|
const {
|
|
281
218
|
internal_model
|
|
282
219
|
} = features;
|
|
283
|
-
if (internal_model ===
|
|
220
|
+
if (internal_model === DeviceModelInternal.UNKNOWN) {
|
|
284
221
|
return false;
|
|
285
222
|
}
|
|
286
|
-
const firmwareReleaseConfig =
|
|
223
|
+
const firmwareReleaseConfig = firmwareReleaseStore.getReleases();
|
|
287
224
|
if (!firmwareReleaseConfig) {
|
|
288
225
|
throw new Error('Firmware release config not loaded.');
|
|
289
226
|
}
|
|
290
227
|
const deviceMessageRelease = firmwareReleaseConfig[internal_model];
|
|
291
|
-
return !!deviceMessageRelease && !!deviceMessageRelease[
|
|
228
|
+
return !!deviceMessageRelease && !!deviceMessageRelease[FirmwareType.BitcoinOnly];
|
|
292
229
|
};
|
|
293
230
|
const isValidConditionalRelease = release => !!(release.version && release.min_firmware_version && release.min_bootloader_version);
|
|
294
231
|
const calculateShouldOfferRelease = (rolloutProbability, deviceId) => {
|
|
@@ -298,7 +235,7 @@ const calculateShouldOfferRelease = (rolloutProbability, deviceId) => {
|
|
|
298
235
|
if (deviceId === null) {
|
|
299
236
|
return rolloutProbability > 0;
|
|
300
237
|
} else {
|
|
301
|
-
const deterministicValueToCompare =
|
|
238
|
+
const deterministicValueToCompare = getIntegerInRangeFromString(deviceId, 101);
|
|
302
239
|
return deterministicValueToCompare < rolloutProbability;
|
|
303
240
|
}
|
|
304
241
|
};
|
|
@@ -308,17 +245,17 @@ const getChangelog = (releases, features) => {
|
|
|
308
245
|
return null;
|
|
309
246
|
}
|
|
310
247
|
if (features.firmware_present && features.major_version === 2) {
|
|
311
|
-
return releases.filter(r =>
|
|
248
|
+
return releases.filter(r => versionUtils.isNewer(r.version, [features.fw_major, features.fw_minor, features.fw_patch]));
|
|
312
249
|
}
|
|
313
250
|
return releases;
|
|
314
251
|
}
|
|
315
|
-
return releases.filter(r =>
|
|
252
|
+
return releases.filter(r => versionUtils.isNewer(r.version, getFirmwareOrBootloaderVersionArray(features)));
|
|
316
253
|
};
|
|
317
254
|
const isRequired = changelog => {
|
|
318
|
-
if (!changelog
|
|
255
|
+
if (!changelog?.length) return null;
|
|
319
256
|
return changelog.some(item => item.required);
|
|
320
257
|
};
|
|
321
|
-
const getReleaseInfo = ({
|
|
258
|
+
export const getReleaseInfo = ({
|
|
322
259
|
features,
|
|
323
260
|
release,
|
|
324
261
|
conditions,
|
|
@@ -327,7 +264,7 @@ const getReleaseInfo = ({
|
|
|
327
264
|
isBitcoinOnlyAvailable,
|
|
328
265
|
releasesOfDevice
|
|
329
266
|
}) => {
|
|
330
|
-
if (!
|
|
267
|
+
if (!isStrictFeatures(features)) {
|
|
331
268
|
throw new Error('Features of unexpected shape provided.');
|
|
332
269
|
}
|
|
333
270
|
if (!isValidConditionalRelease(release)) {
|
|
@@ -344,25 +281,25 @@ const getReleaseInfo = ({
|
|
|
344
281
|
const {
|
|
345
282
|
bootloaderVersion,
|
|
346
283
|
firmwareVersion
|
|
347
|
-
} =
|
|
348
|
-
if (
|
|
349
|
-
isNewer =
|
|
350
|
-
requiresIntermediary =
|
|
351
|
-
} else if (
|
|
352
|
-
isNewer =
|
|
353
|
-
requiresIntermediary =
|
|
284
|
+
} = getCurrentVersion(features);
|
|
285
|
+
if (versionUtils.isVersionArray(firmwareVersion)) {
|
|
286
|
+
isNewer = versionUtils.isNewer(release.version, firmwareVersion);
|
|
287
|
+
requiresIntermediary = versionUtils.isNewer(min_firmware_version, firmwareVersion);
|
|
288
|
+
} else if (versionUtils.isVersionArray(bootloaderVersion)) {
|
|
289
|
+
isNewer = versionUtils.isNewer(release.bootloader_version, bootloaderVersion);
|
|
290
|
+
requiresIntermediary = versionUtils.isNewer(min_bootloader_version, bootloaderVersion);
|
|
354
291
|
} else {
|
|
355
292
|
throw new Error('Version is not version array.');
|
|
356
293
|
}
|
|
357
294
|
} else {
|
|
358
295
|
const {
|
|
359
296
|
firmwareVersion
|
|
360
|
-
} =
|
|
361
|
-
if (!
|
|
297
|
+
} = getCurrentVersion(features);
|
|
298
|
+
if (!versionUtils.isVersionArray(firmwareVersion)) {
|
|
362
299
|
throw new Error('Firmware version is not version array.');
|
|
363
300
|
}
|
|
364
|
-
isNewer =
|
|
365
|
-
requiresIntermediary =
|
|
301
|
+
isNewer = versionUtils.isNewer(release.version, firmwareVersion);
|
|
302
|
+
requiresIntermediary = versionUtils.isNewer(min_firmware_version, firmwareVersion);
|
|
366
303
|
}
|
|
367
304
|
const {
|
|
368
305
|
rollout_probability
|
|
@@ -385,9 +322,8 @@ const getReleaseInfo = ({
|
|
|
385
322
|
translations: release.translations
|
|
386
323
|
};
|
|
387
324
|
};
|
|
388
|
-
|
|
389
|
-
const
|
|
390
|
-
const deviceMessageRelease = (0, exports.getReleaseConfig)(features, firmwareType);
|
|
325
|
+
export const getFirmwareReleaseConfigInfo = (features, firmwareType) => {
|
|
326
|
+
const deviceMessageRelease = getReleaseConfig(features, firmwareType);
|
|
391
327
|
if (!deviceMessageRelease?.release) {
|
|
392
328
|
return;
|
|
393
329
|
}
|
|
@@ -396,7 +332,7 @@ const getFirmwareReleaseConfigInfo = (features, firmwareType) => {
|
|
|
396
332
|
conditions,
|
|
397
333
|
firmware_type
|
|
398
334
|
} = deviceMessageRelease;
|
|
399
|
-
const currentVersion =
|
|
335
|
+
const currentVersion = getCurrentVersion(features);
|
|
400
336
|
const inBootloaderMode = features.bootloader_mode && !!currentVersion.bootloaderVersion;
|
|
401
337
|
const versionContext = inBootloaderMode ? {
|
|
402
338
|
version: currentVersion.bootloaderVersion,
|
|
@@ -405,18 +341,18 @@ const getFirmwareReleaseConfigInfo = (features, firmwareType) => {
|
|
|
405
341
|
version: currentVersion.firmwareVersion,
|
|
406
342
|
minVersionKey: 'min_firmware_version'
|
|
407
343
|
};
|
|
408
|
-
const isCompatible = versionContext.version &&
|
|
409
|
-
const releasesOfDevice =
|
|
344
|
+
const isCompatible = versionContext.version && versionUtils.isNewerOrEqual(versionContext.version, release[versionContext.minVersionKey]);
|
|
345
|
+
const releasesOfDevice = getReleasesAssetByDeviceModelAndFirmwareType(features.internal_model, firmwareType);
|
|
410
346
|
let suitableRelease = release;
|
|
411
347
|
if (!isCompatible) {
|
|
412
|
-
const alternativeRelease =
|
|
348
|
+
const alternativeRelease = findBestCompatibleRelease(releasesOfDevice, currentVersion, versionContext.minVersionKey);
|
|
413
349
|
if (alternativeRelease) {
|
|
414
350
|
suitableRelease = alternativeRelease;
|
|
415
351
|
}
|
|
416
352
|
}
|
|
417
353
|
const intermediary = getIntermediaryMessageRelease(features);
|
|
418
354
|
const finalTargetRelease = intermediary ? release : suitableRelease;
|
|
419
|
-
return
|
|
355
|
+
return getReleaseInfo({
|
|
420
356
|
isBitcoinOnlyAvailable: getIsBitcoinOnlyAvailable(features),
|
|
421
357
|
features,
|
|
422
358
|
release: finalTargetRelease,
|
|
@@ -426,31 +362,29 @@ const getFirmwareReleaseConfigInfo = (features, firmwareType) => {
|
|
|
426
362
|
releasesOfDevice
|
|
427
363
|
});
|
|
428
364
|
};
|
|
429
|
-
|
|
430
|
-
const getFirmwareStatus = (features, firmwareType) => {
|
|
365
|
+
export const getFirmwareStatus = (features, firmwareType) => {
|
|
431
366
|
if (features.firmware_present === false) {
|
|
432
367
|
return 'none';
|
|
433
368
|
}
|
|
434
369
|
if (features.major_version === 1 && features.bootloader_mode) {
|
|
435
370
|
return 'unknown';
|
|
436
371
|
}
|
|
437
|
-
const releaseInfo =
|
|
372
|
+
const releaseInfo = getFirmwareReleaseConfigInfo(features, firmwareType);
|
|
438
373
|
if (!releaseInfo) return 'custom';
|
|
439
374
|
if (releaseInfo.isRequired) return 'required';
|
|
440
375
|
if (releaseInfo.isNewer) return 'outdated';
|
|
441
376
|
return 'valid';
|
|
442
377
|
};
|
|
443
|
-
|
|
444
|
-
const getFirmwareLocation = ({
|
|
378
|
+
export const getFirmwareLocation = ({
|
|
445
379
|
firmwareVersion,
|
|
446
380
|
remotePath,
|
|
447
381
|
deviceModel,
|
|
448
382
|
firmwareType,
|
|
449
383
|
intermediaryVersion
|
|
450
384
|
}) => {
|
|
451
|
-
const firmwareName = intermediaryVersion ?
|
|
385
|
+
const firmwareName = intermediaryVersion ? buildIntermediaryFirmwareFileName(deviceModel, intermediaryVersion) : buildLocalFirmwareFileName(firmwareType, deviceModel, firmwareVersion);
|
|
452
386
|
const versionString = firmwareVersion.join('.');
|
|
453
|
-
const bundledBaseUrl =
|
|
387
|
+
const bundledBaseUrl = removeTrailingSlashes(settingsStore.get('binFilesBaseUrl'));
|
|
454
388
|
const isRealBundled = !bundledBaseUrl.includes('data.trezor.io');
|
|
455
389
|
const bundledVersion = getBundledFirmwareVersion(deviceModel, firmwareType);
|
|
456
390
|
const isIntermediary = bundledBaseUrl && intermediaryVersion;
|
|
@@ -464,18 +398,16 @@ const getFirmwareLocation = ({
|
|
|
464
398
|
const {
|
|
465
399
|
firmwareDir,
|
|
466
400
|
firmwareList
|
|
467
|
-
} =
|
|
468
|
-
if ((
|
|
401
|
+
} = localFirmwareStore.get();
|
|
402
|
+
if (isFirmwareCacheUsedForSelectedSource(settingsStore.get('firmwareChannel')) && firmwareList.includes(firmwareName)) {
|
|
469
403
|
return {
|
|
470
404
|
baseUrl: firmwareDir,
|
|
471
405
|
path: firmwareName
|
|
472
406
|
};
|
|
473
407
|
}
|
|
474
|
-
const onlineBaseUrl = (
|
|
408
|
+
const onlineBaseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
475
409
|
return {
|
|
476
410
|
baseUrl: onlineBaseUrl.BASE_URL,
|
|
477
411
|
path: remotePath
|
|
478
412
|
};
|
|
479
|
-
};
|
|
480
|
-
exports.getFirmwareLocation = getFirmwareLocation;
|
|
481
|
-
//# sourceMappingURL=firmwareInfo.js.map
|
|
413
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FirmwareChannel } from '@trezor/connect-common/lib/types/firmware';
|
|
2
|
+
import type { ConditionalRelease, DeviceModelInternal, FirmwareReleaseConfig, FirmwareType, IntermediaryReleaseConfig, ReleasesConfig } from '@trezor/device-utils';
|
|
3
|
+
export type InitializeFirmwareConfig = (config: FirmwareReleaseConfig, isRemote: boolean) => Promise<{
|
|
4
|
+
releases: ReleasesConfig;
|
|
5
|
+
intermediaries: Record<DeviceModelInternal, IntermediaryReleaseConfig[]>;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const init: (firmwareChannel: FirmwareChannel | undefined, onlyLocal: boolean, initializeFirmwareConfig: InitializeFirmwareConfig) => Promise<void>;
|
|
8
|
+
export declare const getLocal: () => FirmwareReleaseConfig;
|
|
9
|
+
export declare const getReleases: () => Partial<Record<"T1B1" | "T2T1" | "T3T1" | "T2B1" | "T3B1" | "T3W1" | "UNKNOWN", Record<FirmwareType, ConditionalRelease>>> | undefined;
|
|
10
|
+
export declare const getIntermediary: () => Record<"T1B1" | "T2T1" | "T3T1" | "T2B1" | "T3B1" | "T3W1" | "UNKNOWN", IntermediaryReleaseConfig[]> | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getFirmwareReleaseConfig, getOnlyLocalFirmwareReleaseConfig } from "../utils/firmwareReleaseConfigUtils.js";
|
|
2
|
+
const local = getOnlyLocalFirmwareReleaseConfig().config;
|
|
3
|
+
let releases;
|
|
4
|
+
let intermediary;
|
|
5
|
+
export const init = async (firmwareChannel, onlyLocal, initializeFirmwareConfig) => {
|
|
6
|
+
const firmwareReleaseConfig = onlyLocal ? {
|
|
7
|
+
config: local,
|
|
8
|
+
isRemote: false
|
|
9
|
+
} : await getFirmwareReleaseConfig(firmwareChannel);
|
|
10
|
+
const result = await initializeFirmwareConfig(firmwareReleaseConfig.config, firmwareReleaseConfig.isRemote);
|
|
11
|
+
releases = result.releases;
|
|
12
|
+
intermediary = result.intermediaries;
|
|
13
|
+
};
|
|
14
|
+
export const getLocal = () => local;
|
|
15
|
+
export const getReleases = () => releases;
|
|
16
|
+
export const getIntermediary = () => intermediary;
|