@trezor/connect 9.7.3 → 10.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (772) hide show
  1. package/CHANGELOG.md +68 -1334
  2. package/README.md +9 -45
  3. package/lib/api/applyFlags.d.ts +17 -14
  4. package/lib/api/applyFlags.js +19 -20
  5. package/lib/api/applySettings.d.ts +18 -15
  6. package/lib/api/applySettings.js +25 -21
  7. package/lib/api/authenticateDevice.d.ts +24 -10
  8. package/lib/api/authenticateDevice.js +149 -49
  9. package/lib/api/authorizeCoinjoin.d.ts +10 -8
  10. package/lib/api/authorizeCoinjoin.js +21 -25
  11. package/lib/api/backupDevice.d.ts +16 -14
  12. package/lib/api/backupDevice.js +20 -21
  13. package/lib/api/bitcoin/TransactionComposer.d.ts +42 -44
  14. package/lib/api/bitcoin/TransactionComposer.js +21 -21
  15. package/lib/api/bitcoin/createPendingTx.d.ts +34 -32
  16. package/lib/api/bitcoin/createPendingTx.js +8 -15
  17. package/lib/api/bitcoin/enhanceSignTx.d.ts +2 -4
  18. package/lib/api/bitcoin/enhanceSignTx.js +5 -46
  19. package/lib/api/bitcoin/index.d.ts +9 -10
  20. package/lib/api/bitcoin/index.js +9 -16
  21. package/lib/api/bitcoin/inputs.d.ts +3 -7
  22. package/lib/api/bitcoin/inputs.js +12 -34
  23. package/lib/api/bitcoin/outputs.d.ts +3 -6
  24. package/lib/api/bitcoin/outputs.js +34 -33
  25. package/lib/api/bitcoin/refTx.d.ts +16 -12
  26. package/lib/api/bitcoin/refTx.js +49 -70
  27. package/lib/api/bitcoin/signtx.d.ts +26 -21
  28. package/lib/api/bitcoin/signtx.js +47 -39
  29. package/lib/api/bitcoin/signtxLegacy.d.ts +10 -4
  30. package/lib/api/bitcoin/signtxLegacy.js +31 -32
  31. package/lib/api/bitcoin/signtxVerify.d.ts +7 -9
  32. package/lib/api/bitcoin/signtxVerify.js +35 -35
  33. package/lib/api/bitcoin/transactionBytes.d.ts +3 -5
  34. package/lib/api/bitcoin/transactionBytes.js +8 -19
  35. package/lib/api/bleUnpair.d.ts +10 -8
  36. package/lib/api/bleUnpair.js +23 -25
  37. package/lib/api/blockchainDisconnect.d.ts +12 -11
  38. package/lib/api/blockchainDisconnect.js +22 -28
  39. package/lib/api/blockchainEstimateFee.d.ts +12 -9
  40. package/lib/api/blockchainEstimateFee.js +27 -32
  41. package/lib/api/blockchainEvmRpcCall.d.ts +15 -12
  42. package/lib/api/blockchainEvmRpcCall.js +22 -27
  43. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +12 -9
  44. package/lib/api/blockchainGetAccountBalanceHistory.js +27 -28
  45. package/lib/api/blockchainGetContractInfo.d.ts +16 -0
  46. package/lib/api/blockchainGetContractInfo.js +46 -0
  47. package/lib/api/blockchainGetCurrentFiatRates.d.ts +16 -13
  48. package/lib/api/blockchainGetCurrentFiatRates.js +22 -27
  49. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +19 -16
  50. package/lib/api/blockchainGetFiatRatesForTimestamps.js +22 -27
  51. package/lib/api/blockchainGetInfo.d.ts +11 -8
  52. package/lib/api/blockchainGetInfo.js +22 -27
  53. package/lib/api/blockchainGetTransactions.d.ts +14 -9
  54. package/lib/api/blockchainGetTransactions.js +29 -29
  55. package/lib/api/blockchainSetCustomBackend.d.ts +13 -8
  56. package/lib/api/blockchainSetCustomBackend.js +26 -28
  57. package/lib/api/blockchainSubscribe.d.ts +15 -12
  58. package/lib/api/blockchainSubscribe.js +25 -28
  59. package/lib/api/blockchainSubscribeFiatRates.d.ts +15 -11
  60. package/lib/api/blockchainSubscribeFiatRates.js +23 -27
  61. package/lib/api/blockchainUnsubscribe.d.ts +15 -12
  62. package/lib/api/blockchainUnsubscribe.js +25 -28
  63. package/lib/api/blockchainUnsubscribeFiatRates.d.ts +13 -10
  64. package/lib/api/blockchainUnsubscribeFiatRates.js +22 -27
  65. package/lib/api/blockchainValidateEvmRpcUrl.d.ts +17 -0
  66. package/lib/api/blockchainValidateEvmRpcUrl.js +54 -0
  67. package/lib/api/cancelCoinjoinAuthorization.d.ts +11 -10
  68. package/lib/api/cancelCoinjoinAuthorization.js +15 -18
  69. package/lib/api/cardano/api/cardanoComposeTransaction.d.ts +9 -7
  70. package/lib/api/cardano/api/cardanoComposeTransaction.js +25 -27
  71. package/lib/api/cardano/api/cardanoGetAddress.d.ts +31 -24
  72. package/lib/api/cardano/api/cardanoGetAddress.js +75 -70
  73. package/lib/api/cardano/api/cardanoGetNativeScriptHash.d.ts +11 -12
  74. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +47 -56
  75. package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +19 -14
  76. package/lib/api/cardano/api/cardanoGetPublicKey.js +62 -43
  77. package/lib/api/cardano/api/cardanoSignMessage.d.ts +19 -22
  78. package/lib/api/cardano/api/cardanoSignMessage.js +34 -44
  79. package/lib/api/cardano/api/cardanoSignTransaction.d.ts +75 -73
  80. package/lib/api/cardano/api/cardanoSignTransaction.js +64 -62
  81. package/lib/api/cardano/api/index.d.ts +6 -7
  82. package/lib/api/cardano/api/index.js +6 -50
  83. package/lib/api/cardano/cardanoAddressParameters.d.ts +3 -4
  84. package/lib/api/cardano/cardanoAddressParameters.js +17 -27
  85. package/lib/api/cardano/cardanoAuxiliaryData.d.ts +3 -4
  86. package/lib/api/cardano/cardanoAuxiliaryData.js +16 -25
  87. package/lib/api/cardano/cardanoCertificate.d.ts +9 -10
  88. package/lib/api/cardano/cardanoCertificate.js +35 -42
  89. package/lib/api/cardano/cardanoInputs.d.ts +16 -17
  90. package/lib/api/cardano/cardanoInputs.js +19 -29
  91. package/lib/api/cardano/cardanoOutputs.d.ts +35 -35
  92. package/lib/api/cardano/cardanoOutputs.js +25 -34
  93. package/lib/api/cardano/cardanoTokenBundle.d.ts +10 -11
  94. package/lib/api/cardano/cardanoTokenBundle.js +9 -17
  95. package/lib/api/cardano/cardanoUtils.d.ts +13 -5
  96. package/lib/api/cardano/cardanoUtils.js +19 -33
  97. package/lib/api/cardano/cardanoWitnesses.d.ts +4 -5
  98. package/lib/api/cardano/cardanoWitnesses.js +6 -14
  99. package/lib/api/changeLanguage.d.ts +16 -15
  100. package/lib/api/changeLanguage.js +22 -23
  101. package/lib/api/changePin.d.ts +9 -7
  102. package/lib/api/changePin.js +18 -20
  103. package/lib/api/changeWipeCode.d.ts +10 -8
  104. package/lib/api/changeWipeCode.js +17 -19
  105. package/lib/api/cipherKeyValue.d.ts +16 -12
  106. package/lib/api/cipherKeyValue.js +35 -33
  107. package/lib/api/common/AbstractMiscGetAddress.d.ts +37 -0
  108. package/lib/api/common/AbstractMiscGetAddress.js +126 -0
  109. package/lib/api/common/Discovery.d.ts +23 -26
  110. package/lib/api/common/Discovery.js +14 -22
  111. package/lib/api/common/paramsValidator.d.ts +19 -9
  112. package/lib/api/common/paramsValidator.js +77 -71
  113. package/lib/api/common/requestExistingAccounts.d.ts +14 -0
  114. package/lib/api/common/requestExistingAccounts.js +20 -0
  115. package/lib/api/composeTransaction.d.ts +31 -39
  116. package/lib/api/composeTransaction.js +172 -108
  117. package/lib/api/discoverAccounts.d.ts +36 -29
  118. package/lib/api/discoverAccounts.js +113 -69
  119. package/lib/api/ethereum/api/ethereumGetAddress.d.ts +27 -25
  120. package/lib/api/ethereum/api/ethereumGetAddress.js +80 -62
  121. package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +49 -41
  122. package/lib/api/ethereum/api/ethereumGetPublicKey.js +54 -42
  123. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +24 -21
  124. package/lib/api/ethereum/api/ethereumSignMessage.js +40 -46
  125. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +77 -76
  126. package/lib/api/ethereum/api/ethereumSignTransaction.js +63 -77
  127. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +108 -107
  128. package/lib/api/ethereum/api/ethereumSignTypedData.js +69 -77
  129. package/lib/api/ethereum/api/ethereumVerifyMessage.d.ts +11 -9
  130. package/lib/api/ethereum/api/ethereumVerifyMessage.js +23 -25
  131. package/lib/api/ethereum/api/index.d.ts +6 -7
  132. package/lib/api/ethereum/api/index.js +6 -50
  133. package/lib/api/ethereum/ethereumDefinitions.d.ts +42 -36
  134. package/lib/api/ethereum/ethereumDefinitions.js +67 -50
  135. package/lib/api/ethereum/ethereumSignTx.d.ts +15 -21
  136. package/lib/api/ethereum/ethereumSignTx.js +64 -62
  137. package/lib/api/ethereum/ethereumSignTypedData.d.ts +28 -5
  138. package/lib/api/ethereum/ethereumSignTypedData.js +95 -41
  139. package/lib/api/evoluGetDelegatedIdentityKey.d.ts +13 -10
  140. package/lib/api/evoluGetDelegatedIdentityKey.js +20 -32
  141. package/lib/api/evoluGetNode.d.ts +11 -9
  142. package/lib/api/evoluGetNode.js +16 -20
  143. package/lib/api/evoluSignRegistrationRequest.d.ts +14 -10
  144. package/lib/api/evoluSignRegistrationRequest.js +18 -20
  145. package/lib/api/firmware/calculateFirmwareHash.d.ts +15 -10
  146. package/lib/api/firmware/calculateFirmwareHash.js +16 -21
  147. package/lib/api/firmware/calculateXPubHash.d.ts +14 -0
  148. package/lib/api/firmware/calculateXPubHash.js +16 -0
  149. package/lib/api/firmware/getBinary.d.ts +11 -8
  150. package/lib/api/firmware/getBinary.js +12 -21
  151. package/lib/api/firmware/index.d.ts +6 -6
  152. package/lib/api/firmware/index.js +6 -54
  153. package/lib/api/firmware/modifyFirmware.d.ts +2 -3
  154. package/lib/api/firmware/modifyFirmware.js +6 -14
  155. package/lib/api/firmware/parseFirmwareHeaders.d.ts +3 -4
  156. package/lib/api/firmware/parseFirmwareHeaders.js +2 -10
  157. package/lib/api/firmware/uploadFirmware.d.ts +22 -17
  158. package/lib/api/firmware/uploadFirmware.js +20 -20
  159. package/lib/api/firmware/verifyEntropy.d.ts +20 -14
  160. package/lib/api/firmware/verifyEntropy.js +22 -29
  161. package/lib/api/getAccountInfo.d.ts +17 -143
  162. package/lib/api/getAccountInfo.js +92 -184
  163. package/lib/api/getAddress.d.ts +42 -35
  164. package/lib/api/getAddress.js +76 -71
  165. package/lib/api/getCoinInfo.d.ts +144 -146
  166. package/lib/api/getCoinInfo.js +17 -25
  167. package/lib/api/getDeviceState.d.ts +7 -8
  168. package/lib/api/getDeviceState.js +11 -17
  169. package/lib/api/getFeatures.d.ts +70 -64
  170. package/lib/api/getFeatures.js +17 -17
  171. package/lib/api/getFirmwareHash.d.ts +9 -7
  172. package/lib/api/getFirmwareHash.js +20 -24
  173. package/lib/api/getNonce.d.ts +10 -9
  174. package/lib/api/getNonce.js +12 -12
  175. package/lib/api/getOwnershipId.d.ts +16 -12
  176. package/lib/api/getOwnershipId.js +54 -37
  177. package/lib/api/getOwnershipProof.d.ts +16 -12
  178. package/lib/api/getOwnershipProof.js +54 -39
  179. package/lib/api/getPublicKey.d.ts +51 -43
  180. package/lib/api/getPublicKey.js +67 -48
  181. package/lib/api/getSettings.d.ts +23 -5
  182. package/lib/api/getSettings.js +16 -14
  183. package/lib/api/index.d.ts +62 -58
  184. package/lib/api/index.js +62 -408
  185. package/lib/api/loadDevice.d.ts +14 -12
  186. package/lib/api/loadDevice.js +20 -24
  187. package/lib/api/monero/api/index.d.ts +4 -5
  188. package/lib/api/monero/api/index.js +4 -36
  189. package/lib/api/monero/api/moneroGetAddress.d.ts +29 -24
  190. package/lib/api/monero/api/moneroGetAddress.js +56 -61
  191. package/lib/api/monero/api/moneroGetWatchKey.d.ts +11 -10
  192. package/lib/api/monero/api/moneroGetWatchKey.js +26 -29
  193. package/lib/api/monero/api/moneroKeyImageSync.d.ts +13 -12
  194. package/lib/api/monero/api/moneroKeyImageSync.js +34 -37
  195. package/lib/api/monero/api/moneroSignTransaction.d.ts +13 -12
  196. package/lib/api/monero/api/moneroSignTransaction.js +52 -41
  197. package/lib/api/nostr/nostrGetPublicKey.d.ts +15 -0
  198. package/lib/api/nostr/nostrGetPublicKey.js +38 -0
  199. package/lib/api/nostr/nostrSignEvent.d.ts +13 -0
  200. package/lib/api/nostr/nostrSignEvent.js +36 -0
  201. package/lib/api/pingDevice.d.ts +11 -0
  202. package/lib/api/pingDevice.js +29 -0
  203. package/lib/api/pushTransaction.d.ts +15 -12
  204. package/lib/api/pushTransaction.js +25 -30
  205. package/lib/api/recoveryDevice.d.ts +18 -16
  206. package/lib/api/recoveryDevice.js +22 -23
  207. package/lib/api/requestLogin.d.ts +13 -11
  208. package/lib/api/requestLogin.js +24 -30
  209. package/lib/api/resetDevice.d.ts +21 -15
  210. package/lib/api/resetDevice.js +64 -48
  211. package/lib/api/ripple/api/index.d.ts +2 -3
  212. package/lib/api/ripple/api/index.js +2 -22
  213. package/lib/api/ripple/api/rippleGetAddress.d.ts +17 -27
  214. package/lib/api/ripple/api/rippleGetAddress.js +12 -101
  215. package/lib/api/ripple/api/rippleSignTransaction.d.ts +12 -10
  216. package/lib/api/ripple/api/rippleSignTransaction.js +21 -24
  217. package/lib/api/selectAccount.d.ts +15 -0
  218. package/lib/api/selectAccount.js +42 -0
  219. package/lib/api/setBrightness.d.ts +10 -7
  220. package/lib/api/setBrightness.js +19 -20
  221. package/lib/api/setBusy.d.ts +10 -8
  222. package/lib/api/setBusy.js +18 -25
  223. package/lib/api/showDeviceTutorial.d.ts +11 -10
  224. package/lib/api/showDeviceTutorial.js +11 -16
  225. package/lib/api/signMessage.d.ts +24 -18
  226. package/lib/api/signMessage.js +47 -36
  227. package/lib/api/signTransaction.d.ts +195 -227
  228. package/lib/api/signTransaction.js +84 -101
  229. package/lib/api/solana/api/index.d.ts +4 -5
  230. package/lib/api/solana/api/index.js +4 -36
  231. package/lib/api/solana/api/solanaComposeTransaction.d.ts +29 -26
  232. package/lib/api/solana/api/solanaComposeTransaction.js +47 -36
  233. package/lib/api/solana/api/solanaGetAddress.d.ts +17 -27
  234. package/lib/api/solana/api/solanaGetAddress.js +12 -101
  235. package/lib/api/solana/api/solanaGetPublicKey.d.ts +31 -26
  236. package/lib/api/solana/api/solanaGetPublicKey.js +54 -39
  237. package/lib/api/solana/api/solanaSignTransaction.d.ts +38 -36
  238. package/lib/api/solana/api/solanaSignTransaction.js +134 -133
  239. package/lib/api/solana/solanaDefinitions.d.ts +5 -4
  240. package/lib/api/solana/solanaDefinitions.js +12 -25
  241. package/lib/api/stellar/api/index.d.ts +2 -3
  242. package/lib/api/stellar/api/index.js +2 -22
  243. package/lib/api/stellar/api/stellarGetAddress.d.ts +17 -27
  244. package/lib/api/stellar/api/stellarGetAddress.js +12 -101
  245. package/lib/api/stellar/api/stellarSignTransaction.d.ts +17 -21
  246. package/lib/api/stellar/api/stellarSignTransaction.js +39 -44
  247. package/lib/api/stellar/stellarSignTx.d.ts +7 -7
  248. package/lib/api/stellar/stellarSignTx.js +37 -51
  249. package/lib/api/telemetryGet.d.ts +14 -0
  250. package/lib/api/telemetryGet.js +26 -0
  251. package/lib/api/tezos/api/index.d.ts +3 -4
  252. package/lib/api/tezos/api/index.js +3 -29
  253. package/lib/api/tezos/api/tezosGetAddress.d.ts +17 -27
  254. package/lib/api/tezos/api/tezosGetAddress.js +12 -101
  255. package/lib/api/tezos/api/tezosGetPublicKey.d.ts +27 -20
  256. package/lib/api/tezos/api/tezosGetPublicKey.js +53 -37
  257. package/lib/api/tezos/api/tezosSignTransaction.d.ts +13 -11
  258. package/lib/api/tezos/api/tezosSignTransaction.js +20 -26
  259. package/lib/api/tezos/tezosSignTx.d.ts +66 -67
  260. package/lib/api/tezos/tezosSignTx.js +12 -19
  261. package/lib/api/thpGetCredentials.d.ts +12 -9
  262. package/lib/api/thpGetCredentials.js +21 -25
  263. package/lib/api/thpRemoveCredentials.d.ts +14 -7
  264. package/lib/api/thpRemoveCredentials.js +35 -30
  265. package/lib/api/tron/api/index.d.ts +3 -3
  266. package/lib/api/tron/api/index.js +3 -22
  267. package/lib/api/tron/api/tronComposeTransaction.d.ts +17 -0
  268. package/lib/api/tron/api/tronComposeTransaction.js +52 -0
  269. package/lib/api/tron/api/tronGetAddress.d.ts +17 -27
  270. package/lib/api/tron/api/tronGetAddress.js +12 -98
  271. package/lib/api/tron/api/tronSignTransaction.d.ts +16 -15
  272. package/lib/api/tron/api/tronSignTransaction.js +101 -27
  273. package/lib/api/tron/tronEncode.d.ts +11 -0
  274. package/lib/api/tron/tronEncode.js +157 -0
  275. package/lib/api/tron/tronProtobuf.d.ts +5 -0
  276. package/lib/api/tron/tronProtobuf.js +28 -0
  277. package/lib/api/unlockPath.d.ts +11 -9
  278. package/lib/api/unlockPath.js +18 -23
  279. package/lib/api/verifyMessage.d.ts +15 -9
  280. package/lib/api/verifyMessage.js +30 -34
  281. package/lib/api/wipeDevice.d.ts +19 -15
  282. package/lib/api/wipeDevice.js +22 -22
  283. package/lib/backend/BackendManager.d.ts +26 -20
  284. package/lib/backend/BackendManager.js +29 -29
  285. package/lib/backend/Blockchain.d.ts +78 -79
  286. package/lib/backend/Blockchain.js +34 -35
  287. package/lib/backend/BlockchainLink.d.ts +6 -6
  288. package/lib/backend/BlockchainLink.js +14 -27
  289. package/lib/backend/fees/BitcoinFeeLevels.d.ts +18 -19
  290. package/lib/backend/fees/BitcoinFeeLevels.js +11 -17
  291. package/lib/backend/fees/EthereumFeeLevels.d.ts +16 -17
  292. package/lib/backend/fees/EthereumFeeLevels.js +26 -22
  293. package/lib/backend/fees/MiscFeeLevels.d.ts +17 -18
  294. package/lib/backend/fees/MiscFeeLevels.js +13 -16
  295. package/lib/backend/fees/index.d.ts +4 -5
  296. package/lib/backend/fees/index.js +12 -21
  297. package/lib/core/AbstractMethod.d.ts +57 -72
  298. package/lib/core/AbstractMethod.js +92 -170
  299. package/lib/core/index.d.ts +25 -28
  300. package/lib/core/index.js +292 -493
  301. package/lib/core/method.d.ts +3 -4
  302. package/lib/core/method.js +9 -18
  303. package/lib/core/method.native.d.ts +2 -3
  304. package/lib/core/method.native.js +8 -19
  305. package/lib/core/onCallFirmwareUpdate.d.ts +33 -32
  306. package/lib/core/onCallFirmwareUpdate.js +103 -63
  307. package/lib/data/coinInfo.d.ts +86 -431
  308. package/lib/data/coinInfo.js +55 -57
  309. package/lib/data/config.d.ts +5 -30
  310. package/lib/data/config.js +52 -149
  311. package/lib/data/defaultFeeLevels.d.ts +10 -11
  312. package/lib/data/defaultFeeLevels.js +39 -23
  313. package/lib/data/enabledNetworksStore.d.ts +5 -0
  314. package/lib/data/enabledNetworksStore.js +20 -0
  315. package/lib/data/firmwareInfo.d.ts +39 -37
  316. package/lib/data/firmwareInfo.js +99 -167
  317. package/lib/data/firmwareReleaseStore.d.ts +10 -0
  318. package/lib/data/firmwareReleaseStore.js +16 -0
  319. package/lib/data/localFirmwareStore.d.ts +3 -0
  320. package/lib/data/localFirmwareStore.js +8 -0
  321. package/lib/data/protobufLoader.d.ts +1 -0
  322. package/lib/data/protobufLoader.js +30 -0
  323. package/lib/data/settingsStore.d.ts +6 -0
  324. package/lib/data/settingsStore.js +21 -0
  325. package/lib/device/Device.d.ts +255 -289
  326. package/lib/device/Device.js +203 -204
  327. package/lib/device/DeviceCommands.d.ts +82 -69
  328. package/lib/device/DeviceCommands.js +35 -36
  329. package/lib/device/DeviceCurrentSession.d.ts +746 -1093
  330. package/lib/device/DeviceCurrentSession.js +32 -53
  331. package/lib/device/DeviceList.d.ts +65 -59
  332. package/lib/device/DeviceList.js +80 -76
  333. package/lib/device/TransportList.d.ts +3 -9
  334. package/lib/device/TransportList.js +11 -50
  335. package/lib/device/TransportManager.d.ts +25 -22
  336. package/lib/device/TransportManager.js +15 -21
  337. package/lib/device/calculateRevisionForDevice.d.ts +8 -6
  338. package/lib/device/calculateRevisionForDevice.js +7 -15
  339. package/lib/device/checkFirmwareRevision.d.ts +20 -10
  340. package/lib/device/checkFirmwareRevision.js +43 -22
  341. package/lib/device/resolveDescriptorForTaproot.d.ts +13 -11
  342. package/lib/device/resolveDescriptorForTaproot.js +9 -15
  343. package/lib/device/thp/handshake.d.ts +3 -4
  344. package/lib/device/thp/handshake.js +27 -39
  345. package/lib/device/thp/index.d.ts +5 -6
  346. package/lib/device/thp/index.js +37 -41
  347. package/lib/device/thp/pairing.d.ts +13 -13
  348. package/lib/device/thp/pairing.js +88 -84
  349. package/lib/device/thp/session.d.ts +2 -3
  350. package/lib/device/thp/session.js +4 -12
  351. package/lib/device/thp/thpCall.d.ts +22 -32
  352. package/lib/device/thp/thpCall.js +14 -20
  353. package/lib/device/validateMessageSize.d.ts +2 -0
  354. package/lib/device/validateMessageSize.js +9 -0
  355. package/lib/device/workflow/changeLanguage.d.ts +18 -0
  356. package/lib/device/workflow/changeLanguage.js +62 -0
  357. package/lib/device/workflow/checkFirmwareHash.d.ts +10 -8
  358. package/lib/device/workflow/checkFirmwareHash.js +20 -28
  359. package/lib/device/workflow/checkFirmwareHashWithRetries.d.ts +5 -6
  360. package/lib/device/workflow/checkFirmwareHashWithRetries.js +9 -17
  361. package/lib/device/workflow/handshake.d.ts +11 -8
  362. package/lib/device/workflow/handshake.js +13 -21
  363. package/lib/device/workflow/trezorPushNotification.d.ts +5 -3
  364. package/lib/device/workflow/trezorPushNotification.js +28 -36
  365. package/lib/device/workflow/validateState.d.ts +2 -3
  366. package/lib/device/workflow/validateState.js +35 -59
  367. package/lib/events/ui-promise.d.ts +14 -14
  368. package/lib/events/ui-promise.js +1 -6
  369. package/lib/exports.d.ts +3 -5
  370. package/lib/exports.js +3 -18
  371. package/lib/impl/core-in-module.d.ts +33 -35
  372. package/lib/impl/core-in-module.js +124 -146
  373. package/lib/index.browser.d.ts +7 -0
  374. package/lib/index.browser.js +34 -0
  375. package/lib/index.d.ts +3 -9
  376. package/lib/index.js +15 -178
  377. package/lib/types/idevice.d.ts +110 -0
  378. package/lib/types/idevice.js +1 -0
  379. package/lib/types/typed-call-provider.d.ts +29 -0
  380. package/lib/types/typed-call-provider.js +1 -0
  381. package/lib/types/workflow.d.ts +13 -9
  382. package/lib/types/workflow.js +1 -6
  383. package/lib/utils/accountUtils.d.ts +4 -5
  384. package/lib/utils/accountUtils.js +28 -32
  385. package/lib/utils/addressUtils.d.ts +2 -3
  386. package/lib/utils/addressUtils.js +4 -12
  387. package/lib/utils/assetUtils.d.ts +8 -5
  388. package/lib/utils/assetUtils.js +36 -28
  389. package/lib/utils/assets.browser.d.ts +1 -0
  390. package/lib/utils/assets.browser.js +1 -0
  391. package/lib/utils/assets.d.ts +2 -3
  392. package/lib/utils/assets.js +8 -17
  393. package/lib/utils/assets.native.d.ts +2 -3
  394. package/lib/utils/assets.native.js +5 -12
  395. package/lib/utils/assetsTypes.d.ts +2 -3
  396. package/lib/utils/assetsTypes.js +1 -6
  397. package/lib/utils/buildOutputDescriptor.d.ts +20 -0
  398. package/lib/utils/buildOutputDescriptor.js +67 -0
  399. package/lib/utils/deviceFeaturesUtils.d.ts +4 -5
  400. package/lib/utils/deviceFeaturesUtils.js +24 -38
  401. package/lib/utils/ethereumUtils.d.ts +2 -3
  402. package/lib/utils/ethereumUtils.js +3 -11
  403. package/lib/utils/firmwareReleaseConfigUtils.d.ts +16 -7
  404. package/lib/utils/firmwareReleaseConfigUtils.js +71 -31
  405. package/lib/utils/firmwareUtils.d.ts +7 -7
  406. package/lib/utils/firmwareUtils.js +24 -37
  407. package/lib/utils/formatUtils.d.ts +6 -8
  408. package/lib/utils/formatUtils.js +21 -60
  409. package/lib/utils/hdnodeUtils.d.ts +2 -3
  410. package/lib/utils/hdnodeUtils.js +14 -25
  411. package/lib/utils/pathUtils.d.ts +1 -21
  412. package/lib/utils/pathUtils.js +1 -172
  413. package/lib/utils/paymentRequest.d.ts +8 -0
  414. package/lib/utils/paymentRequest.js +25 -0
  415. package/lib/utils/uiPromiseManager.d.ts +8 -43
  416. package/lib/utils/uiPromiseManager.js +19 -31
  417. package/lib/workers/workers.browser.d.ts +10 -0
  418. package/lib/workers/workers.browser.js +16 -0
  419. package/lib/workers/workers.d.ts +2 -2
  420. package/lib/workers/workers.js +8 -60
  421. package/lib/workers/workers.native.d.ts +2 -3
  422. package/lib/workers/workers.native.js +7 -20
  423. package/package.json +84 -75
  424. package/lib/api/eos/api/eosGetPublicKey.d.ts +0 -23
  425. package/lib/api/eos/api/eosGetPublicKey.js +0 -69
  426. package/lib/api/eos/api/eosSignTransaction.d.ts +0 -18
  427. package/lib/api/eos/api/eosSignTransaction.js +0 -48
  428. package/lib/api/eos/api/index.d.ts +0 -3
  429. package/lib/api/eos/api/index.js +0 -22
  430. package/lib/api/eos/eosSignTx.d.ts +0 -175
  431. package/lib/api/eos/eosSignTx.js +0 -344
  432. package/lib/api/getAccountDescriptor.d.ts +0 -22
  433. package/lib/api/getAccountDescriptor.js +0 -139
  434. package/lib/api/nem/api/index.d.ts +0 -3
  435. package/lib/api/nem/api/index.js +0 -22
  436. package/lib/api/nem/api/nemGetAddress.d.ts +0 -26
  437. package/lib/api/nem/api/nemGetAddress.js +0 -129
  438. package/lib/api/nem/api/nemSignTransaction.d.ts +0 -11
  439. package/lib/api/nem/api/nemSignTransaction.js +0 -39
  440. package/lib/api/nem/nemSignTx.d.ts +0 -78
  441. package/lib/api/nem/nemSignTx.js +0 -143
  442. package/lib/api/setProxy.d.ts +0 -8
  443. package/lib/api/setProxy.js +0 -32
  444. package/lib/api/solana/additionalInfo.d.ts +0 -10
  445. package/lib/api/solana/additionalInfo.js +0 -24
  446. package/lib/api/solana/solanaUtils.d.ts +0 -49
  447. package/lib/api/solana/solanaUtils.js +0 -279
  448. package/lib/constants/cardano.d.ts +0 -14
  449. package/lib/constants/cardano.js +0 -23
  450. package/lib/constants/errors.d.ts +0 -64
  451. package/lib/constants/errors.js +0 -87
  452. package/lib/constants/firmware.d.ts +0 -4
  453. package/lib/constants/firmware.js +0 -10
  454. package/lib/constants/index.d.ts +0 -8
  455. package/lib/constants/index.js +0 -27
  456. package/lib/constants/nem.d.ts +0 -29
  457. package/lib/constants/nem.js +0 -35
  458. package/lib/constants/network.d.ts +0 -17
  459. package/lib/constants/network.js +0 -21
  460. package/lib/constants/utxo.d.ts +0 -3
  461. package/lib/constants/utxo.js +0 -8
  462. package/lib/data/DataManager.d.ts +0 -31
  463. package/lib/data/DataManager.js +0 -100
  464. package/lib/data/analyticsInfo.d.ts +0 -6
  465. package/lib/data/analyticsInfo.js +0 -43
  466. package/lib/data/connectSettings.d.ts +0 -9
  467. package/lib/data/connectSettings.js +0 -147
  468. package/lib/data/thpSettings.d.ts +0 -3
  469. package/lib/data/thpSettings.js +0 -41
  470. package/lib/data/udevInfo.d.ts +0 -11
  471. package/lib/data/udevInfo.js +0 -31
  472. package/lib/data/version.d.ts +0 -6
  473. package/lib/data/version.js +0 -14
  474. package/lib/device/StateStorage.d.ts +0 -15
  475. package/lib/device/StateStorage.js +0 -40
  476. package/lib/device/workflow/index.d.ts +0 -2
  477. package/lib/device/workflow/index.js +0 -14
  478. package/lib/events/blockchain.d.ts +0 -66
  479. package/lib/events/blockchain.js +0 -22
  480. package/lib/events/call.d.ts +0 -46
  481. package/lib/events/call.js +0 -22
  482. package/lib/events/core.d.ts +0 -24
  483. package/lib/events/core.js +0 -32
  484. package/lib/events/device.d.ts +0 -70
  485. package/lib/events/device.js +0 -42
  486. package/lib/events/iframe.d.ts +0 -46
  487. package/lib/events/iframe.js +0 -22
  488. package/lib/events/index.d.ts +0 -68
  489. package/lib/events/index.js +0 -25
  490. package/lib/events/popup.d.ts +0 -88
  491. package/lib/events/popup.js +0 -29
  492. package/lib/events/transport.d.ts +0 -51
  493. package/lib/events/transport.js +0 -26
  494. package/lib/events/ui-request.d.ts +0 -266
  495. package/lib/events/ui-request.js +0 -57
  496. package/lib/events/ui-response.d.ts +0 -104
  497. package/lib/events/ui-response.js +0 -29
  498. package/lib/events/webextension.d.ts +0 -8
  499. package/lib/events/webextension.js +0 -14
  500. package/lib/factory.d.ts +0 -20
  501. package/lib/factory.js +0 -50
  502. package/lib/impl/dynamic.d.ts +0 -39
  503. package/lib/impl/dynamic.js +0 -125
  504. package/lib/index-browser.d.ts +0 -7
  505. package/lib/index-browser.js +0 -29
  506. package/lib/tsconfig.lib.tsbuildinfo +0 -1
  507. package/lib/types/account.d.ts +0 -20
  508. package/lib/types/account.js +0 -6
  509. package/lib/types/api/applyFlags.d.ts +0 -4
  510. package/lib/types/api/applyFlags.js +0 -6
  511. package/lib/types/api/applySettings.d.ts +0 -23
  512. package/lib/types/api/applySettings.js +0 -12
  513. package/lib/types/api/authenticateDevice.d.ts +0 -65
  514. package/lib/types/api/authenticateDevice.js +0 -14
  515. package/lib/types/api/authorizeCoinjoin.d.ts +0 -17
  516. package/lib/types/api/authorizeCoinjoin.js +0 -21
  517. package/lib/types/api/backupDevice.d.ts +0 -4
  518. package/lib/types/api/backupDevice.js +0 -6
  519. package/lib/types/api/bitcoin/index.d.ts +0 -101
  520. package/lib/types/api/bitcoin/index.js +0 -23
  521. package/lib/types/api/bleUnpair.d.ts +0 -4
  522. package/lib/types/api/bleUnpair.js +0 -6
  523. package/lib/types/api/blockchainDisconnect.d.ts +0 -5
  524. package/lib/types/api/blockchainDisconnect.js +0 -6
  525. package/lib/types/api/blockchainEstimateFee.d.ts +0 -26
  526. package/lib/types/api/blockchainEstimateFee.js +0 -6
  527. package/lib/types/api/blockchainEvmRpcCall.d.ts +0 -4
  528. package/lib/types/api/blockchainEvmRpcCall.js +0 -6
  529. package/lib/types/api/blockchainGetAccountBalanceHistory.d.ts +0 -4
  530. package/lib/types/api/blockchainGetAccountBalanceHistory.js +0 -6
  531. package/lib/types/api/blockchainGetCurrentFiatRates.d.ts +0 -4
  532. package/lib/types/api/blockchainGetCurrentFiatRates.js +0 -6
  533. package/lib/types/api/blockchainGetFiatRatesForTimestamps.d.ts +0 -4
  534. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +0 -6
  535. package/lib/types/api/blockchainGetInfo.d.ts +0 -4
  536. package/lib/types/api/blockchainGetInfo.js +0 -6
  537. package/lib/types/api/blockchainGetTransactions.d.ts +0 -7
  538. package/lib/types/api/blockchainGetTransactions.js +0 -6
  539. package/lib/types/api/blockchainSetCustomBackend.d.ts +0 -8
  540. package/lib/types/api/blockchainSetCustomBackend.js +0 -6
  541. package/lib/types/api/blockchainSubscribe.d.ts +0 -8
  542. package/lib/types/api/blockchainSubscribe.js +0 -6
  543. package/lib/types/api/blockchainSubscribeFiatRates.d.ts +0 -7
  544. package/lib/types/api/blockchainSubscribeFiatRates.js +0 -6
  545. package/lib/types/api/blockchainUnsubscribe.d.ts +0 -5
  546. package/lib/types/api/blockchainUnsubscribe.js +0 -6
  547. package/lib/types/api/blockchainUnsubscribeFiatRates.d.ts +0 -5
  548. package/lib/types/api/blockchainUnsubscribeFiatRates.js +0 -6
  549. package/lib/types/api/cancel.d.ts +0 -2
  550. package/lib/types/api/cancel.js +0 -6
  551. package/lib/types/api/cancelCoinjoinAuthorization.d.ts +0 -9
  552. package/lib/types/api/cancelCoinjoinAuthorization.js +0 -11
  553. package/lib/types/api/cardano/index.d.ts +0 -784
  554. package/lib/types/api/cardano/index.js +0 -241
  555. package/lib/types/api/cardanoComposeTransaction.d.ts +0 -150
  556. package/lib/types/api/cardanoComposeTransaction.js +0 -91
  557. package/lib/types/api/cardanoGetAddress.d.ts +0 -5
  558. package/lib/types/api/cardanoGetAddress.js +0 -6
  559. package/lib/types/api/cardanoGetNativeScriptHash.d.ts +0 -4
  560. package/lib/types/api/cardanoGetNativeScriptHash.js +0 -6
  561. package/lib/types/api/cardanoGetPublicKey.d.ts +0 -5
  562. package/lib/types/api/cardanoGetPublicKey.js +0 -6
  563. package/lib/types/api/cardanoSignMessage.d.ts +0 -4
  564. package/lib/types/api/cardanoSignMessage.js +0 -6
  565. package/lib/types/api/cardanoSignTransaction.d.ts +0 -10
  566. package/lib/types/api/cardanoSignTransaction.js +0 -6
  567. package/lib/types/api/changeLanguage.d.ts +0 -15
  568. package/lib/types/api/changeLanguage.js +0 -17
  569. package/lib/types/api/changePin.d.ts +0 -4
  570. package/lib/types/api/changePin.js +0 -6
  571. package/lib/types/api/changeWipeCode.d.ts +0 -4
  572. package/lib/types/api/changeWipeCode.js +0 -6
  573. package/lib/types/api/cipherKeyValue.d.ts +0 -18
  574. package/lib/types/api/cipherKeyValue.js +0 -18
  575. package/lib/types/api/composeTransaction.d.ts +0 -74
  576. package/lib/types/api/composeTransaction.js +0 -6
  577. package/lib/types/api/device.d.ts +0 -1
  578. package/lib/types/api/device.js +0 -1
  579. package/lib/types/api/disableWebUSB.d.ts +0 -2
  580. package/lib/types/api/disableWebUSB.js +0 -6
  581. package/lib/types/api/discoverAccounts.d.ts +0 -248
  582. package/lib/types/api/discoverAccounts.js +0 -210
  583. package/lib/types/api/dispose.d.ts +0 -2
  584. package/lib/types/api/dispose.js +0 -6
  585. package/lib/types/api/eos/index.d.ts +0 -784
  586. package/lib/types/api/eos/index.js +0 -124
  587. package/lib/types/api/eosGetPublicKey.d.ts +0 -5
  588. package/lib/types/api/eosGetPublicKey.js +0 -6
  589. package/lib/types/api/eosSignTransaction.d.ts +0 -5
  590. package/lib/types/api/eosSignTransaction.js +0 -6
  591. package/lib/types/api/ethereum/index.d.ts +0 -307
  592. package/lib/types/api/ethereum/index.js +0 -101
  593. package/lib/types/api/ethereumGetAddress.d.ts +0 -4
  594. package/lib/types/api/ethereumGetAddress.js +0 -6
  595. package/lib/types/api/ethereumGetPublicKey.d.ts +0 -5
  596. package/lib/types/api/ethereumGetPublicKey.js +0 -6
  597. package/lib/types/api/ethereumSignMessage.d.ts +0 -5
  598. package/lib/types/api/ethereumSignMessage.js +0 -6
  599. package/lib/types/api/ethereumSignTransaction.d.ts +0 -4
  600. package/lib/types/api/ethereumSignTransaction.js +0 -6
  601. package/lib/types/api/ethereumSignTypedData.d.ts +0 -6
  602. package/lib/types/api/ethereumSignTypedData.js +0 -6
  603. package/lib/types/api/ethereumVerifyMessage.d.ts +0 -5
  604. package/lib/types/api/ethereumVerifyMessage.js +0 -6
  605. package/lib/types/api/evoluGetDelegatedIdentityKey.d.ts +0 -9
  606. package/lib/types/api/evoluGetDelegatedIdentityKey.js +0 -6
  607. package/lib/types/api/evoluGetNode.d.ts +0 -4
  608. package/lib/types/api/evoluGetNode.js +0 -6
  609. package/lib/types/api/evoluSignRegistrationRequest.d.ts +0 -4
  610. package/lib/types/api/evoluSignRegistrationRequest.js +0 -6
  611. package/lib/types/api/firmwareUpdate.d.ts +0 -21
  612. package/lib/types/api/firmwareUpdate.js +0 -16
  613. package/lib/types/api/getAccountDescriptor.d.ts +0 -18
  614. package/lib/types/api/getAccountDescriptor.js +0 -16
  615. package/lib/types/api/getAccountInfo.d.ts +0 -16
  616. package/lib/types/api/getAccountInfo.js +0 -6
  617. package/lib/types/api/getAddress.d.ts +0 -48
  618. package/lib/types/api/getAddress.js +0 -17
  619. package/lib/types/api/getCoinInfo.d.ts +0 -6
  620. package/lib/types/api/getCoinInfo.js +0 -6
  621. package/lib/types/api/getDeviceState.d.ts +0 -8
  622. package/lib/types/api/getDeviceState.js +0 -6
  623. package/lib/types/api/getFeatures.d.ts +0 -4
  624. package/lib/types/api/getFeatures.js +0 -6
  625. package/lib/types/api/getFirmwareHash.d.ts +0 -4
  626. package/lib/types/api/getFirmwareHash.js +0 -6
  627. package/lib/types/api/getNonce.d.ts +0 -4
  628. package/lib/types/api/getNonce.js +0 -6
  629. package/lib/types/api/getOwnershipId.d.ts +0 -41
  630. package/lib/types/api/getOwnershipId.js +0 -16
  631. package/lib/types/api/getOwnershipProof.d.ts +0 -45
  632. package/lib/types/api/getOwnershipProof.js +0 -22
  633. package/lib/types/api/getPublicKey.d.ts +0 -37
  634. package/lib/types/api/getPublicKey.js +0 -31
  635. package/lib/types/api/getSettings.d.ts +0 -4
  636. package/lib/types/api/getSettings.js +0 -6
  637. package/lib/types/api/index.d.ts +0 -203
  638. package/lib/types/api/index.js +0 -6
  639. package/lib/types/api/init.d.ts +0 -7
  640. package/lib/types/api/init.js +0 -6
  641. package/lib/types/api/loadDevice.d.ts +0 -4
  642. package/lib/types/api/loadDevice.js +0 -6
  643. package/lib/types/api/manifest.d.ts +0 -3
  644. package/lib/types/api/manifest.js +0 -6
  645. package/lib/types/api/monero/index.d.ts +0 -280
  646. package/lib/types/api/monero/index.js +0 -178
  647. package/lib/types/api/moneroGetAddress.d.ts +0 -5
  648. package/lib/types/api/moneroGetAddress.js +0 -6
  649. package/lib/types/api/moneroGetWatchKey.d.ts +0 -4
  650. package/lib/types/api/moneroGetWatchKey.js +0 -6
  651. package/lib/types/api/moneroKeyImageSync.d.ts +0 -4
  652. package/lib/types/api/moneroKeyImageSync.js +0 -6
  653. package/lib/types/api/moneroSignTransaction.d.ts +0 -4
  654. package/lib/types/api/moneroSignTransaction.js +0 -6
  655. package/lib/types/api/nem/index.d.ts +0 -842
  656. package/lib/types/api/nem/index.js +0 -99
  657. package/lib/types/api/nemGetAddress.d.ts +0 -14
  658. package/lib/types/api/nemGetAddress.js +0 -12
  659. package/lib/types/api/nemSignTransaction.d.ts +0 -5
  660. package/lib/types/api/nemSignTransaction.js +0 -6
  661. package/lib/types/api/off.d.ts +0 -11
  662. package/lib/types/api/off.js +0 -6
  663. package/lib/types/api/on.d.ts +0 -14
  664. package/lib/types/api/on.js +0 -6
  665. package/lib/types/api/pushTransaction.d.ts +0 -16
  666. package/lib/types/api/pushTransaction.js +0 -16
  667. package/lib/types/api/recoveryDevice.d.ts +0 -17
  668. package/lib/types/api/recoveryDevice.js +0 -12
  669. package/lib/types/api/removeAllListeners.d.ts +0 -3
  670. package/lib/types/api/removeAllListeners.js +0 -6
  671. package/lib/types/api/renderWebUSBButton.d.ts +0 -2
  672. package/lib/types/api/renderWebUSBButton.js +0 -6
  673. package/lib/types/api/requestLogin.d.ts +0 -25
  674. package/lib/types/api/requestLogin.js +0 -16
  675. package/lib/types/api/requestWebUSBDevice.d.ts +0 -2
  676. package/lib/types/api/requestWebUSBDevice.js +0 -6
  677. package/lib/types/api/resetDevice.d.ts +0 -4
  678. package/lib/types/api/resetDevice.js +0 -6
  679. package/lib/types/api/ripple/index.d.ts +0 -41
  680. package/lib/types/api/ripple/index.js +0 -30
  681. package/lib/types/api/rippleGetAddress.d.ts +0 -4
  682. package/lib/types/api/rippleGetAddress.js +0 -6
  683. package/lib/types/api/rippleSignTransaction.d.ts +0 -4
  684. package/lib/types/api/rippleSignTransaction.js +0 -6
  685. package/lib/types/api/setBrightness.d.ts +0 -4
  686. package/lib/types/api/setBrightness.js +0 -6
  687. package/lib/types/api/setBusy.d.ts +0 -4
  688. package/lib/types/api/setBusy.js +0 -6
  689. package/lib/types/api/setProxy.d.ts +0 -8
  690. package/lib/types/api/setProxy.js +0 -6
  691. package/lib/types/api/setTransports.d.ts +0 -4
  692. package/lib/types/api/setTransports.js +0 -6
  693. package/lib/types/api/showDeviceTutorial.d.ts +0 -4
  694. package/lib/types/api/showDeviceTutorial.js +0 -6
  695. package/lib/types/api/signMessage.d.ts +0 -5
  696. package/lib/types/api/signMessage.js +0 -6
  697. package/lib/types/api/signTransaction.d.ts +0 -4
  698. package/lib/types/api/signTransaction.js +0 -6
  699. package/lib/types/api/solana/index.d.ts +0 -113
  700. package/lib/types/api/solana/index.js +0 -76
  701. package/lib/types/api/solanaComposeTransaction.d.ts +0 -4
  702. package/lib/types/api/solanaComposeTransaction.js +0 -6
  703. package/lib/types/api/solanaGetAddress.d.ts +0 -4
  704. package/lib/types/api/solanaGetAddress.js +0 -6
  705. package/lib/types/api/solanaGetPublicKey.d.ts +0 -5
  706. package/lib/types/api/solanaGetPublicKey.js +0 -6
  707. package/lib/types/api/solanaSignTransaction.d.ts +0 -4
  708. package/lib/types/api/solanaSignTransaction.js +0 -6
  709. package/lib/types/api/stellar/index.d.ts +0 -914
  710. package/lib/types/api/stellar/index.js +0 -194
  711. package/lib/types/api/stellarGetAddress.d.ts +0 -4
  712. package/lib/types/api/stellarGetAddress.js +0 -6
  713. package/lib/types/api/stellarSignTransaction.d.ts +0 -4
  714. package/lib/types/api/stellarSignTransaction.js +0 -6
  715. package/lib/types/api/tezos/index.d.ts +0 -163
  716. package/lib/types/api/tezos/index.js +0 -67
  717. package/lib/types/api/tezosGetAddress.d.ts +0 -4
  718. package/lib/types/api/tezosGetAddress.js +0 -6
  719. package/lib/types/api/tezosGetPublicKey.d.ts +0 -4
  720. package/lib/types/api/tezosGetPublicKey.js +0 -6
  721. package/lib/types/api/tezosSignTransaction.d.ts +0 -5
  722. package/lib/types/api/tezosSignTransaction.js +0 -6
  723. package/lib/types/api/thpGetCredentials.d.ts +0 -4
  724. package/lib/types/api/thpGetCredentials.js +0 -6
  725. package/lib/types/api/thpRemoveCredentials.d.ts +0 -7
  726. package/lib/types/api/thpRemoveCredentials.js +0 -6
  727. package/lib/types/api/tron/index.d.ts +0 -130
  728. package/lib/types/api/tron/index.js +0 -62
  729. package/lib/types/api/tronGetAddress.d.ts +0 -4
  730. package/lib/types/api/tronGetAddress.js +0 -6
  731. package/lib/types/api/tronSignTransaction.d.ts +0 -4
  732. package/lib/types/api/tronSignTransaction.js +0 -6
  733. package/lib/types/api/uiResponse.d.ts +0 -3
  734. package/lib/types/api/uiResponse.js +0 -6
  735. package/lib/types/api/unlockPath.d.ts +0 -10
  736. package/lib/types/api/unlockPath.js +0 -13
  737. package/lib/types/api/verifyMessage.d.ts +0 -5
  738. package/lib/types/api/verifyMessage.js +0 -6
  739. package/lib/types/api/wipeDevice.d.ts +0 -4
  740. package/lib/types/api/wipeDevice.js +0 -6
  741. package/lib/types/coinInfo.d.ts +0 -353
  742. package/lib/types/coinInfo.js +0 -79
  743. package/lib/types/device.d.ts +0 -133
  744. package/lib/types/device.js +0 -13
  745. package/lib/types/fees.d.ts +0 -36
  746. package/lib/types/fees.js +0 -39
  747. package/lib/types/firmware.d.ts +0 -25
  748. package/lib/types/firmware.js +0 -6
  749. package/lib/types/index.d.ts +0 -25
  750. package/lib/types/index.js +0 -39
  751. package/lib/types/params.d.ts +0 -93
  752. package/lib/types/params.js +0 -38
  753. package/lib/types/settings.d.ts +0 -80
  754. package/lib/types/settings.js +0 -6
  755. package/lib/types/utils.d.ts +0 -15
  756. package/lib/types/utils.js +0 -6
  757. package/lib/utils/assets-browser.d.ts +0 -3
  758. package/lib/utils/assets-browser.js +0 -29
  759. package/lib/utils/debug.d.ts +0 -7
  760. package/lib/utils/debug.js +0 -33
  761. package/lib/utils/interactionTimeout.d.ts +0 -10
  762. package/lib/utils/interactionTimeout.js +0 -37
  763. package/lib/utils/popupPromiseManager.d.ts +0 -8
  764. package/lib/utils/popupPromiseManager.js +0 -30
  765. package/lib/utils/proxy-event-emitter.d.ts +0 -21
  766. package/lib/utils/proxy-event-emitter.js +0 -69
  767. package/lib/utils/urlUtils.d.ts +0 -13
  768. package/lib/utils/urlUtils.js +0 -31
  769. package/lib/utils/versionCheck.d.ts +0 -3
  770. package/lib/utils/versionCheck.js +0 -16
  771. package/lib/workers/workers-browser.d.ts +0 -10
  772. package/lib/workers/workers-browser.js +0 -20
@@ -1,32 +1,40 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ethereumNetworkInfoFromDefinition = exports.decodeEthereumDefinition = exports.EthereumDefinitionDecoded = exports.EthereumTokenDefinitionDecoded = exports.EthereumNetworkDefinitionDecoded = exports.getEthereumDefinitions = void 0;
7
- const tslib_1 = require("tslib");
8
- const cross_fetch_1 = tslib_1.__importDefault(require("cross-fetch"));
9
- const protobuf_1 = require("@trezor/protobuf");
10
- const protocol_1 = require("@trezor/protocol");
11
- const schema_utils_1 = require("@trezor/schema-utils");
12
- const DataManager_1 = require("../../data/DataManager");
13
- const coinInfo_1 = require("../../data/coinInfo");
14
- const getEthereumDefinitions = async ({
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 ({
15
20
  chainId,
16
21
  slip44,
17
- contractAddress
22
+ contractAddress,
23
+ functionSignature
18
24
  }) => {
19
25
  const definitions = {};
20
26
  if (!chainId && !slip44) {
21
27
  throw new Error('argument chainId or slip44 is required');
22
28
  }
29
+ const channel = settingsStore.isLoaded() ? settingsStore.get('definitionsChannel') : undefined;
30
+ const baseUrl = getDefinitionsBaseUrl(channel);
23
31
  try {
24
- const networkDefinitionUrl = `https://data.trezor.io/firmware/eth-definitions/${chainId ? 'chain-id' : 'slip44'}/${chainId ?? slip44}/network.dat`;
25
- const networkDefinition = await (0, cross_fetch_1.default)(networkDefinitionUrl);
32
+ const networkDefinitionUrl = `${baseUrl}/${chainId ? 'chain-id' : 'slip44'}/${chainId ?? slip44}/network.dat`;
33
+ const networkDefinition = await fetch(networkDefinitionUrl);
26
34
  if (networkDefinition.status === 200) {
27
35
  definitions.encoded_network = await networkDefinition.arrayBuffer();
28
36
  } else if (networkDefinition.status !== 404) {
29
- throw new Error(`unexpected status: $${networkDefinition.status}`);
37
+ throw new Error(`unexpected status: ${networkDefinition.status}`);
30
38
  }
31
39
  } catch (err) {
32
40
  console.warn(`unable to download or parse ${chainId} definition. detail: ${err.message}`);
@@ -34,44 +42,57 @@ const getEthereumDefinitions = async ({
34
42
  try {
35
43
  if (contractAddress) {
36
44
  const lowerCaseContractAddress = contractAddress.toLowerCase();
37
- const tokenDefinitionUrl = `https://data.trezor.io/firmware/eth-definitions/${chainId ? 'chain-id' : 'slip44'}/${chainId ?? slip44}/token-${lowerCaseContractAddress}.dat`;
38
- const tokenDefinition = await (0, cross_fetch_1.default)(tokenDefinitionUrl);
45
+ const tokenDefinitionUrl = `${baseUrl}/${chainId ? 'chain-id' : 'slip44'}/${chainId ?? slip44}/token-${lowerCaseContractAddress}.dat`;
46
+ const tokenDefinition = await fetch(tokenDefinitionUrl);
39
47
  if (tokenDefinition.status === 200) {
40
48
  definitions.encoded_token = await tokenDefinition.arrayBuffer();
41
49
  } else if (tokenDefinition.status !== 404) {
42
- throw new Error(`unexpected status: $${tokenDefinition.status}`);
50
+ throw new Error(`unexpected status: ${tokenDefinition.status}`);
43
51
  }
44
52
  }
45
53
  } catch (err) {
46
54
  console.warn(`unable to download or parse ${chainId}/${contractAddress} definition. detail: ${err.message}`);
47
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
+ }
48
72
  return definitions;
49
73
  };
50
- exports.getEthereumDefinitions = getEthereumDefinitions;
51
- exports.EthereumNetworkDefinitionDecoded = schema_utils_1.Type.Object({
52
- chain_id: schema_utils_1.Type.Number(),
53
- name: schema_utils_1.Type.String(),
54
- slip44: schema_utils_1.Type.Number(),
55
- symbol: schema_utils_1.Type.String()
74
+ export const EthereumNetworkDefinitionDecoded = Type.Object({
75
+ chain_id: Type.Number(),
76
+ name: Type.String(),
77
+ slip44: Type.Number(),
78
+ symbol: Type.String()
56
79
  });
57
- exports.EthereumTokenDefinitionDecoded = schema_utils_1.Type.Object({
58
- address: schema_utils_1.Type.String(),
59
- chain_id: schema_utils_1.Type.Number(),
60
- decimals: schema_utils_1.Type.Number(),
61
- name: schema_utils_1.Type.String(),
62
- symbol: schema_utils_1.Type.String()
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()
63
86
  });
64
- exports.EthereumDefinitionDecoded = schema_utils_1.Type.Object({
65
- network: schema_utils_1.Type.Optional(exports.EthereumNetworkDefinitionDecoded),
66
- token: schema_utils_1.Type.Optional(exports.EthereumTokenDefinitionDecoded)
87
+ export const EthereumDefinitionDecoded = Type.Object({
88
+ network: Type.Optional(EthereumNetworkDefinitionDecoded),
89
+ token: Type.Optional(EthereumTokenDefinitionDecoded)
67
90
  });
68
- const decodeEthereumDefinition = encodedDefinition => {
91
+ export const decodeEthereumDefinition = encodedDefinition => {
69
92
  const decoded = {
70
93
  network: undefined,
71
94
  token: undefined
72
95
  };
73
- const messages = DataManager_1.DataManager.getProtobufMessages();
74
- const proto = (0, protobuf_1.parseConfigure)(messages);
75
96
  ['encoded_token', 'encoded_network'].forEach(key => {
76
97
  const encodedPayload = encodedDefinition[key];
77
98
  if (!encodedPayload) {
@@ -80,30 +101,28 @@ const decodeEthereumDefinition = encodedDefinition => {
80
101
  const {
81
102
  definitionType,
82
103
  protobufPayload
83
- } = protocol_1.trzd.decode(encodedPayload);
104
+ } = trzd.decode(encodedPayload);
84
105
  const {
85
106
  message: decodedDefinition
86
- } = (0, protobuf_1.decodeMessage)(proto, definitionType === 0 ? 'EthereumNetworkInfo' : 'EthereumTokenInfo', protobufPayload);
107
+ } = protobufManager.decode(definitionType === 0 ? 'EthereumNetworkInfo' : 'EthereumTokenInfo', protobufPayload);
87
108
  if (key === 'encoded_network') {
88
- (0, schema_utils_1.Assert)(exports.EthereumNetworkDefinitionDecoded, decodedDefinition);
109
+ Assert(EthereumNetworkDefinitionDecoded, decodedDefinition);
89
110
  decoded.network = decodedDefinition;
90
111
  } else if (key === 'encoded_token') {
91
- (0, schema_utils_1.Assert)(exports.EthereumTokenDefinitionDecoded, decodedDefinition);
112
+ Assert(EthereumTokenDefinitionDecoded, decodedDefinition);
92
113
  decoded.token = decodedDefinition;
93
114
  }
94
115
  });
95
116
  return decoded;
96
117
  };
97
- exports.decodeEthereumDefinition = decodeEthereumDefinition;
98
- const ethereumNetworkInfoFromDefinition = definition => ({
99
- ...coinInfo_1.ethereumNetworkInfoBase,
118
+ export const ethereumNetworkInfoFromDefinition = definition => ({
119
+ ...ethereumNetworkInfoBase,
100
120
  chainId: definition.chain_id,
101
121
  label: definition.name,
102
122
  name: definition.name,
103
123
  slip44: definition.slip44,
104
124
  shortcut: definition.symbol,
105
125
  support: {
106
- connect: true,
107
126
  T1B1: '1.6.2',
108
127
  T2T1: '2.0.7',
109
128
  T2B1: '2.0.0',
@@ -113,6 +132,4 @@ const ethereumNetworkInfoFromDefinition = definition => ({
113
132
  UNKNOWN: '0.0.0'
114
133
  },
115
134
  blockchainLink: undefined
116
- });
117
- exports.ethereumNetworkInfoFromDefinition = ethereumNetworkInfoFromDefinition;
118
- //# sourceMappingURL=ethereumDefinitions.js.map
135
+ });
@@ -1,22 +1,16 @@
1
- import { Common } from '@ethereumjs/common';
2
- import { MessagesSchema } from '@trezor/protobuf';
3
- import { PROTO } from '../../constants';
4
- import type { TypedCall } from '../../device/DeviceCommands';
5
- import type { EthereumAccessList, EthereumTransaction, EthereumTransactionEIP1559 } from '../../types/api/ethereum';
6
- export declare const getCommonForChain: (chainId: number) => Common;
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
+ };
7
9
  export declare const serializeEthereumTx: (tx: EthereumTransactionEIP1559 | EthereumTransaction, signature: {
8
- v: `0x${string}`;
9
- r: `0x${string}`;
10
- s: `0x${string}`;
11
- }, isLegacy: boolean) => string;
12
- 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<{
13
- v: `0x${string}`;
14
- r: `0x${string}`;
15
- s: `0x${string}`;
16
- }>;
17
- 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<{
18
- v: `0x${string}`;
19
- r: `0x${string}`;
20
- s: `0x${string}`;
21
- }>;
22
- //# sourceMappingURL=ethereumSignTx.d.ts.map
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,13 +1,7 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ethereumSignTxEIP1559 = exports.ethereumSignTx = exports.serializeEthereumTx = exports.getCommonForChain = void 0;
7
- const common_1 = require("@ethereumjs/common");
8
- const tx_1 = require("@ethereumjs/tx");
9
- const constants_1 = require("../../constants");
10
- const formatUtils_1 = require("../../utils/formatUtils");
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";
11
5
  const splitString = (str, len) => {
12
6
  if (str == null) {
13
7
  return ['', ''];
@@ -16,13 +10,13 @@ const splitString = (str, len) => {
16
10
  const second = str.slice(len);
17
11
  return [first, second];
18
12
  };
19
- const processTxRequest = async (typedCall, request, data, chain_id) => {
13
+ async function processTxRequest(typedCall, request, data, chain_id) {
20
14
  if (!request.data_length) {
21
15
  let v = request.signature_v;
22
16
  const r = request.signature_r;
23
17
  const s = request.signature_s;
24
18
  if (v == null || r == null || s == null) {
25
- throw constants_1.ERRORS.TypedError('Runtime', 'processTxRequest: Unexpected request');
19
+ throw ERRORS.TypedError('Runtime', 'processTxRequest: Unexpected request');
26
20
  }
27
21
  if (chain_id && v <= 1) {
28
22
  v += 2 * chain_id + 35;
@@ -34,54 +28,63 @@ const processTxRequest = async (typedCall, request, data, chain_id) => {
34
28
  });
35
29
  }
36
30
  const [first, rest] = splitString(data, request.data_length * 2);
37
- const response = await typedCall('EthereumTxAck', 'EthereumTxRequest', {
31
+ const nextResponse = await typedCall('EthereumTxAck', ['EthereumTxRequest', 'EthereumDefinitionRequest'], {
38
32
  data_chunk: first
39
33
  });
40
- return processTxRequest(typedCall, response.message, rest, chain_id);
41
- };
42
- const deepHexPrefix = (0, formatUtils_1.deepTransform)(formatUtils_1.addHexPrefix);
43
- const getCommonForChain = chainId => {
44
- if (chainId === 61) {
45
- return (0, common_1.createCustomCommon)({
46
- chainId: 61,
47
- defaultHardfork: common_1.Hardfork.Petersburg
48
- }, common_1.Mainnet);
49
- }
50
- return (0, common_1.createCustomCommon)({
51
- chainId
52
- }, common_1.Mainnet);
53
- };
54
- exports.getCommonForChain = getCommonForChain;
55
- const serializeEthereumTx = (tx, signature, isLegacy) => {
56
- const txData = deepHexPrefix({
57
- ...tx,
58
- ...signature,
59
- to: tx.to || undefined,
60
- type: isLegacy ? 0 : 2,
61
- ...(isLegacy ? {
62
- gasPrice: tx.gasPrice,
63
- maxFeePerGas: undefined,
64
- maxPriorityFeePerGas: undefined
65
- } : {
66
- gasPrice: undefined,
67
- maxFeePerGas: tx.maxFeePerGas,
68
- maxPriorityFeePerGas: tx.maxPriorityFeePerGas
69
- })
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
70
41
  });
71
- const txOptions = {
72
- common: (0, exports.getCommonForChain)(tx.chainId)
73
- };
74
- const ethTx = (0, tx_1.createTx)(txData, txOptions);
75
- return `0x${Buffer.from(ethTx.serialize()).toString('hex')}`;
76
- };
77
- exports.serializeEthereumTx = serializeEthereumTx;
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
+ });
78
81
  const stripLeadingZeroes = str => {
79
82
  while (/^00/.test(str)) {
80
83
  str = str.slice(2);
81
84
  }
82
85
  return str;
83
86
  };
84
- const ethereumSignTx = async (typedCall, address_n, to, value, gas_limit, gas_price, nonce, chain_id, chunkify, data, tx_type, definitions, payment_req) => {
87
+ export const ethereumSignTx = async (typedCall, address_n, to, value, gas_limit, gas_price, nonce, chain_id, chunkify, data, tx_type, definitions, payment_req) => {
85
88
  const length = data == null ? 0 : data.length / 2;
86
89
  const [first, rest] = splitString(data, 1024 * 2);
87
90
  let message = {
@@ -94,7 +97,8 @@ const ethereumSignTx = async (typedCall, address_n, to, value, gas_limit, gas_pr
94
97
  value: stripLeadingZeroes(value),
95
98
  definitions,
96
99
  chunkify,
97
- payment_req
100
+ payment_req,
101
+ supports_definition_request: true
98
102
  };
99
103
  if (length !== 0) {
100
104
  message = {
@@ -109,11 +113,10 @@ const ethereumSignTx = async (typedCall, address_n, to, value, gas_limit, gas_pr
109
113
  tx_type
110
114
  };
111
115
  }
112
- const response = await typedCall('EthereumSignTx', 'EthereumTxRequest', message);
113
- return processTxRequest(typedCall, response.message, rest, chain_id);
116
+ const response = await typedCall('EthereumSignTx', ['EthereumTxRequest', 'EthereumDefinitionRequest'], message);
117
+ return handleTxFlowResponse(typedCall, response, rest, chain_id);
114
118
  };
115
- exports.ethereumSignTx = ethereumSignTx;
116
- 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) => {
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) => {
117
120
  const length = data == null ? 0 : data.length / 2;
118
121
  const [first, rest] = splitString(data, 1024 * 2);
119
122
  const message = {
@@ -133,10 +136,9 @@ const ethereumSignTxEIP1559 = async (typedCall, address_n, to, value, gas_limit,
133
136
  })),
134
137
  definitions,
135
138
  chunkify,
136
- payment_req
139
+ payment_req,
140
+ supports_definition_request: true
137
141
  };
138
- const response = await typedCall('EthereumSignTxEIP1559', 'EthereumTxRequest', message);
139
- return processTxRequest(typedCall, response.message, rest);
140
- };
141
- exports.ethereumSignTxEIP1559 = ethereumSignTxEIP1559;
142
- //# sourceMappingURL=ethereumSignTx.js.map
142
+ const response = await typedCall('EthereumSignTxEIP1559', ['EthereumTxRequest', 'EthereumDefinitionRequest'], message);
143
+ return handleTxFlowResponse(typedCall, response, rest);
144
+ };
@@ -1,9 +1,32 @@
1
- import { PROTO } from '../../constants';
2
- import type { EthereumSignTypedDataTypes } from '../../types/api/ethereum';
1
+ import type { EthereumSignTypedDataTypes } from '@trezor/connect-common';
2
+ import { MessagesSchema as PROTO } from '@trezor/protobuf';
3
3
  export declare function parseArrayType(arrayTypeName: string): {
4
- entryTypeName: string;
5
- arraySize: number | null;
4
+ entryTypeName: string;
5
+ arraySize: number | null;
6
6
  };
7
7
  export declare function encodeData(typeName: string, data: any): string;
8
8
  export declare function getFieldType(typeName: string, types: EthereumSignTypedDataTypes): PROTO.EthereumFieldType;
9
- //# sourceMappingURL=ethereumSignTypedData.d.ts.map
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,23 +1,19 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.parseArrayType = parseArrayType;
7
- exports.encodeData = encodeData;
8
- exports.getFieldType = getFieldType;
9
- const bigNumber_1 = require("@trezor/utils/lib/bigNumber");
10
- const constants_1 = require("../../constants");
11
- const formatUtils_1 = require("../../utils/formatUtils");
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";
12
7
  const paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
13
8
  const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
14
9
  const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
15
- function parseArrayType(arrayTypeName) {
10
+ export function parseArrayType(arrayTypeName) {
16
11
  const arrayMatch = paramTypeArray.exec(arrayTypeName);
17
12
  if (arrayMatch === null) {
18
- throw constants_1.ERRORS.TypedError('Runtime', `typename ${arrayTypeName} could not be parsed as an EIP-712 array`);
13
+ throw ERRORS.TypedError('Runtime', `typename ${arrayTypeName} could not be parsed as an EIP-712 array`);
19
14
  }
20
- const [_, entryTypeName, arraySize] = arrayMatch;
15
+ const entryTypeName = arrayMatch[1] ?? '';
16
+ const arraySize = arrayMatch[2] ?? '';
21
17
  return {
22
18
  entryTypeName,
23
19
  arraySize: parseInt(arraySize, 10) || null
@@ -25,13 +21,13 @@ function parseArrayType(arrayTypeName) {
25
21
  }
26
22
  function twosComplement(number, bytes) {
27
23
  if (bytes < 1 || bytes > 32) {
28
- throw constants_1.ERRORS.TypedError('Runtime', 'Int byte size must be between 1 and 32 (8 and 256 bits)');
24
+ throw ERRORS.TypedError('Runtime', 'Int byte size must be between 1 and 32 (8 and 256 bits)');
29
25
  }
30
- const minValue = new bigNumber_1.BigNumber(2).exponentiatedBy(bytes * 8 - 1).negated();
26
+ const minValue = new BigNumber(2).exponentiatedBy(bytes * 8 - 1).negated();
31
27
  const maxValue = minValue.negated().minus(1);
32
- const bigNumber = new bigNumber_1.BigNumber(number);
28
+ const bigNumber = new BigNumber(number);
33
29
  if (bigNumber.isGreaterThan(maxValue) || bigNumber.isLessThan(minValue)) {
34
- throw constants_1.ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
30
+ throw ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
35
31
  }
36
32
  if (bigNumber.isPositive()) {
37
33
  return bigNumber;
@@ -39,67 +35,70 @@ function twosComplement(number, bytes) {
39
35
  return bigNumber.minus(minValue).minus(minValue);
40
36
  }
41
37
  function intToHex(number, bytes, signed) {
42
- let bigNumber = new bigNumber_1.BigNumber(number);
38
+ let bigNumber = new BigNumber(number);
43
39
  if (signed) {
44
40
  bigNumber = twosComplement(bigNumber, bytes);
45
41
  }
46
42
  if (bigNumber.isNegative()) {
47
- throw constants_1.ERRORS.TypedError('Runtime', `Cannot convert negative number to unsigned interger: ${number}`);
43
+ throw ERRORS.TypedError('Runtime', `Cannot convert negative number to unsigned interger: ${number}`);
48
44
  }
49
45
  const hex = bigNumber.toString(16);
50
46
  const hexChars = bytes * 2;
51
47
  if (hex.length > hexChars) {
52
- throw constants_1.ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
48
+ throw ERRORS.TypedError('Runtime', `Overflow when trying to convert number ${number} into ${bytes} bytes`);
53
49
  }
54
50
  return hex.padStart(bytes * 2, '0');
55
51
  }
56
- function encodeData(typeName, data) {
52
+ export function encodeData(typeName, data) {
57
53
  if (paramTypeBytes.test(typeName) || typeName === 'address') {
58
- return (0, formatUtils_1.messageToHex)(data);
54
+ return messageToHex(data);
59
55
  }
60
56
  if (typeName === 'string') {
61
57
  return Buffer.from(data, 'utf-8').toString('hex');
62
58
  }
63
59
  const numberMatch = paramTypeNumber.exec(typeName);
64
60
  if (numberMatch) {
65
- const [_, intType, bits] = numberMatch;
66
- const bytes = Math.ceil(parseInt(bits, 10) / 8);
61
+ const intType = numberMatch[1] ?? '';
62
+ const bits = numberMatch[2] ?? '';
63
+ const bytes = Math.ceil((bits === '' ? 256 : parseInt(bits, 10)) / 8);
67
64
  return intToHex(data, bytes, intType === 'int');
68
65
  }
69
66
  if (typeName === 'bool') {
70
67
  return data ? '01' : '00';
71
68
  }
72
- throw constants_1.ERRORS.TypedError('Runtime', `Unsupported data type for direct field encoding: ${typeName}`);
69
+ throw ERRORS.TypedError('Runtime', `Unsupported data type for direct field encoding: ${typeName}`);
73
70
  }
74
71
  const paramTypesMap = {
75
- string: constants_1.PROTO.EthereumDataType.STRING,
76
- bool: constants_1.PROTO.EthereumDataType.BOOL,
77
- address: constants_1.PROTO.EthereumDataType.ADDRESS
72
+ string: PROTO.EthereumDataType.STRING,
73
+ bool: PROTO.EthereumDataType.BOOL,
74
+ address: PROTO.EthereumDataType.ADDRESS
78
75
  };
79
- function getFieldType(typeName, types) {
76
+ export function getFieldType(typeName, types) {
80
77
  const arrayMatch = paramTypeArray.exec(typeName);
81
78
  if (arrayMatch) {
82
- const [_, arrayItemTypeName, arraySize] = arrayMatch;
79
+ const arrayItemTypeName = arrayMatch[1] ?? '';
80
+ const arraySize = arrayMatch[2] ?? '';
83
81
  const entryType = getFieldType(arrayItemTypeName, types);
84
82
  return {
85
- data_type: constants_1.PROTO.EthereumDataType.ARRAY,
83
+ data_type: PROTO.EthereumDataType.ARRAY,
86
84
  size: parseInt(arraySize, 10) || undefined,
87
85
  entry_type: entryType
88
86
  };
89
87
  }
90
88
  const numberMatch = paramTypeNumber.exec(typeName);
91
89
  if (numberMatch) {
92
- const [_, type, bits] = numberMatch;
90
+ const type = numberMatch[1] ?? '';
91
+ const bits = numberMatch[2] ?? '';
93
92
  return {
94
- data_type: type === 'uint' ? constants_1.PROTO.EthereumDataType.UINT : constants_1.PROTO.EthereumDataType.INT,
95
- size: Math.floor(parseInt(bits, 10) / 8)
93
+ data_type: type === 'uint' ? PROTO.EthereumDataType.UINT : PROTO.EthereumDataType.INT,
94
+ size: Math.floor((bits === '' ? 256 : parseInt(bits, 10)) / 8)
96
95
  };
97
96
  }
98
97
  const bytesMatch = paramTypeBytes.exec(typeName);
99
98
  if (bytesMatch) {
100
- const [_, size] = bytesMatch;
99
+ const size = bytesMatch[1] ?? '';
101
100
  return {
102
- data_type: constants_1.PROTO.EthereumDataType.BYTES,
101
+ data_type: PROTO.EthereumDataType.BYTES,
103
102
  size: parseInt(size, 10) || undefined
104
103
  };
105
104
  }
@@ -110,12 +109,67 @@ function getFieldType(typeName, types) {
110
109
  };
111
110
  }
112
111
  if (typeName in types) {
112
+ const typeDef = types[typeName];
113
113
  return {
114
- data_type: constants_1.PROTO.EthereumDataType.STRUCT,
115
- size: types[typeName].length,
114
+ data_type: PROTO.EthereumDataType.STRUCT,
115
+ size: typeDef.length,
116
116
  struct_name: typeName
117
117
  };
118
118
  }
119
- throw constants_1.ERRORS.TypedError('Runtime', `No type definition specified: ${typeName}`);
119
+ throw ERRORS.TypedError('Runtime', `No type definition specified: ${typeName}`);
120
120
  }
121
- //# sourceMappingURL=ethereumSignTypedData.js.map
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
+ };