@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,90 +0,0 @@
|
|
|
1
|
-
import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
|
|
2
|
-
import { fromHardenedPathPart, toHardenedPathPart } from "@trezor/crypto-utils";
|
|
3
|
-
import { getCoinName } from "../data/coinInfo.js";
|
|
4
|
-
export const getAccountAddressN = (coinInfo, accountIndex, bip44) => {
|
|
5
|
-
if (!coinInfo) {
|
|
6
|
-
throw ERRORS.TypedError('Method_UnknownCoin');
|
|
7
|
-
}
|
|
8
|
-
const index = typeof accountIndex === 'number' ? accountIndex : 0;
|
|
9
|
-
const options = {
|
|
10
|
-
purpose: 44,
|
|
11
|
-
coinType: coinInfo.slip44,
|
|
12
|
-
...bip44
|
|
13
|
-
};
|
|
14
|
-
if (coinInfo.type === 'bitcoin') {
|
|
15
|
-
return [toHardenedPathPart(options.purpose), toHardenedPathPart(options.coinType), toHardenedPathPart(index)];
|
|
16
|
-
}
|
|
17
|
-
if (coinInfo.shortcut === 'ADA' || coinInfo.shortcut === 'tADA') {
|
|
18
|
-
return [toHardenedPathPart(1852), toHardenedPathPart(options.coinType), toHardenedPathPart(index)];
|
|
19
|
-
}
|
|
20
|
-
if (coinInfo.type === 'ethereum') {
|
|
21
|
-
return [toHardenedPathPart(options.purpose), toHardenedPathPart(options.coinType), toHardenedPathPart(0), 0, index];
|
|
22
|
-
}
|
|
23
|
-
if (coinInfo.shortcut === 'tXRP') {
|
|
24
|
-
return [toHardenedPathPart(options.purpose), toHardenedPathPart(144), toHardenedPathPart(index), 0, 0];
|
|
25
|
-
}
|
|
26
|
-
return [toHardenedPathPart(options.purpose), toHardenedPathPart(options.coinType), toHardenedPathPart(index), 0, 0];
|
|
27
|
-
};
|
|
28
|
-
export const getAccountLabel = (path, coinInfo) => {
|
|
29
|
-
if (coinInfo.type === 'bitcoin') {
|
|
30
|
-
const path0 = path[0];
|
|
31
|
-
const path2 = path[2];
|
|
32
|
-
const accountType = fromHardenedPathPart(path0);
|
|
33
|
-
const account = fromHardenedPathPart(path2);
|
|
34
|
-
let prefix = '';
|
|
35
|
-
if (accountType === 48) {
|
|
36
|
-
prefix = 'multisig';
|
|
37
|
-
} else if (accountType === 49 && coinInfo.segwit) {
|
|
38
|
-
prefix = 'segwit';
|
|
39
|
-
} else if (accountType === 44 && coinInfo.segwit) {
|
|
40
|
-
prefix = 'legacy';
|
|
41
|
-
}
|
|
42
|
-
return `${prefix} account #${account + 1}`;
|
|
43
|
-
}
|
|
44
|
-
const path4 = path[4];
|
|
45
|
-
const account = fromHardenedPathPart(path4);
|
|
46
|
-
return `account #${account + 1}`;
|
|
47
|
-
};
|
|
48
|
-
export const getPublicKeyLabel = (path, coinInfo) => {
|
|
49
|
-
let hasSegwit = false;
|
|
50
|
-
let coinLabel = 'Unknown coin';
|
|
51
|
-
if (coinInfo) {
|
|
52
|
-
coinLabel = coinInfo.label;
|
|
53
|
-
hasSegwit = coinInfo.segwit;
|
|
54
|
-
} else {
|
|
55
|
-
coinLabel = getCoinName(path);
|
|
56
|
-
}
|
|
57
|
-
const pubKeyPath0 = path[0];
|
|
58
|
-
const p1 = fromHardenedPathPart(pubKeyPath0);
|
|
59
|
-
const pubKeyPath2 = path[2];
|
|
60
|
-
let account = path.length >= 3 ? fromHardenedPathPart(pubKeyPath2) : -1;
|
|
61
|
-
let realAccountId = account + 1;
|
|
62
|
-
let prefix = 'Export public key';
|
|
63
|
-
let accountType = '';
|
|
64
|
-
if (p1 === 45342) {
|
|
65
|
-
const pubKeyPath1 = path[1];
|
|
66
|
-
const p2 = fromHardenedPathPart(pubKeyPath1);
|
|
67
|
-
const pubKeyPath3 = path[3];
|
|
68
|
-
account = fromHardenedPathPart(pubKeyPath3);
|
|
69
|
-
realAccountId = account + 1;
|
|
70
|
-
prefix = 'Export Copay ID of';
|
|
71
|
-
if (p2 === 48) {
|
|
72
|
-
accountType = 'multisig';
|
|
73
|
-
} else if (p2 === 44) {
|
|
74
|
-
accountType = 'legacy';
|
|
75
|
-
}
|
|
76
|
-
} else if (p1 === 48) {
|
|
77
|
-
accountType = `${coinLabel} multisig`;
|
|
78
|
-
} else if (p1 === 44 && hasSegwit) {
|
|
79
|
-
accountType = `${coinLabel} legacy`;
|
|
80
|
-
} else if (p1 === 84 && hasSegwit) {
|
|
81
|
-
accountType = `${coinLabel} native segwit`;
|
|
82
|
-
} else {
|
|
83
|
-
accountType = coinLabel;
|
|
84
|
-
}
|
|
85
|
-
if (realAccountId > 0) {
|
|
86
|
-
return `${prefix} of ${accountType} account #${realAccountId}`;
|
|
87
|
-
}
|
|
88
|
-
return prefix;
|
|
89
|
-
};
|
|
90
|
-
export const isUtxoBased = coinInfo => coinInfo.type === 'bitcoin' || coinInfo.shortcut === 'ADA' || coinInfo.shortcut === 'tADA';
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { address as BitcoinJSAddress } from "@trezor/utxo-lib";
|
|
2
|
-
const isValidBase58Address = (address, network) => {
|
|
3
|
-
try {
|
|
4
|
-
const decoded = BitcoinJSAddress.fromBase58Check(address, network);
|
|
5
|
-
if (decoded.version !== network.pubKeyHash && decoded.version !== network.scriptHash) {
|
|
6
|
-
return false;
|
|
7
|
-
}
|
|
8
|
-
} catch {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
return true;
|
|
12
|
-
};
|
|
13
|
-
const isValidBech32Address = (address, network) => {
|
|
14
|
-
try {
|
|
15
|
-
const decoded = BitcoinJSAddress.fromBech32(address);
|
|
16
|
-
if (decoded.prefix !== network.bech32) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
} catch {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
return true;
|
|
23
|
-
};
|
|
24
|
-
export const isValidAddress = (address, coinInfo) => isValidBase58Address(address, coinInfo.network) || isValidBech32Address(address, coinInfo.network);
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { DeviceModelInternal, FirmwareRelease, FirmwareReleaseConfig } from '@trezor/device-utils';
|
|
2
|
-
import { FirmwareType } from '@trezor/device-utils';
|
|
3
|
-
import type { VersionArray } from '@trezor/utils/lib/versionUtils';
|
|
4
|
-
import type { HttpRequestOptions, HttpRequestReturnType, HttpRequestType } from "./assetsTypes.js";
|
|
5
|
-
export declare class HttpRequestError extends Error {
|
|
6
|
-
response: Response;
|
|
7
|
-
constructor(response: Response);
|
|
8
|
-
}
|
|
9
|
-
export declare const getReleasesAssetByDeviceModelAndFirmwareType: (deviceModel: DeviceModelInternal, firmwareType: FirmwareType) => FirmwareRelease[];
|
|
10
|
-
export declare const getReleaseAsset: (deviceModel: DeviceModelInternal, version: VersionArray, firmwareType: FirmwareType) => FirmwareRelease;
|
|
11
|
-
export declare const firmwareReleaseConfigAssets: FirmwareReleaseConfig;
|
|
12
|
-
export declare const tryLocalAssetRequire: (url: string) => unknown;
|
|
13
|
-
export declare const httpRequest: <T extends HttpRequestType>(url: string, type?: T, options?: HttpRequestOptions) => Promise<HttpRequestReturnType<T>>;
|
package/lib/utils/assetUtils.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { firmwareAssets } from "@trezor/connect-data";
|
|
2
|
-
import connectDataCoinsEth from "@trezor/connect-data/files/coins-eth.json" with { type: "json" };
|
|
3
|
-
import connectDataCoins from "@trezor/connect-data/files/coins.json" with { type: "json" };
|
|
4
|
-
import firmwareReleaseConfigAssetsJson from "@trezor/connect-data/files/firmware/release/releases.v1.json" with { type: "json" };
|
|
5
|
-
import { FirmwareType } from "@trezor/device-utils";
|
|
6
|
-
import { versionUtils } from "@trezor/utils";
|
|
7
|
-
export class HttpRequestError extends Error {
|
|
8
|
-
response;
|
|
9
|
-
constructor(response) {
|
|
10
|
-
const message = `${response.status} while fetching ${response.url}`;
|
|
11
|
-
super(message);
|
|
12
|
-
this.response = response;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export const getReleasesAssetByDeviceModelAndFirmwareType = (deviceModel, firmwareType) => {
|
|
16
|
-
const firmwareTypeInFileName = firmwareType === FirmwareType.BitcoinOnly ? 'bitcoinonly' : 'universal';
|
|
17
|
-
const availableReleasesRecord = firmwareAssets?.[deviceModel.toLowerCase()]?.[firmwareTypeInFileName] ?? {};
|
|
18
|
-
return Object.values(availableReleasesRecord).sort((a, b) => versionUtils.isNewer(b.version, a.version) ? 1 : -1);
|
|
19
|
-
};
|
|
20
|
-
export const getReleaseAsset = (deviceModel, version, firmwareType) => {
|
|
21
|
-
const firmwareTypeInFileName = firmwareType === FirmwareType.BitcoinOnly ? 'bitcoinonly' : 'universal';
|
|
22
|
-
const fileName = `${deviceModel.toLowerCase()}-${version.join('.')}-${firmwareTypeInFileName}`;
|
|
23
|
-
const deviceModelLower = deviceModel.toLowerCase();
|
|
24
|
-
const asset = firmwareAssets?.[deviceModelLower]?.[firmwareTypeInFileName]?.[fileName];
|
|
25
|
-
return asset;
|
|
26
|
-
};
|
|
27
|
-
export const firmwareReleaseConfigAssets = firmwareReleaseConfigAssetsJson;
|
|
28
|
-
export const tryLocalAssetRequire = url => {
|
|
29
|
-
const fileUrl = url.split('?')[0];
|
|
30
|
-
switch (fileUrl) {
|
|
31
|
-
case './data/coins.json':
|
|
32
|
-
return connectDataCoins;
|
|
33
|
-
case './data/coins-eth.json':
|
|
34
|
-
return connectDataCoinsEth;
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
};
|
|
38
|
-
export const httpRequest = async (url, type = 'text', options) => {
|
|
39
|
-
const init = {
|
|
40
|
-
...options,
|
|
41
|
-
credentials: 'same-origin'
|
|
42
|
-
};
|
|
43
|
-
const response = await fetch(url, init);
|
|
44
|
-
if (response.ok) {
|
|
45
|
-
if (type === 'json') {
|
|
46
|
-
const txt = await response.text();
|
|
47
|
-
return JSON.parse(txt);
|
|
48
|
-
}
|
|
49
|
-
if (type === 'binary') {
|
|
50
|
-
return response.arrayBuffer();
|
|
51
|
-
}
|
|
52
|
-
return response.text();
|
|
53
|
-
}
|
|
54
|
-
throw new HttpRequestError(response);
|
|
55
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { httpRequest } from "./assetUtils.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { httpRequest } from "./assetUtils.js";
|
package/lib/utils/assets.d.ts
DELETED
package/lib/utils/assets.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import fetch from "cross-fetch";
|
|
2
|
-
import { promises as fs } from "fs";
|
|
3
|
-
import { httpRequest as browserHttpRequest, tryLocalAssetRequire } from "./assetUtils.js";
|
|
4
|
-
if (global && typeof global.fetch !== 'function') {
|
|
5
|
-
global.fetch = fetch;
|
|
6
|
-
}
|
|
7
|
-
export function httpRequest(url, type, options) {
|
|
8
|
-
const asset = options?.skipLocalForceDownload ? null : tryLocalAssetRequire(url);
|
|
9
|
-
if (!asset) {
|
|
10
|
-
return /^https?/.test(url) ? browserHttpRequest(url, type, options) : fs.readFile(url);
|
|
11
|
-
}
|
|
12
|
-
return asset;
|
|
13
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { HttpRequestError, tryLocalAssetRequire } from "./assetUtils.js";
|
|
2
|
-
export function httpRequest(url, type, options) {
|
|
3
|
-
const asset = options?.skipLocalForceDownload ? null : tryLocalAssetRequire(url);
|
|
4
|
-
if (!asset) {
|
|
5
|
-
return fetch(url, {
|
|
6
|
-
...options
|
|
7
|
-
}).then(response => {
|
|
8
|
-
if (!response.ok) {
|
|
9
|
-
throw new HttpRequestError(response);
|
|
10
|
-
}
|
|
11
|
-
if (type === 'binary') {
|
|
12
|
-
return response.arrayBuffer();
|
|
13
|
-
}
|
|
14
|
-
if (type === 'json') {
|
|
15
|
-
return response.json();
|
|
16
|
-
}
|
|
17
|
-
return response.text();
|
|
18
|
-
}).catch(error => {
|
|
19
|
-
throw error;
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
return asset;
|
|
23
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export type HttpRequestType = 'text' | 'binary' | 'json';
|
|
2
|
-
export type HttpRequestReturnType<T extends HttpRequestType> = T extends 'text' ? string : T extends 'binary' ? ArrayBuffer | Buffer : T extends 'json' ? Record<string, any> : never;
|
|
3
|
-
export interface HttpRequestOptions extends RequestInit {
|
|
4
|
-
skipLocalForceDownload?: boolean;
|
|
5
|
-
}
|
package/lib/utils/assetsTypes.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { MessagesSchema as PROTO } from '@trezor/protobuf';
|
|
2
|
-
type BuildOutputDescriptorBip380Params = {
|
|
3
|
-
coin?: string;
|
|
4
|
-
account: number;
|
|
5
|
-
purpose?: number;
|
|
6
|
-
scriptType?: PROTO.InternalInputScriptType;
|
|
7
|
-
xpub: string;
|
|
8
|
-
rootFingerprint?: number;
|
|
9
|
-
descriptor?: string;
|
|
10
|
-
};
|
|
11
|
-
export declare const buildOutputDescriptor: ({
|
|
12
|
-
coin,
|
|
13
|
-
account,
|
|
14
|
-
purpose,
|
|
15
|
-
scriptType,
|
|
16
|
-
xpub,
|
|
17
|
-
rootFingerprint,
|
|
18
|
-
descriptor
|
|
19
|
-
}: BuildOutputDescriptorBip380Params) => string | undefined;
|
|
20
|
-
export {};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { addDescriptorChecksum } from "@trezor/utxo-lib";
|
|
2
|
-
const PURPOSE_BIP44 = 44;
|
|
3
|
-
const PURPOSE_BIP49 = 49;
|
|
4
|
-
const PURPOSE_BIP84 = 84;
|
|
5
|
-
const PURPOSE_BIP86 = 86;
|
|
6
|
-
const PURPOSE_SLIP25 = 10025;
|
|
7
|
-
const SCRIPT_TYPE_TO_PURPOSES = {
|
|
8
|
-
SPENDADDRESS: [PURPOSE_BIP44],
|
|
9
|
-
SPENDP2SHWITNESS: [PURPOSE_BIP49],
|
|
10
|
-
SPENDWITNESS: [PURPOSE_BIP84],
|
|
11
|
-
SPENDTAPROOT: [PURPOSE_BIP86, PURPOSE_SLIP25]
|
|
12
|
-
};
|
|
13
|
-
const PURPOSE_TO_SCRIPT_TYPE = {
|
|
14
|
-
[PURPOSE_BIP44]: 'SPENDADDRESS',
|
|
15
|
-
[PURPOSE_BIP49]: 'SPENDP2SHWITNESS',
|
|
16
|
-
[PURPOSE_BIP84]: 'SPENDWITNESS',
|
|
17
|
-
[PURPOSE_BIP86]: 'SPENDTAPROOT',
|
|
18
|
-
[PURPOSE_SLIP25]: 'SPENDTAPROOT'
|
|
19
|
-
};
|
|
20
|
-
export const buildOutputDescriptor = ({
|
|
21
|
-
coin,
|
|
22
|
-
account,
|
|
23
|
-
purpose,
|
|
24
|
-
scriptType,
|
|
25
|
-
xpub,
|
|
26
|
-
rootFingerprint,
|
|
27
|
-
descriptor
|
|
28
|
-
}) => {
|
|
29
|
-
if (descriptor !== undefined) return descriptor;
|
|
30
|
-
if (purpose === undefined) {
|
|
31
|
-
scriptType ??= 'SPENDADDRESS';
|
|
32
|
-
purpose = SCRIPT_TYPE_TO_PURPOSES[scriptType]?.[0];
|
|
33
|
-
if (purpose === undefined) return undefined;
|
|
34
|
-
} else if (scriptType === undefined) {
|
|
35
|
-
scriptType = PURPOSE_TO_SCRIPT_TYPE[purpose];
|
|
36
|
-
if (!scriptType) return undefined;
|
|
37
|
-
} else if (!SCRIPT_TYPE_TO_PURPOSES[scriptType]?.includes(purpose)) {
|
|
38
|
-
return undefined;
|
|
39
|
-
}
|
|
40
|
-
const COIN_TYPE = {
|
|
41
|
-
Bitcoin: 0,
|
|
42
|
-
Testnet: 1,
|
|
43
|
-
Regtest: 1
|
|
44
|
-
};
|
|
45
|
-
const coinType = COIN_TYPE[coin ?? 'Bitcoin'];
|
|
46
|
-
if (coinType === undefined) {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
let path = `m/${purpose}h/${coinType}h/${account}h`;
|
|
50
|
-
if (purpose === PURPOSE_SLIP25) {
|
|
51
|
-
if (scriptType === 'SPENDTAPROOT') {
|
|
52
|
-
path += '/1h';
|
|
53
|
-
} else {
|
|
54
|
-
return undefined;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
const fmtMap = {
|
|
58
|
-
SPENDADDRESS: 'pkh({})',
|
|
59
|
-
SPENDP2SHWITNESS: 'sh(wpkh({}))',
|
|
60
|
-
SPENDWITNESS: 'wpkh({})',
|
|
61
|
-
SPENDTAPROOT: 'tr({})'
|
|
62
|
-
};
|
|
63
|
-
const fmt = fmtMap[scriptType];
|
|
64
|
-
const fingerprint = rootFingerprint ?? 0;
|
|
65
|
-
const inner = `[${fingerprint.toString(16).padStart(8, '0')}${path.slice(1)}]${xpub}/<0;1>/*`;
|
|
66
|
-
return addDescriptorChecksum(fmt.replace('{}', inner));
|
|
67
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { CoinInfo, Features } from '@trezor/connect-common';
|
|
2
|
-
import { DeviceModelInternal } from '@trezor/device-utils';
|
|
3
|
-
import type { MessagesSchema as PROTO } from '@trezor/protobuf';
|
|
4
|
-
export declare const parseCapabilities: (features?: Features) => PROTO.Capability[];
|
|
5
|
-
export declare const getUnavailableCapabilities: (features: Features, coins: CoinInfo[]) => Partial<Record<import("@trezor/connect-common").FirmwareCapability | (string & {}), import("@trezor/connect-common").UnavailableCapability>>;
|
|
6
|
-
export declare const parseRevision: (features: Features) => string | null;
|
|
7
|
-
export declare const ensureInternalModelFeature: (model: Features["model"]) => DeviceModelInternal;
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { DeviceModelInternal, getFirmwareOrBootloaderVersionArray } from "@trezor/device-utils";
|
|
2
|
-
import { isArrayMember, versionUtils } from "@trezor/utils";
|
|
3
|
-
import { isDebugFirmware } from "./firmwareUtils.js";
|
|
4
|
-
import { config } from "../data/config.js";
|
|
5
|
-
const DEFAULT_CAPABILITIES_T1 = ['Capability_Bitcoin', 'Capability_Bitcoin_like', 'Capability_Crypto', 'Capability_Ethereum', 'Capability_Stellar', 'Capability_U2F'];
|
|
6
|
-
const DEFAULT_CAPABILITIES_TT = ['Capability_Bitcoin', 'Capability_Bitcoin_like', 'Capability_Cardano', 'Capability_Crypto', 'Capability_Ethereum', 'Capability_Monero', 'Capability_Ripple', 'Capability_Solana', 'Capability_Stellar', 'Capability_Tezos', 'Capability_U2F'];
|
|
7
|
-
export const parseCapabilities = features => {
|
|
8
|
-
if (!features || features.firmware_present === false) return [];
|
|
9
|
-
if (!features.capabilities?.length) {
|
|
10
|
-
return features.major_version === 1 ? DEFAULT_CAPABILITIES_T1 : DEFAULT_CAPABILITIES_TT;
|
|
11
|
-
}
|
|
12
|
-
return features.capabilities;
|
|
13
|
-
};
|
|
14
|
-
export const getUnavailableCapabilities = (features, coins) => {
|
|
15
|
-
const {
|
|
16
|
-
capabilities
|
|
17
|
-
} = features;
|
|
18
|
-
const list = {};
|
|
19
|
-
if (!capabilities) return list;
|
|
20
|
-
const fw = getFirmwareOrBootloaderVersionArray(features).join('.');
|
|
21
|
-
const key = features.internal_model;
|
|
22
|
-
const supported = coins.filter(info => {
|
|
23
|
-
if (!info.support || info.support[key] === false) {
|
|
24
|
-
const shortcut = info.shortcut.toLowerCase();
|
|
25
|
-
const occurrences = coins.filter(coin => shortcut == coin.shortcut.toLowerCase());
|
|
26
|
-
const allUnsupported = occurrences.every(info2 => !info2.support || info2.support[key] === false);
|
|
27
|
-
if (allUnsupported) {
|
|
28
|
-
list[shortcut] = 'no-support';
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
return true;
|
|
33
|
-
});
|
|
34
|
-
const unavailable = supported.filter(info => {
|
|
35
|
-
if (info.type === 'bitcoin') {
|
|
36
|
-
if (info.name === 'Bitcoin' || info.name === 'Testnet' || info.name === 'Regtest') {
|
|
37
|
-
return !capabilities.includes('Capability_Bitcoin');
|
|
38
|
-
}
|
|
39
|
-
return !capabilities.includes('Capability_Bitcoin_like');
|
|
40
|
-
}
|
|
41
|
-
if (info.type === 'ethereum') {
|
|
42
|
-
return !capabilities.includes('Capability_Ethereum');
|
|
43
|
-
}
|
|
44
|
-
if ((info.shortcut === 'TRX' || info.shortcut === 'tTRX') && info.type === 'misc') {
|
|
45
|
-
return !capabilities.includes('Capability_Tron');
|
|
46
|
-
}
|
|
47
|
-
if (info.shortcut === 'ADA' || info.shortcut === 'tADA') {
|
|
48
|
-
return !capabilities.includes('Capability_Cardano');
|
|
49
|
-
}
|
|
50
|
-
if (info.shortcut === 'XRP' || info.shortcut === 'tXRP') {
|
|
51
|
-
return !capabilities.includes('Capability_Ripple');
|
|
52
|
-
}
|
|
53
|
-
if (info.shortcut === 'XLM' || info.shortcut === 'tXLM') {
|
|
54
|
-
return !capabilities.includes('Capability_Stellar');
|
|
55
|
-
}
|
|
56
|
-
if (info.shortcut === 'SOL' || info.shortcut === 'DSOL') {
|
|
57
|
-
return !capabilities.includes('Capability_Solana');
|
|
58
|
-
}
|
|
59
|
-
return !isArrayMember(`Capability_${info.name}`, capabilities);
|
|
60
|
-
});
|
|
61
|
-
unavailable.forEach(info => {
|
|
62
|
-
list[info.shortcut.toLowerCase()] = 'no-capability';
|
|
63
|
-
});
|
|
64
|
-
supported.filter(info => !unavailable.includes(info)).forEach(info => {
|
|
65
|
-
const supportVersion = info.support[key];
|
|
66
|
-
if (typeof supportVersion === 'string' && versionUtils.isNewer(supportVersion, fw)) {
|
|
67
|
-
list[info.shortcut.toLowerCase()] = 'update-required';
|
|
68
|
-
unavailable.push(info);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
const isDebug = isDebugFirmware(features);
|
|
72
|
-
config.supportedFirmware.forEach(s => {
|
|
73
|
-
if (!s.capabilities) return;
|
|
74
|
-
if (s.firmwareType && s.firmwareType === 'debug' !== isDebug) return;
|
|
75
|
-
const min = s.min ? s.min[key] : null;
|
|
76
|
-
const max = s.max ? s.max[key] : null;
|
|
77
|
-
if (min && (min === '0' || versionUtils.isNewer(min, fw))) {
|
|
78
|
-
const value = min === '0' ? 'no-support' : 'update-required';
|
|
79
|
-
s.capabilities.forEach(m => {
|
|
80
|
-
list[m] = value;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
if (max && !versionUtils.isNewerOrEqual(max, fw)) {
|
|
84
|
-
s.capabilities.forEach(m => {
|
|
85
|
-
list[m] = 'trezor-connect-outdated';
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
return list;
|
|
90
|
-
};
|
|
91
|
-
export const parseRevision = features => {
|
|
92
|
-
const {
|
|
93
|
-
revision
|
|
94
|
-
} = features;
|
|
95
|
-
if (!revision) return null;
|
|
96
|
-
if (/^(?=.*[a-f])([a-f0-9]*)$/gi.test(revision)) return revision;
|
|
97
|
-
const revisionUtf8 = Buffer.from(revision, 'hex').toString('utf-8');
|
|
98
|
-
return /^([a-f0-9])*$/gi.test(revisionUtf8) ? revisionUtf8 : revision;
|
|
99
|
-
};
|
|
100
|
-
export const ensureInternalModelFeature = model => {
|
|
101
|
-
switch (model.toUpperCase()) {
|
|
102
|
-
case 'T':
|
|
103
|
-
return DeviceModelInternal.T2T1;
|
|
104
|
-
case '1':
|
|
105
|
-
return DeviceModelInternal.T1B1;
|
|
106
|
-
default:
|
|
107
|
-
return DeviceModelInternal.UNKNOWN;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { FirmwareChannel } from '@trezor/connect-common/lib/types/firmware';
|
|
2
|
-
import type { FirmwareReleaseConfig } from '@trezor/device-utils';
|
|
3
|
-
interface RemoteBaseInfo {
|
|
4
|
-
BASE_URL: string;
|
|
5
|
-
MIDDLE_PATH: string;
|
|
6
|
-
}
|
|
7
|
-
type OnlineFirmwareBaseUrl = RemoteBaseInfo & {
|
|
8
|
-
firmwareChannel: FirmwareChannel;
|
|
9
|
-
};
|
|
10
|
-
export declare const getOnlineFirmwareBaseUrl: (firmwareChannel?: FirmwareChannel) => OnlineFirmwareBaseUrl;
|
|
11
|
-
export declare const getFirmwareReleaseConfig: (firmwareChannel?: FirmwareChannel) => Promise<{
|
|
12
|
-
config: FirmwareReleaseConfig;
|
|
13
|
-
isRemote: boolean;
|
|
14
|
-
}>;
|
|
15
|
-
export declare const getOnlyLocalFirmwareReleaseConfig: () => {
|
|
16
|
-
config: FirmwareReleaseConfig;
|
|
17
|
-
isRemote: false;
|
|
18
|
-
};
|
|
19
|
-
export {};
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { decode, verify } from "jws";
|
|
2
|
-
import { getFirmwareReleaseJwsPublicKey } from "@trezor/connect-data";
|
|
3
|
-
import { firmwareReleaseConfigAssets } from "./assetUtils.js";
|
|
4
|
-
const RELEASES_URL_REMOTE_BASE = {
|
|
5
|
-
BASE_URL: 'https://data.trezor.io',
|
|
6
|
-
MIDDLE_PATH: 'firmware'
|
|
7
|
-
};
|
|
8
|
-
const UNSIGNED_URL_REMOTE_BASE = {
|
|
9
|
-
BASE_URL: 'https://data.trezor.io',
|
|
10
|
-
MIDDLE_PATH: 'dev/firmware/releases/unsigned'
|
|
11
|
-
};
|
|
12
|
-
const UNSIGNED_STABLE_URL_REMOTE_BASE = {
|
|
13
|
-
BASE_URL: 'https://data.trezor.io',
|
|
14
|
-
MIDDLE_PATH: 'dev/firmware/releases/unsigned-stable'
|
|
15
|
-
};
|
|
16
|
-
const SIGNED_URL_REMOTE_BASE = {
|
|
17
|
-
BASE_URL: 'https://suite.corp.sldev.cz',
|
|
18
|
-
MIDDLE_PATH: 'firmware/signed'
|
|
19
|
-
};
|
|
20
|
-
const SIGNED_LOCALHOST = {
|
|
21
|
-
BASE_URL: 'http://localhost:3000',
|
|
22
|
-
MIDDLE_PATH: 'firmware/signed'
|
|
23
|
-
};
|
|
24
|
-
const UNSIGNED_LOCALHOST = {
|
|
25
|
-
BASE_URL: 'http://localhost:3000',
|
|
26
|
-
MIDDLE_PATH: 'firmware/unsigned'
|
|
27
|
-
};
|
|
28
|
-
const FIRMWARE_REMOTE_BASE_URLS = {
|
|
29
|
-
production: RELEASES_URL_REMOTE_BASE,
|
|
30
|
-
'production-early-access': RELEASES_URL_REMOTE_BASE,
|
|
31
|
-
'test-unsigned': UNSIGNED_URL_REMOTE_BASE,
|
|
32
|
-
'test-unsigned-stable': UNSIGNED_STABLE_URL_REMOTE_BASE,
|
|
33
|
-
'test-signed': SIGNED_URL_REMOTE_BASE,
|
|
34
|
-
'localhost-unsigned': UNSIGNED_LOCALHOST,
|
|
35
|
-
'localhost-signed': SIGNED_LOCALHOST
|
|
36
|
-
};
|
|
37
|
-
export const getOnlineFirmwareBaseUrl = firmwareChannel => {
|
|
38
|
-
if (!firmwareChannel) {
|
|
39
|
-
return {
|
|
40
|
-
...FIRMWARE_REMOTE_BASE_URLS['production'],
|
|
41
|
-
firmwareChannel: 'production'
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
...FIRMWARE_REMOTE_BASE_URLS[firmwareChannel],
|
|
46
|
-
firmwareChannel
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
const JWS_CONFIG = {
|
|
50
|
-
SIGN_ALGORITHM: 'ES256',
|
|
51
|
-
VERSION: 1,
|
|
52
|
-
REMOTE_FILENAME: 'releases.v1.json',
|
|
53
|
-
REQUEST_TIMEOUT_MS: 5000
|
|
54
|
-
};
|
|
55
|
-
const CONFIG_PATH_BY_CHANNEL = {
|
|
56
|
-
production: 'config/',
|
|
57
|
-
'production-early-access': 'config-early-access/'
|
|
58
|
-
};
|
|
59
|
-
const fetchRemoteJws = async firmwareChannel => {
|
|
60
|
-
const {
|
|
61
|
-
BASE_URL,
|
|
62
|
-
MIDDLE_PATH,
|
|
63
|
-
firmwareChannel: resolvedChannel
|
|
64
|
-
} = getOnlineFirmwareBaseUrl(firmwareChannel);
|
|
65
|
-
const configPath = CONFIG_PATH_BY_CHANNEL[resolvedChannel] ?? '';
|
|
66
|
-
const path = `${MIDDLE_PATH}/${configPath}${JWS_CONFIG.REMOTE_FILENAME}`;
|
|
67
|
-
const remoteReleasesUrl = new URL(path, BASE_URL);
|
|
68
|
-
try {
|
|
69
|
-
const controller = new AbortController();
|
|
70
|
-
const timeoutId = setTimeout(() => controller.abort('Request timed out'), JWS_CONFIG.REQUEST_TIMEOUT_MS);
|
|
71
|
-
const response = await fetch(remoteReleasesUrl.toString(), {
|
|
72
|
-
signal: controller.signal
|
|
73
|
-
});
|
|
74
|
-
clearTimeout(timeoutId);
|
|
75
|
-
if (!response.ok) {
|
|
76
|
-
throw new Error(`HTTP error! Status: ${response.status}`);
|
|
77
|
-
}
|
|
78
|
-
const data = await response.json();
|
|
79
|
-
if (typeof data.jws !== 'string') {
|
|
80
|
-
throw new Error('Invalid response format: "jws" property missing or not a string.');
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
jws: data.jws,
|
|
84
|
-
firmwareChannel: resolvedChannel
|
|
85
|
-
};
|
|
86
|
-
} catch (error) {
|
|
87
|
-
throw new Error(`Failed to fetch remote JWS: ${error instanceof Error ? error.message : String(error)}`);
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
const verifyAndDecodeJws = (jws, publicKey) => {
|
|
91
|
-
const decoded = decode(jws);
|
|
92
|
-
if (!decoded?.payload || !decoded.header) {
|
|
93
|
-
throw new Error('Invalid JWS structure.');
|
|
94
|
-
}
|
|
95
|
-
const parsedPayload = JSON.parse(decoded.payload);
|
|
96
|
-
if (decoded.header.alg !== JWS_CONFIG.SIGN_ALGORITHM) {
|
|
97
|
-
throw new Error('Invalid JWS algorithm');
|
|
98
|
-
}
|
|
99
|
-
if (parsedPayload.version !== JWS_CONFIG.VERSION) {
|
|
100
|
-
throw new Error('Config version mismatch.');
|
|
101
|
-
}
|
|
102
|
-
if (!verify(jws, JWS_CONFIG.SIGN_ALGORITHM, publicKey)) {
|
|
103
|
-
throw new Error('JWS signature is invalid.');
|
|
104
|
-
}
|
|
105
|
-
return parsedPayload;
|
|
106
|
-
};
|
|
107
|
-
export const getFirmwareReleaseConfig = async firmwareChannel => {
|
|
108
|
-
try {
|
|
109
|
-
const {
|
|
110
|
-
jws,
|
|
111
|
-
firmwareChannel: resolvedChannel
|
|
112
|
-
} = await fetchRemoteJws(firmwareChannel);
|
|
113
|
-
const useProductionKey = ['test-signed', 'production-early-access', 'production'].includes(resolvedChannel);
|
|
114
|
-
const publicKey = getFirmwareReleaseJwsPublicKey(useProductionKey);
|
|
115
|
-
const remoteConfig = verifyAndDecodeJws(jws, publicKey);
|
|
116
|
-
if (remoteConfig.sequence > firmwareReleaseConfigAssets.sequence) {
|
|
117
|
-
return {
|
|
118
|
-
config: remoteConfig,
|
|
119
|
-
isRemote: true
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
} catch {}
|
|
123
|
-
return {
|
|
124
|
-
config: firmwareReleaseConfigAssets,
|
|
125
|
-
isRemote: false
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
export const getOnlyLocalFirmwareReleaseConfig = () => ({
|
|
129
|
-
config: firmwareReleaseConfigAssets,
|
|
130
|
-
isRemote: false
|
|
131
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { CurrentVersion, Features, FirmwareChannel, StrictFeatures } from '@trezor/connect-common';
|
|
2
|
-
import { type DeviceModelInternal, type FirmwareRelease, FirmwareType } from '@trezor/device-utils';
|
|
3
|
-
import { type VersionArray } from '@trezor/utils';
|
|
4
|
-
export declare const isStrictFeatures: (extFeatures: Features) => extFeatures is StrictFeatures;
|
|
5
|
-
type VersionCheckProperty = 'min_firmware_version' | 'min_bootloader_version';
|
|
6
|
-
export declare const findBestCompatibleRelease: (availableFirmwares: FirmwareRelease[], currentVesion: CurrentVersion, checkProperty: VersionCheckProperty) => FirmwareRelease | undefined;
|
|
7
|
-
export declare const buildLocalReleaseName: (firmwareType: FirmwareType, deviceModel: DeviceModelInternal, version: VersionArray) => string;
|
|
8
|
-
export declare const buildLocalFirmwareFileName: (firmwareType: FirmwareType, deviceModel: DeviceModelInternal, version: VersionArray) => string;
|
|
9
|
-
export declare const buildIntermediaryFirmwareFileName: (internalModel: DeviceModelInternal, version: number) => string;
|
|
10
|
-
export declare const getFirmwareMode: (features: Features) => "normal" | "bootloader" | "initialize" | "seedless";
|
|
11
|
-
export declare const isDebugFirmware: (features: Features) => boolean;
|
|
12
|
-
export declare const getFirmwareType: (features: Features) => FirmwareType;
|
|
13
|
-
export declare const isProductionFirmwareChannel: (firmwareChannel?: FirmwareChannel) => firmwareChannel is "production" | "production-early-access" | undefined;
|
|
14
|
-
export declare const isFirmwareCacheUsedForSelectedSource: (firmwareChannel?: FirmwareChannel) => firmwareChannel is "production" | "production-early-access" | undefined;
|
|
15
|
-
export {};
|