@trezor/connect 9.4.2 → 9.4.3-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 (214) hide show
  1. package/CHANGELOG.md +90 -9
  2. package/README.md +1 -1
  3. package/lib/api/applyFlags.js +1 -1
  4. package/lib/api/applySettings.js +1 -1
  5. package/lib/api/authenticateDevice.js +1 -1
  6. package/lib/api/authorizeCoinjoin.js +1 -1
  7. package/lib/api/backupDevice.js +1 -1
  8. package/lib/api/binance/api/binanceGetAddress.js +2 -1
  9. package/lib/api/binance/api/binanceGetPublicKey.js +2 -1
  10. package/lib/api/binance/api/binanceSignTransaction.js +2 -1
  11. package/lib/api/binance/binanceSignTx.js +1 -1
  12. package/lib/api/bitcoin/Fees.js +2 -2
  13. package/lib/api/bitcoin/TransactionComposer.d.ts +3 -3
  14. package/lib/api/bitcoin/TransactionComposer.js +2 -2
  15. package/lib/api/bitcoin/refTx.js +1 -1
  16. package/lib/api/blockchainDisconnect.js +1 -1
  17. package/lib/api/blockchainEvmRpcCall.d.ts +16 -0
  18. package/lib/api/blockchainEvmRpcCall.js +45 -0
  19. package/lib/api/cancelCoinjoinAuthorization.js +1 -1
  20. package/lib/api/cardano/api/cardanoGetAddress.js +2 -1
  21. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +2 -1
  22. package/lib/api/cardano/api/cardanoGetPublicKey.js +2 -1
  23. package/lib/api/cardano/api/cardanoSignTransaction.js +2 -1
  24. package/lib/api/cardano/cardanoAddressParameters.js +1 -1
  25. package/lib/api/cardano/cardanoAuxiliaryData.js +1 -1
  26. package/lib/api/cardano/cardanoCertificate.js +1 -1
  27. package/lib/api/cardano/cardanoInputs.d.ts +8 -8
  28. package/lib/api/cardano/cardanoInputs.js +1 -1
  29. package/lib/api/cardano/cardanoOutputs.d.ts +22 -22
  30. package/lib/api/cardano/cardanoOutputs.js +1 -1
  31. package/lib/api/cardano/cardanoTokenBundle.d.ts +6 -6
  32. package/lib/api/cardano/cardanoTokenBundle.js +1 -1
  33. package/lib/api/changeLanguage.js +1 -1
  34. package/lib/api/changePin.js +1 -1
  35. package/lib/api/cipherKeyValue.js +1 -1
  36. package/lib/api/common/paramsValidator.js +1 -1
  37. package/lib/api/composeTransaction.d.ts +9 -3
  38. package/lib/api/composeTransaction.js +7 -4
  39. package/lib/api/eos/api/eosGetPublicKey.js +2 -1
  40. package/lib/api/eos/api/eosSignTransaction.js +2 -1
  41. package/lib/api/eos/eosSignTx.d.ts +3 -3
  42. package/lib/api/ethereum/api/ethereumGetAddress.js +2 -1
  43. package/lib/api/ethereum/api/ethereumGetPublicKey.js +2 -1
  44. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +1 -1
  45. package/lib/api/ethereum/api/ethereumSignMessage.js +2 -1
  46. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +1 -1
  47. package/lib/api/ethereum/api/ethereumSignTransaction.js +13 -7
  48. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +58 -57
  49. package/lib/api/ethereum/api/ethereumSignTypedData.js +3 -2
  50. package/lib/api/ethereum/api/ethereumVerifyMessage.js +2 -1
  51. package/lib/api/ethereum/ethereumDefinitions.d.ts +21 -21
  52. package/lib/api/ethereum/ethereumDefinitions.js +6 -5
  53. package/lib/api/firmware/getBinary.d.ts +4 -5
  54. package/lib/api/firmware/getBinary.js +12 -13
  55. package/lib/api/firmware/getBinaryForFirmwareUpgrade.d.ts +3 -3
  56. package/lib/api/firmware/getBinaryForFirmwareUpgrade.js +2 -2
  57. package/lib/api/firmware/index.d.ts +1 -1
  58. package/lib/api/firmware/index.js +2 -1
  59. package/lib/api/firmware/x509certificate.js +3 -5
  60. package/lib/api/getAccountDescriptor.js +1 -1
  61. package/lib/api/getAddress.js +1 -1
  62. package/lib/api/getCoinInfo.d.ts +3 -0
  63. package/lib/api/getCoinInfo.js +1 -1
  64. package/lib/api/getFirmwareHash.js +1 -1
  65. package/lib/api/getOwnershipId.js +1 -1
  66. package/lib/api/getOwnershipProof.js +1 -1
  67. package/lib/api/getPublicKey.js +1 -1
  68. package/lib/api/index.d.ts +2 -1
  69. package/lib/api/index.js +5 -3
  70. package/lib/api/loadDevice.d.ts +14 -0
  71. package/lib/api/loadDevice.js +44 -0
  72. package/lib/api/nem/api/nemGetAddress.js +2 -1
  73. package/lib/api/nem/api/nemSignTransaction.js +2 -1
  74. package/lib/api/pushTransaction.js +1 -1
  75. package/lib/api/rebootToBootloader.js +1 -1
  76. package/lib/api/recoveryDevice.js +1 -1
  77. package/lib/api/requestLogin.js +1 -1
  78. package/lib/api/resetDevice.js +1 -2
  79. package/lib/api/ripple/api/rippleGetAddress.js +2 -1
  80. package/lib/api/ripple/api/rippleSignTransaction.js +2 -1
  81. package/lib/api/setBrightness.js +1 -1
  82. package/lib/api/setBusy.js +1 -1
  83. package/lib/api/signMessage.js +1 -1
  84. package/lib/api/solana/api/solanaGetAddress.js +2 -1
  85. package/lib/api/solana/api/solanaGetPublicKey.js +2 -1
  86. package/lib/api/solana/api/solanaSignTransaction.js +2 -1
  87. package/lib/api/stellar/api/stellarGetAddress.js +2 -1
  88. package/lib/api/stellar/api/stellarSignTransaction.js +2 -1
  89. package/lib/api/stellar/stellarSignTx.js +1 -1
  90. package/lib/api/tezos/api/tezosGetAddress.js +2 -1
  91. package/lib/api/tezos/api/tezosGetPublicKey.js +2 -1
  92. package/lib/api/tezos/api/tezosSignTransaction.js +2 -1
  93. package/lib/api/tezos/tezosSignTx.js +1 -1
  94. package/lib/api/unlockPath.js +1 -1
  95. package/lib/api/verifyMessage.js +1 -1
  96. package/lib/backend/Blockchain.d.ts +3 -0
  97. package/lib/backend/Blockchain.js +6 -6
  98. package/lib/constants/errors.d.ts +49 -38
  99. package/lib/constants/errors.js +10 -0
  100. package/lib/constants/firmware.d.ts +2 -0
  101. package/lib/constants/firmware.js +5 -0
  102. package/lib/constants/index.d.ts +2 -0
  103. package/lib/constants/index.js +4 -1
  104. package/lib/constants/nem.d.ts +3 -3
  105. package/lib/constants/utxo.d.ts +3 -0
  106. package/lib/constants/utxo.js +5 -0
  107. package/lib/core/AbstractMethod.d.ts +13 -5
  108. package/lib/core/AbstractMethod.js +50 -24
  109. package/lib/core/index.js +41 -30
  110. package/lib/core/onCallFirmwareUpdate.d.ts +2 -2
  111. package/lib/core/onCallFirmwareUpdate.js +6 -6
  112. package/lib/data/DataManager.d.ts +0 -181
  113. package/lib/data/DataManager.js +40 -6
  114. package/lib/data/analyticsInfo.js +4 -2
  115. package/lib/data/coinInfo.d.ts +14 -0
  116. package/lib/data/config.d.ts +20 -22
  117. package/lib/data/config.js +15 -40
  118. package/lib/data/connectSettings.js +10 -4
  119. package/lib/data/deviceAuthenticityConfig.js +20 -0
  120. package/lib/data/deviceAuthenticityConfigTypes.d.ts +32 -23
  121. package/lib/data/firmwareInfo.d.ts +1 -1
  122. package/lib/data/models.d.ts +9 -0
  123. package/lib/data/models.js +9 -0
  124. package/lib/data/version.d.ts +2 -1
  125. package/lib/data/version.js +3 -2
  126. package/lib/device/Device.d.ts +144 -36
  127. package/lib/device/Device.js +270 -113
  128. package/lib/device/DeviceCommands.js +4 -4
  129. package/lib/device/DeviceList.d.ts +13 -21
  130. package/lib/device/DeviceList.js +54 -168
  131. package/lib/device/checkFirmwareRevision.js +4 -4
  132. package/lib/device/prompts.js +3 -2
  133. package/lib/device/resolveDescriptorForTaproot.d.ts +1 -1
  134. package/lib/events/call.d.ts +5 -5
  135. package/lib/events/call.js +2 -2
  136. package/lib/events/core.d.ts +4 -3
  137. package/lib/events/device.d.ts +0 -6
  138. package/lib/events/device.js +0 -6
  139. package/lib/events/transport.d.ts +1 -1
  140. package/lib/factory.d.ts +6 -6
  141. package/lib/factory.js +132 -136
  142. package/lib/impl/dynamic.d.ts +33 -0
  143. package/lib/impl/dynamic.js +75 -0
  144. package/lib/index-browser.d.ts +3 -1
  145. package/lib/index-browser.js +0 -3
  146. package/lib/index.d.ts +3 -1
  147. package/lib/index.js +1 -13
  148. package/lib/types/api/applySettings.d.ts +13 -13
  149. package/lib/types/api/authenticateDevice.d.ts +33 -24
  150. package/lib/types/api/authorizeCoinjoin.d.ts +10 -10
  151. package/lib/types/api/binance/index.d.ts +143 -143
  152. package/lib/types/api/binance/index.js +1 -1
  153. package/lib/types/api/bitcoin/index.d.ts +11 -11
  154. package/lib/types/api/bitcoin/index.js +1 -1
  155. package/lib/types/api/blockchainEvmRpcCall.d.ts +4 -0
  156. package/lib/types/api/{checkFirmwareAuthenticity.js → blockchainEvmRpcCall.js} +1 -1
  157. package/lib/types/api/cancelCoinjoinAuthorization.d.ts +1 -1
  158. package/lib/types/api/cardano/index.d.ts +507 -507
  159. package/lib/types/api/changeLanguage.d.ts +6 -6
  160. package/lib/types/api/cipherKeyValue.d.ts +8 -8
  161. package/lib/types/api/cipherKeyValue.js +1 -1
  162. package/lib/types/api/composeTransaction.d.ts +13 -7
  163. package/lib/types/api/eos/index.d.ts +525 -525
  164. package/lib/types/api/eos/index.js +1 -1
  165. package/lib/types/api/ethereum/index.d.ts +100 -100
  166. package/lib/types/api/firmwareUpdate.d.ts +5 -5
  167. package/lib/types/api/getAccountDescriptor.d.ts +4 -4
  168. package/lib/types/api/getAddress.d.ts +32 -32
  169. package/lib/types/api/getOwnershipId.d.ts +24 -24
  170. package/lib/types/api/getOwnershipProof.d.ts +28 -28
  171. package/lib/types/api/getPublicKey.d.ts +24 -24
  172. package/lib/types/api/getPublicKey.js +1 -1
  173. package/lib/types/api/index.d.ts +4 -8
  174. package/lib/types/api/init.d.ts +4 -2
  175. package/lib/types/api/loadDevice.d.ts +4 -0
  176. package/lib/types/api/loadDevice.js +3 -0
  177. package/lib/types/api/nem/index.d.ts +612 -612
  178. package/lib/types/api/nem/index.js +1 -1
  179. package/lib/types/api/nemGetAddress.d.ts +6 -6
  180. package/lib/types/api/pushTransaction.d.ts +3 -3
  181. package/lib/types/api/recoveryDevice.d.ts +9 -9
  182. package/lib/types/api/requestLogin.d.ts +25 -25
  183. package/lib/types/api/ripple/index.d.ts +21 -21
  184. package/lib/types/api/ripple/index.js +1 -1
  185. package/lib/types/api/solana/index.d.ts +23 -23
  186. package/lib/types/api/solana/index.js +1 -1
  187. package/lib/types/api/stellar/index.d.ts +582 -582
  188. package/lib/types/api/stellar/index.js +1 -1
  189. package/lib/types/api/tezos/index.d.ts +120 -120
  190. package/lib/types/api/tezos/index.js +1 -1
  191. package/lib/types/api/unlockPath.d.ts +2 -2
  192. package/lib/types/coinInfo.d.ts +231 -224
  193. package/lib/types/device.d.ts +33 -14
  194. package/lib/types/device.js +3 -1
  195. package/lib/types/fees.d.ts +19 -19
  196. package/lib/types/firmware.d.ts +1 -1
  197. package/lib/types/params.d.ts +23 -19
  198. package/lib/types/settings.d.ts +17 -10
  199. package/lib/types/utils.d.ts +1 -0
  200. package/lib/types/utils.js +3 -0
  201. package/lib/utils/addressUtils.js +2 -2
  202. package/lib/utils/assetUtils.d.ts +1 -1
  203. package/lib/utils/assetUtils.js +6 -6
  204. package/lib/utils/assets.js +1 -1
  205. package/lib/utils/assets.native.js +1 -1
  206. package/lib/utils/deviceFeaturesUtils.js +1 -1
  207. package/lib/utils/proxy-event-emitter.d.ts +21 -0
  208. package/lib/utils/proxy-event-emitter.js +65 -0
  209. package/lib/utils/uiPromiseManager.d.ts +2 -1
  210. package/lib/utils/uiPromiseManager.js +3 -3
  211. package/package.json +12 -12
  212. package/lib/api/checkFirmwareAuthenticity.d.ts +0 -11
  213. package/lib/api/checkFirmwareAuthenticity.js +0 -56
  214. package/lib/types/api/checkFirmwareAuthenticity.d.ts +0 -11
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("../../common/paramsValidator");
5
6
  const coinInfo_1 = require("../../../data/coinInfo");
6
7
  const pathUtils_1 = require("../../../utils/pathUtils");
7
8
  const constants_1 = require("../../../constants");
8
9
  const events_1 = require("../../../events");
9
- const schema_utils_1 = require("@trezor/schema-utils");
10
10
  const types_1 = require("../../../types");
11
11
  const getAddress_1 = require("../../../types/api/getAddress");
12
12
  class RippleGetAddress extends AbstractMethod_1.AbstractMethod {
@@ -17,6 +17,7 @@ class RippleGetAddress extends AbstractMethod_1.AbstractMethod {
17
17
  init() {
18
18
  this.noBackupConfirmationMode = 'always';
19
19
  this.requiredPermissions = ['read'];
20
+ this.requiredDeviceCapabilities = ['Capability_Ripple'];
20
21
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Ripple'), this.firmwareRange);
21
22
  this.hasBundle = !!this.payload.bundle;
22
23
  const payload = !this.payload.bundle
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("../../common/paramsValidator");
5
6
  const coinInfo_1 = require("../../../data/coinInfo");
6
7
  const pathUtils_1 = require("../../../utils/pathUtils");
7
- const schema_utils_1 = require("@trezor/schema-utils");
8
8
  const ripple_1 = require("../../../types/api/ripple");
9
9
  class RippleSignTransaction extends AbstractMethod_1.AbstractMethod {
10
10
  init() {
11
11
  this.requiredPermissions = ['read', 'write'];
12
+ this.requiredDeviceCapabilities = ['Capability_Ripple'];
12
13
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Ripple'), this.firmwareRange);
13
14
  const { payload } = this;
14
15
  (0, schema_utils_1.AssertWeak)(ripple_1.RippleSignTransaction, payload);
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../core/AbstractMethod");
4
5
  const constants_1 = require("../constants");
5
- const schema_utils_1 = require("@trezor/schema-utils");
6
6
  class SetBrightness extends AbstractMethod_1.AbstractMethod {
7
7
  init() {
8
8
  this.requiredPermissions = ['management'];
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../core/AbstractMethod");
4
5
  const events_1 = require("../events");
5
6
  const constants_1 = require("../constants");
6
7
  const paramsValidator_1 = require("./common/paramsValidator");
7
- const schema_utils_1 = require("@trezor/schema-utils");
8
8
  class SetBusy extends AbstractMethod_1.AbstractMethod {
9
9
  init() {
10
10
  this.useDeviceState = false;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("./common/paramsValidator");
5
6
  const pathUtils_1 = require("../utils/pathUtils");
6
7
  const coinInfo_1 = require("../data/coinInfo");
7
8
  const formatUtils_1 = require("../utils/formatUtils");
8
9
  const types_1 = require("../types");
9
- const schema_utils_1 = require("@trezor/schema-utils");
10
10
  class SignMessage extends AbstractMethod_1.AbstractMethod {
11
11
  init() {
12
12
  this.requiredPermissions = ['read', 'write'];
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const constants_1 = require("../../../constants");
4
5
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
5
6
  const paramsValidator_1 = require("../../common/paramsValidator");
6
7
  const coinInfo_1 = require("../../../data/coinInfo");
7
8
  const pathUtils_1 = require("../../../utils/pathUtils");
8
9
  const events_1 = require("../../../events");
9
- const schema_utils_1 = require("@trezor/schema-utils");
10
10
  const types_1 = require("../../../types");
11
11
  const getAddress_1 = require("../../../types/api/getAddress");
12
12
  class SolanaGetAddress extends AbstractMethod_1.AbstractMethod {
@@ -17,6 +17,7 @@ class SolanaGetAddress extends AbstractMethod_1.AbstractMethod {
17
17
  init() {
18
18
  this.noBackupConfirmationMode = 'always';
19
19
  this.requiredPermissions = ['read'];
20
+ this.requiredDeviceCapabilities = ['Capability_Solana'];
20
21
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Solana'), this.firmwareRange);
21
22
  this.hasBundle = !!this.payload.bundle;
22
23
  const payload = !this.payload.bundle
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("../../common/paramsValidator");
5
6
  const coinInfo_1 = require("../../../data/coinInfo");
6
7
  const pathUtils_1 = require("../../../utils/pathUtils");
7
8
  const events_1 = require("../../../events");
8
- const schema_utils_1 = require("@trezor/schema-utils");
9
9
  const types_1 = require("../../../types");
10
10
  class SolanaGetPublicKey extends AbstractMethod_1.AbstractMethod {
11
11
  init() {
12
12
  this.noBackupConfirmationMode = 'always';
13
13
  this.requiredPermissions = ['read'];
14
+ this.requiredDeviceCapabilities = ['Capability_Solana'];
14
15
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Solana'), this.firmwareRange);
15
16
  this.hasBundle = !!this.payload.bundle;
16
17
  const payload = !this.payload.bundle
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("../../common/paramsValidator");
5
6
  const coinInfo_1 = require("../../../data/coinInfo");
6
7
  const pathUtils_1 = require("../../../utils/pathUtils");
7
8
  const additionalInfo_1 = require("../additionalInfo");
8
- const schema_utils_1 = require("@trezor/schema-utils");
9
9
  const solana_1 = require("../../../types/api/solana");
10
10
  class SolanaSignTransaction extends AbstractMethod_1.AbstractMethod {
11
11
  init() {
12
12
  this.requiredPermissions = ['read', 'write'];
13
+ this.requiredDeviceCapabilities = ['Capability_Solana'];
13
14
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Solana'), this.firmwareRange);
14
15
  const { payload } = this;
15
16
  (0, schema_utils_1.AssertWeak)(solana_1.SolanaSignTransaction, payload);
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("../../common/paramsValidator");
5
6
  const coinInfo_1 = require("../../../data/coinInfo");
6
7
  const pathUtils_1 = require("../../../utils/pathUtils");
7
8
  const constants_1 = require("../../../constants");
8
9
  const events_1 = require("../../../events");
9
- const schema_utils_1 = require("@trezor/schema-utils");
10
10
  const types_1 = require("../../../types");
11
11
  const getAddress_1 = require("../../../types/api/getAddress");
12
12
  class StellarGetAddress extends AbstractMethod_1.AbstractMethod {
@@ -17,6 +17,7 @@ class StellarGetAddress extends AbstractMethod_1.AbstractMethod {
17
17
  init() {
18
18
  this.noBackupConfirmationMode = 'always';
19
19
  this.requiredPermissions = ['read'];
20
+ this.requiredDeviceCapabilities = ['Capability_Stellar'];
20
21
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Stellar'), this.firmwareRange);
21
22
  this.hasBundle = !!this.payload.bundle;
22
23
  const payload = !this.payload.bundle
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ const schema_utils_1 = require("@trezor/schema-utils");
4
5
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
5
6
  const paramsValidator_1 = require("../../common/paramsValidator");
6
7
  const coinInfo_1 = require("../../../data/coinInfo");
@@ -8,7 +9,6 @@ const pathUtils_1 = require("../../../utils/pathUtils");
8
9
  const helper = tslib_1.__importStar(require("../stellarSignTx"));
9
10
  const constants_1 = require("../../../constants");
10
11
  const stellar_1 = require("../../../types/api/stellar");
11
- const schema_utils_1 = require("@trezor/schema-utils");
12
12
  const StellarSignTransactionFeatures = Object.freeze({
13
13
  manageBuyOffer: ['1.10.4', '2.4.3'],
14
14
  pathPaymentStrictSend: ['1.10.4', '2.4.3'],
@@ -16,6 +16,7 @@ const StellarSignTransactionFeatures = Object.freeze({
16
16
  class StellarSignTransaction extends AbstractMethod_1.AbstractMethod {
17
17
  init() {
18
18
  this.requiredPermissions = ['read', 'write'];
19
+ this.requiredDeviceCapabilities = ['Capability_Stellar'];
19
20
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Stellar'), this.firmwareRange);
20
21
  const { payload } = this;
21
22
  (0, schema_utils_1.AssertWeak)(stellar_1.StellarSignTransaction, payload);
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stellarSignTx = void 0;
4
+ const schema_utils_1 = require("@trezor/schema-utils");
4
5
  const constants_1 = require("../../constants");
5
6
  const stellar_1 = require("../../types/api/stellar");
6
- const schema_utils_1 = require("@trezor/schema-utils");
7
7
  const processTxRequest = async (typedCall, operations, index) => {
8
8
  const lastOp = index + 1 >= operations.length;
9
9
  const { type, ...op } = operations[index];
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("../../common/paramsValidator");
5
6
  const coinInfo_1 = require("../../../data/coinInfo");
6
7
  const pathUtils_1 = require("../../../utils/pathUtils");
7
8
  const constants_1 = require("../../../constants");
8
9
  const events_1 = require("../../../events");
9
- const schema_utils_1 = require("@trezor/schema-utils");
10
10
  const types_1 = require("../../../types");
11
11
  const getAddress_1 = require("../../../types/api/getAddress");
12
12
  class TezosGetAddress extends AbstractMethod_1.AbstractMethod {
@@ -17,6 +17,7 @@ class TezosGetAddress extends AbstractMethod_1.AbstractMethod {
17
17
  init() {
18
18
  this.noBackupConfirmationMode = 'always';
19
19
  this.requiredPermissions = ['read'];
20
+ this.requiredDeviceCapabilities = ['Capability_Tezos'];
20
21
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Tezos'), this.firmwareRange);
21
22
  this.hasBundle = !!this.payload.bundle;
22
23
  const payload = !this.payload.bundle
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("../../common/paramsValidator");
5
6
  const coinInfo_1 = require("../../../data/coinInfo");
6
7
  const pathUtils_1 = require("../../../utils/pathUtils");
7
8
  const events_1 = require("../../../events");
8
- const schema_utils_1 = require("@trezor/schema-utils");
9
9
  const types_1 = require("../../../types");
10
10
  class TezosGetPublicKey extends AbstractMethod_1.AbstractMethod {
11
11
  init() {
12
12
  this.requiredPermissions = ['read'];
13
+ this.requiredDeviceCapabilities = ['Capability_Tezos'];
13
14
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Tezos'), this.firmwareRange);
14
15
  this.hasBundle = !!this.payload.bundle;
15
16
  const payload = !this.payload.bundle
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ const schema_utils_1 = require("@trezor/schema-utils");
4
5
  const AbstractMethod_1 = require("../../../core/AbstractMethod");
5
6
  const paramsValidator_1 = require("../../common/paramsValidator");
6
7
  const coinInfo_1 = require("../../../data/coinInfo");
7
8
  const pathUtils_1 = require("../../../utils/pathUtils");
8
9
  const helper = tslib_1.__importStar(require("../tezosSignTx"));
9
- const schema_utils_1 = require("@trezor/schema-utils");
10
10
  const tezos_1 = require("../../../types/api/tezos");
11
11
  class TezosSignTransaction extends AbstractMethod_1.AbstractMethod {
12
12
  init() {
13
13
  this.requiredPermissions = ['read', 'write'];
14
+ this.requiredDeviceCapabilities = ['Capability_Tezos'];
14
15
  this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Tezos'), this.firmwareRange);
15
16
  const { payload } = this;
16
17
  (0, schema_utils_1.AssertWeak)(tezos_1.TezosSignTransaction, payload);
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createTx = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const bs58check_1 = tslib_1.__importDefault(require("bs58check"));
6
+ const schema_utils_1 = require("@trezor/schema-utils");
6
7
  const constants_1 = require("../../constants");
7
8
  const tezos_1 = require("../../types/api/tezos");
8
- const schema_utils_1 = require("@trezor/schema-utils");
9
9
  const PREFIX = {
10
10
  B: new Uint8Array([1, 52]),
11
11
  tz1: new Uint8Array([6, 161, 159]),
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../core/AbstractMethod");
4
5
  const pathUtils_1 = require("../utils/pathUtils");
5
6
  const paramsValidator_1 = require("./common/paramsValidator");
6
- const schema_utils_1 = require("@trezor/schema-utils");
7
7
  const unlockPath_1 = require("../types/api/unlockPath");
8
8
  class UnlockPath extends AbstractMethod_1.AbstractMethod {
9
9
  init() {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_utils_1 = require("@trezor/schema-utils");
3
4
  const AbstractMethod_1 = require("../core/AbstractMethod");
4
5
  const paramsValidator_1 = require("./common/paramsValidator");
5
6
  const coinInfo_1 = require("../data/coinInfo");
@@ -7,7 +8,6 @@ const pathUtils_1 = require("../utils/pathUtils");
7
8
  const formatUtils_1 = require("../utils/formatUtils");
8
9
  const constants_1 = require("../constants");
9
10
  const types_1 = require("../types");
10
- const schema_utils_1 = require("@trezor/schema-utils");
11
11
  class VerifyMessage extends AbstractMethod_1.AbstractMethod {
12
12
  init() {
13
13
  this.requiredPermissions = ['read', 'write'];
@@ -47,6 +47,9 @@ export declare class Blockchain {
47
47
  getNetworkInfo(): Promise<ServerInfo>;
48
48
  getAccountInfo(request: BlockchainLinkParams<'getAccountInfo'>): Promise<import("@trezor/blockchain-link").AccountInfo>;
49
49
  getAccountUtxo(descriptor: string): Promise<import("@trezor/blockchain-link").Utxo[]>;
50
+ rpcCall(params: BlockchainLinkParams<'rpcCall'>): Promise<{
51
+ data: string;
52
+ }>;
50
53
  estimateFee(request: Parameters<typeof this.link.estimateFee>[0]): Promise<{
51
54
  feePerUnit: string;
52
55
  feePerTx?: string;
@@ -26,11 +26,8 @@ const getNormalizedTrezorShortcut = (shortcut) => {
26
26
  if (shortcut === 'tXRP') {
27
27
  return 'XRP';
28
28
  }
29
- return shortcut;
30
- };
31
- const getNormalizedBackendShortcut = (shortcut) => {
32
- if (shortcut.toLowerCase() === 'matic') {
33
- return 'pol';
29
+ if (shortcut === 'OP') {
30
+ return 'ETH';
34
31
  }
35
32
  return shortcut;
36
33
  };
@@ -85,7 +82,7 @@ class Blockchain {
85
82
  }
86
83
  this.serverInfo = info;
87
84
  const trezorShortcut = getNormalizedTrezorShortcut(this.coinInfo.shortcut);
88
- const backendShortcut = getNormalizedBackendShortcut(this.serverInfo.shortcut);
85
+ const backendShortcut = this.serverInfo.shortcut;
89
86
  if (trezorShortcut.toLowerCase() !== backendShortcut.toLowerCase()) {
90
87
  throw constants_1.ERRORS.TypedError('Backend_Invalid');
91
88
  }
@@ -144,6 +141,9 @@ class Blockchain {
144
141
  getAccountUtxo(descriptor) {
145
142
  return this.link.getAccountUtxo(descriptor);
146
143
  }
144
+ rpcCall(params) {
145
+ return this.link.rpcCall(params);
146
+ }
147
147
  async estimateFee(request) {
148
148
  const { blocks } = request;
149
149
  const useCache = !request.specific && Array.isArray(blocks) && blocks.length > 0;
@@ -1,46 +1,57 @@
1
1
  export declare const ERROR_CODES: {
2
- Init_NotInitialized: string;
3
- Init_AlreadyInitialized: string;
4
- Init_IframeBlocked: string;
5
- Init_IframeTimeout: string;
6
- Init_ManifestMissing: string;
7
- Popup_ConnectionMissing: string;
8
- Transport_Missing: string;
9
- Transport_InvalidProtobuf: string;
10
- Method_InvalidPackage: string;
11
- Method_InvalidParameter: string;
12
- Method_NotAllowed: string;
13
- Method_PermissionsNotGranted: string;
14
- Method_Cancel: string;
15
- Method_Interrupted: string;
16
- Method_UnknownCoin: string;
17
- Method_AddressNotMatch: string;
18
- Method_FirmwareUpdate_DownloadFailed: string;
19
- Method_Discovery_BundleException: string;
20
- Method_Override: string;
21
- Method_NoResponse: string;
22
- Backend_NotSupported: string;
23
- Backend_WorkerMissing: string;
24
- Backend_Disconnected: string;
25
- Backend_Invalid: string;
26
- Backend_Error: string;
27
- Runtime: string;
28
- Device_NotFound: string;
29
- Device_InitializeFailed: string;
30
- Device_FwException: string;
31
- Device_ModeException: string;
32
- Device_Disconnected: string;
33
- Device_UsedElsewhere: string;
34
- Device_InvalidState: string;
35
- Device_CallInProgress: string;
36
- Device_MultipleNotSupported: string;
2
+ readonly Init_NotInitialized: "TrezorConnect not initialized";
3
+ readonly Init_AlreadyInitialized: "TrezorConnect has been already initialized";
4
+ readonly Init_IframeBlocked: "Iframe blocked";
5
+ readonly Init_IframeTimeout: "Iframe timeout";
6
+ readonly Init_ManifestMissing: "Manifest not set. Read more at https://github.com/trezor/trezor-suite/blob/develop/docs/packages/connect/index.md";
7
+ readonly Popup_ConnectionMissing: "Unable to establish connection with iframe";
8
+ readonly Transport_Missing: "Transport is missing";
9
+ readonly Transport_InvalidProtobuf: "";
10
+ readonly Method_InvalidPackage: "This package is not suitable to work with browser. Use @trezor/connect-web package instead";
11
+ readonly Method_InvalidParameter: "";
12
+ readonly Method_NotAllowed: "Method not allowed for this configuration";
13
+ readonly Method_PermissionsNotGranted: "Permissions not granted";
14
+ readonly Method_Cancel: "Cancelled";
15
+ readonly Method_Interrupted: "Popup closed";
16
+ readonly Method_UnknownCoin: "Coin not found";
17
+ readonly Method_AddressNotMatch: "Addresses do not match";
18
+ readonly Method_FirmwareUpdate_DownloadFailed: "Failed to download firmware binary";
19
+ readonly Method_Discovery_BundleException: "";
20
+ readonly Method_Override: "override";
21
+ readonly Method_NoResponse: "Call resolved without response";
22
+ readonly Backend_NotSupported: "BlockchainLink settings not found in coins.json";
23
+ readonly Backend_WorkerMissing: "";
24
+ readonly Backend_Disconnected: "Backend disconnected";
25
+ readonly Backend_Invalid: "Invalid backend";
26
+ readonly Backend_Error: "";
27
+ readonly Runtime: "";
28
+ readonly Device_NotFound: "Device not found";
29
+ readonly Device_InitializeFailed: "";
30
+ readonly Device_FwException: "";
31
+ readonly Device_ModeException: "";
32
+ readonly Device_Disconnected: "Device disconnected";
33
+ readonly Device_UsedElsewhere: "Device is used in another window";
34
+ readonly Device_InvalidState: "Passphrase is incorrect";
35
+ readonly Device_CallInProgress: "Device call in progress";
36
+ readonly Device_MultipleNotSupported: "Multiple devices are not supported";
37
+ readonly Device_MissingCapability: "Device is missing capability";
38
+ readonly Device_MissingCapabilityBtcOnly: "Device is missing capability (BTC only)";
39
+ readonly Failure_ActionCancelled: "Action cancelled by user";
40
+ readonly Failure_FirmwareError: "Firmware installation failed";
41
+ readonly Failure_UnknownCode: "Unknown error";
42
+ readonly Failure_PinCancelled: "PIN cancelled";
43
+ readonly Failure_PinInvalid: "PIN invalid";
44
+ readonly Failure_PinMismatch: "PIN mismatch";
45
+ readonly Failure_WipeCodeMismatch: "Wipe code mismatch";
46
+ readonly Deeplink_VersionMismatch: "Not compatible with current version of the app";
37
47
  };
48
+ export type ErrorCode = keyof typeof ERROR_CODES;
38
49
  export declare class TrezorError extends Error {
39
- code: string;
50
+ code: ErrorCode;
40
51
  message: string;
41
- constructor(code: string, message: string);
52
+ constructor(code: ErrorCode, message: string);
42
53
  }
43
- export declare const TypedError: (id: keyof typeof ERROR_CODES, message?: string) => TrezorError;
54
+ export declare const TypedError: (id: ErrorCode, message?: string) => TrezorError;
44
55
  export declare const serializeError: (payload: any) => any;
45
56
  export declare const LIBUSB_ERROR_MESSAGE = "LIBUSB_ERROR";
46
57
  //# sourceMappingURL=errors.d.ts.map
@@ -37,6 +37,16 @@ exports.ERROR_CODES = {
37
37
  Device_InvalidState: 'Passphrase is incorrect',
38
38
  Device_CallInProgress: 'Device call in progress',
39
39
  Device_MultipleNotSupported: 'Multiple devices are not supported',
40
+ Device_MissingCapability: 'Device is missing capability',
41
+ Device_MissingCapabilityBtcOnly: 'Device is missing capability (BTC only)',
42
+ Failure_ActionCancelled: 'Action cancelled by user',
43
+ Failure_FirmwareError: 'Firmware installation failed',
44
+ Failure_UnknownCode: 'Unknown error',
45
+ Failure_PinCancelled: 'PIN cancelled',
46
+ Failure_PinInvalid: 'PIN invalid',
47
+ Failure_PinMismatch: 'PIN mismatch',
48
+ Failure_WipeCodeMismatch: 'Wipe code mismatch',
49
+ Deeplink_VersionMismatch: 'Not compatible with current version of the app',
40
50
  };
41
51
  class TrezorError extends Error {
42
52
  constructor(code, message) {
@@ -0,0 +1,2 @@
1
+ export declare const FW_HASH_SUPPORTED_VERSIONS: string[];
2
+ //# sourceMappingURL=firmware.d.ts.map
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FW_HASH_SUPPORTED_VERSIONS = void 0;
4
+ exports.FW_HASH_SUPPORTED_VERSIONS = ['1.11.1', '2.5.1'];
5
+ //# sourceMappingURL=firmware.js.map
@@ -2,5 +2,7 @@ export * as ERRORS from './errors';
2
2
  export * as NETWORK from './network';
3
3
  export * as CARDANO from './cardano';
4
4
  export * as NEM from './nem';
5
+ export * as FIRMWARE from './firmware';
6
+ export { DEFAULT_SORTING_STRATEGY } from './utxo';
5
7
  export { MessagesSchema as PROTO } from '@trezor/protobuf';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROTO = exports.NEM = exports.CARDANO = exports.NETWORK = exports.ERRORS = void 0;
3
+ exports.PROTO = exports.DEFAULT_SORTING_STRATEGY = exports.FIRMWARE = exports.NEM = exports.CARDANO = exports.NETWORK = exports.ERRORS = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  exports.ERRORS = tslib_1.__importStar(require("./errors"));
6
6
  exports.NETWORK = tslib_1.__importStar(require("./network"));
7
7
  exports.CARDANO = tslib_1.__importStar(require("./cardano"));
8
8
  exports.NEM = tslib_1.__importStar(require("./nem"));
9
+ exports.FIRMWARE = tslib_1.__importStar(require("./firmware"));
10
+ var utxo_1 = require("./utxo");
11
+ Object.defineProperty(exports, "DEFAULT_SORTING_STRATEGY", { enumerable: true, get: function () { return utxo_1.DEFAULT_SORTING_STRATEGY; } });
9
12
  var protobuf_1 = require("@trezor/protobuf");
10
13
  Object.defineProperty(exports, "PROTO", { enumerable: true, get: function () { return protobuf_1.MessagesSchema; } });
11
14
  //# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@ export declare enum Networks {
5
5
  mijin = 96
6
6
  }
7
7
  export type EnumNetworks = Static<typeof EnumNetworks>;
8
- export declare const EnumNetworks: import("@sinclair/typebox").TEnum<typeof Networks>;
8
+ export declare const EnumNetworks: import("@trezor/schema-utils").TEnum<typeof Networks>;
9
9
  export declare enum TxType {
10
10
  TRANSFER = 257,
11
11
  COSIGNING = 258,
@@ -18,12 +18,12 @@ export declare enum TxType {
18
18
  SUPPLY_CHANGE = 16386
19
19
  }
20
20
  export type EnumTxType = Static<typeof EnumTxType>;
21
- export declare const EnumTxType: import("@sinclair/typebox").TEnum<typeof TxType>;
21
+ export declare const EnumTxType: import("@trezor/schema-utils").TEnum<typeof TxType>;
22
22
  export declare enum TxVersion {
23
23
  mainnet = 1744830464,
24
24
  testnet = -1744830464,
25
25
  mijin = 1610612736
26
26
  }
27
27
  export type EnumTxVersion = Static<typeof EnumTxVersion>;
28
- export declare const EnumTxVersion: import("@sinclair/typebox").TEnum<typeof TxVersion>;
28
+ export declare const EnumTxVersion: import("@trezor/schema-utils").TEnum<typeof TxVersion>;
29
29
  //# sourceMappingURL=nem.d.ts.map
@@ -0,0 +1,3 @@
1
+ import type { TransactionInputOutputSortingStrategy } from '@trezor/utxo-lib';
2
+ export declare const DEFAULT_SORTING_STRATEGY: TransactionInputOutputSortingStrategy;
3
+ //# sourceMappingURL=utxo.d.ts.map
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_SORTING_STRATEGY = void 0;
4
+ exports.DEFAULT_SORTING_STRATEGY = 'random';
5
+ //# sourceMappingURL=utxo.js.map
@@ -1,7 +1,8 @@
1
+ import { Capability } from '@trezor/protobuf/lib/messages';
1
2
  import { NETWORK } from '../constants';
2
3
  import { UI, CallMethodPayload, CallMethodResponse, UiRequestButtonData, UiPromiseCreator, CoreEventMessage, UiRequestConfirmation } from '../events';
3
4
  import type { Device } from '../device/Device';
4
- import type { FirmwareRange, DeviceState } from '../types';
5
+ import type { FirmwareRange, DeviceState, DeviceUniquePath, ConnectSettings } from '../types';
5
6
  export type Payload<M> = Extract<CallMethodPayload, {
6
7
  method: M;
7
8
  }> & {
@@ -15,7 +16,7 @@ export declare abstract class AbstractMethod<Name extends CallMethodPayload['met
15
16
  responseID: number;
16
17
  device: Device;
17
18
  params: Params;
18
- devicePath?: string;
19
+ devicePath?: DeviceUniquePath;
19
20
  deviceState?: DeviceState;
20
21
  hasExpectedDeviceState: boolean;
21
22
  keepSession: boolean;
@@ -37,6 +38,7 @@ export declare abstract class AbstractMethod<Name extends CallMethodPayload['met
37
38
  requiredPermissions: MethodPermission[];
38
39
  allowDeviceMode: DeviceMode[];
39
40
  requireDeviceMode: DeviceMode[];
41
+ requiredDeviceCapabilities: Capability[];
40
42
  network: NETWORK.NetworkType;
41
43
  useCardanoDerivation: boolean;
42
44
  noBackupConfirmationMode: 'never' | 'always' | 'popup-only';
@@ -50,11 +52,17 @@ export declare abstract class AbstractMethod<Name extends CallMethodPayload['met
50
52
  });
51
53
  setDevice(device: Device): void;
52
54
  private getOriginPermissions;
53
- checkPermissions(): void;
54
- savePermissions(temporary?: boolean): void;
55
+ checkPermissions({ origin }: Pick<ConnectSettings, 'origin'>): void;
56
+ savePermissions(temporary: boolean | undefined, { origin }: Pick<ConnectSettings, 'origin'>): void;
55
57
  checkFirmwareRange(): "ui-device_firmware_old" | "ui-device_firmware_unsupported" | "ui-device_firmware_not_compatible" | "ui-device_firmware_not_installed" | undefined;
56
- isManagementRestricted(): boolean | undefined;
58
+ isManagementRestricted({ popup, origin }: Pick<ConnectSettings, 'popup' | 'origin'>): boolean | undefined;
57
59
  abstract init(): void;
60
+ getMethodInfo(): {
61
+ useDevice: boolean;
62
+ useDeviceState: boolean;
63
+ name: Name;
64
+ };
65
+ checkDeviceCapability(): void;
58
66
  abstract run(): Promise<MethodReturnType<Name>>;
59
67
  dispose(): void;
60
68
  }