@trezor/connect 10.0.0-beta.1 → 10.0.0-beta.2
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 +56 -9
- package/README.md +4 -2
- package/lib/exports.d.ts +1 -3
- package/lib/exports.js +1 -3
- package/lib/impl/core-in-module-native.d.ts +7 -0
- package/lib/impl/core-in-module-native.js +11 -0
- package/lib/impl/core-in-module-node.d.ts +8 -0
- package/lib/impl/core-in-module-node.js +12 -0
- package/lib/impl/core-in-module-web.d.ts +9 -0
- package/lib/impl/core-in-module-web.js +26 -0
- package/lib/index.browser.js +2 -26
- package/lib/index.js +1 -11
- package/lib/index.native.d.ts +4 -0
- package/lib/index.native.js +5 -0
- package/package.json +16 -67
- package/lib/api/applyFlags.d.ts +0 -20
- package/lib/api/applyFlags.js +0 -38
- package/lib/api/applySettings.d.ts +0 -20
- package/lib/api/applySettings.js +0 -57
- package/lib/api/authenticateDevice.d.ts +0 -25
- package/lib/api/authenticateDevice.js +0 -195
- package/lib/api/authorizeCoinjoin.d.ts +0 -11
- package/lib/api/authorizeCoinjoin.js +0 -44
- package/lib/api/backupDevice.d.ts +0 -19
- package/lib/api/backupDevice.js +0 -39
- package/lib/api/bitcoin/TransactionComposer.d.ts +0 -46
- package/lib/api/bitcoin/TransactionComposer.js +0 -147
- package/lib/api/bitcoin/createPendingTx.d.ts +0 -37
- package/lib/api/bitcoin/createPendingTx.js +0 -55
- package/lib/api/bitcoin/enhanceSignTx.d.ts +0 -2
- package/lib/api/bitcoin/enhanceSignTx.js +0 -23
- package/lib/api/bitcoin/index.d.ts +0 -9
- package/lib/api/bitcoin/index.js +0 -9
- package/lib/api/bitcoin/inputs.d.ts +0 -4
- package/lib/api/bitcoin/inputs.js +0 -63
- package/lib/api/bitcoin/outputs.d.ts +0 -5
- package/lib/api/bitcoin/outputs.js +0 -128
- package/lib/api/bitcoin/refTx.d.ts +0 -23
- package/lib/api/bitcoin/refTx.js +0 -249
- package/lib/api/bitcoin/signtx.d.ts +0 -30
- package/lib/api/bitcoin/signtx.js +0 -229
- package/lib/api/bitcoin/signtxLegacy.d.ts +0 -10
- package/lib/api/bitcoin/signtxLegacy.js +0 -186
- package/lib/api/bitcoin/signtxVerify.d.ts +0 -12
- package/lib/api/bitcoin/signtxVerify.js +0 -95
- package/lib/api/bitcoin/transactionBytes.d.ts +0 -3
- package/lib/api/bitcoin/transactionBytes.js +0 -65
- package/lib/api/bleUnpair.d.ts +0 -11
- package/lib/api/bleUnpair.js +0 -37
- package/lib/api/blockchainDisconnect.d.ts +0 -16
- package/lib/api/blockchainDisconnect.js +0 -37
- package/lib/api/blockchainEstimateFee.d.ts +0 -16
- package/lib/api/blockchainEstimateFee.js +0 -102
- package/lib/api/blockchainEvmRpcCall.d.ts +0 -19
- package/lib/api/blockchainEvmRpcCall.js +0 -57
- package/lib/api/blockchainGetAccountBalanceHistory.d.ts +0 -16
- package/lib/api/blockchainGetAccountBalanceHistory.js +0 -60
- package/lib/api/blockchainGetContractInfo.d.ts +0 -16
- package/lib/api/blockchainGetContractInfo.js +0 -46
- package/lib/api/blockchainGetCurrentFiatRates.d.ts +0 -20
- package/lib/api/blockchainGetCurrentFiatRates.js +0 -49
- package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +0 -23
- package/lib/api/blockchainGetFiatRatesForTimestamps.js +0 -55
- package/lib/api/blockchainGetInfo.d.ts +0 -15
- package/lib/api/blockchainGetInfo.js +0 -37
- package/lib/api/blockchainGetTransactions.d.ts +0 -18
- package/lib/api/blockchainGetTransactions.js +0 -47
- package/lib/api/blockchainSetCustomBackend.d.ts +0 -17
- package/lib/api/blockchainSetCustomBackend.js +0 -43
- package/lib/api/blockchainSubscribe.d.ts +0 -19
- package/lib/api/blockchainSubscribe.js +0 -66
- package/lib/api/blockchainSubscribeFiatRates.d.ts +0 -19
- package/lib/api/blockchainSubscribeFiatRates.js +0 -43
- package/lib/api/blockchainUnsubscribe.d.ts +0 -19
- package/lib/api/blockchainUnsubscribe.js +0 -66
- package/lib/api/blockchainUnsubscribeFiatRates.d.ts +0 -17
- package/lib/api/blockchainUnsubscribeFiatRates.js +0 -37
- package/lib/api/blockchainValidateEvmRpcUrl.d.ts +0 -17
- package/lib/api/blockchainValidateEvmRpcUrl.js +0 -54
- package/lib/api/cancelCoinjoinAuthorization.d.ts +0 -11
- package/lib/api/cancelCoinjoinAuthorization.js +0 -33
- package/lib/api/cardano/api/cardanoComposeTransaction.d.ts +0 -10
- package/lib/api/cardano/api/cardanoComposeTransaction.js +0 -84
- package/lib/api/cardano/api/cardanoGetAddress.d.ts +0 -34
- package/lib/api/cardano/api/cardanoGetAddress.js +0 -130
- package/lib/api/cardano/api/cardanoGetNativeScriptHash.d.ts +0 -12
- package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +0 -66
- package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +0 -22
- package/lib/api/cardano/api/cardanoGetPublicKey.js +0 -92
- package/lib/api/cardano/api/cardanoSignMessage.d.ts +0 -22
- package/lib/api/cardano/api/cardanoSignMessage.js +0 -90
- package/lib/api/cardano/api/cardanoSignTransaction.d.ts +0 -81
- package/lib/api/cardano/api/cardanoSignTransaction.js +0 -301
- package/lib/api/cardano/api/index.d.ts +0 -6
- package/lib/api/cardano/api/index.js +0 -6
- package/lib/api/cardano/cardanoAddressParameters.d.ts +0 -6
- package/lib/api/cardano/cardanoAddressParameters.js +0 -79
- package/lib/api/cardano/cardanoAuxiliaryData.d.ts +0 -4
- package/lib/api/cardano/cardanoAuxiliaryData.js +0 -74
- package/lib/api/cardano/cardanoCertificate.d.ts +0 -13
- package/lib/api/cardano/cardanoCertificate.js +0 -142
- package/lib/api/cardano/cardanoInputs.d.ts +0 -25
- package/lib/api/cardano/cardanoInputs.js +0 -39
- package/lib/api/cardano/cardanoOutputs.d.ts +0 -40
- package/lib/api/cardano/cardanoOutputs.js +0 -70
- package/lib/api/cardano/cardanoTokenBundle.d.ts +0 -12
- package/lib/api/cardano/cardanoTokenBundle.js +0 -21
- package/lib/api/cardano/cardanoUtils.d.ts +0 -17
- package/lib/api/cardano/cardanoUtils.js +0 -100
- package/lib/api/cardano/cardanoWitnesses.d.ts +0 -4
- package/lib/api/cardano/cardanoWitnesses.js +0 -47
- package/lib/api/changeLanguage.d.ts +0 -18
- package/lib/api/changeLanguage.js +0 -49
- package/lib/api/changePin.d.ts +0 -11
- package/lib/api/changePin.js +0 -27
- package/lib/api/changeWipeCode.d.ts +0 -11
- package/lib/api/changeWipeCode.js +0 -29
- package/lib/api/cipherKeyValue.d.ts +0 -17
- package/lib/api/cipherKeyValue.js +0 -58
- package/lib/api/common/AbstractMiscGetAddress.d.ts +0 -37
- package/lib/api/common/AbstractMiscGetAddress.js +0 -126
- package/lib/api/common/Discovery.d.ts +0 -33
- package/lib/api/common/Discovery.js +0 -119
- package/lib/api/common/paramsValidator.d.ts +0 -24
- package/lib/api/common/paramsValidator.js +0 -136
- package/lib/api/common/requestExistingAccounts.d.ts +0 -14
- package/lib/api/common/requestExistingAccounts.js +0 -20
- package/lib/api/composeTransaction.d.ts +0 -36
- package/lib/api/composeTransaction.js +0 -404
- package/lib/api/discoverAccounts.d.ts +0 -40
- package/lib/api/discoverAccounts.js +0 -360
- package/lib/api/ethereum/api/ethereumGetAddress.d.ts +0 -30
- package/lib/api/ethereum/api/ethereumGetAddress.js +0 -150
- package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +0 -52
- package/lib/api/ethereum/api/ethereumGetPublicKey.js +0 -100
- package/lib/api/ethereum/api/ethereumSignMessage.d.ts +0 -27
- package/lib/api/ethereum/api/ethereumSignMessage.js +0 -64
- package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +0 -83
- package/lib/api/ethereum/api/ethereumSignTransaction.js +0 -148
- package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +0 -117
- package/lib/api/ethereum/api/ethereumSignTypedData.js +0 -203
- package/lib/api/ethereum/api/ethereumVerifyMessage.d.ts +0 -12
- package/lib/api/ethereum/api/ethereumVerifyMessage.js +0 -35
- package/lib/api/ethereum/api/index.d.ts +0 -6
- package/lib/api/ethereum/api/index.js +0 -6
- package/lib/api/ethereum/ethereumDefinitions.d.ts +0 -53
- package/lib/api/ethereum/ethereumDefinitions.js +0 -135
- package/lib/api/ethereum/ethereumSignTx.d.ts +0 -16
- package/lib/api/ethereum/ethereumSignTx.js +0 -144
- package/lib/api/ethereum/ethereumSignTypedData.d.ts +0 -32
- package/lib/api/ethereum/ethereumSignTypedData.js +0 -175
- package/lib/api/evoluGetDelegatedIdentityKey.d.ts +0 -14
- package/lib/api/evoluGetDelegatedIdentityKey.js +0 -29
- package/lib/api/evoluGetNode.d.ts +0 -13
- package/lib/api/evoluGetNode.js +0 -29
- package/lib/api/evoluSignRegistrationRequest.d.ts +0 -16
- package/lib/api/evoluSignRegistrationRequest.js +0 -33
- package/lib/api/firmware/calculateFirmwareHash.d.ts +0 -18
- package/lib/api/firmware/calculateFirmwareHash.js +0 -56
- package/lib/api/firmware/calculateXPubHash.d.ts +0 -14
- package/lib/api/firmware/calculateXPubHash.js +0 -16
- package/lib/api/firmware/getBinary.d.ts +0 -14
- package/lib/api/firmware/getBinary.js +0 -33
- package/lib/api/firmware/index.d.ts +0 -6
- package/lib/api/firmware/index.js +0 -6
- package/lib/api/firmware/modifyFirmware.d.ts +0 -3
- package/lib/api/firmware/modifyFirmware.js +0 -13
- package/lib/api/firmware/parseFirmwareHeaders.d.ts +0 -4
- package/lib/api/firmware/parseFirmwareHeaders.js +0 -26
- package/lib/api/firmware/uploadFirmware.d.ts +0 -27
- package/lib/api/firmware/uploadFirmware.js +0 -99
- package/lib/api/firmware/verifyEntropy.d.ts +0 -25
- package/lib/api/firmware/verifyEntropy.js +0 -110
- package/lib/api/getAccountInfo.d.ts +0 -21
- package/lib/api/getAccountInfo.js +0 -253
- package/lib/api/getAddress.d.ts +0 -45
- package/lib/api/getAddress.js +0 -153
- package/lib/api/getCoinInfo.d.ts +0 -148
- package/lib/api/getCoinInfo.js +0 -25
- package/lib/api/getDeviceState.d.ts +0 -8
- package/lib/api/getDeviceState.js +0 -18
- package/lib/api/getFeatures.d.ts +0 -71
- package/lib/api/getFeatures.js +0 -22
- package/lib/api/getFirmwareHash.d.ts +0 -11
- package/lib/api/getFirmwareHash.js +0 -29
- package/lib/api/getNonce.d.ts +0 -10
- package/lib/api/getNonce.js +0 -18
- package/lib/api/getOwnershipId.d.ts +0 -17
- package/lib/api/getOwnershipId.js +0 -88
- package/lib/api/getOwnershipProof.d.ts +0 -17
- package/lib/api/getOwnershipProof.js +0 -95
- package/lib/api/getPublicKey.d.ts +0 -54
- package/lib/api/getPublicKey.js +0 -106
- package/lib/api/getSettings.d.ts +0 -24
- package/lib/api/getSettings.js +0 -21
- package/lib/api/index.d.ts +0 -62
- package/lib/api/index.js +0 -62
- package/lib/api/loadDevice.d.ts +0 -16
- package/lib/api/loadDevice.js +0 -46
- package/lib/api/monero/api/index.d.ts +0 -4
- package/lib/api/monero/api/index.js +0 -4
- package/lib/api/monero/api/moneroGetAddress.d.ts +0 -32
- package/lib/api/monero/api/moneroGetAddress.js +0 -117
- package/lib/api/monero/api/moneroGetWatchKey.d.ts +0 -14
- package/lib/api/monero/api/moneroGetWatchKey.js +0 -45
- package/lib/api/monero/api/moneroKeyImageSync.d.ts +0 -17
- package/lib/api/monero/api/moneroKeyImageSync.js +0 -128
- package/lib/api/monero/api/moneroSignTransaction.d.ts +0 -17
- package/lib/api/monero/api/moneroSignTransaction.js +0 -218
- package/lib/api/nostr/nostrGetPublicKey.d.ts +0 -15
- package/lib/api/nostr/nostrGetPublicKey.js +0 -38
- package/lib/api/nostr/nostrSignEvent.d.ts +0 -13
- package/lib/api/nostr/nostrSignEvent.js +0 -36
- package/lib/api/pingDevice.d.ts +0 -11
- package/lib/api/pingDevice.js +0 -29
- package/lib/api/pushTransaction.d.ts +0 -19
- package/lib/api/pushTransaction.js +0 -39
- package/lib/api/recoveryDevice.d.ts +0 -20
- package/lib/api/recoveryDevice.js +0 -52
- package/lib/api/requestLogin.d.ts +0 -14
- package/lib/api/requestLogin.js +0 -53
- package/lib/api/resetDevice.d.ts +0 -22
- package/lib/api/resetDevice.js +0 -133
- package/lib/api/ripple/api/index.d.ts +0 -2
- package/lib/api/ripple/api/index.js +0 -2
- package/lib/api/ripple/api/rippleGetAddress.d.ts +0 -17
- package/lib/api/ripple/api/rippleGetAddress.js +0 -22
- package/lib/api/ripple/api/rippleSignTransaction.d.ts +0 -13
- package/lib/api/ripple/api/rippleSignTransaction.js +0 -52
- package/lib/api/selectAccount.d.ts +0 -15
- package/lib/api/selectAccount.js +0 -42
- package/lib/api/setBrightness.d.ts +0 -12
- package/lib/api/setBrightness.js +0 -28
- package/lib/api/setBusy.d.ts +0 -11
- package/lib/api/setBusy.js +0 -31
- package/lib/api/showDeviceTutorial.d.ts +0 -11
- package/lib/api/showDeviceTutorial.js +0 -21
- package/lib/api/signMessage.d.ts +0 -25
- package/lib/api/signMessage.js +0 -75
- package/lib/api/signTransaction.d.ts +0 -199
- package/lib/api/signTransaction.js +0 -331
- package/lib/api/solana/api/index.d.ts +0 -4
- package/lib/api/solana/api/index.js +0 -4
- package/lib/api/solana/api/solanaComposeTransaction.d.ts +0 -33
- package/lib/api/solana/api/solanaComposeTransaction.js +0 -73
- package/lib/api/solana/api/solanaGetAddress.d.ts +0 -17
- package/lib/api/solana/api/solanaGetAddress.js +0 -22
- package/lib/api/solana/api/solanaGetPublicKey.d.ts +0 -32
- package/lib/api/solana/api/solanaGetPublicKey.js +0 -86
- package/lib/api/solana/api/solanaSignTransaction.d.ts +0 -41
- package/lib/api/solana/api/solanaSignTransaction.js +0 -204
- package/lib/api/solana/solanaDefinitions.d.ts +0 -9
- package/lib/api/solana/solanaDefinitions.js +0 -33
- package/lib/api/stellar/api/index.d.ts +0 -2
- package/lib/api/stellar/api/index.js +0 -2
- package/lib/api/stellar/api/stellarGetAddress.d.ts +0 -17
- package/lib/api/stellar/api/stellarGetAddress.js +0 -22
- package/lib/api/stellar/api/stellarSignTransaction.d.ts +0 -20
- package/lib/api/stellar/api/stellarSignTransaction.js +0 -65
- package/lib/api/stellar/stellarSignTx.d.ts +0 -7
- package/lib/api/stellar/stellarSignTx.js +0 -183
- package/lib/api/telemetryGet.d.ts +0 -14
- package/lib/api/telemetryGet.js +0 -26
- package/lib/api/tezos/api/index.d.ts +0 -3
- package/lib/api/tezos/api/index.js +0 -3
- package/lib/api/tezos/api/tezosGetAddress.d.ts +0 -17
- package/lib/api/tezos/api/tezosGetAddress.js +0 -22
- package/lib/api/tezos/api/tezosGetPublicKey.d.ts +0 -28
- package/lib/api/tezos/api/tezosGetPublicKey.js +0 -84
- package/lib/api/tezos/api/tezosSignTransaction.d.ts +0 -14
- package/lib/api/tezos/api/tezosSignTransaction.js +0 -30
- package/lib/api/tezos/tezosSignTx.d.ts +0 -71
- package/lib/api/tezos/tezosSignTx.js +0 -204
- package/lib/api/thpGetCredentials.d.ts +0 -13
- package/lib/api/thpGetCredentials.js +0 -30
- package/lib/api/thpRemoveCredentials.d.ts +0 -15
- package/lib/api/thpRemoveCredentials.js +0 -44
- package/lib/api/tron/api/index.d.ts +0 -3
- package/lib/api/tron/api/index.js +0 -3
- package/lib/api/tron/api/tronComposeTransaction.d.ts +0 -17
- package/lib/api/tron/api/tronComposeTransaction.js +0 -52
- package/lib/api/tron/api/tronGetAddress.d.ts +0 -17
- package/lib/api/tron/api/tronGetAddress.js +0 -22
- package/lib/api/tron/api/tronSignTransaction.d.ts +0 -20
- package/lib/api/tron/api/tronSignTransaction.js +0 -137
- package/lib/api/tron/tronEncode.d.ts +0 -11
- package/lib/api/tron/tronEncode.js +0 -157
- package/lib/api/tron/tronProtobuf.d.ts +0 -5
- package/lib/api/tron/tronProtobuf.js +0 -28
- package/lib/api/unlockPath.d.ts +0 -12
- package/lib/api/unlockPath.js +0 -33
- package/lib/api/verifyMessage.d.ts +0 -16
- package/lib/api/verifyMessage.js +0 -46
- package/lib/api/wipeDevice.d.ts +0 -21
- package/lib/api/wipeDevice.js +0 -49
- package/lib/backend/BackendManager.d.ts +0 -30
- package/lib/backend/BackendManager.js +0 -145
- package/lib/backend/Blockchain.d.ts +0 -81
- package/lib/backend/Blockchain.js +0 -235
- package/lib/backend/BlockchainLink.d.ts +0 -10
- package/lib/backend/BlockchainLink.js +0 -19
- package/lib/backend/fees/BitcoinFeeLevels.d.ts +0 -19
- package/lib/backend/fees/BitcoinFeeLevels.js +0 -44
- package/lib/backend/fees/EthereumFeeLevels.d.ts +0 -17
- package/lib/backend/fees/EthereumFeeLevels.js +0 -63
- package/lib/backend/fees/MiscFeeLevels.d.ts +0 -18
- package/lib/backend/fees/MiscFeeLevels.js +0 -30
- package/lib/backend/fees/index.d.ts +0 -5
- package/lib/backend/fees/index.js +0 -31
- package/lib/core/AbstractMethod.d.ts +0 -63
- package/lib/core/AbstractMethod.js +0 -189
- package/lib/core/index.d.ts +0 -29
- package/lib/core/index.js +0 -805
- package/lib/core/method.d.ts +0 -3
- package/lib/core/method.js +0 -19
- package/lib/core/method.native.d.ts +0 -2
- package/lib/core/method.native.js +0 -29
- package/lib/core/onCallFirmwareUpdate.d.ts +0 -42
- package/lib/core/onCallFirmwareUpdate.js +0 -436
- package/lib/data/coinInfo.d.ts +0 -101
- package/lib/data/coinInfo.js +0 -195
- package/lib/data/config.d.ts +0 -8
- package/lib/data/config.js +0 -273
- package/lib/data/defaultFeeLevels.d.ts +0 -18
- package/lib/data/defaultFeeLevels.js +0 -200
- package/lib/data/enabledNetworksStore.d.ts +0 -5
- package/lib/data/enabledNetworksStore.js +0 -20
- package/lib/data/firmwareInfo.d.ts +0 -55
- package/lib/data/firmwareInfo.js +0 -413
- package/lib/data/firmwareReleaseStore.d.ts +0 -10
- package/lib/data/firmwareReleaseStore.js +0 -16
- package/lib/data/localFirmwareStore.d.ts +0 -3
- package/lib/data/localFirmwareStore.js +0 -8
- package/lib/data/protobufLoader.d.ts +0 -1
- package/lib/data/protobufLoader.js +0 -30
- package/lib/data/settingsStore.d.ts +0 -6
- package/lib/data/settingsStore.js +0 -21
- package/lib/device/Device.d.ts +0 -259
- package/lib/device/Device.js +0 -765
- package/lib/device/DeviceCommands.d.ts +0 -87
- package/lib/device/DeviceCommands.js +0 -248
- package/lib/device/DeviceCurrentSession.d.ts +0 -750
- package/lib/device/DeviceCurrentSession.js +0 -239
- package/lib/device/DeviceList.d.ts +0 -75
- package/lib/device/DeviceList.js +0 -243
- package/lib/device/TransportList.d.ts +0 -3
- package/lib/device/TransportList.js +0 -13
- package/lib/device/TransportManager.d.ts +0 -33
- package/lib/device/TransportManager.js +0 -144
- package/lib/device/calculateRevisionForDevice.d.ts +0 -10
- package/lib/device/calculateRevisionForDevice.js +0 -19
- package/lib/device/checkFirmwareRevision.d.ts +0 -22
- package/lib/device/checkFirmwareRevision.js +0 -104
- package/lib/device/resolveDescriptorForTaproot.d.ts +0 -17
- package/lib/device/resolveDescriptorForTaproot.js +0 -27
- package/lib/device/thp/handshake.d.ts +0 -3
- package/lib/device/thp/handshake.js +0 -100
- package/lib/device/thp/index.d.ts +0 -5
- package/lib/device/thp/index.js +0 -65
- package/lib/device/thp/pairing.d.ts +0 -16
- package/lib/device/thp/pairing.js +0 -242
- package/lib/device/thp/session.d.ts +0 -2
- package/lib/device/thp/session.js +0 -27
- package/lib/device/thp/thpCall.d.ts +0 -31
- package/lib/device/thp/thpCall.js +0 -58
- package/lib/device/validateMessageSize.d.ts +0 -2
- package/lib/device/validateMessageSize.js +0 -9
- package/lib/device/workflow/changeLanguage.d.ts +0 -18
- package/lib/device/workflow/changeLanguage.js +0 -62
- package/lib/device/workflow/checkFirmwareHash.d.ts +0 -12
- package/lib/device/workflow/checkFirmwareHash.js +0 -86
- package/lib/device/workflow/checkFirmwareHashWithRetries.d.ts +0 -8
- package/lib/device/workflow/checkFirmwareHashWithRetries.js +0 -36
- package/lib/device/workflow/handshake.d.ts +0 -13
- package/lib/device/workflow/handshake.js +0 -55
- package/lib/device/workflow/trezorPushNotification.d.ts +0 -5
- package/lib/device/workflow/trezorPushNotification.js +0 -73
- package/lib/device/workflow/validateState.d.ts +0 -2
- package/lib/device/workflow/validateState.js +0 -152
- package/lib/events/ui-promise.d.ts +0 -20
- package/lib/events/ui-promise.js +0 -1
- package/lib/impl/core-in-module.d.ts +0 -33
- package/lib/impl/core-in-module.js +0 -194
- package/lib/types/idevice.d.ts +0 -110
- package/lib/types/idevice.js +0 -1
- package/lib/types/typed-call-provider.d.ts +0 -29
- package/lib/types/typed-call-provider.js +0 -1
- package/lib/types/workflow.d.ts +0 -16
- package/lib/types/workflow.js +0 -1
- package/lib/utils/accountUtils.d.ts +0 -10
- package/lib/utils/accountUtils.js +0 -90
- package/lib/utils/addressUtils.d.ts +0 -2
- package/lib/utils/addressUtils.js +0 -24
- package/lib/utils/assetUtils.d.ts +0 -13
- package/lib/utils/assetUtils.js +0 -55
- package/lib/utils/assets.browser.d.ts +0 -1
- package/lib/utils/assets.browser.js +0 -1
- package/lib/utils/assets.d.ts +0 -2
- package/lib/utils/assets.js +0 -13
- package/lib/utils/assets.native.d.ts +0 -2
- package/lib/utils/assets.native.js +0 -23
- package/lib/utils/assetsTypes.d.ts +0 -5
- package/lib/utils/assetsTypes.js +0 -1
- package/lib/utils/buildOutputDescriptor.d.ts +0 -20
- package/lib/utils/buildOutputDescriptor.js +0 -67
- package/lib/utils/deviceFeaturesUtils.d.ts +0 -7
- package/lib/utils/deviceFeaturesUtils.js +0 -109
- package/lib/utils/ethereumUtils.d.ts +0 -3
- package/lib/utils/ethereumUtils.js +0 -7
- package/lib/utils/firmwareReleaseConfigUtils.d.ts +0 -19
- package/lib/utils/firmwareReleaseConfigUtils.js +0 -131
- package/lib/utils/firmwareUtils.d.ts +0 -15
- package/lib/utils/firmwareUtils.js +0 -57
- package/lib/utils/formatUtils.d.ts +0 -13
- package/lib/utils/formatUtils.js +0 -45
- package/lib/utils/hdnodeUtils.d.ts +0 -6
- package/lib/utils/hdnodeUtils.js +0 -62
- package/lib/utils/pathUtils.d.ts +0 -1
- package/lib/utils/pathUtils.js +0 -1
- package/lib/utils/paymentRequest.d.ts +0 -8
- package/lib/utils/paymentRequest.js +0 -25
- package/lib/utils/uiPromiseManager.d.ts +0 -8
- package/lib/utils/uiPromiseManager.js +0 -51
- package/lib/workers/workers.browser.d.ts +0 -10
- package/lib/workers/workers.browser.js +0 -16
- package/lib/workers/workers.d.ts +0 -10
- package/lib/workers/workers.js +0 -8
- package/lib/workers/workers.native.d.ts +0 -7
- package/lib/workers/workers.native.js +0 -7
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { isCoinSymbol } from "@trezor/connect-common";
|
|
2
|
-
let networks = new Map();
|
|
3
|
-
const sanitize = input => Array.isArray(input) ? input.flatMap(entry => {
|
|
4
|
-
const coin = entry?.coin;
|
|
5
|
-
if (typeof coin !== 'string') return [];
|
|
6
|
-
const symbol = coin.toLowerCase();
|
|
7
|
-
return isCoinSymbol(symbol) ? [{
|
|
8
|
-
coin: symbol
|
|
9
|
-
}] : [];
|
|
10
|
-
}) : [];
|
|
11
|
-
export const get = () => [...networks.values()];
|
|
12
|
-
export const has = coin => networks.has(coin.toLowerCase());
|
|
13
|
-
export const set = next => {
|
|
14
|
-
networks = new Map(sanitize(next).map(network => [network.coin, network]));
|
|
15
|
-
};
|
|
16
|
-
export const add = extra => {
|
|
17
|
-
const next = new Map(networks);
|
|
18
|
-
sanitize(extra).forEach(network => next.set(network.coin, network));
|
|
19
|
-
networks = next;
|
|
20
|
-
};
|
|
@@ -1,55 +0,0 @@
|
|
|
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';
|
|
6
|
-
export declare const getBundledRelease: (deviceModel: DeviceModelInternal, firmwareType: FirmwareType) => FirmwareRelease | undefined;
|
|
7
|
-
export declare const getOnlineReleaseByVersion: (deviceModel: DeviceModelInternal, firmwareVersion: VersionArray, firmwareType: FirmwareType) => Promise<FirmwareRelease | undefined>;
|
|
8
|
-
export declare const getReleaseConfig: (features: Features, firmwareType: FirmwareType) => ConditionalRelease | undefined;
|
|
9
|
-
export declare const getReleaseByVersion: (features: Features, firmwareVersion: VersionArray, firmwareType: FirmwareType) => Promise<FirmwareRelease | undefined>;
|
|
10
|
-
export declare const createLocalFirmwareConfig: (baseConfig: FirmwareReleaseConfig) => any;
|
|
11
|
-
export declare const createRemoteFirmwareConfig: (config: FirmwareReleaseConfig) => Promise<any>;
|
|
12
|
-
export declare const initializeFirmwareConfig: (config: FirmwareReleaseConfig, isRemote: boolean) => Promise<{
|
|
13
|
-
releases: any;
|
|
14
|
-
intermediaries: Record<DeviceModelInternal, IntermediaryReleaseConfig[]>;
|
|
15
|
-
}>;
|
|
16
|
-
export declare const getLanguage: (languageBinPath: string) => Promise<ArrayBuffer | Buffer<ArrayBufferLike>>;
|
|
17
|
-
export type { CurrentVersion } from '@trezor/connect-common/lib/types/firmware';
|
|
18
|
-
interface GetReleaseInfoParams {
|
|
19
|
-
features: Features;
|
|
20
|
-
release: FirmwareRelease;
|
|
21
|
-
conditions: ConditionalRelease['conditions'];
|
|
22
|
-
intermediary: IntermediaryReleaseConfig | undefined;
|
|
23
|
-
firmwareType: FirmwareType;
|
|
24
|
-
isBitcoinOnlyAvailable: boolean;
|
|
25
|
-
releasesOfDevice: FirmwareRelease[];
|
|
26
|
-
}
|
|
27
|
-
export declare const getReleaseInfo: ({
|
|
28
|
-
features,
|
|
29
|
-
release,
|
|
30
|
-
conditions,
|
|
31
|
-
intermediary,
|
|
32
|
-
firmwareType,
|
|
33
|
-
isBitcoinOnlyAvailable,
|
|
34
|
-
releasesOfDevice
|
|
35
|
-
}: GetReleaseInfoParams) => FirmwareReleaseConfigInfo;
|
|
36
|
-
export declare const getFirmwareReleaseConfigInfo: (features: Features, firmwareType: FirmwareType) => FirmwareReleaseConfigInfo | undefined;
|
|
37
|
-
export declare const getFirmwareStatus: (features: Features, firmwareType: FirmwareType) => "custom" | "valid" | "outdated" | "required" | "unknown" | "none";
|
|
38
|
-
type GetFirmwareLocationParam = {
|
|
39
|
-
firmwareVersion: VersionArray;
|
|
40
|
-
remotePath: string;
|
|
41
|
-
deviceModel: DeviceModelInternal;
|
|
42
|
-
firmwareType: FirmwareType;
|
|
43
|
-
intermediaryVersion?: number;
|
|
44
|
-
};
|
|
45
|
-
type FirmwareLocationPathParams = {
|
|
46
|
-
baseUrl: string;
|
|
47
|
-
path: string;
|
|
48
|
-
};
|
|
49
|
-
export declare const getFirmwareLocation: ({
|
|
50
|
-
firmwareVersion,
|
|
51
|
-
remotePath,
|
|
52
|
-
deviceModel,
|
|
53
|
-
firmwareType,
|
|
54
|
-
intermediaryVersion
|
|
55
|
-
}: GetFirmwareLocationParam) => FirmwareLocationPathParams;
|
package/lib/data/firmwareInfo.js
DELETED
|
@@ -1,413 +0,0 @@
|
|
|
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";
|
|
10
|
-
const getBundledFirmwareVersion = (deviceModel, firmwareType) => {
|
|
11
|
-
const localFirmwareReleaseConfig = firmwareReleaseStore.getLocal();
|
|
12
|
-
const modelReleases = localFirmwareReleaseConfig.releases[deviceModel];
|
|
13
|
-
const bundledRelease = modelReleases?.[firmwareType];
|
|
14
|
-
if (!bundledRelease) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const bundledVersion = bundledRelease.releasePath.match(/(\d+\.\d+\.\d+)/);
|
|
18
|
-
if (!bundledVersion) {
|
|
19
|
-
throw new Error('Fimrware bundled version was not found.');
|
|
20
|
-
}
|
|
21
|
-
return bundledVersion[0];
|
|
22
|
-
};
|
|
23
|
-
export const getBundledRelease = (deviceModel, firmwareType) => {
|
|
24
|
-
const version = getBundledFirmwareVersion(deviceModel, firmwareType);
|
|
25
|
-
if (!version) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const versionArray = versionUtils.tryParse(version);
|
|
29
|
-
if (!versionArray) {
|
|
30
|
-
throw new Error('There was error parsing bundled release.');
|
|
31
|
-
}
|
|
32
|
-
return getReleaseAsset(deviceModel, versionArray, firmwareType);
|
|
33
|
-
};
|
|
34
|
-
const getOnlineReleaseByPath = async releasePath => {
|
|
35
|
-
const onlineFirmwareBaseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
36
|
-
const url = `${onlineFirmwareBaseUrl.BASE_URL}/${releasePath}`;
|
|
37
|
-
const response = await httpRequest(url, 'json', {
|
|
38
|
-
signal: AbortSignal.timeout(10000),
|
|
39
|
-
skipLocalForceDownload: true
|
|
40
|
-
});
|
|
41
|
-
return response;
|
|
42
|
-
};
|
|
43
|
-
const getOnlineReleasePath = (deviceModel, firmwareVersion, firmwareType) => {
|
|
44
|
-
const onlineFirmwareBaseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
45
|
-
const firmwareTypeFileString = firmwareType === FirmwareType.BitcoinOnly ? 'bitcoinonly' : 'universal';
|
|
46
|
-
const relaseJsonFilename = `${deviceModel.toLowerCase()}-${firmwareVersion.join('.')}-${firmwareTypeFileString}.json`;
|
|
47
|
-
const origin = `${onlineFirmwareBaseUrl.MIDDLE_PATH}/${deviceModel.toLowerCase()}/${firmwareTypeFileString}`;
|
|
48
|
-
const releasePath = `${origin}/${relaseJsonFilename}`;
|
|
49
|
-
return releasePath;
|
|
50
|
-
};
|
|
51
|
-
export const getOnlineReleaseByVersion = async (deviceModel, firmwareVersion, firmwareType) => {
|
|
52
|
-
const releasePath = getOnlineReleasePath(deviceModel, firmwareVersion, firmwareType);
|
|
53
|
-
const onlineRelease = await getOnlineReleaseByPath(releasePath);
|
|
54
|
-
if (!onlineRelease || !versionUtils.isEqual(onlineRelease.version, firmwareVersion)) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
return onlineRelease;
|
|
58
|
-
};
|
|
59
|
-
export const getReleaseConfig = (features, firmwareType) => {
|
|
60
|
-
const {
|
|
61
|
-
internal_model
|
|
62
|
-
} = features;
|
|
63
|
-
if (internal_model === DeviceModelInternal.UNKNOWN) {
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
const firmwareReleaseConfig = firmwareReleaseStore.getReleases();
|
|
67
|
-
if (!firmwareReleaseConfig) {
|
|
68
|
-
throw new Error('Firmware release config not loaded.');
|
|
69
|
-
}
|
|
70
|
-
const deviceMessageRelease = firmwareReleaseConfig[internal_model];
|
|
71
|
-
if (!deviceMessageRelease) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
return deviceMessageRelease[firmwareType];
|
|
75
|
-
};
|
|
76
|
-
export const getReleaseByVersion = async (features, firmwareVersion, firmwareType) => {
|
|
77
|
-
const deviceModel = features.internal_model;
|
|
78
|
-
const firmwareChannel = settingsStore.get('firmwareChannel');
|
|
79
|
-
const tryGetRelease = async getter => {
|
|
80
|
-
try {
|
|
81
|
-
return await getter();
|
|
82
|
-
} catch {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
const releaseFromConfig = getReleaseConfig(features, firmwareType)?.release;
|
|
87
|
-
if (releaseFromConfig && versionUtils.isEqual(firmwareVersion, releaseFromConfig.version)) {
|
|
88
|
-
return releaseFromConfig;
|
|
89
|
-
}
|
|
90
|
-
const releaseName = buildLocalReleaseName(firmwareType, deviceModel, firmwareVersion);
|
|
91
|
-
const {
|
|
92
|
-
firmwareDir,
|
|
93
|
-
firmwareList
|
|
94
|
-
} = localFirmwareStore.get();
|
|
95
|
-
if (isFirmwareCacheUsedForSelectedSource(firmwareChannel) && firmwareList.includes(releaseName)) {
|
|
96
|
-
const localReleasePath = `${firmwareDir}${releaseName}`;
|
|
97
|
-
const localReleaseBuffer = await httpRequest(localReleasePath, 'json');
|
|
98
|
-
return JSON.parse(localReleaseBuffer.toString());
|
|
99
|
-
}
|
|
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)) {
|
|
103
|
-
return release;
|
|
104
|
-
}
|
|
105
|
-
return;
|
|
106
|
-
};
|
|
107
|
-
export const createLocalFirmwareConfig = baseConfig => {
|
|
108
|
-
const releaseEntries = Object.entries(baseConfig.releases).map(([deviceModel, modelReleases]) => {
|
|
109
|
-
const modelKey = deviceModel;
|
|
110
|
-
if (modelKey === DeviceModelInternal.UNKNOWN) return null;
|
|
111
|
-
const {
|
|
112
|
-
'bitcoin-only': bitcoinOnlyConfig,
|
|
113
|
-
universal: universalConfig
|
|
114
|
-
} = modelReleases ?? {};
|
|
115
|
-
if (!bitcoinOnlyConfig?.releasePath || !universalConfig?.releasePath) return null;
|
|
116
|
-
const btcOnlyRelease = getBundledRelease(modelKey, FirmwareType.BitcoinOnly);
|
|
117
|
-
const universalRelease = getBundledRelease(modelKey, FirmwareType.Universal);
|
|
118
|
-
if (!btcOnlyRelease || !universalRelease) return null;
|
|
119
|
-
const releases = {
|
|
120
|
-
[FirmwareType.BitcoinOnly]: {
|
|
121
|
-
...bitcoinOnlyConfig,
|
|
122
|
-
release: btcOnlyRelease
|
|
123
|
-
},
|
|
124
|
-
[FirmwareType.Universal]: {
|
|
125
|
-
...universalConfig,
|
|
126
|
-
release: universalRelease
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
return [modelKey, releases];
|
|
130
|
-
}).filter(isNotNull);
|
|
131
|
-
return Object.fromEntries(releaseEntries);
|
|
132
|
-
};
|
|
133
|
-
export const createRemoteFirmwareConfig = async config => {
|
|
134
|
-
const releaseEntryPromises = Object.entries(config.releases).map(async ([deviceModel, modelReleases]) => {
|
|
135
|
-
const modelKey = deviceModel;
|
|
136
|
-
if (modelKey === DeviceModelInternal.UNKNOWN) return null;
|
|
137
|
-
const {
|
|
138
|
-
'bitcoin-only': bitcoinOnlyConfig,
|
|
139
|
-
universal: universalConfig
|
|
140
|
-
} = modelReleases ?? {};
|
|
141
|
-
if (!bitcoinOnlyConfig?.releasePath || !universalConfig?.releasePath) return null;
|
|
142
|
-
const [bitcoinOnlyRelease, universalRelease] = await Promise.all([getOnlineReleaseByPath(bitcoinOnlyConfig.releasePath), getOnlineReleaseByPath(universalConfig.releasePath)]);
|
|
143
|
-
if (!universalRelease || !bitcoinOnlyRelease) return null;
|
|
144
|
-
const releases = {
|
|
145
|
-
[FirmwareType.BitcoinOnly]: {
|
|
146
|
-
...bitcoinOnlyConfig,
|
|
147
|
-
release: bitcoinOnlyRelease
|
|
148
|
-
},
|
|
149
|
-
[FirmwareType.Universal]: {
|
|
150
|
-
...universalConfig,
|
|
151
|
-
release: universalRelease
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
return [modelKey, releases];
|
|
155
|
-
});
|
|
156
|
-
const validEntries = (await Promise.all(releaseEntryPromises)).filter(isNotNull);
|
|
157
|
-
return Object.fromEntries(validEntries);
|
|
158
|
-
};
|
|
159
|
-
export const initializeFirmwareConfig = async (config, isRemote) => {
|
|
160
|
-
if (isRemote) {
|
|
161
|
-
try {
|
|
162
|
-
const remoteReleases = await createRemoteFirmwareConfig(config);
|
|
163
|
-
return {
|
|
164
|
-
releases: remoteReleases,
|
|
165
|
-
intermediaries: config.intermediaries
|
|
166
|
-
};
|
|
167
|
-
} catch {}
|
|
168
|
-
}
|
|
169
|
-
const localFirmwareReleaseConfig = firmwareReleaseStore.getLocal();
|
|
170
|
-
const localReleases = createLocalFirmwareConfig(localFirmwareReleaseConfig);
|
|
171
|
-
return {
|
|
172
|
-
releases: localReleases,
|
|
173
|
-
intermediaries: localFirmwareReleaseConfig.intermediaries
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
export const getLanguage = languageBinPath => {
|
|
177
|
-
const baseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
178
|
-
const url = `${baseUrl.BASE_URL}/${languageBinPath}`;
|
|
179
|
-
return httpRequest(url, 'binary');
|
|
180
|
-
};
|
|
181
|
-
const getCurrentVersion = features => {
|
|
182
|
-
if (!isStrictFeatures(features)) {
|
|
183
|
-
throw new Error('Features of unexpected shape provided.');
|
|
184
|
-
}
|
|
185
|
-
const bootloaderVersion = getBootloaderVersionArray({
|
|
186
|
-
features
|
|
187
|
-
});
|
|
188
|
-
const firmwareVersion = getFirmwareVersionArray({
|
|
189
|
-
features
|
|
190
|
-
});
|
|
191
|
-
return {
|
|
192
|
-
bootloaderVersion,
|
|
193
|
-
firmwareVersion
|
|
194
|
-
};
|
|
195
|
-
};
|
|
196
|
-
const getIntermediaryMessageRelease = features => {
|
|
197
|
-
const config = firmwareReleaseStore.getIntermediary();
|
|
198
|
-
if (!config) {
|
|
199
|
-
throw new Error('Firmware release config not loaded.');
|
|
200
|
-
}
|
|
201
|
-
const deviceIntermediaryReleases = config[features.internal_model];
|
|
202
|
-
if (!deviceIntermediaryReleases || deviceIntermediaryReleases.length === 0) {
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
const {
|
|
206
|
-
bootloaderVersion,
|
|
207
|
-
firmwareVersion
|
|
208
|
-
} = getCurrentVersion(features);
|
|
209
|
-
const currentVersion = features.bootloader_mode ? bootloaderVersion : firmwareVersion;
|
|
210
|
-
const minVersionKey = features.bootloader_mode ? 'min_bootloader_version' : 'min_firmware_version';
|
|
211
|
-
if (!currentVersion) {
|
|
212
|
-
return undefined;
|
|
213
|
-
}
|
|
214
|
-
return deviceIntermediaryReleases.find(release => versionUtils.isNewer(release[minVersionKey], currentVersion));
|
|
215
|
-
};
|
|
216
|
-
const getIsBitcoinOnlyAvailable = features => {
|
|
217
|
-
const {
|
|
218
|
-
internal_model
|
|
219
|
-
} = features;
|
|
220
|
-
if (internal_model === DeviceModelInternal.UNKNOWN) {
|
|
221
|
-
return false;
|
|
222
|
-
}
|
|
223
|
-
const firmwareReleaseConfig = firmwareReleaseStore.getReleases();
|
|
224
|
-
if (!firmwareReleaseConfig) {
|
|
225
|
-
throw new Error('Firmware release config not loaded.');
|
|
226
|
-
}
|
|
227
|
-
const deviceMessageRelease = firmwareReleaseConfig[internal_model];
|
|
228
|
-
return !!deviceMessageRelease && !!deviceMessageRelease[FirmwareType.BitcoinOnly];
|
|
229
|
-
};
|
|
230
|
-
const isValidConditionalRelease = release => !!(release.version && release.min_firmware_version && release.min_bootloader_version);
|
|
231
|
-
const calculateShouldOfferRelease = (rolloutProbability, deviceId) => {
|
|
232
|
-
if (rolloutProbability < 0 || rolloutProbability > 100) {
|
|
233
|
-
throw new Error('Probability must be between 0 and 100.');
|
|
234
|
-
}
|
|
235
|
-
if (deviceId === null) {
|
|
236
|
-
return rolloutProbability > 0;
|
|
237
|
-
} else {
|
|
238
|
-
const deterministicValueToCompare = getIntegerInRangeFromString(deviceId, 101);
|
|
239
|
-
return deterministicValueToCompare < rolloutProbability;
|
|
240
|
-
}
|
|
241
|
-
};
|
|
242
|
-
const getChangelog = (releases, features) => {
|
|
243
|
-
if (features.bootloader_mode) {
|
|
244
|
-
if (features.firmware_present && features.major_version === 1) {
|
|
245
|
-
return null;
|
|
246
|
-
}
|
|
247
|
-
if (features.firmware_present && features.major_version === 2) {
|
|
248
|
-
return releases.filter(r => versionUtils.isNewer(r.version, [features.fw_major, features.fw_minor, features.fw_patch]));
|
|
249
|
-
}
|
|
250
|
-
return releases;
|
|
251
|
-
}
|
|
252
|
-
return releases.filter(r => versionUtils.isNewer(r.version, getFirmwareOrBootloaderVersionArray(features)));
|
|
253
|
-
};
|
|
254
|
-
const isRequired = changelog => {
|
|
255
|
-
if (!changelog?.length) return null;
|
|
256
|
-
return changelog.some(item => item.required);
|
|
257
|
-
};
|
|
258
|
-
export const getReleaseInfo = ({
|
|
259
|
-
features,
|
|
260
|
-
release,
|
|
261
|
-
conditions,
|
|
262
|
-
intermediary,
|
|
263
|
-
firmwareType,
|
|
264
|
-
isBitcoinOnlyAvailable,
|
|
265
|
-
releasesOfDevice
|
|
266
|
-
}) => {
|
|
267
|
-
if (!isStrictFeatures(features)) {
|
|
268
|
-
throw new Error('Features of unexpected shape provided.');
|
|
269
|
-
}
|
|
270
|
-
if (!isValidConditionalRelease(release)) {
|
|
271
|
-
throw new Error(`Release object in unexpected shape.`);
|
|
272
|
-
}
|
|
273
|
-
const {
|
|
274
|
-
min_firmware_version,
|
|
275
|
-
min_bootloader_version
|
|
276
|
-
} = release;
|
|
277
|
-
const changelog = getChangelog(releasesOfDevice, features);
|
|
278
|
-
let isNewer = false;
|
|
279
|
-
let requiresIntermediary = false;
|
|
280
|
-
if (features.bootloader_mode && release.bootloader_version) {
|
|
281
|
-
const {
|
|
282
|
-
bootloaderVersion,
|
|
283
|
-
firmwareVersion
|
|
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);
|
|
291
|
-
} else {
|
|
292
|
-
throw new Error('Version is not version array.');
|
|
293
|
-
}
|
|
294
|
-
} else {
|
|
295
|
-
const {
|
|
296
|
-
firmwareVersion
|
|
297
|
-
} = getCurrentVersion(features);
|
|
298
|
-
if (!versionUtils.isVersionArray(firmwareVersion)) {
|
|
299
|
-
throw new Error('Firmware version is not version array.');
|
|
300
|
-
}
|
|
301
|
-
isNewer = versionUtils.isNewer(release.version, firmwareVersion);
|
|
302
|
-
requiresIntermediary = versionUtils.isNewer(min_firmware_version, firmwareVersion);
|
|
303
|
-
}
|
|
304
|
-
const {
|
|
305
|
-
rollout_probability
|
|
306
|
-
} = conditions;
|
|
307
|
-
const shouldBeOffered = calculateShouldOfferRelease(rollout_probability, features.device_id);
|
|
308
|
-
if (requiresIntermediary && intermediary) {
|
|
309
|
-
isNewer = true;
|
|
310
|
-
}
|
|
311
|
-
return {
|
|
312
|
-
firmwareType,
|
|
313
|
-
isBitcoinOnlyAvailable,
|
|
314
|
-
releaseConditions: {
|
|
315
|
-
...conditions,
|
|
316
|
-
shouldBeOffered
|
|
317
|
-
},
|
|
318
|
-
release,
|
|
319
|
-
intermediary: requiresIntermediary ? intermediary : undefined,
|
|
320
|
-
isRequired: isRequired(changelog),
|
|
321
|
-
isNewer,
|
|
322
|
-
translations: release.translations
|
|
323
|
-
};
|
|
324
|
-
};
|
|
325
|
-
export const getFirmwareReleaseConfigInfo = (features, firmwareType) => {
|
|
326
|
-
const deviceMessageRelease = getReleaseConfig(features, firmwareType);
|
|
327
|
-
if (!deviceMessageRelease?.release) {
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
const {
|
|
331
|
-
release,
|
|
332
|
-
conditions,
|
|
333
|
-
firmware_type
|
|
334
|
-
} = deviceMessageRelease;
|
|
335
|
-
const currentVersion = getCurrentVersion(features);
|
|
336
|
-
const inBootloaderMode = features.bootloader_mode && !!currentVersion.bootloaderVersion;
|
|
337
|
-
const versionContext = inBootloaderMode ? {
|
|
338
|
-
version: currentVersion.bootloaderVersion,
|
|
339
|
-
minVersionKey: 'min_bootloader_version'
|
|
340
|
-
} : {
|
|
341
|
-
version: currentVersion.firmwareVersion,
|
|
342
|
-
minVersionKey: 'min_firmware_version'
|
|
343
|
-
};
|
|
344
|
-
const isCompatible = versionContext.version && versionUtils.isNewerOrEqual(versionContext.version, release[versionContext.minVersionKey]);
|
|
345
|
-
const releasesOfDevice = getReleasesAssetByDeviceModelAndFirmwareType(features.internal_model, firmwareType);
|
|
346
|
-
let suitableRelease = release;
|
|
347
|
-
if (!isCompatible) {
|
|
348
|
-
const alternativeRelease = findBestCompatibleRelease(releasesOfDevice, currentVersion, versionContext.minVersionKey);
|
|
349
|
-
if (alternativeRelease) {
|
|
350
|
-
suitableRelease = alternativeRelease;
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
const intermediary = getIntermediaryMessageRelease(features);
|
|
354
|
-
const finalTargetRelease = intermediary ? release : suitableRelease;
|
|
355
|
-
return getReleaseInfo({
|
|
356
|
-
isBitcoinOnlyAvailable: getIsBitcoinOnlyAvailable(features),
|
|
357
|
-
features,
|
|
358
|
-
release: finalTargetRelease,
|
|
359
|
-
conditions,
|
|
360
|
-
intermediary,
|
|
361
|
-
firmwareType: firmware_type,
|
|
362
|
-
releasesOfDevice
|
|
363
|
-
});
|
|
364
|
-
};
|
|
365
|
-
export const getFirmwareStatus = (features, firmwareType) => {
|
|
366
|
-
if (features.firmware_present === false) {
|
|
367
|
-
return 'none';
|
|
368
|
-
}
|
|
369
|
-
if (features.major_version === 1 && features.bootloader_mode) {
|
|
370
|
-
return 'unknown';
|
|
371
|
-
}
|
|
372
|
-
const releaseInfo = getFirmwareReleaseConfigInfo(features, firmwareType);
|
|
373
|
-
if (!releaseInfo) return 'custom';
|
|
374
|
-
if (releaseInfo.isRequired) return 'required';
|
|
375
|
-
if (releaseInfo.isNewer) return 'outdated';
|
|
376
|
-
return 'valid';
|
|
377
|
-
};
|
|
378
|
-
export const getFirmwareLocation = ({
|
|
379
|
-
firmwareVersion,
|
|
380
|
-
remotePath,
|
|
381
|
-
deviceModel,
|
|
382
|
-
firmwareType,
|
|
383
|
-
intermediaryVersion
|
|
384
|
-
}) => {
|
|
385
|
-
const firmwareName = intermediaryVersion ? buildIntermediaryFirmwareFileName(deviceModel, intermediaryVersion) : buildLocalFirmwareFileName(firmwareType, deviceModel, firmwareVersion);
|
|
386
|
-
const versionString = firmwareVersion.join('.');
|
|
387
|
-
const bundledBaseUrl = removeTrailingSlashes(settingsStore.get('binFilesBaseUrl'));
|
|
388
|
-
const isRealBundled = !bundledBaseUrl.includes('data.trezor.io');
|
|
389
|
-
const bundledVersion = getBundledFirmwareVersion(deviceModel, firmwareType);
|
|
390
|
-
const isIntermediary = bundledBaseUrl && intermediaryVersion;
|
|
391
|
-
const isMatchingBundledVersion = bundledBaseUrl && isRealBundled && bundledVersion === versionString;
|
|
392
|
-
if (isIntermediary || isMatchingBundledVersion) {
|
|
393
|
-
return {
|
|
394
|
-
baseUrl: bundledBaseUrl,
|
|
395
|
-
path: `firmware/${deviceModel.toLowerCase()}/${firmwareName}`
|
|
396
|
-
};
|
|
397
|
-
}
|
|
398
|
-
const {
|
|
399
|
-
firmwareDir,
|
|
400
|
-
firmwareList
|
|
401
|
-
} = localFirmwareStore.get();
|
|
402
|
-
if (isFirmwareCacheUsedForSelectedSource(settingsStore.get('firmwareChannel')) && firmwareList.includes(firmwareName)) {
|
|
403
|
-
return {
|
|
404
|
-
baseUrl: firmwareDir,
|
|
405
|
-
path: firmwareName
|
|
406
|
-
};
|
|
407
|
-
}
|
|
408
|
-
const onlineBaseUrl = getOnlineFirmwareBaseUrl(settingsStore.get('firmwareChannel'));
|
|
409
|
-
return {
|
|
410
|
-
baseUrl: onlineBaseUrl.BASE_URL,
|
|
411
|
-
path: remotePath
|
|
412
|
-
};
|
|
413
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
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;
|
|
@@ -1,16 +0,0 @@
|
|
|
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;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const loadProtobufModules: () => Promise<void>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { protobufManager } from "@trezor/protobuf";
|
|
2
|
-
import * as bitcoinProto from "@trezor/protobuf/lib/definitions/messages-bitcoin_pb.js";
|
|
3
|
-
import * as bleProto from "@trezor/protobuf/lib/definitions/messages-ble_pb.js";
|
|
4
|
-
import * as bootloaderProto from "@trezor/protobuf/lib/definitions/messages-bootloader_pb.js";
|
|
5
|
-
import * as cardanoProto from "@trezor/protobuf/lib/definitions/messages-cardano_pb.js";
|
|
6
|
-
import * as commonProto from "@trezor/protobuf/lib/definitions/messages-common_pb.js";
|
|
7
|
-
import * as cryptoProto from "@trezor/protobuf/lib/definitions/messages-crypto_pb.js";
|
|
8
|
-
import * as debugProto from "@trezor/protobuf/lib/definitions/messages-debug_pb.js";
|
|
9
|
-
import * as definitionsProto from "@trezor/protobuf/lib/definitions/messages-definitions_pb.js";
|
|
10
|
-
import * as eosProto from "@trezor/protobuf/lib/definitions/messages-eos_pb.js";
|
|
11
|
-
import * as ethereumEip712Proto from "@trezor/protobuf/lib/definitions/messages-ethereum-eip712_pb.js";
|
|
12
|
-
import * as ethereumProto from "@trezor/protobuf/lib/definitions/messages-ethereum_pb.js";
|
|
13
|
-
import * as evoluProto from "@trezor/protobuf/lib/definitions/messages-evolu_pb.js";
|
|
14
|
-
import * as managementProto from "@trezor/protobuf/lib/definitions/messages-management_pb.js";
|
|
15
|
-
import * as moneroProto from "@trezor/protobuf/lib/definitions/messages-monero_pb.js";
|
|
16
|
-
import * as nostrProto from "@trezor/protobuf/lib/definitions/messages-nostr_pb.js";
|
|
17
|
-
import * as rippleProto from "@trezor/protobuf/lib/definitions/messages-ripple_pb.js";
|
|
18
|
-
import * as solanaProto from "@trezor/protobuf/lib/definitions/messages-solana_pb.js";
|
|
19
|
-
import * as stellarProto from "@trezor/protobuf/lib/definitions/messages-stellar_pb.js";
|
|
20
|
-
import * as telemetryProto from "@trezor/protobuf/lib/definitions/messages-telemetry_pb.js";
|
|
21
|
-
import * as tezosProto from "@trezor/protobuf/lib/definitions/messages-tezos_pb.js";
|
|
22
|
-
import * as thpProto from "@trezor/protobuf/lib/definitions/messages-thp_pb.js";
|
|
23
|
-
import * as tronProto from "@trezor/protobuf/lib/definitions/messages-tron_pb.js";
|
|
24
|
-
import * as messagesProto from "@trezor/protobuf/lib/definitions/messages_pb.js";
|
|
25
|
-
import * as optionsProto from "@trezor/protobuf/lib/definitions/options_pb.js";
|
|
26
|
-
export const loadProtobufModules = () => {
|
|
27
|
-
const definitionModules = [bitcoinProto, bleProto, bootloaderProto, cardanoProto, commonProto, cryptoProto, debugProto, definitionsProto, eosProto, ethereumEip712Proto, ethereumProto, evoluProto, managementProto, moneroProto, nostrProto, rippleProto, solanaProto, stellarProto, telemetryProto, tezosProto, thpProto, tronProto, messagesProto, optionsProto];
|
|
28
|
-
protobufManager.load(definitionModules);
|
|
29
|
-
return Promise.resolve();
|
|
30
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ConnectSettings } from '@trezor/connect-common';
|
|
2
|
-
export declare const set: (next: ConnectSettings) => void;
|
|
3
|
-
export declare const update: (partial: Partial<ConnectSettings>) => void;
|
|
4
|
-
export declare const isLoaded: () => boolean;
|
|
5
|
-
export declare function get(): ConnectSettings;
|
|
6
|
-
export declare function get<T extends keyof ConnectSettings>(key: T): ConnectSettings[T];
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
|
|
2
|
-
let settings;
|
|
3
|
-
export const set = next => {
|
|
4
|
-
settings = next;
|
|
5
|
-
};
|
|
6
|
-
export const update = partial => {
|
|
7
|
-
if (!settings) {
|
|
8
|
-
throw ERRORS.TypedError('Runtime', 'settingsStore.update called before set()');
|
|
9
|
-
}
|
|
10
|
-
settings = {
|
|
11
|
-
...settings,
|
|
12
|
-
...partial
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
export const isLoaded = () => settings != null;
|
|
16
|
-
export function get(key) {
|
|
17
|
-
if (!settings) {
|
|
18
|
-
throw ERRORS.TypedError('Runtime', 'settingsStore.get called before set()');
|
|
19
|
-
}
|
|
20
|
-
return key === undefined ? settings : settings[key];
|
|
21
|
-
}
|