@trezor/connect 9.7.0-beta.1 → 9.7.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.
Files changed (408) hide show
  1. package/CHANGELOG.md +43 -12
  2. package/README.md +1 -1
  3. package/lib/api/applyFlags.js +31 -26
  4. package/lib/api/applySettings.js +43 -40
  5. package/lib/api/authenticateDevice.js +82 -54
  6. package/lib/api/authorizeCoinjoin.js +35 -28
  7. package/lib/api/backupDevice.js +32 -27
  8. package/lib/api/bitcoin/TransactionComposer.js +131 -123
  9. package/lib/api/bitcoin/createPendingTx.js +55 -52
  10. package/lib/api/bitcoin/enhanceSignTx.js +57 -55
  11. package/lib/api/bitcoin/index.js +4 -1
  12. package/lib/api/bitcoin/inputs.js +71 -46
  13. package/lib/api/bitcoin/outputs.js +108 -85
  14. package/lib/api/bitcoin/refTx.d.ts +1 -1
  15. package/lib/api/bitcoin/refTx.js +233 -201
  16. package/lib/api/bitcoin/signtx.js +208 -152
  17. package/lib/api/bitcoin/signtxLegacy.js +169 -119
  18. package/lib/api/bitcoin/signtxVerify.js +80 -67
  19. package/lib/api/bitcoin/transactionBytes.js +61 -59
  20. package/lib/api/bleUnpair.js +28 -25
  21. package/lib/api/blockchainDisconnect.js +31 -24
  22. package/lib/api/blockchainEstimateFee.js +94 -61
  23. package/lib/api/blockchainEvmRpcCall.js +51 -34
  24. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +1 -1
  25. package/lib/api/blockchainGetAccountBalanceHistory.js +50 -32
  26. package/lib/api/blockchainGetCurrentFiatRates.d.ts +1 -1
  27. package/lib/api/blockchainGetCurrentFiatRates.js +43 -29
  28. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +1 -1
  29. package/lib/api/blockchainGetFiatRatesForTimestamps.js +49 -32
  30. package/lib/api/blockchainGetInfo.js +31 -22
  31. package/lib/api/blockchainGetTransactions.d.ts +1 -1
  32. package/lib/api/blockchainGetTransactions.js +36 -24
  33. package/lib/api/blockchainSetCustomBackend.js +34 -25
  34. package/lib/api/blockchainSubscribe.js +57 -36
  35. package/lib/api/blockchainSubscribeFiatRates.js +36 -24
  36. package/lib/api/blockchainUnsubscribe.js +57 -37
  37. package/lib/api/blockchainUnsubscribeFiatRates.js +31 -22
  38. package/lib/api/cancelCoinjoinAuthorization.js +26 -20
  39. package/lib/api/cardano/api/cardanoComposeTransaction.js +75 -50
  40. package/lib/api/cardano/api/cardanoGetAddress.js +105 -102
  41. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +59 -56
  42. package/lib/api/cardano/api/cardanoGetPublicKey.js +58 -58
  43. package/lib/api/cardano/api/cardanoSignMessage.js +81 -78
  44. package/lib/api/cardano/api/cardanoSignTransaction.js +269 -240
  45. package/lib/api/cardano/api/index.js +40 -7
  46. package/lib/api/cardano/cardanoAddressParameters.js +71 -65
  47. package/lib/api/cardano/cardanoAuxiliaryData.js +68 -63
  48. package/lib/api/cardano/cardanoCertificate.js +124 -119
  49. package/lib/api/cardano/cardanoInputs.js +33 -33
  50. package/lib/api/cardano/cardanoOutputs.d.ts +1 -1
  51. package/lib/api/cardano/cardanoOutputs.js +63 -61
  52. package/lib/api/cardano/cardanoTokenBundle.d.ts +2 -2
  53. package/lib/api/cardano/cardanoTokenBundle.js +18 -13
  54. package/lib/api/cardano/cardanoUtils.js +94 -89
  55. package/lib/api/cardano/cardanoWitnesses.js +46 -42
  56. package/lib/api/changeLanguage.js +40 -29
  57. package/lib/api/changePin.js +21 -16
  58. package/lib/api/changeWipeCode.js +24 -16
  59. package/lib/api/cipherKeyValue.js +42 -41
  60. package/lib/api/common/Discovery.js +114 -112
  61. package/lib/api/common/paramsValidator.js +110 -116
  62. package/lib/api/composeTransaction.d.ts +1 -1
  63. package/lib/api/composeTransaction.js +307 -256
  64. package/lib/api/discoverAccounts.js +291 -191
  65. package/lib/api/eos/api/eosGetPublicKey.js +56 -52
  66. package/lib/api/eos/api/eosSignTransaction.js +35 -26
  67. package/lib/api/eos/api/index.js +16 -3
  68. package/lib/api/eos/eosSignTx.js +308 -312
  69. package/lib/api/ethereum/api/ethereumGetAddress.js +106 -107
  70. package/lib/api/ethereum/api/ethereumGetPublicKey.js +72 -62
  71. package/lib/api/ethereum/api/ethereumSignMessage.js +55 -48
  72. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +33 -0
  73. package/lib/api/ethereum/api/ethereumSignTransaction.js +137 -132
  74. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +4 -4
  75. package/lib/api/ethereum/api/ethereumSignTypedData.js +183 -181
  76. package/lib/api/ethereum/api/ethereumVerifyMessage.js +27 -24
  77. package/lib/api/ethereum/api/index.js +40 -7
  78. package/lib/api/ethereum/ethereumDefinitions.js +94 -87
  79. package/lib/api/ethereum/ethereumSignTx.js +116 -111
  80. package/lib/api/ethereum/ethereumSignTypedData.js +98 -95
  81. package/lib/api/evoluGetDelegatedIdentityKey.js +30 -26
  82. package/lib/api/evoluGetNode.js +24 -19
  83. package/lib/api/evoluSignRegistrationRequest.js +26 -21
  84. package/lib/api/firmware/calculateFirmwareHash.js +44 -32
  85. package/lib/api/firmware/getBinary.js +30 -22
  86. package/lib/api/firmware/index.js +46 -8
  87. package/lib/api/firmware/modifyFirmware.js +13 -12
  88. package/lib/api/firmware/parseFirmwareHeaders.js +29 -30
  89. package/lib/api/firmware/uploadFirmware.js +84 -67
  90. package/lib/api/firmware/verifyEntropy.js +88 -83
  91. package/lib/api/getAccountDescriptor.js +118 -120
  92. package/lib/api/getAccountInfo.d.ts +14 -14
  93. package/lib/api/getAccountInfo.js +316 -287
  94. package/lib/api/getAddress.js +128 -118
  95. package/lib/api/getCoinInfo.js +22 -17
  96. package/lib/api/getDeviceState.js +16 -10
  97. package/lib/api/getFeatures.d.ts +1 -1
  98. package/lib/api/getFeatures.js +15 -12
  99. package/lib/api/getFirmwareHash.js +23 -18
  100. package/lib/api/getNonce.js +12 -9
  101. package/lib/api/getOwnershipId.js +57 -51
  102. package/lib/api/getOwnershipProof.js +66 -60
  103. package/lib/api/getPublicKey.js +72 -66
  104. package/lib/api/getSettings.js +12 -9
  105. package/lib/api/index.js +346 -58
  106. package/lib/api/loadDevice.js +40 -35
  107. package/lib/api/monero/api/index.js +28 -5
  108. package/lib/api/monero/api/moneroGetAddress.js +108 -97
  109. package/lib/api/monero/api/moneroGetWatchKey.js +37 -32
  110. package/lib/api/monero/api/moneroKeyImageSync.js +111 -107
  111. package/lib/api/monero/api/moneroSignTransaction.js +173 -185
  112. package/lib/api/nem/api/index.js +16 -3
  113. package/lib/api/nem/api/nemGetAddress.js +107 -102
  114. package/lib/api/nem/api/nemSignTransaction.js +25 -20
  115. package/lib/api/nem/nemSignTx.js +128 -125
  116. package/lib/api/pushTransaction.js +31 -27
  117. package/lib/api/recoveryDevice.js +44 -39
  118. package/lib/api/requestLogin.d.ts +0 -1
  119. package/lib/api/requestLogin.js +47 -52
  120. package/lib/api/resetDevice.js +100 -90
  121. package/lib/api/ripple/api/index.js +16 -3
  122. package/lib/api/ripple/api/rippleGetAddress.js +92 -88
  123. package/lib/api/ripple/api/rippleSignTransaction.js +44 -34
  124. package/lib/api/setBrightness.js +21 -16
  125. package/lib/api/setBusy.js +27 -20
  126. package/lib/api/setProxy.js +22 -15
  127. package/lib/api/showDeviceTutorial.js +18 -15
  128. package/lib/api/signMessage.js +50 -46
  129. package/lib/api/signTransaction.js +325 -238
  130. package/lib/api/solana/additionalInfo.js +17 -14
  131. package/lib/api/solana/api/index.js +28 -5
  132. package/lib/api/solana/api/solanaComposeTransaction.js +46 -50
  133. package/lib/api/solana/api/solanaGetAddress.js +92 -90
  134. package/lib/api/solana/api/solanaGetPublicKey.js +56 -52
  135. package/lib/api/solana/api/solanaSignTransaction.js +175 -168
  136. package/lib/api/solana/solanaDefinitions.js +32 -25
  137. package/lib/api/solana/solanaUtils.d.ts +2 -2
  138. package/lib/api/solana/solanaUtils.js +231 -177
  139. package/lib/api/stellar/api/index.js +16 -3
  140. package/lib/api/stellar/api/stellarGetAddress.js +92 -88
  141. package/lib/api/stellar/api/stellarSignTransaction.js +51 -44
  142. package/lib/api/stellar/stellarSignTx.js +184 -179
  143. package/lib/api/tezos/api/index.js +22 -4
  144. package/lib/api/tezos/api/tezosGetAddress.js +92 -88
  145. package/lib/api/tezos/api/tezosGetPublicKey.js +55 -51
  146. package/lib/api/tezos/api/tezosSignTransaction.js +23 -18
  147. package/lib/api/tezos/tezosSignTx.js +183 -169
  148. package/lib/api/thpGetCredentials.js +23 -20
  149. package/lib/api/thpRemoveCredentials.js +28 -21
  150. package/lib/api/unlockPath.js +28 -21
  151. package/lib/api/verifyMessage.js +35 -33
  152. package/lib/api/wipeDevice.js +39 -34
  153. package/lib/backend/BackendManager.js +127 -107
  154. package/lib/backend/Blockchain.d.ts +1 -1
  155. package/lib/backend/Blockchain.js +220 -205
  156. package/lib/backend/BlockchainLink.js +17 -5
  157. package/lib/backend/fees/BitcoinFeeLevels.js +41 -34
  158. package/lib/backend/fees/EthereumFeeLevels.js +51 -51
  159. package/lib/backend/fees/MiscFeeLevels.js +25 -24
  160. package/lib/backend/fees/index.js +28 -21
  161. package/lib/constants/cardano.js +11 -8
  162. package/lib/constants/errors.js +72 -65
  163. package/lib/constants/firmware.js +5 -5
  164. package/lib/constants/index.js +16 -3
  165. package/lib/constants/nem.js +19 -16
  166. package/lib/constants/network.js +15 -22
  167. package/lib/constants/utxo.js +4 -1
  168. package/lib/core/AbstractMethod.d.ts +1 -1
  169. package/lib/core/AbstractMethod.js +248 -224
  170. package/lib/core/index.js +936 -775
  171. package/lib/core/method.js +19 -16
  172. package/lib/core/method.native.js +28 -23
  173. package/lib/core/onCallFirmwareUpdate.js +368 -299
  174. package/lib/data/DataManager.js +85 -77
  175. package/lib/data/analyticsInfo.js +35 -29
  176. package/lib/data/coinInfo.js +154 -156
  177. package/lib/data/config.d.ts +1 -1
  178. package/lib/data/config.js +362 -330
  179. package/lib/data/connectSettings.js +131 -144
  180. package/lib/data/defaultFeeLevels.js +154 -108
  181. package/lib/data/firmwareInfo.d.ts +1 -0
  182. package/lib/data/firmwareInfo.js +407 -377
  183. package/lib/data/thpSettings.js +36 -35
  184. package/lib/data/udevInfo.js +24 -24
  185. package/lib/data/version.d.ts +1 -1
  186. package/lib/data/version.js +6 -5
  187. package/lib/device/Device.d.ts +6 -7
  188. package/lib/device/Device.js +731 -749
  189. package/lib/device/DeviceCommands.js +226 -194
  190. package/lib/device/DeviceCurrentSession.d.ts +333 -333
  191. package/lib/device/DeviceCurrentSession.js +235 -236
  192. package/lib/device/DeviceList.d.ts +2 -0
  193. package/lib/device/DeviceList.js +219 -181
  194. package/lib/device/StateStorage.js +32 -29
  195. package/lib/device/TransportList.d.ts +1 -1
  196. package/lib/device/TransportList.js +37 -36
  197. package/lib/device/TransportManager.js +136 -140
  198. package/lib/device/calculateRevisionForDevice.js +20 -14
  199. package/lib/device/checkFirmwareRevision.js +66 -54
  200. package/lib/device/resolveDescriptorForTaproot.js +26 -16
  201. package/lib/device/thp/handshake.js +95 -82
  202. package/lib/device/thp/index.js +53 -38
  203. package/lib/device/thp/pairing.js +209 -199
  204. package/lib/device/thp/session.js +27 -19
  205. package/lib/device/thp/thpCall.js +53 -43
  206. package/lib/device/workflow/checkFirmwareHash.js +77 -67
  207. package/lib/device/workflow/checkFirmwareHashWithRetries.js +32 -29
  208. package/lib/device/workflow/handshake.js +50 -41
  209. package/lib/device/workflow/index.js +10 -2
  210. package/lib/device/workflow/trezorPushNotification.js +68 -64
  211. package/lib/device/workflow/validateState.js +155 -129
  212. package/lib/events/blockchain.js +13 -10
  213. package/lib/events/call.d.ts +6 -4
  214. package/lib/events/call.js +14 -13
  215. package/lib/events/core.js +24 -21
  216. package/lib/events/device.d.ts +2 -2
  217. package/lib/events/device.js +32 -19
  218. package/lib/events/iframe.js +13 -10
  219. package/lib/events/index.d.ts +0 -1
  220. package/lib/events/index.js +6 -3
  221. package/lib/events/popup.js +20 -17
  222. package/lib/events/transport.d.ts +2 -2
  223. package/lib/events/transport.js +16 -11
  224. package/lib/events/ui-promise.js +4 -1
  225. package/lib/events/ui-request.d.ts +0 -4
  226. package/lib/events/ui-request.js +48 -46
  227. package/lib/events/ui-response.d.ts +2 -2
  228. package/lib/events/ui-response.js +20 -17
  229. package/lib/events/webextension.js +9 -6
  230. package/lib/exports.js +10 -2
  231. package/lib/factory.d.ts +3 -2
  232. package/lib/factory.js +34 -143
  233. package/lib/impl/core-in-module.d.ts +1 -6
  234. package/lib/impl/core-in-module.js +187 -191
  235. package/lib/impl/dynamic.d.ts +0 -1
  236. package/lib/impl/dynamic.js +108 -97
  237. package/lib/index-browser.d.ts +1 -0
  238. package/lib/index-browser.js +18 -16
  239. package/lib/index.d.ts +2 -0
  240. package/lib/index.js +144 -148
  241. package/lib/types/account.js +4 -1
  242. package/lib/types/api/applyFlags.js +4 -1
  243. package/lib/types/api/applySettings.d.ts +2 -2
  244. package/lib/types/api/applySettings.js +7 -7
  245. package/lib/types/api/authenticateDevice.js +7 -4
  246. package/lib/types/api/authorizeCoinjoin.js +13 -10
  247. package/lib/types/api/backupDevice.js +4 -1
  248. package/lib/types/api/bitcoin/index.d.ts +5 -2
  249. package/lib/types/api/bitcoin/index.js +14 -11
  250. package/lib/types/api/bleUnpair.js +4 -1
  251. package/lib/types/api/blockchainDisconnect.js +4 -1
  252. package/lib/types/api/blockchainEstimateFee.js +4 -1
  253. package/lib/types/api/blockchainEvmRpcCall.js +4 -1
  254. package/lib/types/api/blockchainGetAccountBalanceHistory.js +4 -1
  255. package/lib/types/api/blockchainGetCurrentFiatRates.js +4 -1
  256. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +4 -1
  257. package/lib/types/api/blockchainGetInfo.js +4 -1
  258. package/lib/types/api/blockchainGetTransactions.js +4 -1
  259. package/lib/types/api/blockchainSetCustomBackend.js +4 -1
  260. package/lib/types/api/blockchainSubscribe.js +4 -1
  261. package/lib/types/api/blockchainSubscribeFiatRates.js +4 -1
  262. package/lib/types/api/blockchainUnsubscribe.js +4 -1
  263. package/lib/types/api/blockchainUnsubscribeFiatRates.js +4 -1
  264. package/lib/types/api/cancel.js +4 -1
  265. package/lib/types/api/cancelCoinjoinAuthorization.js +5 -2
  266. package/lib/types/api/cardano/index.d.ts +4 -4
  267. package/lib/types/api/cardano/index.js +173 -180
  268. package/lib/types/api/cardanoComposeTransaction.js +76 -65
  269. package/lib/types/api/cardanoGetAddress.js +4 -1
  270. package/lib/types/api/cardanoGetNativeScriptHash.js +4 -1
  271. package/lib/types/api/cardanoGetPublicKey.js +4 -1
  272. package/lib/types/api/cardanoSignMessage.js +4 -1
  273. package/lib/types/api/cardanoSignTransaction.js +4 -1
  274. package/lib/types/api/changeLanguage.d.ts +1 -1
  275. package/lib/types/api/changeLanguage.js +13 -13
  276. package/lib/types/api/changePin.js +4 -1
  277. package/lib/types/api/changeWipeCode.js +4 -1
  278. package/lib/types/api/cipherKeyValue.d.ts +2 -2
  279. package/lib/types/api/cipherKeyValue.js +11 -8
  280. package/lib/types/api/composeTransaction.js +4 -1
  281. package/lib/types/api/device.js +1 -2
  282. package/lib/types/api/disableWebUSB.js +4 -1
  283. package/lib/types/api/discoverAccounts.js +204 -55
  284. package/lib/types/api/dispose.js +4 -1
  285. package/lib/types/api/eos/index.d.ts +3 -3
  286. package/lib/types/api/eos/index.js +106 -162
  287. package/lib/types/api/eosGetPublicKey.js +4 -1
  288. package/lib/types/api/eosSignTransaction.js +4 -1
  289. package/lib/types/api/ethereum/index.d.ts +7 -7
  290. package/lib/types/api/ethereum/index.js +70 -67
  291. package/lib/types/api/ethereumGetAddress.js +4 -1
  292. package/lib/types/api/ethereumGetPublicKey.js +4 -1
  293. package/lib/types/api/ethereumSignMessage.js +4 -1
  294. package/lib/types/api/ethereumSignTransaction.js +4 -1
  295. package/lib/types/api/ethereumSignTypedData.js +4 -1
  296. package/lib/types/api/ethereumVerifyMessage.js +4 -1
  297. package/lib/types/api/evoluGetDelegatedIdentityKey.js +4 -1
  298. package/lib/types/api/evoluGetNode.js +4 -1
  299. package/lib/types/api/evoluSignRegistrationRequest.js +4 -1
  300. package/lib/types/api/firmwareUpdate.d.ts +1 -1
  301. package/lib/types/api/firmwareUpdate.js +12 -12
  302. package/lib/types/api/getAccountDescriptor.js +8 -5
  303. package/lib/types/api/getAccountInfo.js +4 -1
  304. package/lib/types/api/getAddress.js +11 -11
  305. package/lib/types/api/getCoinInfo.js +4 -1
  306. package/lib/types/api/getDeviceState.js +4 -1
  307. package/lib/types/api/getFeatures.js +4 -1
  308. package/lib/types/api/getFirmwareHash.js +4 -1
  309. package/lib/types/api/getNonce.d.ts +1 -1
  310. package/lib/types/api/getNonce.js +4 -1
  311. package/lib/types/api/getOwnershipId.js +8 -5
  312. package/lib/types/api/getOwnershipProof.js +14 -9
  313. package/lib/types/api/getPublicKey.js +25 -28
  314. package/lib/types/api/getSettings.js +4 -1
  315. package/lib/types/api/index.js +4 -1
  316. package/lib/types/api/init.js +4 -1
  317. package/lib/types/api/loadDevice.js +4 -1
  318. package/lib/types/api/manifest.js +4 -1
  319. package/lib/types/api/monero/index.js +117 -114
  320. package/lib/types/api/moneroGetAddress.js +4 -1
  321. package/lib/types/api/moneroGetWatchKey.js +4 -1
  322. package/lib/types/api/moneroKeyImageSync.js +4 -1
  323. package/lib/types/api/moneroSignTransaction.js +4 -1
  324. package/lib/types/api/nem/index.d.ts +7 -7
  325. package/lib/types/api/nem/index.js +78 -112
  326. package/lib/types/api/nemGetAddress.js +7 -7
  327. package/lib/types/api/nemSignTransaction.js +4 -1
  328. package/lib/types/api/off.js +4 -1
  329. package/lib/types/api/on.js +4 -1
  330. package/lib/types/api/pushTransaction.js +10 -10
  331. package/lib/types/api/recoveryDevice.d.ts +1 -1
  332. package/lib/types/api/recoveryDevice.js +7 -7
  333. package/lib/types/api/removeAllListeners.js +4 -1
  334. package/lib/types/api/renderWebUSBButton.js +4 -1
  335. package/lib/types/api/requestLogin.d.ts +4 -24
  336. package/lib/types/api/requestLogin.js +11 -13
  337. package/lib/types/api/requestWebUSBDevice.js +4 -1
  338. package/lib/types/api/resetDevice.js +4 -1
  339. package/lib/types/api/ripple/index.js +17 -14
  340. package/lib/types/api/rippleGetAddress.js +4 -1
  341. package/lib/types/api/rippleSignTransaction.js +4 -1
  342. package/lib/types/api/setBrightness.js +4 -1
  343. package/lib/types/api/setBusy.js +4 -1
  344. package/lib/types/api/setProxy.js +4 -1
  345. package/lib/types/api/setTransports.js +4 -1
  346. package/lib/types/api/showDeviceTutorial.js +4 -1
  347. package/lib/types/api/signMessage.js +4 -1
  348. package/lib/types/api/signTransaction.js +4 -1
  349. package/lib/types/api/solana/index.js +55 -56
  350. package/lib/types/api/solanaComposeTransaction.js +4 -1
  351. package/lib/types/api/solanaGetAddress.js +4 -1
  352. package/lib/types/api/solanaGetPublicKey.js +4 -1
  353. package/lib/types/api/solanaSignTransaction.js +4 -1
  354. package/lib/types/api/stellar/index.d.ts +146 -146
  355. package/lib/types/api/stellar/index.js +151 -221
  356. package/lib/types/api/stellarGetAddress.js +4 -1
  357. package/lib/types/api/stellarSignTransaction.js +4 -1
  358. package/lib/types/api/tezos/index.js +46 -43
  359. package/lib/types/api/tezosGetAddress.js +4 -1
  360. package/lib/types/api/tezosGetPublicKey.js +4 -1
  361. package/lib/types/api/tezosSignTransaction.js +4 -1
  362. package/lib/types/api/thpGetCredentials.js +4 -1
  363. package/lib/types/api/thpRemoveCredentials.js +4 -1
  364. package/lib/types/api/uiResponse.js +4 -1
  365. package/lib/types/api/unlockPath.js +6 -3
  366. package/lib/types/api/verifyMessage.js +4 -1
  367. package/lib/types/api/wipeDevice.js +4 -1
  368. package/lib/types/coinInfo.js +62 -77
  369. package/lib/types/device.d.ts +7 -2
  370. package/lib/types/device.js +7 -4
  371. package/lib/types/fees.js +31 -37
  372. package/lib/types/firmware.js +4 -1
  373. package/lib/types/index.d.ts +1 -0
  374. package/lib/types/index.js +18 -3
  375. package/lib/types/params.js +25 -16
  376. package/lib/types/settings.js +4 -1
  377. package/lib/types/utils.js +4 -1
  378. package/lib/types/workflow.js +4 -1
  379. package/lib/utils/accountUtils.js +76 -81
  380. package/lib/utils/addressUtils.js +21 -21
  381. package/lib/utils/assetUtils.js +29 -26
  382. package/lib/utils/assets-browser.js +19 -13
  383. package/lib/utils/assets.js +10 -9
  384. package/lib/utils/assets.native.js +24 -23
  385. package/lib/utils/assetsTypes.js +4 -1
  386. package/lib/utils/debug.js +18 -13
  387. package/lib/utils/deviceFeaturesUtils.js +105 -127
  388. package/lib/utils/ethereumUtils.js +9 -6
  389. package/lib/utils/firmwareReleaseConfigUtils.js +69 -57
  390. package/lib/utils/firmwareUtils.js +45 -57
  391. package/lib/utils/formatUtils.d.ts +0 -1
  392. package/lib/utils/formatUtils.js +63 -62
  393. package/lib/utils/hdnodeUtils.d.ts +0 -1
  394. package/lib/utils/hdnodeUtils.js +51 -57
  395. package/lib/utils/interactionTimeout.js +26 -23
  396. package/lib/utils/pathUtils.js +132 -148
  397. package/lib/utils/popupPromiseManager.js +23 -14
  398. package/lib/utils/proxy-event-emitter.js +63 -60
  399. package/lib/utils/uiPromiseManager.js +55 -43
  400. package/lib/utils/urlUtils.js +20 -26
  401. package/lib/utils/versionCheck.js +10 -10
  402. package/lib/workers/workers-browser.d.ts +5 -5
  403. package/lib/workers/workers-browser.js +5 -2
  404. package/lib/workers/workers.d.ts +1 -1
  405. package/lib/workers/workers.js +49 -38
  406. package/lib/workers/workers.native.d.ts +5 -5
  407. package/lib/workers/workers.native.js +4 -1
  408. package/package.json +23 -20
@@ -1,225 +1,279 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
26
12
  };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {
20
+ Object.defineProperty(o, "default", {
21
+ enumerable: true,
22
+ value: v
23
+ });
24
+ } : function (o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = this && this.__importStar || function () {
28
+ var ownKeys = function (o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
33
  };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ }();
44
+ Object.defineProperty(exports, "__esModule", {
45
+ value: true
46
+ });
36
47
  exports.fetchAccountOwnerAndTokenInfoForAddress = exports.buildTokenTransferTransaction = exports.getMinimumRequiredTokenAccountsForTransfer = exports.buildCreateAssociatedTokenAccountInstruction = exports.getAssociatedTokenAccountAddress = exports.buildTokenTransferInstruction = exports.buildTransferTransaction = exports.dummyPriorityFeesForFeeEstimation = exports.getLamportsFromSol = exports.SOLANA_BASE_FEE = void 0;
37
48
  exports.createTransactionShim = createTransactionShim;
38
49
  exports.createTransactionShimFromHex = createTransactionShimFromHex;
39
50
  const ts_belt_1 = require("@mobily/ts-belt");
40
51
  const blockchain_link_utils_1 = require("@trezor/blockchain-link-utils");
41
52
  const bigNumber_1 = require("@trezor/utils/lib/bigNumber");
42
- const { SYSTEM_PROGRAM_PUBLIC_KEY, tokenProgramsInfo } = blockchain_link_utils_1.solanaUtils;
53
+ const {
54
+ SYSTEM_PROGRAM_PUBLIC_KEY,
55
+ tokenProgramsInfo
56
+ } = blockchain_link_utils_1.solanaUtils;
43
57
  const loadSolanaLib = async () => await Promise.resolve().then(() => __importStar(require('@solana/kit')));
44
58
  const loadSolanaComputeBudgetProgramLib = async () => await Promise.resolve().then(() => __importStar(require('@solana-program/compute-budget')));
45
59
  const loadSolanaSystemProgramLib = async () => await Promise.resolve().then(() => __importStar(require('@solana-program/system')));
46
- const loadSolanaTokenProgramLib = async (tokenProgramName) => {
47
- switch (tokenProgramName) {
48
- case 'spl-token':
49
- return await Promise.resolve().then(() => __importStar(require('@solana-program/token')));
50
- case 'spl-token-2022':
51
- return await Promise.resolve().then(() => __importStar(require('@solana-program/token-2022')));
52
- default:
53
- throw new Error(`Unsupported token program: ${tokenProgramName}`);
54
- }
60
+ const loadSolanaTokenProgramLib = async tokenProgramName => {
61
+ switch (tokenProgramName) {
62
+ case 'spl-token':
63
+ return await Promise.resolve().then(() => __importStar(require('@solana-program/token')));
64
+ case 'spl-token-2022':
65
+ return await Promise.resolve().then(() => __importStar(require('@solana-program/token-2022')));
66
+ default:
67
+ throw new Error(`Unsupported token program: ${tokenProgramName}`);
68
+ }
55
69
  };
56
70
  exports.SOLANA_BASE_FEE = 5000;
57
- const getLamportsFromSol = (amountInSol) => BigInt(new bigNumber_1.BigNumber(amountInSol).times(10 ** 9).toString());
71
+ const getLamportsFromSol = amountInSol => BigInt(new bigNumber_1.BigNumber(amountInSol).times(10 ** 9).toString());
58
72
  exports.getLamportsFromSol = getLamportsFromSol;
59
73
  exports.dummyPriorityFeesForFeeEstimation = {
60
- computeUnitPrice: '100000',
61
- computeUnitLimit: '200000',
74
+ computeUnitPrice: '100000',
75
+ computeUnitLimit: '200000'
62
76
  };
63
77
  async function createTransactionShimCommon(transaction) {
64
- const { getBase16Codec, getTransactionEncoder } = await loadSolanaLib();
65
- return {
66
- addSignature(signerPubKey, signatureHex) {
67
- if (signerPubKey in transaction.signatures) {
68
- const signatureBytes = getBase16Codec().encode(signatureHex);
69
- transaction = Object.freeze({
70
- ...transaction,
71
- signatures: Object.freeze({
72
- ...transaction.signatures,
73
- [signerPubKey]: signatureBytes,
74
- }),
75
- });
76
- }
77
- },
78
- serializeMessage() {
79
- return getBase16Codec().decode(transaction.messageBytes);
80
- },
81
- serialize() {
82
- return (0, ts_belt_1.pipe)(transaction, getTransactionEncoder().encode, getBase16Codec().decode);
83
- },
84
- };
78
+ const {
79
+ getBase16Codec,
80
+ getTransactionEncoder
81
+ } = await loadSolanaLib();
82
+ return {
83
+ addSignature(signerPubKey, signatureHex) {
84
+ if (signerPubKey in transaction.signatures) {
85
+ const signatureBytes = getBase16Codec().encode(signatureHex);
86
+ transaction = Object.freeze({
87
+ ...transaction,
88
+ signatures: Object.freeze({
89
+ ...transaction.signatures,
90
+ [signerPubKey]: signatureBytes
91
+ })
92
+ });
93
+ }
94
+ },
95
+ serializeMessage() {
96
+ return getBase16Codec().decode(transaction.messageBytes);
97
+ },
98
+ serialize() {
99
+ return (0, ts_belt_1.pipe)(transaction, getTransactionEncoder().encode, getBase16Codec().decode);
100
+ }
101
+ };
85
102
  }
86
103
  async function createTransactionShim(message) {
87
- const { compileTransaction } = await loadSolanaLib();
88
- const transaction = compileTransaction(message);
89
- return createTransactionShimCommon(transaction);
104
+ const {
105
+ compileTransaction
106
+ } = await loadSolanaLib();
107
+ const transaction = compileTransaction(message);
108
+ return createTransactionShimCommon(transaction);
90
109
  }
91
110
  async function createTransactionShimFromHex(rawTx) {
92
- const { getBase16Encoder, getTransactionDecoder } = await loadSolanaLib();
93
- const txByteArray = getBase16Encoder().encode(rawTx);
94
- const transaction = getTransactionDecoder().decode(txByteArray);
95
- return createTransactionShimCommon(transaction);
111
+ const {
112
+ getBase16Encoder,
113
+ getTransactionDecoder
114
+ } = await loadSolanaLib();
115
+ const txByteArray = getBase16Encoder().encode(rawTx);
116
+ const transaction = getTransactionDecoder().decode(txByteArray);
117
+ return createTransactionShimCommon(transaction);
96
118
  }
97
119
  const addPriorityFees = async (message, priorityFees) => {
98
- const [{ prependTransactionMessageInstructions }, { getSetComputeUnitLimitInstruction, getSetComputeUnitPriceInstruction },] = await Promise.all([loadSolanaLib(), loadSolanaComputeBudgetProgramLib()]);
99
- return (0, ts_belt_1.pipe)(message, m => prependTransactionMessageInstructions([
100
- getSetComputeUnitLimitInstruction({
101
- units: parseInt(priorityFees.computeUnitLimit, 10),
102
- }),
103
- getSetComputeUnitPriceInstruction({
104
- microLamports: parseInt(priorityFees.computeUnitPrice, 10),
105
- }),
106
- ], m));
120
+ const [{
121
+ prependTransactionMessageInstructions
122
+ }, {
123
+ getSetComputeUnitLimitInstruction,
124
+ getSetComputeUnitPriceInstruction
125
+ }] = await Promise.all([loadSolanaLib(), loadSolanaComputeBudgetProgramLib()]);
126
+ return (0, ts_belt_1.pipe)(message, m => prependTransactionMessageInstructions([getSetComputeUnitLimitInstruction({
127
+ units: parseInt(priorityFees.computeUnitLimit, 10)
128
+ }), getSetComputeUnitPriceInstruction({
129
+ microLamports: parseInt(priorityFees.computeUnitPrice, 10)
130
+ })], m));
107
131
  };
108
132
  const buildTransferTransaction = async (fromAddress, toAddress, amountInSol, blockhash, lastValidBlockHeight, priorityFees) => {
109
- const [{ address, appendTransactionMessageInstruction, createTransactionMessage, lamports, setTransactionMessageLifetimeUsingBlockhash, setTransactionMessageFeePayer, createNoopSigner, }, { getTransferSolInstruction },] = await Promise.all([loadSolanaLib(), loadSolanaSystemProgramLib()]);
110
- const message = await (0, ts_belt_1.pipe)(createTransactionMessage({ version: 'legacy' }), m => setTransactionMessageFeePayer(address(fromAddress), m), m => setTransactionMessageLifetimeUsingBlockhash({
111
- blockhash: blockhash,
112
- lastValidBlockHeight: BigInt(lastValidBlockHeight ?? '0xFFFFFFFFFFFFFFFF'),
113
- }, m), m => appendTransactionMessageInstruction(getTransferSolInstruction({
114
- amount: lamports((0, exports.getLamportsFromSol)(amountInSol)),
115
- destination: address(toAddress),
116
- source: createNoopSigner(address(fromAddress)),
117
- }), m), m => addPriorityFees(m, priorityFees));
118
- return await createTransactionShim(message);
133
+ const [{
134
+ address,
135
+ appendTransactionMessageInstruction,
136
+ createTransactionMessage,
137
+ lamports,
138
+ setTransactionMessageLifetimeUsingBlockhash,
139
+ setTransactionMessageFeePayer,
140
+ createNoopSigner
141
+ }, {
142
+ getTransferSolInstruction
143
+ }] = await Promise.all([loadSolanaLib(), loadSolanaSystemProgramLib()]);
144
+ const message = await (0, ts_belt_1.pipe)(createTransactionMessage({
145
+ version: 'legacy'
146
+ }), m => setTransactionMessageFeePayer(address(fromAddress), m), m => setTransactionMessageLifetimeUsingBlockhash({
147
+ blockhash: blockhash,
148
+ lastValidBlockHeight: BigInt(lastValidBlockHeight ?? '0xFFFFFFFFFFFFFFFF')
149
+ }, m), m => appendTransactionMessageInstruction(getTransferSolInstruction({
150
+ amount: lamports((0, exports.getLamportsFromSol)(amountInSol)),
151
+ destination: address(toAddress),
152
+ source: createNoopSigner(address(fromAddress))
153
+ }), m), m => addPriorityFees(m, priorityFees));
154
+ return await createTransactionShim(message);
119
155
  };
120
156
  exports.buildTransferTransaction = buildTransferTransaction;
121
157
  const buildTokenTransferInstruction = async (from, to, owner, amount, mint, decimals, tokenProgramName) => {
122
- const [{ address, createNoopSigner }, { getTransferCheckedInstruction },] = await Promise.all([loadSolanaLib(), loadSolanaTokenProgramLib(tokenProgramName)]);
123
- return getTransferCheckedInstruction({
124
- amount: BigInt(amount.toString()),
125
- authority: createNoopSigner(address(owner)),
126
- decimals,
127
- destination: address(to),
128
- mint: address(mint),
129
- source: address(from),
130
- });
158
+ const [{
159
+ address,
160
+ createNoopSigner
161
+ }, {
162
+ getTransferCheckedInstruction
163
+ }] = await Promise.all([loadSolanaLib(), loadSolanaTokenProgramLib(tokenProgramName)]);
164
+ return getTransferCheckedInstruction({
165
+ amount: BigInt(amount.toString()),
166
+ authority: createNoopSigner(address(owner)),
167
+ decimals,
168
+ destination: address(to),
169
+ mint: address(mint),
170
+ source: address(from)
171
+ });
131
172
  };
132
173
  exports.buildTokenTransferInstruction = buildTokenTransferInstruction;
133
174
  const getAssociatedTokenAccountAddress = async (baseAddress, tokenMintAddress, tokenProgramName) => {
134
- const [{ address }, { findAssociatedTokenPda },] = await Promise.all([loadSolanaLib(), loadSolanaTokenProgramLib(tokenProgramName)]);
135
- const [pdaAddress] = await findAssociatedTokenPda({
136
- mint: address(tokenMintAddress),
137
- owner: address(baseAddress),
138
- tokenProgram: address(tokenProgramsInfo[tokenProgramName].publicKey),
139
- });
140
- return pdaAddress;
175
+ const [{
176
+ address
177
+ }, {
178
+ findAssociatedTokenPda
179
+ }] = await Promise.all([loadSolanaLib(), loadSolanaTokenProgramLib(tokenProgramName)]);
180
+ const [pdaAddress] = await findAssociatedTokenPda({
181
+ mint: address(tokenMintAddress),
182
+ owner: address(baseAddress),
183
+ tokenProgram: address(tokenProgramsInfo[tokenProgramName].publicKey)
184
+ });
185
+ return pdaAddress;
141
186
  };
142
187
  exports.getAssociatedTokenAccountAddress = getAssociatedTokenAccountAddress;
143
188
  const buildCreateAssociatedTokenAccountInstruction = async (funderAddress, newOwnerAddress, tokenMintAddress, tokenProgramName) => {
144
- const [{ address, createNoopSigner }, { getCreateAssociatedTokenInstruction },] = await Promise.all([loadSolanaLib(), loadSolanaTokenProgramLib(tokenProgramName)]);
145
- const associatedTokenAccountAddress = await (0, exports.getAssociatedTokenAccountAddress)(newOwnerAddress, tokenMintAddress, tokenProgramName);
146
- const txInstruction = getCreateAssociatedTokenInstruction({
147
- ata: associatedTokenAccountAddress,
148
- mint: address(tokenMintAddress),
149
- owner: address(newOwnerAddress),
150
- payer: createNoopSigner(address(funderAddress)),
151
- });
152
- txInstruction.data = new Uint8Array([]);
153
- return [txInstruction, associatedTokenAccountAddress];
189
+ const [{
190
+ address,
191
+ createNoopSigner
192
+ }, {
193
+ getCreateAssociatedTokenInstruction
194
+ }] = await Promise.all([loadSolanaLib(), loadSolanaTokenProgramLib(tokenProgramName)]);
195
+ const associatedTokenAccountAddress = await (0, exports.getAssociatedTokenAccountAddress)(newOwnerAddress, tokenMintAddress, tokenProgramName);
196
+ const txInstruction = getCreateAssociatedTokenInstruction({
197
+ ata: associatedTokenAccountAddress,
198
+ mint: address(tokenMintAddress),
199
+ owner: address(newOwnerAddress),
200
+ payer: createNoopSigner(address(funderAddress))
201
+ });
202
+ txInstruction.data = new Uint8Array([]);
203
+ return [txInstruction, associatedTokenAccountAddress];
154
204
  };
155
205
  exports.buildCreateAssociatedTokenAccountInstruction = buildCreateAssociatedTokenAccountInstruction;
156
206
  const getMinimumRequiredTokenAccountsForTransfer = (tokenAccounts, requiredAmount) => {
157
- let accumulatedBalance = new bigNumber_1.BigNumber('0');
158
- const requiredAccounts = ts_belt_1.F.toMutable((0, ts_belt_1.pipe)(tokenAccounts, ts_belt_1.A.sort((a, b) => new bigNumber_1.BigNumber(b.balance).comparedTo(new bigNumber_1.BigNumber(a.balance)) ?? 0), ts_belt_1.A.takeWhile(tokenAccount => {
159
- const needMoreAccounts = accumulatedBalance.lt(requiredAmount);
160
- accumulatedBalance = accumulatedBalance.plus(tokenAccount.balance);
161
- return needMoreAccounts;
162
- })));
163
- return requiredAccounts;
207
+ let accumulatedBalance = new bigNumber_1.BigNumber('0');
208
+ const requiredAccounts = ts_belt_1.F.toMutable((0, ts_belt_1.pipe)(tokenAccounts, ts_belt_1.A.sort((a, b) => new bigNumber_1.BigNumber(b.balance).comparedTo(new bigNumber_1.BigNumber(a.balance)) ?? 0), ts_belt_1.A.takeWhile(tokenAccount => {
209
+ const needMoreAccounts = accumulatedBalance.lt(requiredAmount);
210
+ accumulatedBalance = accumulatedBalance.plus(tokenAccount.balance);
211
+ return needMoreAccounts;
212
+ })));
213
+ return requiredAccounts;
164
214
  };
165
215
  exports.getMinimumRequiredTokenAccountsForTransfer = getMinimumRequiredTokenAccountsForTransfer;
166
216
  const buildTokenTransferTransaction = async (fromAddress, toAddress, toAddressOwner, tokenMint, tokenUiAmount, tokenDecimals, fromTokenAccounts, toTokenAccount, blockhash, lastValidBlockHeight, priorityFees, tokenProgramName) => {
167
- const { address, appendTransactionMessageInstruction, appendTransactionMessageInstructions, createTransactionMessage, setTransactionMessageFeePayer, setTransactionMessageLifetimeUsingBlockhash, } = await loadSolanaLib();
168
- let message = await (0, ts_belt_1.pipe)(createTransactionMessage({ version: 'legacy' }), m => setTransactionMessageFeePayer(address(fromAddress), m), m => setTransactionMessageLifetimeUsingBlockhash({
169
- blockhash: blockhash,
170
- lastValidBlockHeight: BigInt(lastValidBlockHeight ?? '0xFFFFFFFFFFFFFFFF'),
171
- }, m), m => addPriorityFees(m, priorityFees));
172
- const tokenAmount = new bigNumber_1.BigNumber(tokenUiAmount).times(10 ** tokenDecimals);
173
- const requiredAccounts = (0, exports.getMinimumRequiredTokenAccountsForTransfer)(fromTokenAccounts, tokenAmount.toString());
174
- const isReceiverAddressSystemAccount = toAddressOwner === SYSTEM_PROGRAM_PUBLIC_KEY;
175
- let finalReceiverAddress = toAddress;
176
- if (isReceiverAddressSystemAccount) {
177
- if (toTokenAccount) {
178
- finalReceiverAddress = toTokenAccount.publicKey;
179
- }
180
- else {
181
- const [createAccountInstruction, associatedTokenAccountAddress] = await (0, exports.buildCreateAssociatedTokenAccountInstruction)(fromAddress, toAddress, tokenMint, tokenProgramName);
182
- message = appendTransactionMessageInstruction(createAccountInstruction, message);
183
- finalReceiverAddress = associatedTokenAccountAddress;
184
- }
217
+ const {
218
+ address,
219
+ appendTransactionMessageInstruction,
220
+ appendTransactionMessageInstructions,
221
+ createTransactionMessage,
222
+ setTransactionMessageFeePayer,
223
+ setTransactionMessageLifetimeUsingBlockhash
224
+ } = await loadSolanaLib();
225
+ let message = await (0, ts_belt_1.pipe)(createTransactionMessage({
226
+ version: 'legacy'
227
+ }), m => setTransactionMessageFeePayer(address(fromAddress), m), m => setTransactionMessageLifetimeUsingBlockhash({
228
+ blockhash: blockhash,
229
+ lastValidBlockHeight: BigInt(lastValidBlockHeight ?? '0xFFFFFFFFFFFFFFFF')
230
+ }, m), m => addPriorityFees(m, priorityFees));
231
+ const tokenAmount = new bigNumber_1.BigNumber(tokenUiAmount).times(10 ** tokenDecimals);
232
+ const requiredAccounts = (0, exports.getMinimumRequiredTokenAccountsForTransfer)(fromTokenAccounts, tokenAmount.toString());
233
+ const isReceiverAddressSystemAccount = toAddressOwner === SYSTEM_PROGRAM_PUBLIC_KEY;
234
+ let finalReceiverAddress = toAddress;
235
+ if (isReceiverAddressSystemAccount) {
236
+ if (toTokenAccount) {
237
+ finalReceiverAddress = toTokenAccount.publicKey;
238
+ } else {
239
+ const [createAccountInstruction, associatedTokenAccountAddress] = await (0, exports.buildCreateAssociatedTokenAccountInstruction)(fromAddress, toAddress, tokenMint, tokenProgramName);
240
+ message = appendTransactionMessageInstruction(createAccountInstruction, message);
241
+ finalReceiverAddress = associatedTokenAccountAddress;
185
242
  }
186
- let remainingAmount = tokenAmount;
187
- const instructionPromises = requiredAccounts.map(async (tokenAccount) => {
188
- const transferAmount = bigNumber_1.BigNumber.min(remainingAmount, new bigNumber_1.BigNumber(tokenAccount.balance));
189
- const transferInstruction = await (0, exports.buildTokenTransferInstruction)(tokenAccount.publicKey, finalReceiverAddress, fromAddress, transferAmount, tokenMint, tokenDecimals, tokenProgramName);
190
- remainingAmount = remainingAmount.minus(transferAmount);
191
- return transferInstruction;
192
- });
193
- message = appendTransactionMessageInstructions(await Promise.all(instructionPromises), message);
194
- return {
195
- transaction: await createTransactionShim(message),
196
- destinationAddress: finalReceiverAddress,
197
- tokenAccountInfo: isReceiverAddressSystemAccount
198
- ? {
199
- baseAddress: toAddress,
200
- tokenProgram: tokenProgramsInfo[tokenProgramName].publicKey,
201
- tokenMint,
202
- tokenAccount: finalReceiverAddress,
203
- }
204
- : undefined,
205
- };
243
+ }
244
+ let remainingAmount = tokenAmount;
245
+ const instructionPromises = requiredAccounts.map(async tokenAccount => {
246
+ const transferAmount = bigNumber_1.BigNumber.min(remainingAmount, new bigNumber_1.BigNumber(tokenAccount.balance));
247
+ const transferInstruction = await (0, exports.buildTokenTransferInstruction)(tokenAccount.publicKey, finalReceiverAddress, fromAddress, transferAmount, tokenMint, tokenDecimals, tokenProgramName);
248
+ remainingAmount = remainingAmount.minus(transferAmount);
249
+ return transferInstruction;
250
+ });
251
+ message = appendTransactionMessageInstructions(await Promise.all(instructionPromises), message);
252
+ return {
253
+ transaction: await createTransactionShim(message),
254
+ destinationAddress: finalReceiverAddress,
255
+ tokenAccountInfo: isReceiverAddressSystemAccount ? {
256
+ baseAddress: toAddress,
257
+ tokenProgram: tokenProgramsInfo[tokenProgramName].publicKey,
258
+ tokenMint,
259
+ tokenAccount: finalReceiverAddress
260
+ } : undefined
261
+ };
206
262
  };
207
263
  exports.buildTokenTransferTransaction = buildTokenTransferTransaction;
208
264
  const fetchAccountOwnerAndTokenInfoForAddress = async (blockchain, address, mint, tokenProgram) => {
209
- let accountOwner;
210
- let tokenInfo;
211
- const accountInfoResponse = await blockchain.getAccountInfo({
212
- descriptor: address,
213
- details: 'tokens',
214
- });
215
- if (accountInfoResponse) {
216
- const associatedTokenAccount = await (0, exports.getAssociatedTokenAccountAddress)(address, mint, tokenProgram);
217
- accountOwner = accountInfoResponse?.misc?.owner;
218
- tokenInfo = accountInfoResponse?.tokens
219
- ?.find(token => token.contract === mint)
220
- ?.accounts?.find(account => associatedTokenAccount.toString() === account.publicKey);
221
- }
222
- return [accountOwner, tokenInfo];
265
+ let accountOwner;
266
+ let tokenInfo;
267
+ const accountInfoResponse = await blockchain.getAccountInfo({
268
+ descriptor: address,
269
+ details: 'tokens'
270
+ });
271
+ if (accountInfoResponse) {
272
+ const associatedTokenAccount = await (0, exports.getAssociatedTokenAccountAddress)(address, mint, tokenProgram);
273
+ accountOwner = accountInfoResponse?.misc?.owner;
274
+ tokenInfo = accountInfoResponse?.tokens?.find(token => token.contract === mint)?.accounts?.find(account => associatedTokenAccount.toString() === account.publicKey);
275
+ }
276
+ return [accountOwner, tokenInfo];
223
277
  };
224
278
  exports.fetchAccountOwnerAndTokenInfoForAddress = fetchAccountOwnerAndTokenInfoForAddress;
225
279
  //# sourceMappingURL=solanaUtils.js.map
@@ -1,9 +1,22 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.stellarSignTransaction = exports.stellarGetAddress = void 0;
4
7
  const tslib_1 = require("tslib");
5
8
  var stellarGetAddress_1 = require("./stellarGetAddress");
6
- Object.defineProperty(exports, "stellarGetAddress", { enumerable: true, get: function () { return tslib_1.__importDefault(stellarGetAddress_1).default; } });
9
+ Object.defineProperty(exports, "stellarGetAddress", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return tslib_1.__importDefault(stellarGetAddress_1).default;
13
+ }
14
+ });
7
15
  var stellarSignTransaction_1 = require("./stellarSignTransaction");
8
- Object.defineProperty(exports, "stellarSignTransaction", { enumerable: true, get: function () { return tslib_1.__importDefault(stellarSignTransaction_1).default; } });
16
+ Object.defineProperty(exports, "stellarSignTransaction", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return tslib_1.__importDefault(stellarSignTransaction_1).default;
20
+ }
21
+ });
9
22
  //# sourceMappingURL=index.js.map