@trezor/connect 9.2.0 → 9.2.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 (34) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -1
  3. package/lib/api/cardano/cardanoOutputs.d.ts +1 -1
  4. package/lib/api/cardano/cardanoTokenBundle.d.ts +2 -2
  5. package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +2 -0
  6. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +4 -4
  7. package/lib/api/getAccountInfo.d.ts +2 -2
  8. package/lib/api/getAccountInfo.js +3 -0
  9. package/lib/api/getFeatures.d.ts +3 -2
  10. package/lib/api/getPublicKey.d.ts +2 -0
  11. package/lib/backend/BackendManager.d.ts +1 -2
  12. package/lib/backend/BackendManager.js +15 -15
  13. package/lib/backend/Blockchain.d.ts +1 -1
  14. package/lib/backend/Blockchain.js +1 -1
  15. package/lib/data/version.d.ts +1 -1
  16. package/lib/data/version.js +1 -1
  17. package/lib/device/DeviceCommands.d.ts +4 -0
  18. package/lib/device/DeviceCommands.js +8 -5
  19. package/lib/device/resolveDescriptorForTaproot.d.ts +15 -0
  20. package/lib/device/resolveDescriptorForTaproot.js +26 -0
  21. package/lib/types/account.d.ts +2 -0
  22. package/lib/types/api/applySettings.d.ts +1 -1
  23. package/lib/types/api/binance/index.d.ts +10 -10
  24. package/lib/types/api/cardano/index.d.ts +4 -4
  25. package/lib/types/api/changeLanguage.d.ts +1 -1
  26. package/lib/types/api/cipherKeyValue.d.ts +2 -2
  27. package/lib/types/api/eos/index.d.ts +3 -3
  28. package/lib/types/api/ethereum/index.d.ts +3 -3
  29. package/lib/types/api/firmwareUpdate.d.ts +1 -1
  30. package/lib/types/api/getPublicKey.d.ts +1 -0
  31. package/lib/types/api/getPublicKey.js +1 -0
  32. package/lib/types/api/nem/index.d.ts +7 -7
  33. package/lib/types/api/stellar/index.d.ts +146 -146
  34. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ # 9.2.1
2
+
3
+ Main motivation for this release was [issue](https://github.com/trezor/trezor-suite/issues/11442) introduced in 9.2.0 release in @trezor/connect-web npm package.
4
+
5
+ - fix(connect): fix build of connect-web (50f35cb) [related issue](https://github.com/trezor/trezor-suite/issues/11442)
6
+ - feat(connect): return checksum in the xpub for taproot (458ddf9)
7
+ - fix(connect-ui): analytics button to reflect state (cc59ef9)
8
+ - chore(connect): unify failed connection and disconnection (c863646)
9
+ - feat(connect): leave sticky backend after some time (021ec5c)
10
+ - chore(connect-iframe): fix conflicting variable webpack warning on build:lib (cdbdfb2)
11
+
12
+ ## Dependencies update
13
+
14
+ - npm-release: @trezor/blockchain-link 2.1.27
15
+ - npm-release: @trezor/connect-common 0.0.30
16
+ - npm-release: @trezor/transport 1.1.26
17
+ - npm-release: @trezor/protobuf 1.0.10
18
+
1
19
  # 9.2.0
2
20
 
3
21
  ## @trezor/connect-web npm package
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @trezor/connect
2
2
 
3
- API version 9.2.0
3
+ API version 9.2.1
4
4
 
5
5
  [![Build Status](https://github.com/trezor/trezor-suite/actions/workflows/connect-test.yml/badge.svg)](https://github.com/trezor/trezor-suite/actions/workflows/connect-test.yml)
6
6
  [![NPM](https://img.shields.io/npm/v/@trezor/connect.svg)](https://www.npmjs.org/package/@trezor/connect)
@@ -8,7 +8,7 @@ export type OutputWithData = {
8
8
  };
9
9
  export declare const OutputValidation: import("@sinclair/typebox").TObject<{
10
10
  address: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
11
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
12
12
  tokenBundle: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
13
13
  policyId: import("@sinclair/typebox").TString;
14
14
  tokenAmounts: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
@@ -5,8 +5,8 @@ export declare const AssetGroupWithTokens: import("@sinclair/typebox").TObject<{
5
5
  policyId: import("@sinclair/typebox").TString;
6
6
  tokens: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
7
7
  asset_name_bytes: import("@sinclair/typebox").TString;
8
- amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/src/custom-types/uint").TUint>;
9
- mint_amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/src/custom-types/uint").TUint>;
8
+ amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
9
+ mint_amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
10
10
  }>>;
11
11
  }>;
12
12
  export declare const tokenBundleToProto: (tokenBundle: CardanoAssetGroup[]) => AssetGroupWithTokens[];
@@ -12,6 +12,7 @@ export default class EthereumGetPublicKey extends AbstractMethod<'ethereumGetPub
12
12
  confirmation(): Promise<boolean>;
13
13
  run(): Promise<{
14
14
  xpubSegwit?: string | undefined;
15
+ descriptorChecksum?: string | undefined;
15
16
  path: number[];
16
17
  depth: number;
17
18
  fingerprint: number;
@@ -22,6 +23,7 @@ export default class EthereumGetPublicKey extends AbstractMethod<'ethereumGetPub
22
23
  childNum: number;
23
24
  } | {
24
25
  xpubSegwit?: string | undefined;
26
+ descriptorChecksum?: string | undefined;
25
27
  path: number[];
26
28
  depth: number;
27
29
  fingerprint: number;
@@ -21,7 +21,7 @@ declare const Params: import("@sinclair/typebox").TIntersect<[import("@sinclair/
21
21
  version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
22
22
  chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>>;
23
23
  verifyingContract: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
- salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/src/custom-types/array-buffer").TArrayBuffer, import("@sinclair/typebox").TString]>>;
24
+ salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer, import("@sinclair/typebox").TString]>>;
25
25
  }>;
26
26
  message: import("@sinclair/typebox").TObject<{}>;
27
27
  }>;
@@ -42,7 +42,7 @@ declare const Params: import("@sinclair/typebox").TIntersect<[import("@sinclair/
42
42
  version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
43
43
  chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>>;
44
44
  verifyingContract: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
45
- salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/src/custom-types/array-buffer").TArrayBuffer, import("@sinclair/typebox").TString]>>;
45
+ salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer, import("@sinclair/typebox").TString]>>;
46
46
  }>;
47
47
  message: import("@sinclair/typebox").TObject<{}>;
48
48
  }>;
@@ -83,8 +83,8 @@ declare const Params: import("@sinclair/typebox").TIntersect<[import("@sinclair/
83
83
  network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
84
84
  }>]>>;
85
85
  definitions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
86
- encoded_network: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/src/custom-types/array-buffer").TArrayBuffer>;
87
- encoded_token: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/src/custom-types/array-buffer").TArrayBuffer>;
86
+ encoded_network: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer>;
87
+ encoded_token: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer>;
88
88
  }>>;
89
89
  }>]>;
90
90
  export default class EthereumSignTypedData extends AbstractMethod<'ethereumSignTypedData', Params> {
@@ -54,7 +54,7 @@ export default class GetAccountInfo extends AbstractMethod<'getAccountInfo', Req
54
54
  ledger: number;
55
55
  seq: number;
56
56
  } | undefined;
57
- stakingPools?: import("@trezor/blockchain-link-types/lib").StakingPool[] | undefined;
57
+ stakingPools?: import("@trezor/blockchain-link-types").StakingPool[] | undefined;
58
58
  path: string;
59
59
  }>;
60
60
  discover(request: Request): Promise<{
@@ -96,7 +96,7 @@ export default class GetAccountInfo extends AbstractMethod<'getAccountInfo', Req
96
96
  ledger: number;
97
97
  seq: number;
98
98
  } | undefined;
99
- stakingPools?: import("@trezor/blockchain-link-types/lib").StakingPool[] | undefined;
99
+ stakingPools?: import("@trezor/blockchain-link-types").StakingPool[] | undefined;
100
100
  path: string;
101
101
  }>;
102
102
  dispose(): void;
@@ -171,6 +171,7 @@ class GetAccountInfo extends AbstractMethod_1.AbstractMethod {
171
171
  const { address_n } = request;
172
172
  let { descriptor } = request;
173
173
  let legacyXpub;
174
+ let descriptorChecksum;
174
175
  if (this.disposed)
175
176
  break;
176
177
  if (address_n && typeof descriptor !== 'string') {
@@ -183,6 +184,7 @@ class GetAccountInfo extends AbstractMethod_1.AbstractMethod {
183
184
  if (accountDescriptor) {
184
185
  descriptor = accountDescriptor.descriptor;
185
186
  legacyXpub = accountDescriptor.legacyXpub;
187
+ descriptorChecksum = accountDescriptor.descriptorChecksum;
186
188
  }
187
189
  }
188
190
  catch (error) {
@@ -233,6 +235,7 @@ class GetAccountInfo extends AbstractMethod_1.AbstractMethod {
233
235
  descriptor,
234
236
  legacyXpub,
235
237
  utxo,
238
+ descriptorChecksum,
236
239
  };
237
240
  responses.push(account);
238
241
  sendProgress(i, account);
@@ -11,6 +11,7 @@ export default class GetFeatures extends AbstractMethod<'getFeatures'> {
11
11
  homescreen_width?: number | undefined;
12
12
  homescreen_height?: number | undefined;
13
13
  bootloader_locked?: boolean | undefined;
14
+ language_version_matches?: boolean | undefined;
14
15
  session_id: string | null;
15
16
  vendor: string;
16
17
  major_version: number;
@@ -38,7 +39,7 @@ export default class GetFeatures extends AbstractMethod<'getFeatures'> {
38
39
  unfinished_backup: boolean | null;
39
40
  no_backup: boolean | null;
40
41
  recovery_mode: boolean | null;
41
- capabilities: ("Capability_Bitcoin" | "Capability_Bitcoin_like" | "Capability_Binance" | "Capability_Cardano" | "Capability_Crypto" | "Capability_EOS" | "Capability_Ethereum" | "Capability_Lisk" | "Capability_Monero" | "Capability_NEM" | "Capability_Ripple" | "Capability_Stellar" | "Capability_Tezos" | "Capability_U2F" | "Capability_Shamir" | "Capability_ShamirGroups" | "Capability_PassphraseEntry" | "Capability_Solana")[];
42
+ capabilities: ("Capability_Bitcoin" | "Capability_Bitcoin_like" | "Capability_Binance" | "Capability_Cardano" | "Capability_Crypto" | "Capability_EOS" | "Capability_Ethereum" | "Capability_Lisk" | "Capability_Monero" | "Capability_NEM" | "Capability_Ripple" | "Capability_Stellar" | "Capability_Tezos" | "Capability_U2F" | "Capability_Shamir" | "Capability_ShamirGroups" | "Capability_PassphraseEntry" | "Capability_Solana" | "Capability_Translations")[];
42
43
  backup_type: "Bip39" | "Slip39_Basic" | "Slip39_Advanced" | null;
43
44
  sd_card_present: boolean | null;
44
45
  sd_protection: boolean | null;
@@ -48,7 +49,7 @@ export default class GetFeatures extends AbstractMethod<'getFeatures'> {
48
49
  auto_lock_delay_ms: number | null;
49
50
  display_rotation: number | null;
50
51
  experimental_features: boolean | null;
51
- internal_model: import("@trezor/protobuf/src").DeviceModelInternal;
52
+ internal_model: import("@trezor/protobuf").DeviceModelInternal;
52
53
  }>;
53
54
  }
54
55
  //# sourceMappingURL=getFeatures.d.ts.map
@@ -15,6 +15,7 @@ export default class GetPublicKey extends AbstractMethod<'getPublicKey', Params[
15
15
  noBackupConfirmation(allowSuppression?: boolean): Promise<boolean>;
16
16
  run(): Promise<{
17
17
  xpubSegwit?: string | undefined;
18
+ descriptorChecksum?: string | undefined;
18
19
  path: number[];
19
20
  depth: number;
20
21
  fingerprint: number;
@@ -25,6 +26,7 @@ export default class GetPublicKey extends AbstractMethod<'getPublicKey', Params[
25
26
  childNum: number;
26
27
  } | {
27
28
  xpubSegwit?: string | undefined;
29
+ descriptorChecksum?: string | undefined;
28
30
  path: number[];
29
31
  depth: number;
30
32
  fingerprint: number;
@@ -15,9 +15,8 @@ export declare class BackendManager {
15
15
  removeCustom(shortcut: CoinShortcut): void;
16
16
  private setInstance;
17
17
  private setPreferred;
18
- private planReconnect;
18
+ private onDisconnect;
19
19
  private clearReconnect;
20
- private onDisconnected;
21
20
  private patchCoinInfo;
22
21
  }
23
22
  export {};
@@ -24,7 +24,10 @@ class BackendManager {
24
24
  postMessage,
25
25
  debug: DataManager_1.DataManager.getSettings('debug'),
26
26
  proxy: DataManager_1.DataManager.getSettings('proxy'),
27
- onDisconnected: this.onDisconnected.bind(this),
27
+ onDisconnected: pendingSubscriptions => {
28
+ const reconnectAttempts = pendingSubscriptions ? 0 : undefined;
29
+ this.onDisconnect(coinInfo, postMessage, reconnectAttempts);
30
+ },
28
31
  });
29
32
  this.setInstance(coinInfo.shortcut, backend);
30
33
  }
@@ -35,11 +38,7 @@ class BackendManager {
35
38
  return backend;
36
39
  }
37
40
  catch (error) {
38
- this.setInstance(coinInfo.shortcut, undefined);
39
- this.setPreferred(coinInfo.shortcut, undefined);
40
- if (reconnect) {
41
- this.planReconnect(backend.coinInfo, backend.postMessage, reconnect.attempts);
42
- }
41
+ this.onDisconnect(coinInfo, postMessage, reconnect === null || reconnect === void 0 ? void 0 : reconnect.attempts);
43
42
  throw error;
44
43
  }
45
44
  }
@@ -79,15 +78,22 @@ class BackendManager {
79
78
  else
80
79
  this.preferred[shortcut] = url;
81
80
  }
82
- planReconnect(coinInfo, postMessage, attempts) {
81
+ onDisconnect(coinInfo, postMessage, reconnectAttempt) {
83
82
  var _a;
84
- const timeout = Math.min(2500 * attempts, 20000);
83
+ this.setInstance(coinInfo.shortcut, undefined);
84
+ if (reconnectAttempt === undefined || reconnectAttempt === 4) {
85
+ this.setPreferred(coinInfo.shortcut, undefined);
86
+ }
87
+ if (reconnectAttempt === undefined) {
88
+ return;
89
+ }
90
+ const timeout = Math.min(2500 * reconnectAttempt, 20000);
85
91
  const time = Date.now() + timeout;
86
92
  const handle = setTimeout(() => {
87
93
  this.getOrConnect(coinInfo, postMessage).catch(() => { });
88
94
  }, timeout);
89
95
  clearTimeout((_a = this.reconnect[coinInfo.shortcut]) === null || _a === void 0 ? void 0 : _a.handle);
90
- this.reconnect[coinInfo.shortcut] = { attempts: attempts + 1, handle };
96
+ this.reconnect[coinInfo.shortcut] = { attempts: reconnectAttempt + 1, handle };
91
97
  postMessage((0, events_1.createBlockchainMessage)(events_1.BLOCKCHAIN.RECONNECTING, { coin: coinInfo, time }));
92
98
  }
93
99
  clearReconnect(shortcut) {
@@ -96,12 +102,6 @@ class BackendManager {
96
102
  delete this.reconnect[shortcut];
97
103
  return reconnect;
98
104
  }
99
- onDisconnected(backend, pendingSubscriptions) {
100
- this.setInstance(backend.coinInfo.shortcut, undefined);
101
- if (pendingSubscriptions) {
102
- this.planReconnect(backend.coinInfo, backend.postMessage, 0);
103
- }
104
- }
105
105
  patchCoinInfo(coinInfo) {
106
106
  var _a, _b;
107
107
  const custom = this.custom[coinInfo.shortcut];
@@ -7,7 +7,7 @@ export type BlockchainOptions = {
7
7
  postMessage: (message: CoreEventMessage) => void;
8
8
  proxy?: Proxy;
9
9
  debug?: boolean;
10
- onDisconnected?: (backend: Blockchain, pendingSubscriptions?: boolean) => void;
10
+ onDisconnected?: (pendingSubscriptions?: boolean) => void;
11
11
  };
12
12
  export declare class Blockchain {
13
13
  link: BlockchainLink;
@@ -58,7 +58,7 @@ class Blockchain {
58
58
  error: error.message,
59
59
  code: error.code,
60
60
  }));
61
- (_a = this.onDisconnected) === null || _a === void 0 ? void 0 : _a.call(this, this, !!pendingSubscriptions);
61
+ (_a = this.onDisconnected) === null || _a === void 0 ? void 0 : _a.call(this, !!pendingSubscriptions);
62
62
  }
63
63
  async initLink() {
64
64
  let info;
@@ -1,3 +1,3 @@
1
- export declare const VERSION = "9.2.0";
1
+ export declare const VERSION = "9.2.1";
2
2
  export declare const DEFAULT_DOMAIN: string;
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_DOMAIN = exports.VERSION = void 0;
4
- exports.VERSION = '9.2.0';
4
+ exports.VERSION = '9.2.1';
5
5
  const versionN = exports.VERSION.split('.').map(s => parseInt(s, 10));
6
6
  exports.DEFAULT_DOMAIN = `https://connect.trezor.io/${versionN[0]}/`;
7
7
  //# sourceMappingURL=version.js.map
@@ -32,6 +32,7 @@ export declare class DeviceCommands {
32
32
  unlockPath(params?: Messages.UnlockPath): Promise<TypedResponseMessage<"UnlockedPathRequest">>;
33
33
  getPublicKey(params: Messages.GetPublicKey, unlockPath?: Messages.UnlockPath): Promise<{
34
34
  root_fingerprint?: number | undefined;
35
+ descriptor?: string | undefined;
35
36
  node: {
36
37
  private_key?: string | undefined;
37
38
  public_key: string;
@@ -48,6 +49,7 @@ export declare class DeviceCommands {
48
49
  unlockPath?: Messages.UnlockPath;
49
50
  }): Promise<{
50
51
  xpubSegwit?: string | undefined;
52
+ descriptorChecksum?: string | undefined;
51
53
  path: number[];
52
54
  depth: number;
53
55
  fingerprint: number;
@@ -59,6 +61,7 @@ export declare class DeviceCommands {
59
61
  }>;
60
62
  getBitcoinHDNode(path: number[], coinInfo?: BitcoinNetworkInfo, validation?: boolean): Promise<{
61
63
  xpubSegwit?: string | undefined;
64
+ descriptorChecksum?: string | undefined;
62
65
  path: number[];
63
66
  depth: number;
64
67
  fingerprint: number;
@@ -94,6 +97,7 @@ export declare class DeviceCommands {
94
97
  descriptor: string;
95
98
  legacyXpub?: string;
96
99
  address_n: number[];
100
+ descriptorChecksum?: string;
97
101
  }>;
98
102
  cancel(): Promise<void>;
99
103
  }
@@ -13,6 +13,7 @@ const accountUtils_1 = require("../utils/accountUtils");
13
13
  const coinInfo_1 = require("../data/coinInfo");
14
14
  const debug_1 = require("../utils/debug");
15
15
  const schema_utils_1 = require("@trezor/schema-utils");
16
+ const resolveDescriptorForTaproot_1 = require("./resolveDescriptorForTaproot");
16
17
  const logger = (0, debug_1.initLog)('DeviceCommands');
17
18
  const assertType = (res, resType) => {
18
19
  const splitResTypes = Array.isArray(resType) ? resType : resType.split('|');
@@ -115,11 +116,12 @@ class DeviceCommands {
115
116
  response.xpub = hdnodeUtils.convertXpub(publicKey.xpub, network, coinInfo.network);
116
117
  }
117
118
  if ((0, pathUtils_1.isTaprootPath)(path)) {
118
- const fingerprint = Number(publicKey.root_fingerprint || 0)
119
- .toString(16)
120
- .padStart(8, '0');
121
- const descriptorPath = `${fingerprint}${response.serializedPath.substring(1)}`;
122
- response.xpubSegwit = `tr([${descriptorPath}]${response.xpub}/<0;1>/*)`;
119
+ const { checksum, xpub: xpubSegwit } = (0, resolveDescriptorForTaproot_1.resolveDescriptorForTaproot)({
120
+ response,
121
+ publicKey,
122
+ });
123
+ response.xpubSegwit = xpubSegwit;
124
+ response.descriptorChecksum = checksum;
123
125
  }
124
126
  return response;
125
127
  }
@@ -453,6 +455,7 @@ class DeviceCommands {
453
455
  descriptor: resp.xpubSegwit || resp.xpub,
454
456
  legacyXpub: resp.xpub,
455
457
  address_n,
458
+ descriptorChecksum: resp.descriptorChecksum,
456
459
  };
457
460
  }
458
461
  if (coinInfo.type === 'ethereum') {
@@ -0,0 +1,15 @@
1
+ import { HDNodeResponse } from '../types/api/getPublicKey';
2
+ import { MessagesSchema as Messages } from '@trezor/protobuf';
3
+ interface Params {
4
+ response: HDNodeResponse;
5
+ publicKey: Messages.PublicKey;
6
+ }
7
+ export declare const resolveDescriptorForTaproot: ({ response, publicKey }: Params) => {
8
+ xpub: string;
9
+ checksum: string;
10
+ } | {
11
+ xpub: string;
12
+ checksum: undefined;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=resolveDescriptorForTaproot.d.ts.map
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveDescriptorForTaproot = void 0;
4
+ const resolveDescriptorForTaproot = ({ response, publicKey }) => {
5
+ if (publicKey.descriptor !== null && publicKey.descriptor !== undefined) {
6
+ const [xpub, checksum] = publicKey.descriptor.split('#');
7
+ return {
8
+ xpub: xpub
9
+ .replace(/h\//g, "'/")
10
+ .replace(/h]/g, "']"),
11
+ checksum,
12
+ };
13
+ }
14
+ else {
15
+ const fingerprint = Number(publicKey.root_fingerprint || 0)
16
+ .toString(16)
17
+ .padStart(8, '0');
18
+ const descriptorPath = `${fingerprint}${response.serializedPath.substring(1)}`;
19
+ return {
20
+ xpub: `tr([${descriptorPath}]${response.xpub}/<0;1>/*)`,
21
+ checksum: undefined,
22
+ };
23
+ }
24
+ };
25
+ exports.resolveDescriptorForTaproot = resolveDescriptorForTaproot;
26
+ //# sourceMappingURL=resolveDescriptorForTaproot.js.map
@@ -5,6 +5,7 @@ export interface AccountInfo extends AccountInfoBase {
5
5
  path?: string;
6
6
  legacyXpub?: string;
7
7
  utxo?: AccountUtxo[];
8
+ descriptorChecksum?: string;
8
9
  }
9
10
  export interface DiscoveryAccount {
10
11
  type: DiscoveryAccountType;
@@ -14,5 +15,6 @@ export interface DiscoveryAccount {
14
15
  empty?: boolean;
15
16
  balance?: string;
16
17
  addresses?: AccountAddresses;
18
+ descriptorChecksum?: string;
17
19
  }
18
20
  //# sourceMappingURL=account.d.ts.map
@@ -6,7 +6,7 @@ export declare const ApplySettings: import("@sinclair/typebox").TObject<{
6
6
  language: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
7
  label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
8
  passphrase_always_on_device: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
9
- safety_checks: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/src/custom-types/keyof-enum").TKeyOfEnum<typeof PROTO.Enum_SafetyCheckLevel>>;
9
+ safety_checks: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/keyof-enum").TKeyOfEnum<typeof PROTO.Enum_SafetyCheckLevel>>;
10
10
  auto_lock_delay_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
11
11
  display_rotation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
12
12
  experimental_features: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
@@ -11,14 +11,14 @@ export declare const BinanceSDKTransaction: import("@sinclair/typebox").TObject<
11
11
  inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
12
12
  address: import("@sinclair/typebox").TString;
13
13
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
14
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
14
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
15
15
  denom: import("@sinclair/typebox").TString;
16
16
  }>>;
17
17
  }>>;
18
18
  outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
19
19
  address: import("@sinclair/typebox").TString;
20
20
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
21
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
21
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
22
22
  denom: import("@sinclair/typebox").TString;
23
23
  }>>;
24
24
  }>>;
@@ -45,14 +45,14 @@ export declare const BinancePreparedMessage: import("@sinclair/typebox").TUnion<
45
45
  inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
46
46
  address: import("@sinclair/typebox").TString;
47
47
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
48
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
48
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
49
49
  denom: import("@sinclair/typebox").TString;
50
50
  }>>;
51
51
  }>>;
52
52
  outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
53
53
  address: import("@sinclair/typebox").TString;
54
54
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
55
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
55
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
56
56
  denom: import("@sinclair/typebox").TString;
57
57
  }>>;
58
58
  }>>;
@@ -88,14 +88,14 @@ export declare const BinancePreparedTransaction: import("@sinclair/typebox").TIn
88
88
  inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
89
89
  address: import("@sinclair/typebox").TString;
90
90
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
91
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
91
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
92
92
  denom: import("@sinclair/typebox").TString;
93
93
  }>>;
94
94
  }>>;
95
95
  outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
96
96
  address: import("@sinclair/typebox").TString;
97
97
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
98
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
98
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
99
99
  denom: import("@sinclair/typebox").TString;
100
100
  }>>;
101
101
  }>>;
@@ -121,14 +121,14 @@ export declare const BinancePreparedTransaction: import("@sinclair/typebox").TIn
121
121
  inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
122
122
  address: import("@sinclair/typebox").TString;
123
123
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
124
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
124
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
125
125
  denom: import("@sinclair/typebox").TString;
126
126
  }>>;
127
127
  }>>;
128
128
  outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
129
129
  address: import("@sinclair/typebox").TString;
130
130
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
131
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
131
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
132
132
  denom: import("@sinclair/typebox").TString;
133
133
  }>>;
134
134
  }>>;
@@ -170,14 +170,14 @@ export declare const BinanceSignTransaction: import("@sinclair/typebox").TObject
170
170
  inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
171
171
  address: import("@sinclair/typebox").TString;
172
172
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
173
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
173
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
174
174
  denom: import("@sinclair/typebox").TString;
175
175
  }>>;
176
176
  }>>;
177
177
  outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
178
178
  address: import("@sinclair/typebox").TString;
179
179
  coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
180
- amount: import("@trezor/schema-utils/src/custom-types/uint").TUint;
180
+ amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
181
181
  denom: import("@sinclair/typebox").TString;
182
182
  }>>;
183
183
  }>>;
@@ -358,8 +358,8 @@ export declare const CardanoSignTransaction: import("@sinclair/typebox").TObject
358
358
  inlineDatum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
359
359
  referenceScript: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
360
360
  }>]>>;
361
- fee: import("@trezor/schema-utils/src/custom-types/uint").TUint;
362
- ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/src/custom-types/uint").TUint>;
361
+ fee: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
362
+ ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
363
363
  certificates: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
364
364
  type: import("@sinclair/typebox").TEnum<typeof PROTO.CardanoCertificateType>;
365
365
  path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
@@ -528,8 +528,8 @@ export declare const CardanoSignTransactionExtended: import("@sinclair/typebox")
528
528
  inlineDatum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
529
529
  referenceScript: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
530
530
  }>]>>;
531
- fee: import("@trezor/schema-utils/src/custom-types/uint").TUint;
532
- ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/src/custom-types/uint").TUint>;
531
+ fee: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
532
+ ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
533
533
  certificates: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
534
534
  type: import("@sinclair/typebox").TEnum<typeof PROTO.CardanoCertificateType>;
535
535
  path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
@@ -7,7 +7,7 @@ export declare const ChangeLanguage: import("@sinclair/typebox").TUnion<[import(
7
7
  language: import("@sinclair/typebox").TString;
8
8
  baseUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
9
  }>, import("@sinclair/typebox").TObject<{
10
- binary: import("@trezor/schema-utils/src/custom-types/array-buffer").TArrayBuffer;
10
+ binary: import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer;
11
11
  language: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
12
12
  baseUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
13
13
  }>]>;
@@ -4,11 +4,11 @@ export type CipherKeyValue = Static<typeof CipherKeyValue>;
4
4
  export declare const CipherKeyValue: import("@sinclair/typebox").TObject<{
5
5
  path: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>;
6
6
  key: import("@sinclair/typebox").TString;
7
- value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/src/custom-types/buffer").TBuffer]>;
7
+ value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/lib/custom-types/buffer").TBuffer]>;
8
8
  encrypt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
9
9
  askOnEncrypt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
10
10
  askOnDecrypt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
11
- iv: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/src/custom-types/buffer").TBuffer]>>;
11
+ iv: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/lib/custom-types/buffer").TBuffer]>>;
12
12
  }>;
13
13
  export interface CipheredValue {
14
14
  value: string;
@@ -8,7 +8,7 @@ export declare const EosPublicKey: import("@sinclair/typebox").TObject<{
8
8
  }>;
9
9
  export type EosTxHeader = Static<typeof EosTxHeader>;
10
10
  export declare const EosTxHeader: import("@sinclair/typebox").TObject<{
11
- expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/src/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
11
+ expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
12
12
  refBlockNum: import("@sinclair/typebox").TNumber;
13
13
  refBlockPrefix: import("@sinclair/typebox").TNumber;
14
14
  maxNetUsageWords: import("@sinclair/typebox").TNumber;
@@ -279,7 +279,7 @@ export type EosSDKTransaction = Static<typeof EosSDKTransaction>;
279
279
  export declare const EosSDKTransaction: import("@sinclair/typebox").TObject<{
280
280
  chainId: import("@sinclair/typebox").TString;
281
281
  header: import("@sinclair/typebox").TObject<{
282
- expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/src/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
282
+ expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
283
283
  refBlockNum: import("@sinclair/typebox").TNumber;
284
284
  refBlockPrefix: import("@sinclair/typebox").TNumber;
285
285
  maxNetUsageWords: import("@sinclair/typebox").TNumber;
@@ -532,7 +532,7 @@ export declare const EosSignTransaction: import("@sinclair/typebox").TObject<{
532
532
  transaction: import("@sinclair/typebox").TObject<{
533
533
  chainId: import("@sinclair/typebox").TString;
534
534
  header: import("@sinclair/typebox").TObject<{
535
- expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/src/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
535
+ expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
536
536
  refBlockNum: import("@sinclair/typebox").TNumber;
537
537
  refBlockPrefix: import("@sinclair/typebox").TNumber;
538
538
  maxNetUsageWords: import("@sinclair/typebox").TNumber;