@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,35 +0,0 @@
|
|
|
1
|
-
import { EthereumVerifyMessage as EthereumVerifyMessageSchema } from "@trezor/connect-common";
|
|
2
|
-
import { Assert } from "@trezor/schema-utils";
|
|
3
|
-
import { AbstractMethod } from "../../../core/AbstractMethod.js";
|
|
4
|
-
import { validateModelOneMessageSize } from "../../../device/validateMessageSize.js";
|
|
5
|
-
import { messageToHex, stripHexPrefix } from "../../../utils/formatUtils.js";
|
|
6
|
-
export default class EthereumVerifyMessage extends AbstractMethod {
|
|
7
|
-
constructor(message) {
|
|
8
|
-
const {
|
|
9
|
-
payload
|
|
10
|
-
} = message;
|
|
11
|
-
Assert(EthereumVerifyMessageSchema, payload);
|
|
12
|
-
const messageHex = payload.hex ? messageToHex(payload.message) : Buffer.from(payload.message, 'utf8').toString('hex');
|
|
13
|
-
const params = {
|
|
14
|
-
address: stripHexPrefix(payload.address),
|
|
15
|
-
signature: stripHexPrefix(payload.signature),
|
|
16
|
-
message: messageHex
|
|
17
|
-
};
|
|
18
|
-
super(message, params);
|
|
19
|
-
this.requiredDeviceCapabilities = ['Capability_Ethereum'];
|
|
20
|
-
}
|
|
21
|
-
get requiredPermissions() {
|
|
22
|
-
return [{
|
|
23
|
-
permission: 'verify_message'
|
|
24
|
-
}];
|
|
25
|
-
}
|
|
26
|
-
get info() {
|
|
27
|
-
return 'Verify message';
|
|
28
|
-
}
|
|
29
|
-
async run() {
|
|
30
|
-
validateModelOneMessageSize(this.getDevice(), this.params.message);
|
|
31
|
-
const cmd = this.getDevice().getCommands();
|
|
32
|
-
const response = await cmd.typedCall('EthereumVerifyMessage', 'Success', this.params);
|
|
33
|
-
return response.message;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { default as ethereumGetAddress } from "./ethereumGetAddress.js";
|
|
2
|
-
export { default as ethereumGetPublicKey } from "./ethereumGetPublicKey.js";
|
|
3
|
-
export { default as ethereumSignMessage } from "./ethereumSignMessage.js";
|
|
4
|
-
export { default as ethereumSignTransaction } from "./ethereumSignTransaction.js";
|
|
5
|
-
export { default as ethereumSignTypedData } from "./ethereumSignTypedData.js";
|
|
6
|
-
export { default as ethereumVerifyMessage } from "./ethereumVerifyMessage.js";
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { default as ethereumGetAddress } from "./ethereumGetAddress.js";
|
|
2
|
-
export { default as ethereumGetPublicKey } from "./ethereumGetPublicKey.js";
|
|
3
|
-
export { default as ethereumSignMessage } from "./ethereumSignMessage.js";
|
|
4
|
-
export { default as ethereumSignTransaction } from "./ethereumSignTransaction.js";
|
|
5
|
-
export { default as ethereumSignTypedData } from "./ethereumSignTypedData.js";
|
|
6
|
-
export { default as ethereumVerifyMessage } from "./ethereumVerifyMessage.js";
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { EthereumNetworkInfoDefinitionValues } from '@trezor/connect-common';
|
|
2
|
-
import type { MessagesSchema } from '@trezor/protobuf';
|
|
3
|
-
import type { Static } from '@trezor/schema-utils';
|
|
4
|
-
interface GetEthereumDefinitions {
|
|
5
|
-
chainId?: number;
|
|
6
|
-
slip44?: number;
|
|
7
|
-
contractAddress?: string;
|
|
8
|
-
functionSignature?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const getEthereumDefinitions: ({
|
|
11
|
-
chainId,
|
|
12
|
-
slip44,
|
|
13
|
-
contractAddress,
|
|
14
|
-
functionSignature
|
|
15
|
-
}: GetEthereumDefinitions) => Promise<{
|
|
16
|
-
encoded_network?: ArrayBuffer | undefined;
|
|
17
|
-
encoded_token?: ArrayBuffer | undefined;
|
|
18
|
-
encoded_display_format?: string | undefined;
|
|
19
|
-
}>;
|
|
20
|
-
export type EthereumNetworkDefinitionDecoded = Static<typeof EthereumNetworkDefinitionDecoded>;
|
|
21
|
-
export declare const EthereumNetworkDefinitionDecoded: import("@sinclair/typebox").TObject<{
|
|
22
|
-
chain_id: import("@sinclair/typebox").TNumber;
|
|
23
|
-
name: import("@sinclair/typebox").TString;
|
|
24
|
-
slip44: import("@sinclair/typebox").TNumber;
|
|
25
|
-
symbol: import("@sinclair/typebox").TString;
|
|
26
|
-
}>;
|
|
27
|
-
export type EthereumTokenDefinitionDecoded = Static<typeof EthereumTokenDefinitionDecoded>;
|
|
28
|
-
export declare const EthereumTokenDefinitionDecoded: import("@sinclair/typebox").TObject<{
|
|
29
|
-
address: import("@sinclair/typebox").TString;
|
|
30
|
-
chain_id: import("@sinclair/typebox").TNumber;
|
|
31
|
-
decimals: import("@sinclair/typebox").TNumber;
|
|
32
|
-
name: import("@sinclair/typebox").TString;
|
|
33
|
-
symbol: import("@sinclair/typebox").TString;
|
|
34
|
-
}>;
|
|
35
|
-
export type EthereumDefinitionDecoded = Static<typeof EthereumDefinitionDecoded>;
|
|
36
|
-
export declare const EthereumDefinitionDecoded: import("@sinclair/typebox").TObject<{
|
|
37
|
-
network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
38
|
-
chain_id: import("@sinclair/typebox").TNumber;
|
|
39
|
-
name: import("@sinclair/typebox").TString;
|
|
40
|
-
slip44: import("@sinclair/typebox").TNumber;
|
|
41
|
-
symbol: import("@sinclair/typebox").TString;
|
|
42
|
-
}>>;
|
|
43
|
-
token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
44
|
-
address: import("@sinclair/typebox").TString;
|
|
45
|
-
chain_id: import("@sinclair/typebox").TNumber;
|
|
46
|
-
decimals: import("@sinclair/typebox").TNumber;
|
|
47
|
-
name: import("@sinclair/typebox").TString;
|
|
48
|
-
symbol: import("@sinclair/typebox").TString;
|
|
49
|
-
}>>;
|
|
50
|
-
}>;
|
|
51
|
-
export declare const decodeEthereumDefinition: (encodedDefinition: MessagesSchema.EthereumDefinitions) => EthereumDefinitionDecoded;
|
|
52
|
-
export declare const ethereumNetworkInfoFromDefinition: (definition: EthereumNetworkDefinitionDecoded) => EthereumNetworkInfoDefinitionValues;
|
|
53
|
-
export {};
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import fetch from "cross-fetch";
|
|
2
|
-
import { protobufManager } from "@trezor/protobuf";
|
|
3
|
-
import { trzd } from "@trezor/protocol";
|
|
4
|
-
import { Assert, Type } from "@trezor/schema-utils";
|
|
5
|
-
import { ethereumNetworkInfoBase } from "../../data/coinInfo.js";
|
|
6
|
-
import * as settingsStore from "../../data/settingsStore.js";
|
|
7
|
-
const getDefinitionsBaseUrl = (channel = 'production') => {
|
|
8
|
-
switch (channel) {
|
|
9
|
-
case 'production':
|
|
10
|
-
return 'https://data.trezor.io/firmware/eth-definitions';
|
|
11
|
-
case 'development':
|
|
12
|
-
return 'https://data.trezor.io/dev/firmware/dev-definitions/eth';
|
|
13
|
-
case 'local':
|
|
14
|
-
return 'http://localhost:3000';
|
|
15
|
-
default:
|
|
16
|
-
throw new Error(`Unknown channel: ${channel}`);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
export const getEthereumDefinitions = async ({
|
|
20
|
-
chainId,
|
|
21
|
-
slip44,
|
|
22
|
-
contractAddress,
|
|
23
|
-
functionSignature
|
|
24
|
-
}) => {
|
|
25
|
-
const definitions = {};
|
|
26
|
-
if (!chainId && !slip44) {
|
|
27
|
-
throw new Error('argument chainId or slip44 is required');
|
|
28
|
-
}
|
|
29
|
-
const channel = settingsStore.isLoaded() ? settingsStore.get('definitionsChannel') : undefined;
|
|
30
|
-
const baseUrl = getDefinitionsBaseUrl(channel);
|
|
31
|
-
try {
|
|
32
|
-
const networkDefinitionUrl = `${baseUrl}/${chainId ? 'chain-id' : 'slip44'}/${chainId ?? slip44}/network.dat`;
|
|
33
|
-
const networkDefinition = await fetch(networkDefinitionUrl);
|
|
34
|
-
if (networkDefinition.status === 200) {
|
|
35
|
-
definitions.encoded_network = await networkDefinition.arrayBuffer();
|
|
36
|
-
} else if (networkDefinition.status !== 404) {
|
|
37
|
-
throw new Error(`unexpected status: ${networkDefinition.status}`);
|
|
38
|
-
}
|
|
39
|
-
} catch (err) {
|
|
40
|
-
console.warn(`unable to download or parse ${chainId} definition. detail: ${err.message}`);
|
|
41
|
-
}
|
|
42
|
-
try {
|
|
43
|
-
if (contractAddress) {
|
|
44
|
-
const lowerCaseContractAddress = contractAddress.toLowerCase();
|
|
45
|
-
const tokenDefinitionUrl = `${baseUrl}/${chainId ? 'chain-id' : 'slip44'}/${chainId ?? slip44}/token-${lowerCaseContractAddress}.dat`;
|
|
46
|
-
const tokenDefinition = await fetch(tokenDefinitionUrl);
|
|
47
|
-
if (tokenDefinition.status === 200) {
|
|
48
|
-
definitions.encoded_token = await tokenDefinition.arrayBuffer();
|
|
49
|
-
} else if (tokenDefinition.status !== 404) {
|
|
50
|
-
throw new Error(`unexpected status: ${tokenDefinition.status}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
} catch (err) {
|
|
54
|
-
console.warn(`unable to download or parse ${chainId}/${contractAddress} definition. detail: ${err.message}`);
|
|
55
|
-
}
|
|
56
|
-
try {
|
|
57
|
-
if (chainId && contractAddress && functionSignature) {
|
|
58
|
-
const lowerCaseContractAddress = contractAddress.toLowerCase();
|
|
59
|
-
const lowerCaseFunctionSignature = functionSignature.toLowerCase();
|
|
60
|
-
const displayFormatUrl = `${baseUrl}/chain-id/${chainId}/display-format/${lowerCaseContractAddress}-${lowerCaseFunctionSignature}.dat`;
|
|
61
|
-
const displayFormatDefinition = await fetch(displayFormatUrl);
|
|
62
|
-
if (displayFormatDefinition.status === 200) {
|
|
63
|
-
const encodedDisplayFormat = await displayFormatDefinition.arrayBuffer();
|
|
64
|
-
definitions.encoded_display_format = Buffer.from(encodedDisplayFormat).toString('hex');
|
|
65
|
-
} else if (displayFormatDefinition.status !== 404) {
|
|
66
|
-
throw new Error(`unexpected status: ${displayFormatDefinition.status}`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
} catch (err) {
|
|
70
|
-
console.warn(`unable to download or parse ${chainId}/${contractAddress}/${functionSignature} display-format definition. detail: ${err.message}`);
|
|
71
|
-
}
|
|
72
|
-
return definitions;
|
|
73
|
-
};
|
|
74
|
-
export const EthereumNetworkDefinitionDecoded = Type.Object({
|
|
75
|
-
chain_id: Type.Number(),
|
|
76
|
-
name: Type.String(),
|
|
77
|
-
slip44: Type.Number(),
|
|
78
|
-
symbol: Type.String()
|
|
79
|
-
});
|
|
80
|
-
export const EthereumTokenDefinitionDecoded = Type.Object({
|
|
81
|
-
address: Type.String(),
|
|
82
|
-
chain_id: Type.Number(),
|
|
83
|
-
decimals: Type.Number(),
|
|
84
|
-
name: Type.String(),
|
|
85
|
-
symbol: Type.String()
|
|
86
|
-
});
|
|
87
|
-
export const EthereumDefinitionDecoded = Type.Object({
|
|
88
|
-
network: Type.Optional(EthereumNetworkDefinitionDecoded),
|
|
89
|
-
token: Type.Optional(EthereumTokenDefinitionDecoded)
|
|
90
|
-
});
|
|
91
|
-
export const decodeEthereumDefinition = encodedDefinition => {
|
|
92
|
-
const decoded = {
|
|
93
|
-
network: undefined,
|
|
94
|
-
token: undefined
|
|
95
|
-
};
|
|
96
|
-
['encoded_token', 'encoded_network'].forEach(key => {
|
|
97
|
-
const encodedPayload = encodedDefinition[key];
|
|
98
|
-
if (!encodedPayload) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
const {
|
|
102
|
-
definitionType,
|
|
103
|
-
protobufPayload
|
|
104
|
-
} = trzd.decode(encodedPayload);
|
|
105
|
-
const {
|
|
106
|
-
message: decodedDefinition
|
|
107
|
-
} = protobufManager.decode(definitionType === 0 ? 'EthereumNetworkInfo' : 'EthereumTokenInfo', protobufPayload);
|
|
108
|
-
if (key === 'encoded_network') {
|
|
109
|
-
Assert(EthereumNetworkDefinitionDecoded, decodedDefinition);
|
|
110
|
-
decoded.network = decodedDefinition;
|
|
111
|
-
} else if (key === 'encoded_token') {
|
|
112
|
-
Assert(EthereumTokenDefinitionDecoded, decodedDefinition);
|
|
113
|
-
decoded.token = decodedDefinition;
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
return decoded;
|
|
117
|
-
};
|
|
118
|
-
export const ethereumNetworkInfoFromDefinition = definition => ({
|
|
119
|
-
...ethereumNetworkInfoBase,
|
|
120
|
-
chainId: definition.chain_id,
|
|
121
|
-
label: definition.name,
|
|
122
|
-
name: definition.name,
|
|
123
|
-
slip44: definition.slip44,
|
|
124
|
-
shortcut: definition.symbol,
|
|
125
|
-
support: {
|
|
126
|
-
T1B1: '1.6.2',
|
|
127
|
-
T2T1: '2.0.7',
|
|
128
|
-
T2B1: '2.0.0',
|
|
129
|
-
T3B1: '2.0.0',
|
|
130
|
-
T3T1: '2.0.0',
|
|
131
|
-
T3W1: '2.0.0',
|
|
132
|
-
UNKNOWN: '0.0.0'
|
|
133
|
-
},
|
|
134
|
-
blockchainLink: undefined
|
|
135
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { EthereumAccessList, EthereumTransaction, EthereumTransactionEIP1559, PROTO } from '@trezor/connect-common';
|
|
2
|
-
import type { MessagesSchema } from '@trezor/protobuf';
|
|
3
|
-
import type { TypedCall } from "../../device/DeviceCommands.js";
|
|
4
|
-
type TxSignature = {
|
|
5
|
-
v: `0x${string}`;
|
|
6
|
-
r: `0x${string}`;
|
|
7
|
-
s: `0x${string}`;
|
|
8
|
-
};
|
|
9
|
-
export declare const serializeEthereumTx: (tx: EthereumTransactionEIP1559 | EthereumTransaction, signature: {
|
|
10
|
-
v: `0x${string}`;
|
|
11
|
-
r: `0x${string}`;
|
|
12
|
-
s: `0x${string}`;
|
|
13
|
-
}, isLegacy: boolean) => `0x02${string}` | import("viem").TransactionSerializedLegacy;
|
|
14
|
-
export declare const ethereumSignTx: (typedCall: TypedCall, address_n: number[], to: string | null, value: string, gas_limit: string, gas_price: string, nonce: string, chain_id: number, chunkify: boolean, data?: string, tx_type?: number, definitions?: MessagesSchema.EthereumDefinitions, payment_req?: PROTO.PaymentRequest) => Promise<TxSignature>;
|
|
15
|
-
export declare const ethereumSignTxEIP1559: (typedCall: TypedCall, address_n: number[], to: string | null, value: string, gas_limit: string, max_gas_fee: string, max_priority_fee: string, nonce: string, chain_id: number, chunkify: boolean, data?: string, access_list?: EthereumAccessList[], definitions?: MessagesSchema.EthereumDefinitions, payment_req?: PROTO.PaymentRequest) => Promise<TxSignature>;
|
|
16
|
-
export {};
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { serializeTransaction } from "viem";
|
|
2
|
-
import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
|
|
3
|
-
import { getEthereumDefinitions } from "./ethereumDefinitions.js";
|
|
4
|
-
import { addHexPrefix } from "../../utils/formatUtils.js";
|
|
5
|
-
const splitString = (str, len) => {
|
|
6
|
-
if (str == null) {
|
|
7
|
-
return ['', ''];
|
|
8
|
-
}
|
|
9
|
-
const first = str.slice(0, len);
|
|
10
|
-
const second = str.slice(len);
|
|
11
|
-
return [first, second];
|
|
12
|
-
};
|
|
13
|
-
async function processTxRequest(typedCall, request, data, chain_id) {
|
|
14
|
-
if (!request.data_length) {
|
|
15
|
-
let v = request.signature_v;
|
|
16
|
-
const r = request.signature_r;
|
|
17
|
-
const s = request.signature_s;
|
|
18
|
-
if (v == null || r == null || s == null) {
|
|
19
|
-
throw ERRORS.TypedError('Runtime', 'processTxRequest: Unexpected request');
|
|
20
|
-
}
|
|
21
|
-
if (chain_id && v <= 1) {
|
|
22
|
-
v += 2 * chain_id + 35;
|
|
23
|
-
}
|
|
24
|
-
return Promise.resolve({
|
|
25
|
-
v: `0x${v.toString(16)}`,
|
|
26
|
-
r: `0x${r}`,
|
|
27
|
-
s: `0x${s}`
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
const [first, rest] = splitString(data, request.data_length * 2);
|
|
31
|
-
const nextResponse = await typedCall('EthereumTxAck', ['EthereumTxRequest', 'EthereumDefinitionRequest'], {
|
|
32
|
-
data_chunk: first
|
|
33
|
-
});
|
|
34
|
-
return handleTxFlowResponse(typedCall, nextResponse, rest, chain_id);
|
|
35
|
-
}
|
|
36
|
-
async function processDefinitionRequest(typedCall, request, data, chain_id) {
|
|
37
|
-
const definitions = await getEthereumDefinitions({
|
|
38
|
-
chainId: request.chain_id,
|
|
39
|
-
contractAddress: request.token_address,
|
|
40
|
-
functionSignature: request.func_sig
|
|
41
|
-
});
|
|
42
|
-
const nextResponse = await typedCall('EthereumDefinitionAck', ['EthereumTxRequest', 'EthereumDefinitionRequest'], {
|
|
43
|
-
definitions
|
|
44
|
-
});
|
|
45
|
-
return handleTxFlowResponse(typedCall, nextResponse, data, chain_id);
|
|
46
|
-
}
|
|
47
|
-
function handleTxFlowResponse(typedCall, response, data, chain_id) {
|
|
48
|
-
if (response.type === 'EthereumDefinitionRequest') {
|
|
49
|
-
return processDefinitionRequest(typedCall, response.message, data, chain_id);
|
|
50
|
-
}
|
|
51
|
-
return processTxRequest(typedCall, response.message, data, chain_id);
|
|
52
|
-
}
|
|
53
|
-
const ifNotUndefined = (value, convert) => value === undefined ? undefined : convert(value);
|
|
54
|
-
const toBigInt = value => BigInt(addHexPrefix(value));
|
|
55
|
-
export const serializeEthereumTx = (tx, signature, isLegacy) => serializeTransaction({
|
|
56
|
-
value: toBigInt(tx.value),
|
|
57
|
-
nonce: Number(addHexPrefix(tx.nonce)),
|
|
58
|
-
data: ifNotUndefined(tx.data, addHexPrefix),
|
|
59
|
-
to: ifNotUndefined(tx.to || undefined, addHexPrefix),
|
|
60
|
-
gas: ifNotUndefined(tx.gasLimit, toBigInt),
|
|
61
|
-
chainId: tx.chainId,
|
|
62
|
-
...(isLegacy ? {
|
|
63
|
-
type: 'legacy',
|
|
64
|
-
gasPrice: ifNotUndefined(tx.gasPrice, toBigInt)
|
|
65
|
-
} : {
|
|
66
|
-
type: 'eip1559',
|
|
67
|
-
maxFeePerGas: ifNotUndefined(tx.maxFeePerGas, toBigInt),
|
|
68
|
-
maxPriorityFeePerGas: ifNotUndefined(tx.maxPriorityFeePerGas, toBigInt),
|
|
69
|
-
accessList: ('accessList' in tx ? tx.accessList : undefined)?.map(({
|
|
70
|
-
address,
|
|
71
|
-
storageKeys
|
|
72
|
-
}) => ({
|
|
73
|
-
address: addHexPrefix(address),
|
|
74
|
-
storageKeys: storageKeys.map(addHexPrefix)
|
|
75
|
-
}))
|
|
76
|
-
})
|
|
77
|
-
}, {
|
|
78
|
-
...signature,
|
|
79
|
-
v: toBigInt(signature.v)
|
|
80
|
-
});
|
|
81
|
-
const stripLeadingZeroes = str => {
|
|
82
|
-
while (/^00/.test(str)) {
|
|
83
|
-
str = str.slice(2);
|
|
84
|
-
}
|
|
85
|
-
return str;
|
|
86
|
-
};
|
|
87
|
-
export const ethereumSignTx = async (typedCall, address_n, to, value, gas_limit, gas_price, nonce, chain_id, chunkify, data, tx_type, definitions, payment_req) => {
|
|
88
|
-
const length = data == null ? 0 : data.length / 2;
|
|
89
|
-
const [first, rest] = splitString(data, 1024 * 2);
|
|
90
|
-
let message = {
|
|
91
|
-
address_n,
|
|
92
|
-
chain_id,
|
|
93
|
-
nonce: stripLeadingZeroes(nonce),
|
|
94
|
-
gas_price: stripLeadingZeroes(gas_price),
|
|
95
|
-
gas_limit: stripLeadingZeroes(gas_limit),
|
|
96
|
-
to: to || undefined,
|
|
97
|
-
value: stripLeadingZeroes(value),
|
|
98
|
-
definitions,
|
|
99
|
-
chunkify,
|
|
100
|
-
payment_req,
|
|
101
|
-
supports_definition_request: true
|
|
102
|
-
};
|
|
103
|
-
if (length !== 0) {
|
|
104
|
-
message = {
|
|
105
|
-
...message,
|
|
106
|
-
data_length: length,
|
|
107
|
-
data_initial_chunk: first
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
if (tx_type !== null) {
|
|
111
|
-
message = {
|
|
112
|
-
...message,
|
|
113
|
-
tx_type
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
const response = await typedCall('EthereumSignTx', ['EthereumTxRequest', 'EthereumDefinitionRequest'], message);
|
|
117
|
-
return handleTxFlowResponse(typedCall, response, rest, chain_id);
|
|
118
|
-
};
|
|
119
|
-
export const ethereumSignTxEIP1559 = async (typedCall, address_n, to, value, gas_limit, max_gas_fee, max_priority_fee, nonce, chain_id, chunkify, data, access_list, definitions, payment_req) => {
|
|
120
|
-
const length = data == null ? 0 : data.length / 2;
|
|
121
|
-
const [first, rest] = splitString(data, 1024 * 2);
|
|
122
|
-
const message = {
|
|
123
|
-
address_n,
|
|
124
|
-
nonce: stripLeadingZeroes(nonce),
|
|
125
|
-
max_gas_fee: stripLeadingZeroes(max_gas_fee),
|
|
126
|
-
max_priority_fee: stripLeadingZeroes(max_priority_fee),
|
|
127
|
-
gas_limit: stripLeadingZeroes(gas_limit),
|
|
128
|
-
to: to || undefined,
|
|
129
|
-
value: stripLeadingZeroes(value),
|
|
130
|
-
data_length: length,
|
|
131
|
-
data_initial_chunk: first,
|
|
132
|
-
chain_id,
|
|
133
|
-
access_list: (access_list || []).map(a => ({
|
|
134
|
-
address: a.address,
|
|
135
|
-
storage_keys: a.storageKeys
|
|
136
|
-
})),
|
|
137
|
-
definitions,
|
|
138
|
-
chunkify,
|
|
139
|
-
payment_req,
|
|
140
|
-
supports_definition_request: true
|
|
141
|
-
};
|
|
142
|
-
const response = await typedCall('EthereumSignTxEIP1559', ['EthereumTxRequest', 'EthereumDefinitionRequest'], message);
|
|
143
|
-
return handleTxFlowResponse(typedCall, response, rest);
|
|
144
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { EthereumSignTypedDataTypes } from '@trezor/connect-common';
|
|
2
|
-
import { MessagesSchema as PROTO } from '@trezor/protobuf';
|
|
3
|
-
export declare function parseArrayType(arrayTypeName: string): {
|
|
4
|
-
entryTypeName: string;
|
|
5
|
-
arraySize: number | null;
|
|
6
|
-
};
|
|
7
|
-
export declare function encodeData(typeName: string, data: any): string;
|
|
8
|
-
export declare function getFieldType(typeName: string, types: EthereumSignTypedDataTypes): PROTO.EthereumFieldType;
|
|
9
|
-
type LooseTypedDataDomain = {
|
|
10
|
-
name?: string;
|
|
11
|
-
version?: string;
|
|
12
|
-
chainId?: string | number | bigint;
|
|
13
|
-
verifyingContract?: string;
|
|
14
|
-
salt?: string | ArrayBuffer;
|
|
15
|
-
};
|
|
16
|
-
type TransformTypedDataInput<T extends Record<string, readonly {
|
|
17
|
-
name: string;
|
|
18
|
-
type: string;
|
|
19
|
-
}[]>> = {
|
|
20
|
-
types: T;
|
|
21
|
-
primaryType: keyof T | string;
|
|
22
|
-
domain: LooseTypedDataDomain;
|
|
23
|
-
message: Record<string, unknown>;
|
|
24
|
-
};
|
|
25
|
-
export declare const transformTypedData: <T extends Record<string, readonly {
|
|
26
|
-
name: string;
|
|
27
|
-
type: string;
|
|
28
|
-
}[]>>(data: TransformTypedDataInput<T>, metamask_v4_compat: boolean) => {
|
|
29
|
-
domain_separator_hash: string;
|
|
30
|
-
message_hash: string | null;
|
|
31
|
-
};
|
|
32
|
-
export {};
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { hashDomain, hashStruct } from "viem";
|
|
2
|
-
import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
|
|
3
|
-
import { MessagesSchema as PROTO } from "@trezor/protobuf";
|
|
4
|
-
import { getIndexOrThrow } from "@trezor/utils";
|
|
5
|
-
import { BigNumber } from "@trezor/utils/lib/bigNumber.js";
|
|
6
|
-
import { messageToHex } from "../../utils/formatUtils.js";
|
|
7
|
-
const paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
|
|
8
|
-
const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
|
|
9
|
-
const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
|
|
10
|
-
export function parseArrayType(arrayTypeName) {
|
|
11
|
-
const arrayMatch = paramTypeArray.exec(arrayTypeName);
|
|
12
|
-
if (arrayMatch === null) {
|
|
13
|
-
throw ERRORS.TypedError('Runtime', `typename ${arrayTypeName} could not be parsed as an EIP-712 array`);
|
|
14
|
-
}
|
|
15
|
-
const entryTypeName = arrayMatch[1] ?? '';
|
|
16
|
-
const arraySize = arrayMatch[2] ?? '';
|
|
17
|
-
return {
|
|
18
|
-
entryTypeName,
|
|
19
|
-
arraySize: parseInt(arraySize, 10) || null
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function twosComplement(number, bytes) {
|
|
23
|
-
if (bytes < 1 || bytes > 32) {
|
|
24
|
-
throw ERRORS.TypedError('Runtime', 'Int byte size must be between 1 and 32 (8 and 256 bits)');
|
|
25
|
-
}
|
|
26
|
-
const minValue = new BigNumber(2).exponentiatedBy(bytes * 8 - 1).negated();
|
|
27
|
-
const maxValue = minValue.negated().minus(1);
|
|
28
|
-
const bigNumber = new BigNumber(number);
|
|
29
|
-
if (bigNumber.isGreaterThan(maxValue) || bigNumber.isLessThan(minValue)) {
|
|
30
|
-
throw ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
|
|
31
|
-
}
|
|
32
|
-
if (bigNumber.isPositive()) {
|
|
33
|
-
return bigNumber;
|
|
34
|
-
}
|
|
35
|
-
return bigNumber.minus(minValue).minus(minValue);
|
|
36
|
-
}
|
|
37
|
-
function intToHex(number, bytes, signed) {
|
|
38
|
-
let bigNumber = new BigNumber(number);
|
|
39
|
-
if (signed) {
|
|
40
|
-
bigNumber = twosComplement(bigNumber, bytes);
|
|
41
|
-
}
|
|
42
|
-
if (bigNumber.isNegative()) {
|
|
43
|
-
throw ERRORS.TypedError('Runtime', `Cannot convert negative number to unsigned interger: ${number}`);
|
|
44
|
-
}
|
|
45
|
-
const hex = bigNumber.toString(16);
|
|
46
|
-
const hexChars = bytes * 2;
|
|
47
|
-
if (hex.length > hexChars) {
|
|
48
|
-
throw ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
|
|
49
|
-
}
|
|
50
|
-
return hex.padStart(bytes * 2, '0');
|
|
51
|
-
}
|
|
52
|
-
export function encodeData(typeName, data) {
|
|
53
|
-
if (paramTypeBytes.test(typeName) || typeName === 'address') {
|
|
54
|
-
return messageToHex(data);
|
|
55
|
-
}
|
|
56
|
-
if (typeName === 'string') {
|
|
57
|
-
return Buffer.from(data, 'utf-8').toString('hex');
|
|
58
|
-
}
|
|
59
|
-
const numberMatch = paramTypeNumber.exec(typeName);
|
|
60
|
-
if (numberMatch) {
|
|
61
|
-
const intType = numberMatch[1] ?? '';
|
|
62
|
-
const bits = numberMatch[2] ?? '';
|
|
63
|
-
const bytes = Math.ceil((bits === '' ? 256 : parseInt(bits, 10)) / 8);
|
|
64
|
-
return intToHex(data, bytes, intType === 'int');
|
|
65
|
-
}
|
|
66
|
-
if (typeName === 'bool') {
|
|
67
|
-
return data ? '01' : '00';
|
|
68
|
-
}
|
|
69
|
-
throw ERRORS.TypedError('Runtime', `Unsupported data type for direct field encoding: ${typeName}`);
|
|
70
|
-
}
|
|
71
|
-
const paramTypesMap = {
|
|
72
|
-
string: PROTO.EthereumDataType.STRING,
|
|
73
|
-
bool: PROTO.EthereumDataType.BOOL,
|
|
74
|
-
address: PROTO.EthereumDataType.ADDRESS
|
|
75
|
-
};
|
|
76
|
-
export function getFieldType(typeName, types) {
|
|
77
|
-
const arrayMatch = paramTypeArray.exec(typeName);
|
|
78
|
-
if (arrayMatch) {
|
|
79
|
-
const arrayItemTypeName = arrayMatch[1] ?? '';
|
|
80
|
-
const arraySize = arrayMatch[2] ?? '';
|
|
81
|
-
const entryType = getFieldType(arrayItemTypeName, types);
|
|
82
|
-
return {
|
|
83
|
-
data_type: PROTO.EthereumDataType.ARRAY,
|
|
84
|
-
size: parseInt(arraySize, 10) || undefined,
|
|
85
|
-
entry_type: entryType
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
const numberMatch = paramTypeNumber.exec(typeName);
|
|
89
|
-
if (numberMatch) {
|
|
90
|
-
const type = numberMatch[1] ?? '';
|
|
91
|
-
const bits = numberMatch[2] ?? '';
|
|
92
|
-
return {
|
|
93
|
-
data_type: type === 'uint' ? PROTO.EthereumDataType.UINT : PROTO.EthereumDataType.INT,
|
|
94
|
-
size: Math.floor((bits === '' ? 256 : parseInt(bits, 10)) / 8)
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
const bytesMatch = paramTypeBytes.exec(typeName);
|
|
98
|
-
if (bytesMatch) {
|
|
99
|
-
const size = bytesMatch[1] ?? '';
|
|
100
|
-
return {
|
|
101
|
-
data_type: PROTO.EthereumDataType.BYTES,
|
|
102
|
-
size: parseInt(size, 10) || undefined
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
const fixedSizeTypeMatch = paramTypesMap[typeName];
|
|
106
|
-
if (fixedSizeTypeMatch) {
|
|
107
|
-
return {
|
|
108
|
-
data_type: fixedSizeTypeMatch
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
if (typeName in types) {
|
|
112
|
-
const typeDef = types[typeName];
|
|
113
|
-
return {
|
|
114
|
-
data_type: PROTO.EthereumDataType.STRUCT,
|
|
115
|
-
size: typeDef.length,
|
|
116
|
-
struct_name: typeName
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
throw ERRORS.TypedError('Runtime', `No type definition specified: ${typeName}`);
|
|
120
|
-
}
|
|
121
|
-
const arrayBufferToHex = buf => {
|
|
122
|
-
const bytes = new Uint8Array(buf);
|
|
123
|
-
let hex = '0x';
|
|
124
|
-
for (let i = 0; i < bytes.length; i += 1) {
|
|
125
|
-
hex += getIndexOrThrow(bytes, i).toString(16).padStart(2, '0');
|
|
126
|
-
}
|
|
127
|
-
return hex;
|
|
128
|
-
};
|
|
129
|
-
const ensureHexPrefix = value => {
|
|
130
|
-
if (value === undefined) return undefined;
|
|
131
|
-
return value.startsWith('0x') ? value : `0x${value}`;
|
|
132
|
-
};
|
|
133
|
-
const normalizeDomain = domain => {
|
|
134
|
-
let {
|
|
135
|
-
chainId
|
|
136
|
-
} = domain;
|
|
137
|
-
if (typeof chainId === 'string') {
|
|
138
|
-
try {
|
|
139
|
-
chainId = BigInt(chainId);
|
|
140
|
-
} catch {
|
|
141
|
-
throw ERRORS.TypedError('Method_InvalidParameter', 'Trezor: Invalid typed data domain chainId. Expected an integer-compatible string.');
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
const saltAsString = domain.salt instanceof ArrayBuffer ? arrayBufferToHex(domain.salt) : domain.salt;
|
|
145
|
-
return {
|
|
146
|
-
...domain,
|
|
147
|
-
chainId,
|
|
148
|
-
verifyingContract: ensureHexPrefix(domain.verifyingContract),
|
|
149
|
-
salt: ensureHexPrefix(saltAsString)
|
|
150
|
-
};
|
|
151
|
-
};
|
|
152
|
-
export const transformTypedData = (data, metamask_v4_compat) => {
|
|
153
|
-
if (!metamask_v4_compat) {
|
|
154
|
-
throw ERRORS.TypedError('Method_InvalidParameter', 'Trezor: Only version 4 of typed data signing is supported');
|
|
155
|
-
}
|
|
156
|
-
if (!data.types || !('EIP712Domain' in data.types)) {
|
|
157
|
-
throw ERRORS.TypedError('Method_InvalidParameter', 'Trezor: EIP712Domain type definition required in types');
|
|
158
|
-
}
|
|
159
|
-
const domain_separator_hash = hashDomain({
|
|
160
|
-
domain: normalizeDomain(data.domain),
|
|
161
|
-
types: data.types
|
|
162
|
-
}).slice(2);
|
|
163
|
-
let message_hash = null;
|
|
164
|
-
if (data.primaryType !== 'EIP712Domain') {
|
|
165
|
-
message_hash = hashStruct({
|
|
166
|
-
data: data.message,
|
|
167
|
-
primaryType: data.primaryType,
|
|
168
|
-
types: data.types
|
|
169
|
-
}).slice(2);
|
|
170
|
-
}
|
|
171
|
-
return {
|
|
172
|
-
domain_separator_hash,
|
|
173
|
-
message_hash
|
|
174
|
-
};
|
|
175
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type PermissionRequest } from '@trezor/connect-common';
|
|
2
|
-
import type { MessagesSchema as PROTO } from '@trezor/protobuf';
|
|
3
|
-
import type { MethodMessage } from "../core/AbstractMethod.js";
|
|
4
|
-
import { AbstractMethod } from "../core/AbstractMethod.js";
|
|
5
|
-
export default class EvoluGetDelegatedIdentityKey extends AbstractMethod<'evoluGetDelegatedIdentityKey', PROTO.EvoluGetDelegatedIdentityKey> {
|
|
6
|
-
hasBundle?: boolean;
|
|
7
|
-
constructor(message: MethodMessage<'evoluGetDelegatedIdentityKey'>);
|
|
8
|
-
get requiredPermissions(): PermissionRequest[];
|
|
9
|
-
get info(): string;
|
|
10
|
-
run(): Promise<{
|
|
11
|
-
rotation_index?: number | undefined;
|
|
12
|
-
private_key: string;
|
|
13
|
-
}>;
|
|
14
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { AbstractMethod } from "../core/AbstractMethod.js";
|
|
2
|
-
export default class EvoluGetDelegatedIdentityKey extends AbstractMethod {
|
|
3
|
-
hasBundle;
|
|
4
|
-
constructor(message) {
|
|
5
|
-
super(message, {});
|
|
6
|
-
this.useDevice = true;
|
|
7
|
-
this.useUi = true;
|
|
8
|
-
}
|
|
9
|
-
get requiredPermissions() {
|
|
10
|
-
return [{
|
|
11
|
-
permission: 'read_xpub'
|
|
12
|
-
}];
|
|
13
|
-
}
|
|
14
|
-
get info() {
|
|
15
|
-
return 'Evolu get delegated identity key';
|
|
16
|
-
}
|
|
17
|
-
async run() {
|
|
18
|
-
const thpState = this.getDevice().getThpState();
|
|
19
|
-
if (thpState) {
|
|
20
|
-
const firstCredential = thpState.pairingCredentials[0];
|
|
21
|
-
this.params = {
|
|
22
|
-
thp_credential: firstCredential.credential
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
const cmd = this.getDevice().getCommands();
|
|
26
|
-
const response = await cmd.typedCall('EvoluGetDelegatedIdentityKey', 'EvoluDelegatedIdentityKey', this.params);
|
|
27
|
-
return response.message;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type PermissionRequest } from '@trezor/connect-common';
|
|
2
|
-
import { MessagesSchema as PROTO } from '@trezor/protobuf';
|
|
3
|
-
import type { MethodMessage } from "../core/AbstractMethod.js";
|
|
4
|
-
import { AbstractMethod } from "../core/AbstractMethod.js";
|
|
5
|
-
export default class EvoluGetNode extends AbstractMethod<'evoluGetNode', PROTO.EvoluGetNode> {
|
|
6
|
-
hasBundle?: boolean;
|
|
7
|
-
constructor(message: MethodMessage<'evoluGetNode'>);
|
|
8
|
-
get requiredPermissions(): PermissionRequest[];
|
|
9
|
-
get info(): string;
|
|
10
|
-
run(): Promise<{
|
|
11
|
-
data: string;
|
|
12
|
-
}>;
|
|
13
|
-
}
|