@sidhujag/sysweb3-keyring 2.1.7 → 2.1.8

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 (95) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/cjs/hardware-transaction-authority.js +15 -11
  3. package/cjs/hardware-transaction-authority.js.map +1 -1
  4. package/cjs/hardware-wallet-manager.js +74 -119
  5. package/cjs/hardware-wallet-manager.js.map +1 -1
  6. package/cjs/hardware-wallet-types.js +16 -0
  7. package/cjs/hardware-wallet-types.js.map +1 -0
  8. package/cjs/host-keyring.js +32 -0
  9. package/cjs/host-keyring.js.map +1 -0
  10. package/cjs/index.js +1 -0
  11. package/cjs/index.js.map +1 -1
  12. package/cjs/keyring-core.js +96 -61
  13. package/cjs/keyring-core.js.map +1 -1
  14. package/cjs/keyring-manager.js +15 -16
  15. package/cjs/keyring-manager.js.map +1 -1
  16. package/cjs/ledger/host-types.js.map +1 -1
  17. package/cjs/ledger/index.js +24 -4
  18. package/cjs/ledger/index.js.map +1 -1
  19. package/cjs/ledger-hardware.js +15 -0
  20. package/cjs/ledger-hardware.js.map +1 -0
  21. package/cjs/software.js +6 -25
  22. package/cjs/software.js.map +1 -1
  23. package/cjs/transactions/ethereum.js +317 -268
  24. package/cjs/transactions/ethereum.js.map +1 -1
  25. package/cjs/transactions/evm-submission.js +32 -4
  26. package/cjs/transactions/evm-submission.js.map +1 -1
  27. package/cjs/transactions/ledger-signing.js +44 -0
  28. package/cjs/transactions/ledger-signing.js.map +1 -0
  29. package/cjs/transactions/prepared-evm.js +24 -1
  30. package/cjs/transactions/prepared-evm.js.map +1 -1
  31. package/cjs/trezor/connect.js +238 -243
  32. package/cjs/trezor/connect.js.map +1 -1
  33. package/cjs/trezor/host-types.js +19 -0
  34. package/cjs/trezor/host-types.js.map +1 -0
  35. package/cjs/trezor/index.js +75 -23
  36. package/cjs/trezor/index.js.map +1 -1
  37. package/cjs/trezor/webextension-host.js +118 -0
  38. package/cjs/trezor/webextension-host.js.map +1 -0
  39. package/cjs/trezor-hardware.js +16 -0
  40. package/cjs/trezor-hardware.js.map +1 -0
  41. package/cjs/types.js.map +1 -1
  42. package/esm/hardware-transaction-authority.js +14 -11
  43. package/esm/hardware-transaction-authority.js.map +1 -1
  44. package/esm/hardware-wallet-manager.js +20 -32
  45. package/esm/hardware-wallet-manager.js.map +1 -1
  46. package/esm/hardware-wallet-types.js +13 -0
  47. package/esm/hardware-wallet-types.js.map +1 -0
  48. package/esm/keyring-core.js +98 -63
  49. package/esm/keyring-core.js.map +1 -1
  50. package/esm/ledger/dmk-host.js +2 -0
  51. package/esm/ledger/dmk-host.js.map +1 -1
  52. package/esm/ledger/dmk-session.js +73 -8
  53. package/esm/ledger/dmk-session.js.map +1 -1
  54. package/esm/ledger/host-types.js.map +1 -1
  55. package/esm/ledger/index.js +22 -2
  56. package/esm/ledger/index.js.map +1 -1
  57. package/esm/transactions/ethereum.js +318 -269
  58. package/esm/transactions/ethereum.js.map +1 -1
  59. package/esm/transactions/evm-submission.js +32 -4
  60. package/esm/transactions/evm-submission.js.map +1 -1
  61. package/esm/transactions/ledger-signing.js +41 -0
  62. package/esm/transactions/ledger-signing.js.map +1 -0
  63. package/esm/transactions/prepared-evm.js +23 -1
  64. package/esm/transactions/prepared-evm.js.map +1 -1
  65. package/esm/trezor/connect.js +236 -209
  66. package/esm/trezor/connect.js.map +1 -1
  67. package/esm/trezor/host-types.js +16 -0
  68. package/esm/trezor/host-types.js.map +1 -0
  69. package/esm/trezor/index.js +74 -22
  70. package/esm/trezor/index.js.map +1 -1
  71. package/esm/types.js.map +1 -1
  72. package/package.json +55 -1
  73. package/types/hardware-transaction-authority.d.ts +1 -0
  74. package/types/hardware-wallet-manager.d.ts +6 -22
  75. package/types/hardware-wallet-types.d.ts +21 -0
  76. package/types/host-keyring.d.ts +16 -0
  77. package/types/index.d.ts +1 -0
  78. package/types/keyring-core.d.ts +12 -4
  79. package/types/keyring-manager.d.ts +5 -3
  80. package/types/ledger/dmk-host.d.ts +2 -0
  81. package/types/ledger/dmk-session.d.ts +9 -0
  82. package/types/ledger/host-types.d.ts +2 -0
  83. package/types/ledger/index.d.ts +3 -1
  84. package/types/ledger-hardware.d.ts +5 -0
  85. package/types/software.d.ts +2 -16
  86. package/types/transactions/ethereum.d.ts +11 -1
  87. package/types/transactions/evm-submission.d.ts +7 -2
  88. package/types/transactions/ledger-signing.d.ts +13 -0
  89. package/types/transactions/prepared-evm.d.ts +12 -0
  90. package/types/trezor/connect.d.ts +11 -9
  91. package/types/trezor/host-types.d.ts +25 -0
  92. package/types/trezor/index.d.ts +7 -7
  93. package/types/trezor/webextension-host.d.ts +7 -0
  94. package/types/trezor-hardware.d.ts +6 -0
  95. package/types/types.d.ts +16 -4
@@ -0,0 +1,41 @@
1
+ import { getAddress } from 'ethers/address';
2
+ import { Signature } from 'ethers/crypto';
3
+ import { Transaction } from 'ethers/transaction';
4
+ import { assertSignedEvmTransactionMatches } from './evm-submission';
5
+ import { captureHardwareTransactionAuthority } from '../hardware-transaction-authority';
6
+ /** Sign the reviewed bytes through the shared Ledger adapter without changing fees or nonce. */
7
+ export async function signLedgerEvmTransaction(signer, request, authority) {
8
+ const owner = captureHardwareTransactionAuthority(authority);
9
+ const { accountIndex, unsignedTransaction } = request;
10
+ const expectedAddress = getAddress(request.expectedAddress);
11
+ if (!Number.isSafeInteger(accountIndex) ||
12
+ accountIndex < 0 ||
13
+ accountIndex > 0x7fffffff ||
14
+ typeof unsignedTransaction !== 'string')
15
+ throw new TypeError('Invalid reviewed Ledger transaction');
16
+ const transaction = Transaction.from(unsignedTransaction);
17
+ if (transaction.isSigned() ||
18
+ transaction.chainId <= 0n ||
19
+ transaction.unsignedSerialized !== unsignedTransaction)
20
+ throw new TypeError('Ledger signing requires canonical unsigned transaction bytes');
21
+ owner.assertCurrent();
22
+ const signature = await signer.evm.signEVMTransaction({
23
+ accountIndex,
24
+ expectedAddress,
25
+ rawTx: unsignedTransaction.slice(2),
26
+ }, owner);
27
+ owner.assertCurrent();
28
+ transaction.signature = Signature.from({
29
+ r: `0x${signature.r}`,
30
+ s: `0x${signature.s}`,
31
+ v: Number.parseInt(signature.v, 16),
32
+ });
33
+ const rawTransaction = transaction.serialized;
34
+ if (transaction.from?.toLowerCase() !== expectedAddress.toLowerCase()) {
35
+ throw Object.assign(new Error('Hardware signature does not match the approved account'), { code: 'HARDWARE_ACCOUNT_MISMATCH', transactionNotBroadcast: true });
36
+ }
37
+ const checked = assertSignedEvmTransactionMatches(rawTransaction, unsignedTransaction, expectedAddress);
38
+ owner.assertCurrent();
39
+ return Object.freeze({ rawTransaction, hash: checked.hash });
40
+ }
41
+ //# sourceMappingURL=ledger-signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-signing.js","sourceRoot":"","sources":["../../../src/transactions/ledger-signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAKxF,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAwD,EACxD,OAIE,EACF,SAAuC;IAEvC,MAAM,KAAK,GAAG,mCAAmC,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5D,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;QACnC,YAAY,GAAG,CAAC;QAChB,YAAY,GAAG,UAAU;QACzB,OAAO,mBAAmB,KAAK,QAAQ;QAEvC,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC1D,IACE,WAAW,CAAC,QAAQ,EAAE;QACtB,WAAW,CAAC,OAAO,IAAI,EAAE;QACzB,WAAW,CAAC,kBAAkB,KAAK,mBAAmB;QAEtD,MAAM,IAAI,SAAS,CACjB,8DAA8D,CAC/D,CAAC;IACJ,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,CACnD;QACE,YAAY;QACZ,eAAe;QACf,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACpC,EACD,KAAK,CACN,CAAC;IACF,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QACrC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE;QACrB,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE;QACrB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC;IAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,wDAAwD,CAAC,EACnE,EAAE,IAAI,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,IAAI,EAAE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,iCAAiC,CAC/C,cAAc,EACd,mBAAmB,EACnB,eAAe,CAChB,CAAC;IACF,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,IAAK,EAAE,CAAC,CAAC;AAChE,CAAC"}
@@ -4,8 +4,29 @@ import { prepareUnsignedEvmEnvelope, readEvmOwnData, snapshotPreparedEvmTransact
4
4
  import { signTransaction } from './evm-local-signer';
5
5
  import { assertSignedEvmTransactionMatches } from './evm-submission';
6
6
  const invalid = () => new TypeError('Invalid prepared EVM signing request');
7
+ export function snapshotEvmSigningIdentity(input) {
8
+ const identity = readEvmOwnData(input, ['id', 'type', 'expectedAddress']);
9
+ if (!Number.isSafeInteger(identity.id) ||
10
+ identity.id < 0 ||
11
+ identity.id > 0x7fffffff ||
12
+ !['HDAccount', 'Imported', 'Ledger', 'Trezor', 'SmartAccount'].includes(identity.type) ||
13
+ typeof identity.expectedAddress !== 'string' ||
14
+ !/^0x[0-9a-fA-F]{40}$/.test(identity.expectedAddress))
15
+ throw invalid();
16
+ return Object.freeze({
17
+ id: identity.id,
18
+ type: identity.type,
19
+ expectedAddress: getAddress(identity.expectedAddress),
20
+ });
21
+ }
7
22
  export function snapshotPreparedEvmRequest(input) {
8
- const root = readEvmOwnData(input, ['account', 'network', 'transaction']);
23
+ const root = readEvmOwnData(input, [
24
+ 'selectedAccount',
25
+ 'account',
26
+ 'network',
27
+ 'transaction',
28
+ ]);
29
+ const selectedAccount = snapshotEvmSigningIdentity(root.selectedAccount);
9
30
  const account = readEvmOwnData(root.account, [
10
31
  'id',
11
32
  'type',
@@ -40,6 +61,7 @@ export function snapshotPreparedEvmRequest(input) {
40
61
  if (transaction.from !== expectedAddress || network.chainId !== chainId)
41
62
  throw invalid();
42
63
  return Object.freeze({
64
+ selectedAccount,
43
65
  account: Object.freeze({
44
66
  id: account.id,
45
67
  type: account.type,
@@ -1 +1 @@
1
- {"version":3,"file":"prepared-evm.js","sourceRoot":"","sources":["../../../src/transactions/prepared-evm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepared-evm.js","sourceRoot":"","sources":["../../../src/transactions/prepared-evm.ts"],"names":[],"mappings":"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"}
@@ -1,223 +1,250 @@
1
1
  import { captureHardwareTransactionAuthority } from '../hardware-transaction-authority';
2
- const methods = [
3
- 'getFeatures',
4
- 'getAccountInfo',
5
- 'ethereumGetAddress',
6
- 'ethereumGetPublicKey',
7
- 'getPublicKey',
8
- 'getAddress',
9
- 'signMessage',
10
- 'ethereumSignMessage',
11
- 'ethereumSignTypedData',
12
- 'verifyMessage',
13
- 'ethereumVerifyMessage',
14
- ];
15
- const listeners = new Set();
16
- let clientPromise;
17
- let generation = 0;
18
- let initialized = false;
19
- let cleanupPromise = Promise.resolve();
20
- let cleanupPending = false;
21
- const inFlight = new Set();
22
- const pending = new Set();
23
- const interrupted = () => Object.assign(new Error('Trezor operation cancelled'), {
24
- code: 'Method_Interrupted',
25
- });
26
- const invalidate = () => {
27
- generation++;
28
- initialized = false;
29
- const error = interrupted();
30
- for (const reject of pending)
31
- reject(error);
32
- pending.clear();
33
- emit({ type: 'disconnected' });
34
- };
35
- export const subscribeTrezorEvents = (listener) => {
36
- listeners.add(listener);
37
- return () => listeners.delete(listener);
38
- };
39
- const emit = (event) => {
40
- for (const listener of listeners) {
41
- try {
42
- listener(event);
43
- }
44
- catch {
45
- // Status observers must not turn a completed device call into a retry.
2
+ import { TREZOR_METHODS } from './host-types';
3
+ const methods = TREZOR_METHODS.filter((method) => method !== 'ethereumSignTransaction' && method !== 'signTransaction');
4
+ const hostOwners = new WeakMap();
5
+ export function createTrezorConnection(host) {
6
+ if (!host ||
7
+ typeof host.init !== 'function' ||
8
+ typeof host.dispose !== 'function' ||
9
+ TREZOR_METHODS.some((method) => typeof host[method] !== 'function'))
10
+ throw new TypeError('Trezor requires explicit host capabilities');
11
+ const owner = {};
12
+ const releaseHost = () => {
13
+ if (hostOwners.get(host) === owner)
14
+ hostOwners.delete(host);
15
+ };
16
+ const listeners = new Set();
17
+ let clientPromise;
18
+ let generation = 0;
19
+ let initialized = false;
20
+ let initializing = false;
21
+ let cleanupPromise = Promise.resolve();
22
+ let cleanupPending = false;
23
+ const inFlight = new Set();
24
+ const pending = new Set();
25
+ const interrupted = () => Object.assign(new Error('Trezor operation cancelled'), {
26
+ code: 'Method_Interrupted',
27
+ });
28
+ const invalidate = () => {
29
+ const invalidated = ++generation;
30
+ initialized = false;
31
+ const error = interrupted();
32
+ for (const reject of pending)
33
+ reject(error);
34
+ pending.clear();
35
+ emit({ type: 'disconnected' });
36
+ return invalidated;
37
+ };
38
+ const subscribeTrezorEvents = (listener) => {
39
+ listeners.add(listener);
40
+ return () => listeners.delete(listener);
41
+ };
42
+ const emit = (event) => {
43
+ for (const listener of listeners) {
44
+ try {
45
+ listener(event);
46
+ }
47
+ catch {
48
+ // Status observers must not turn a completed device call into a retry.
49
+ }
46
50
  }
47
- }
48
- };
49
- /** Connect 10's webextension module registers Chrome listeners on import. */
50
- const requireExtensionHost = () => {
51
- const chrome = globalThis.chrome;
52
- if (!chrome?.runtime?.id ||
53
- chrome.runtime.getManifest?.()?.manifest_version !== 3 ||
54
- typeof chrome.runtime.onConnect?.addListener !== 'function' ||
55
- typeof chrome.runtime.onMessageExternal?.addListener !== 'function' ||
56
- typeof chrome.tabs?.get !== 'function' ||
57
- typeof chrome.tabs?.create !== 'function' ||
58
- typeof chrome.tabs?.update !== 'function' ||
59
- typeof chrome.windows?.getCurrent !== 'function') {
60
- throw Object.assign(new Error('Trezor requires a supported MV3 extension host'), { code: 'HARDWARE_SIGNER_UNAVAILABLE' });
61
- }
62
- };
63
- const getClient = () => {
64
- requireExtensionHost();
65
- if (!clientPromise) {
66
- clientPromise = import('@trezor/connect-webextension')
67
- .then((module) => module.default)
68
- .catch((error) => {
69
- clientPromise = undefined;
70
- throw error;
71
- });
72
- }
73
- return clientPromise;
74
- };
75
- /** Keep the SDK's established failure payload while preserving Connect 10 codes. */
76
- const normalize = (response, method) => {
77
- if (response?.success === false) {
78
- const error = response.error;
79
- const code = typeof error?.code === 'string' ? error.code : undefined;
80
- if (code === 'Device_Disconnected' ||
81
- code === 'Device_NotFound' ||
82
- code === 'Desktop_ConnectionMissing' ||
83
- code === 'Transport_Missing') {
84
- invalidate();
51
+ };
52
+ const getClient = () => {
53
+ clientPromise ?? (clientPromise = Promise.resolve(host));
54
+ return clientPromise;
55
+ };
56
+ /** Keep the SDK's established failure payload while preserving Connect 10 codes. */
57
+ const normalize = (response, method) => {
58
+ if (response?.success === false) {
59
+ const error = response.error;
60
+ const code = typeof error?.code === 'string' ? error.code : undefined;
61
+ if (code === 'Device_Disconnected' ||
62
+ code === 'Device_NotFound' ||
63
+ code === 'Desktop_ConnectionMissing' ||
64
+ code === 'Transport_Missing') {
65
+ invalidate();
66
+ }
67
+ return {
68
+ ...response,
69
+ payload: {
70
+ error: typeof error?.message === 'string'
71
+ ? error.message
72
+ : 'Trezor request failed',
73
+ code,
74
+ },
75
+ };
85
76
  }
86
- return {
87
- ...response,
88
- payload: {
89
- error: typeof error?.message === 'string'
90
- ? error.message
91
- : 'Trezor request failed',
92
- code,
93
- },
94
- };
95
- }
96
- const model = response?.device?.features?.model ??
97
- (method === 'getFeatures' ? response?.payload?.model : undefined);
98
- if (response?.success === true && typeof model === 'string') {
99
- emit({ type: 'model', model });
100
- }
101
- return response;
102
- };
103
- const withClient = async (operation, requireInitialized = true) => {
104
- const captured = generation;
105
- const assertCurrent = () => {
106
- if (captured !== generation)
107
- throw interrupted();
108
- if (requireInitialized && !initialized) {
109
- throw Object.assign(new Error('TrezorConnect not initialized'), {
110
- code: 'Init_NotInitialized',
111
- });
77
+ const model = response?.device?.features?.model ??
78
+ (method === 'getFeatures' ? response?.payload?.model : undefined);
79
+ if (response?.success === true && typeof model === 'string') {
80
+ emit({ type: 'model', model });
112
81
  }
82
+ return response;
113
83
  };
114
- assertCurrent();
115
- let rejectPending;
116
- const cancelled = new Promise((_resolve, reject) => {
117
- rejectPending = reject;
118
- });
119
- pending.add(rejectPending);
120
- try {
121
- const result = await Promise.race([
122
- (async () => {
123
- await cleanupPromise;
124
- assertCurrent();
125
- const client = await getClient();
126
- assertCurrent();
127
- const request = Promise.resolve(operation(client));
128
- inFlight.add(request);
129
- try {
130
- return await request;
131
- }
132
- finally {
133
- inFlight.delete(request);
134
- }
135
- })(),
136
- cancelled,
137
- ]);
138
- // A late response must not restore a model/status or return a signature.
139
- assertCurrent();
140
- return result;
141
- }
142
- finally {
143
- pending.delete(rejectPending);
144
- }
145
- };
146
- const calls = Object.fromEntries(methods.map((method) => [
147
- method,
148
- async (...args) => {
84
+ const withClient = async (operation, requireInitialized = true) => {
149
85
  const captured = generation;
150
- const response = await withClient((client) => client[method](...args));
151
- if (captured !== generation)
152
- throw interrupted();
153
- return normalize(response, method);
154
- },
155
- ]));
156
- async function signOwned(method, authority, call) {
157
- const { assertCurrent } = captureHardwareTransactionAuthority(authority);
158
- const captured = generation;
159
- const response = await withClient((client) => {
86
+ const assertCurrent = () => {
87
+ if (captured !== generation)
88
+ throw interrupted();
89
+ if (requireInitialized && !initialized) {
90
+ throw Object.assign(new Error('TrezorConnect not initialized'), {
91
+ code: 'Init_NotInitialized',
92
+ });
93
+ }
94
+ if (hostOwners.get(host) !== owner)
95
+ throw interrupted();
96
+ };
160
97
  assertCurrent();
161
- return call(client);
162
- });
163
- assertCurrent();
164
- if (captured !== generation)
165
- throw interrupted();
166
- return normalize(response, method);
167
- }
168
- const TrezorConnect = {
169
- ...calls,
170
- ethereumSignTransactionOwned(request, authority) {
171
- return signOwned('ethereumSignTransaction', authority, (client) => client.ethereumSignTransaction(request));
172
- },
173
- signTransactionOwned(request, authority) {
174
- return signOwned('signTransaction', authority, (client) => client.signTransaction(request));
175
- },
176
- async init(settings) {
177
- if (cleanupPending) {
178
- throw Object.assign(new Error('Previous Trezor request is still pending'), {
179
- code: 'HARDWARE_SIGNER_BUSY',
180
- });
98
+ let rejectPending;
99
+ const cancelled = new Promise((_resolve, reject) => {
100
+ rejectPending = reject;
101
+ });
102
+ pending.add(rejectPending);
103
+ try {
104
+ const result = await Promise.race([
105
+ (async () => {
106
+ await cleanupPromise;
107
+ assertCurrent();
108
+ const client = await getClient();
109
+ assertCurrent();
110
+ const request = Promise.resolve(operation(client, assertCurrent));
111
+ inFlight.add(request);
112
+ try {
113
+ return await request;
114
+ }
115
+ finally {
116
+ inFlight.delete(request);
117
+ }
118
+ })(),
119
+ cancelled,
120
+ ]);
121
+ // A late response must not restore a model/status or return a signature.
122
+ assertCurrent();
123
+ return result;
124
+ }
125
+ finally {
126
+ pending.delete(rejectPending);
181
127
  }
182
- invalidate();
128
+ };
129
+ const calls = Object.fromEntries(methods.map((method) => [
130
+ method,
131
+ async (...args) => {
132
+ const captured = generation;
133
+ const response = await withClient((client, assertCurrent) => client[method](assertCurrent, ...args));
134
+ if (captured !== generation)
135
+ throw interrupted();
136
+ const normalized = normalize(response, method);
137
+ if (normalized?.success === true && captured !== generation)
138
+ throw interrupted();
139
+ return normalized;
140
+ },
141
+ ]));
142
+ async function signOwned(method, authority, call) {
143
+ const { assertCurrent } = captureHardwareTransactionAuthority(authority);
183
144
  const captured = generation;
184
- await withClient((client) => client.init({ ...settings, env: 'webextension' }), false);
145
+ const response = await withClient((client, assertConnectionCurrent) => {
146
+ assertCurrent();
147
+ return call(client, () => {
148
+ assertConnectionCurrent();
149
+ assertCurrent();
150
+ assertConnectionCurrent();
151
+ });
152
+ });
153
+ assertCurrent();
185
154
  if (captured !== generation)
186
155
  throw interrupted();
187
- initialized = true;
188
- },
189
- dispose() {
190
- // Invalidate synchronously, before waiting for import or remote cleanup.
191
- // Suite Web's upstream dispose is a no-op; local invalidation is required.
192
- invalidate();
193
- if (cleanupPending) {
194
- return inFlight.size ? Promise.resolve() : cleanupPromise;
156
+ const normalized = normalize(response, method);
157
+ if (normalized?.success === true) {
158
+ assertCurrent();
159
+ if (captured !== generation)
160
+ throw interrupted();
195
161
  }
196
- const loaded = clientPromise;
197
- if (!loaded)
198
- return Promise.resolve();
199
- const outstanding = [...inFlight];
200
- cleanupPending = true;
201
- cleanupPromise = cleanupPromise
202
- .catch(() => undefined)
203
- .then(async () => {
204
- // Closing Desktop's socket during a raw call makes Connect auto-open
205
- // Suite Web. Let that raw call settle while its result stays fenced.
206
- await Promise.allSettled(outstanding);
207
- const client = await loaded;
208
- // Desktop cancel() discards an internal Promise in Connect 10.0.1;
209
- // do not invoke it or claim that Suite Web's no-op dispose closes UI.
210
- await client.dispose();
211
- })
212
- .finally(() => {
213
- cleanupPending = false;
214
- });
215
- // Deferred cleanup may outlive the caller; preserve its failure for future
216
- // init while preventing an unhandled rejection when the host is locking.
217
- void cleanupPromise.catch(() => undefined);
218
- return outstanding.length ? Promise.resolve() : cleanupPromise;
219
- },
220
- };
162
+ return normalized;
163
+ }
164
+ const TrezorConnect = {
165
+ ...calls,
166
+ ethereumSignTransactionOwned(request, authority) {
167
+ return signOwned('ethereumSignTransaction', authority, (client, assertCurrent) => client.ethereumSignTransaction(assertCurrent, request));
168
+ },
169
+ signTransactionOwned(request, authority) {
170
+ return signOwned('signTransaction', authority, (client, assertCurrent) => client.signTransaction(assertCurrent, request));
171
+ },
172
+ async init() {
173
+ if (cleanupPending || initializing) {
174
+ throw Object.assign(new Error('Previous Trezor request is still pending'), {
175
+ code: 'HARDWARE_SIGNER_BUSY',
176
+ });
177
+ }
178
+ const activeOwner = hostOwners.get(host);
179
+ if (activeOwner && activeOwner !== owner)
180
+ throw Object.assign(new Error('Trezor host is owned by another connection'), {
181
+ code: 'HARDWARE_SIGNER_BUSY',
182
+ });
183
+ hostOwners.set(host, owner);
184
+ initializing = true;
185
+ const captured = invalidate();
186
+ try {
187
+ if (captured !== generation)
188
+ throw interrupted();
189
+ await withClient((client, assertCurrent) => client.init(assertCurrent), false);
190
+ if (captured !== generation)
191
+ throw interrupted();
192
+ initialized = true;
193
+ }
194
+ finally {
195
+ initializing = false;
196
+ }
197
+ },
198
+ dispose() {
199
+ if (cleanupPending) {
200
+ return inFlight.size ? Promise.resolve() : cleanupPromise;
201
+ }
202
+ const loaded = clientPromise;
203
+ // Reserve cleanup before notifying observers, which may reenter init.
204
+ cleanupPending = true;
205
+ if (!loaded) {
206
+ releaseHost();
207
+ invalidate();
208
+ cleanupPending = false;
209
+ return Promise.resolve();
210
+ }
211
+ const outstanding = [...inFlight];
212
+ cleanupPromise = cleanupPromise
213
+ .catch(() => undefined)
214
+ .then(async () => {
215
+ const client = await loaded;
216
+ if (hostOwners.get(host) !== owner)
217
+ return;
218
+ await client.dispose(outstanding);
219
+ releaseHost();
220
+ })
221
+ .finally(() => {
222
+ cleanupPending = false;
223
+ });
224
+ // Deferred cleanup may outlive the caller; preserve its failure for future
225
+ // init while preventing an unhandled rejection when the host is locking.
226
+ void cleanupPromise.catch(() => undefined);
227
+ // Suite Web's upstream dispose is a no-op; local invalidation is required.
228
+ invalidate();
229
+ return outstanding.length ? Promise.resolve() : cleanupPromise;
230
+ },
231
+ async retire() {
232
+ const disposal = TrezorConnect.dispose();
233
+ const captured = generation;
234
+ await (cleanupPending ? cleanupPromise : disposal);
235
+ const assertRetired = () => {
236
+ if (captured !== generation ||
237
+ initialized ||
238
+ initializing ||
239
+ cleanupPending ||
240
+ hostOwners.has(host))
241
+ throw interrupted();
242
+ };
243
+ assertRetired();
244
+ return assertRetired;
245
+ },
246
+ };
247
+ return { ...TrezorConnect, subscribe: subscribeTrezorEvents };
248
+ }
221
249
  export const trezorResponseError = (response, prefix = '') => Object.assign(new Error(prefix + (response.payload?.error || 'Trezor request failed')), { code: response.payload?.code });
222
- export default TrezorConnect;
223
250
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/trezor/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AASxF,MAAM,OAAO,GAAG;IACd,aAAa;IACb,gBAAgB;IAChB,oBAAoB;IACpB,sBAAsB;IACtB,cAAc;IACd,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,uBAAuB;IACvB,eAAe;IACf,uBAAuB;CACf,CAAC;AAsBX,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;AAC9D,IAAI,aAA0C,CAAC;AAC/C,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACvC,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;AAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;AAClD,MAAM,WAAW,GAAG,GAAG,EAAE,CACvB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,EAAE;IACrD,IAAI,EAAE,oBAAoB;CAC3B,CAAC,CAAC;AACL,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,UAAU,EAAE,CAAC;IACb,WAAW,GAAG,KAAK,CAAC;IACpB,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAA0C,EAC5B,EAAE;IAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAE,EAAE;IACtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,oBAAoB,GAAG,GAAS,EAAE;IACtC,MAAM,MAAM,GAAI,UAAkB,CAAC,MAAM,CAAC;IAC1C,IACE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QACpB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,gBAAgB,KAAK,CAAC;QACtD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,KAAK,UAAU;QAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,KAAK,UAAU;QACnE,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,UAAU;QACtC,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;QACzC,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU;QACzC,OAAO,MAAM,CAAC,OAAO,EAAE,UAAU,KAAK,UAAU,EAChD,CAAC;QACD,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,gDAAgD,CAAC,EAC3D,EAAE,IAAI,EAAE,6BAA6B,EAAE,CACxC,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AACF,MAAM,SAAS,GAAG,GAAoB,EAAE;IACtC,oBAAoB,EAAE,CAAC;IACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,MAAM,CAAC,8BAA8B,CAAC;aACnD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;aAChC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,aAAa,GAAG,SAAS,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,oFAAoF;AACpF,MAAM,SAAS,GAAG,CAAC,QAAa,EAAE,MAAc,EAAO,EAAE;IACvD,IAAI,QAAQ,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,IACE,IAAI,KAAK,qBAAqB;YAC9B,IAAI,KAAK,iBAAiB;YAC1B,IAAI,KAAK,2BAA2B;YACpC,IAAI,KAAK,mBAAmB,EAC5B,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QACD,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE;gBACP,KAAK,EACH,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ;oBAChC,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,uBAAuB;gBAC7B,IAAI;aACL;SACF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GACT,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QACjC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,QAAQ,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AACF,MAAM,UAAU,GAAG,KAAK,EACtB,SAA8C,EAC9C,kBAAkB,GAAG,IAAI,EACR,EAAE;IACnB,MAAM,QAAQ,GAAG,UAAU,CAAC;IAC5B,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,QAAQ,KAAK,UAAU;YAAE,MAAM,WAAW,EAAE,CAAC;QACjD,IAAI,kBAAkB,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,EAAE;gBAC9D,IAAI,EAAE,qBAAqB;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IACF,aAAa,EAAE,CAAC;IAChB,IAAI,aAAsC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACxD,aAAa,GAAG,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,CAAC,KAAK,IAAI,EAAE;gBACV,MAAM,cAAc,CAAC;gBACrB,aAAa,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,aAAa,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC;gBACvB,CAAC;wBAAS,CAAC;oBACT,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,EAAE;YACJ,SAAS;SACV,CAAC,CAAC;QACH,yEAAyE;QACzE,aAAa,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;AACH,CAAC,CAAC;AACF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACtB,MAAM;IACN,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,MAAM,CAAC,MAAM,CAAS,CAAC,GAAG,IAAI,CAAC,CACjC,CAAC;QACF,IAAI,QAAQ,KAAK,UAAU;YAAE,MAAM,WAAW,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;CACF,CAAC,CACM,CAAC;AAEX,KAAK,UAAU,SAAS,CACtB,MAAyB,EACzB,SAAuC,EACvC,IAAyC;IAEzC,MAAM,EAAE,aAAa,EAAE,GAAG,mCAAmC,CAAC,SAAS,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,UAAU,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,aAAa,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,aAAa,EAAE,CAAC;IAChB,IAAI,QAAQ,KAAK,UAAU;QAAE,MAAM,WAAW,EAAE,CAAC;IACjD,OAAO,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,aAAa,GAWf;IACF,GAAG,KAAK;IACR,4BAA4B,CAAC,OAAO,EAAE,SAAS;QAC7C,OAAO,SAAS,CAAC,yBAAyB,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAChE,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CACxC,CAAC;IACJ,CAAC;IACD,oBAAoB,CAAC,OAAO,EAAE,SAAS;QACrC,OAAO,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CACxD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAChC,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAuC;QAChD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,0CAA0C,CAAC,EACrD;gBACE,IAAI,EAAE,sBAAsB;aAC7B,CACF,CAAC;QACJ,CAAC;QACD,UAAU,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC5B,MAAM,UAAU,CACd,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAC7D,KAAK,CACN,CAAC;QACF,IAAI,QAAQ,KAAK,UAAU;YAAE,MAAM,WAAW,EAAE,CAAC;QACjD,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO;QACL,yEAAyE;QACzE,2EAA2E;QAC3E,UAAU,EAAE,CAAC;QACb,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5D,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC;QAC7B,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAClC,cAAc,GAAG,IAAI,CAAC;QACtB,cAAc,GAAG,cAAc;aAC5B,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACtB,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,qEAAqE;YACrE,qEAAqE;YACrE,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC5B,mEAAmE;YACnE,sEAAsE;YACtE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QACL,2EAA2E;QAC3E,yEAAyE;QACzE,KAAK,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IACjE,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAyD,EACzD,MAAM,GAAG,EAAE,EACJ,EAAE,CACT,MAAM,CAAC,MAAM,CACX,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,uBAAuB,CAAC,CAAC,EACxE,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CACjC,CAAC;AAEJ,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/trezor/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export const TREZOR_METHODS = [
2
+ 'getFeatures',
3
+ 'getAccountInfo',
4
+ 'ethereumGetAddress',
5
+ 'ethereumGetPublicKey',
6
+ 'getPublicKey',
7
+ 'getAddress',
8
+ 'signMessage',
9
+ 'ethereumSignMessage',
10
+ 'ethereumSignTypedData',
11
+ 'verifyMessage',
12
+ 'ethereumVerifyMessage',
13
+ 'ethereumSignTransaction',
14
+ 'signTransaction',
15
+ ];
16
+ //# sourceMappingURL=host-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-types.js","sourceRoot":"","sources":["../../../src/trezor/host-types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,aAAa;IACb,gBAAgB;IAChB,oBAAoB;IACpB,sBAAsB;IACtB,cAAc;IACd,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,uBAAuB;IACvB,eAAe;IACf,uBAAuB;IACvB,yBAAyB;IACzB,iBAAiB;CACT,CAAC"}