@trezor/connect 9.0.11 → 9.1.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 (171) hide show
  1. package/CHANGELOG.md +22 -3
  2. package/README.md +20 -3
  3. package/lib/api/backupDevice.d.ts +1 -1
  4. package/lib/api/binanceGetAddress.d.ts +1 -0
  5. package/lib/api/binanceGetAddress.js +4 -4
  6. package/lib/api/binanceGetPublicKey.d.ts +1 -0
  7. package/lib/api/binanceGetPublicKey.js +3 -1
  8. package/lib/api/binanceSignTransaction.d.ts +2 -1
  9. package/lib/api/binanceSignTransaction.js +3 -1
  10. package/lib/api/bitcoin/Fees.d.ts +2 -2
  11. package/lib/api/bitcoin/Fees.js +32 -90
  12. package/lib/api/bitcoin/TransactionComposer.d.ts +1 -2
  13. package/lib/api/bitcoin/TransactionComposer.js +3 -2
  14. package/lib/api/bitcoin/createPendingTx.d.ts +1 -0
  15. package/lib/api/bitcoin/createPendingTx.js +1 -0
  16. package/lib/api/bitcoin/refTx.d.ts +10 -2
  17. package/lib/api/bitcoin/refTx.js +46 -19
  18. package/lib/api/blockchainDisconnect.d.ts +1 -0
  19. package/lib/api/blockchainDisconnect.js +3 -1
  20. package/lib/api/blockchainEstimateFee.js +1 -1
  21. package/lib/api/blockchainSetCustomBackend.d.ts +1 -0
  22. package/lib/api/blockchainSetCustomBackend.js +3 -1
  23. package/lib/api/cancelCoinjoinAuthorization.d.ts +8 -0
  24. package/lib/api/cancelCoinjoinAuthorization.js +27 -0
  25. package/lib/api/cardanoGetAddress.d.ts +1 -0
  26. package/lib/api/cardanoGetAddress.js +4 -4
  27. package/lib/api/cardanoGetNativeScriptHash.d.ts +1 -0
  28. package/lib/api/cardanoGetNativeScriptHash.js +3 -1
  29. package/lib/api/cardanoGetPublicKey.d.ts +2 -0
  30. package/lib/api/cardanoGetPublicKey.js +12 -1
  31. package/lib/api/cardanoSignTransaction.d.ts +1 -0
  32. package/lib/api/cardanoSignTransaction.js +3 -1
  33. package/lib/api/checkFirmwareAuthenticity.js +2 -1
  34. package/lib/api/cipherKeyValue.d.ts +1 -0
  35. package/lib/api/cipherKeyValue.js +5 -2
  36. package/lib/api/composeTransaction.d.ts +3 -0
  37. package/lib/api/composeTransaction.js +9 -7
  38. package/lib/api/eosGetPublicKey.d.ts +1 -0
  39. package/lib/api/eosGetPublicKey.js +3 -1
  40. package/lib/api/eosSignTransaction.d.ts +1 -0
  41. package/lib/api/eosSignTransaction.js +3 -1
  42. package/lib/api/ethereum/ethereumDefinitions.d.ts +28 -6
  43. package/lib/api/ethereum/ethereumDefinitions.js +60 -1
  44. package/lib/api/ethereum/ethereumSignTx.d.ts +1 -1
  45. package/lib/api/ethereumGetAddress.d.ts +2 -0
  46. package/lib/api/ethereumGetAddress.js +28 -26
  47. package/lib/api/ethereumGetPublicKey.d.ts +1 -0
  48. package/lib/api/ethereumGetPublicKey.js +8 -10
  49. package/lib/api/ethereumSignMessage.d.ts +10 -1
  50. package/lib/api/ethereumSignMessage.js +14 -13
  51. package/lib/api/ethereumSignTransaction.d.ts +6 -0
  52. package/lib/api/ethereumSignTransaction.js +18 -5
  53. package/lib/api/ethereumSignTypedData.d.ts +6 -0
  54. package/lib/api/ethereumSignTypedData.js +15 -13
  55. package/lib/api/ethereumVerifyMessage.d.ts +1 -0
  56. package/lib/api/ethereumVerifyMessage.js +3 -1
  57. package/lib/api/getAccountInfo.d.ts +3 -0
  58. package/lib/api/getAccountInfo.js +3 -1
  59. package/lib/api/getAddress.d.ts +1 -0
  60. package/lib/api/getAddress.js +8 -10
  61. package/lib/api/getFeatures.d.ts +1 -1
  62. package/lib/api/getOwnershipId.d.ts +1 -0
  63. package/lib/api/getOwnershipId.js +3 -1
  64. package/lib/api/getOwnershipProof.d.ts +1 -0
  65. package/lib/api/getOwnershipProof.js +3 -1
  66. package/lib/api/getPublicKey.d.ts +2 -0
  67. package/lib/api/getPublicKey.js +12 -1
  68. package/lib/api/index.d.ts +2 -0
  69. package/lib/api/index.js +6 -2
  70. package/lib/api/nemGetAddress.d.ts +1 -0
  71. package/lib/api/nemGetAddress.js +4 -4
  72. package/lib/api/nemSignTransaction.d.ts +1 -0
  73. package/lib/api/nemSignTransaction.js +3 -1
  74. package/lib/api/rebootToBootloader.d.ts +2 -1
  75. package/lib/api/rebootToBootloader.js +4 -2
  76. package/lib/api/requestLogin.d.ts +1 -0
  77. package/lib/api/requestLogin.js +3 -1
  78. package/lib/api/resetDevice.d.ts +1 -0
  79. package/lib/api/resetDevice.js +3 -1
  80. package/lib/api/rippleGetAddress.d.ts +1 -0
  81. package/lib/api/rippleGetAddress.js +4 -4
  82. package/lib/api/rippleSignTransaction.d.ts +1 -0
  83. package/lib/api/rippleSignTransaction.js +3 -1
  84. package/lib/api/showDeviceTutorial.d.ts +8 -0
  85. package/lib/api/showDeviceTutorial.js +23 -0
  86. package/lib/api/signMessage.d.ts +1 -0
  87. package/lib/api/signMessage.js +5 -1
  88. package/lib/api/signTransaction.d.ts +1 -0
  89. package/lib/api/signTransaction.js +16 -4
  90. package/lib/api/stellarGetAddress.d.ts +1 -0
  91. package/lib/api/stellarGetAddress.js +4 -4
  92. package/lib/api/stellarSignTransaction.d.ts +1 -0
  93. package/lib/api/stellarSignTransaction.js +3 -1
  94. package/lib/api/tezosGetAddress.d.ts +1 -0
  95. package/lib/api/tezosGetAddress.js +4 -4
  96. package/lib/api/tezosGetPublicKey.d.ts +1 -0
  97. package/lib/api/tezosGetPublicKey.js +3 -1
  98. package/lib/api/tezosSignTransaction.d.ts +1 -0
  99. package/lib/api/tezosSignTransaction.js +3 -1
  100. package/lib/api/verifyMessage.d.ts +1 -0
  101. package/lib/api/verifyMessage.js +7 -2
  102. package/lib/api/wipeDevice.d.ts +2 -1
  103. package/lib/api/wipeDevice.js +3 -1
  104. package/lib/backend/Blockchain.d.ts +1 -3
  105. package/lib/backend/Blockchain.js +10 -6
  106. package/lib/constants/errors.d.ts +0 -3
  107. package/lib/constants/errors.js +1 -4
  108. package/lib/constants/index.d.ts +1 -1
  109. package/lib/constants/index.js +1 -1
  110. package/lib/core/AbstractMethod.d.ts +3 -1
  111. package/lib/core/AbstractMethod.js +3 -1
  112. package/lib/core/index.d.ts +5 -6
  113. package/lib/core/index.js +53 -51
  114. package/lib/core/method.d.ts +1 -1
  115. package/lib/data/DataManager.js +4 -1
  116. package/lib/data/analyticsInfo.js +1 -1
  117. package/lib/data/coinInfo.d.ts +9 -1
  118. package/lib/data/coinInfo.js +16 -54
  119. package/lib/data/config.js +12 -2
  120. package/lib/data/defaultFeeLevels.d.ts +17 -0
  121. package/lib/data/defaultFeeLevels.js +84 -0
  122. package/lib/data/version.d.ts +1 -1
  123. package/lib/data/version.js +1 -1
  124. package/lib/device/Device.d.ts +10 -12
  125. package/lib/device/Device.js +69 -102
  126. package/lib/device/DeviceCommands.d.ts +4 -3
  127. package/lib/device/DeviceCommands.js +46 -19
  128. package/lib/device/DeviceList.d.ts +15 -25
  129. package/lib/device/DeviceList.js +224 -258
  130. package/lib/events/popup.d.ts +8 -1
  131. package/lib/events/popup.js +1 -0
  132. package/lib/events/transport.d.ts +2 -9
  133. package/lib/events/transport.js +3 -10
  134. package/lib/events/ui-request.d.ts +2 -2
  135. package/lib/factory.js +2 -0
  136. package/lib/index.js +7 -7
  137. package/lib/types/account.d.ts +1 -20
  138. package/lib/types/api/bitcoin/index.d.ts +2 -0
  139. package/lib/types/api/blockchainEstimateFee.d.ts +2 -5
  140. package/lib/types/api/cancelCoinjoinAuthorization.d.ts +8 -0
  141. package/lib/types/api/cancelCoinjoinAuthorization.js +3 -0
  142. package/lib/types/api/index.d.ts +4 -0
  143. package/lib/types/api/showDeviceTutorial.d.ts +4 -0
  144. package/lib/types/api/showDeviceTutorial.js +3 -0
  145. package/lib/types/coinInfo.d.ts +5 -17
  146. package/lib/types/device.d.ts +5 -2
  147. package/lib/types/device.js +8 -0
  148. package/lib/types/fees.d.ts +26 -0
  149. package/lib/types/fees.js +3 -0
  150. package/lib/types/index.d.ts +2 -1
  151. package/lib/types/index.js +1 -0
  152. package/lib/types/settings.d.ts +1 -1
  153. package/lib/utils/assetUtils.js +3 -1
  154. package/lib/utils/debug.js +2 -1
  155. package/lib/utils/deviceFeaturesUtils.d.ts +2 -1
  156. package/lib/utils/deviceFeaturesUtils.js +12 -1
  157. package/lib/utils/urlUtils.d.ts +10 -3
  158. package/lib/utils/urlUtils.js +5 -9
  159. package/lib/workers/workers-browser.d.ts +1 -3
  160. package/lib/workers/workers-browser.js +1 -7
  161. package/lib/workers/workers-react-native.d.ts +1 -3
  162. package/lib/workers/workers-react-native.js +1 -7
  163. package/lib/workers/workers.d.ts +1 -5
  164. package/lib/workers/workers.js +1 -5
  165. package/package.json +17 -12
  166. package/lib/device/DescriptorStream.d.ts +0 -28
  167. package/lib/device/DescriptorStream.js +0 -139
  168. package/lib/utils/objectUtils.d.ts +0 -10
  169. package/lib/utils/objectUtils.js +0 -37
  170. package/lib/workers/RNUsbPlugin.d.ts +0 -31
  171. package/lib/workers/RNUsbPlugin.js +0 -65
@@ -1,28 +0,0 @@
1
- /// <reference types="node" />
2
- import EventEmitter from 'events';
3
- import type { Transport, TrezorDeviceInfoWithSession as DeviceDescriptor } from '@trezor/transport';
4
- export type DeviceDescriptorDiff = {
5
- didUpdate: boolean;
6
- connected: DeviceDescriptor[];
7
- disconnected: DeviceDescriptor[];
8
- changedSessions: DeviceDescriptor[];
9
- changedDebugSessions: DeviceDescriptor[];
10
- acquired: DeviceDescriptor[];
11
- debugAcquired: DeviceDescriptor[];
12
- released: DeviceDescriptor[];
13
- debugReleased: DeviceDescriptor[];
14
- descriptors: DeviceDescriptor[];
15
- };
16
- export declare class DescriptorStream extends EventEmitter {
17
- transport: Transport;
18
- listening: boolean;
19
- listenTimestamp: number;
20
- current: DeviceDescriptor[] | null;
21
- upcoming: DeviceDescriptor[];
22
- constructor(transport: Transport);
23
- listen(): Promise<void>;
24
- enumerate(): Promise<void>;
25
- stop(): void;
26
- _reportChanges(): void;
27
- }
28
- //# sourceMappingURL=DescriptorStream.d.ts.map
@@ -1,139 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DescriptorStream = void 0;
4
- const tslib_1 = require("tslib");
5
- const events_1 = tslib_1.__importDefault(require("events"));
6
- const transport_1 = require("../events/transport");
7
- const device_1 = require("../events/device");
8
- const debug_1 = require("../utils/debug");
9
- const DataManager_1 = require("../data/DataManager");
10
- const promiseUtils_1 = require("../utils/promiseUtils");
11
- const logger = (0, debug_1.initLog)('DescriptorStream');
12
- const getDiff = (current, descriptors) => {
13
- const connected = descriptors.filter(d => current.find(x => x.path === d.path) === undefined);
14
- const disconnected = current.filter(d => descriptors.find(x => x.path === d.path) === undefined);
15
- const changedSessions = descriptors.filter(d => {
16
- const currentDescriptor = current.find(x => x.path === d.path);
17
- if (currentDescriptor) {
18
- return currentDescriptor.session !== d.session;
19
- }
20
- return false;
21
- });
22
- const acquired = changedSessions.filter(d => typeof d.session === 'string');
23
- const released = changedSessions.filter(d => typeof d.session !== 'string');
24
- const changedDebugSessions = descriptors.filter(d => {
25
- const currentDescriptor = current.find(x => x.path === d.path);
26
- if (currentDescriptor) {
27
- return currentDescriptor.debugSession !== d.debugSession;
28
- }
29
- return false;
30
- });
31
- const debugAcquired = changedSessions.filter(d => typeof d.debugSession === 'string');
32
- const debugReleased = changedSessions.filter(d => typeof d.debugSession !== 'string');
33
- const didUpdate = connected.length +
34
- disconnected.length +
35
- changedSessions.length +
36
- changedDebugSessions.length >
37
- 0;
38
- return {
39
- connected,
40
- disconnected,
41
- changedSessions,
42
- acquired,
43
- released,
44
- changedDebugSessions,
45
- debugAcquired,
46
- debugReleased,
47
- didUpdate,
48
- descriptors,
49
- };
50
- };
51
- class DescriptorStream extends events_1.default {
52
- constructor(transport) {
53
- super();
54
- this.listening = false;
55
- this.listenTimestamp = 0;
56
- this.current = null;
57
- this.upcoming = [];
58
- this.transport = transport;
59
- }
60
- async listen() {
61
- const waitForEvent = this.current !== null;
62
- const current = this.current || [];
63
- this.listening = true;
64
- let descriptors;
65
- try {
66
- logger.debug('Start listening', current);
67
- this.listenTimestamp = new Date().getTime();
68
- descriptors = waitForEvent
69
- ? await this.transport.listen(current)
70
- : await this.transport.enumerate();
71
- if (this.listening && !waitForEvent) {
72
- if (descriptors.length > 0 && DataManager_1.DataManager.getSettings('pendingTransportEvent')) {
73
- this.emit(transport_1.TRANSPORT.START_PENDING, descriptors.length);
74
- }
75
- else {
76
- this.emit(transport_1.TRANSPORT.START);
77
- }
78
- }
79
- if (!this.listening)
80
- return;
81
- this.upcoming = descriptors;
82
- logger.debug('Listen result', descriptors);
83
- this._reportChanges();
84
- if (this.listening)
85
- this.listen();
86
- }
87
- catch (error) {
88
- const time = new Date().getTime() - this.listenTimestamp;
89
- logger.debug('Listen error', 'timestamp', time, typeof error);
90
- if (time > 1100) {
91
- await (0, promiseUtils_1.resolveAfter)(1000, null).promise;
92
- if (this.listening)
93
- this.listen();
94
- }
95
- else {
96
- logger.warn('Transport error');
97
- this.emit(transport_1.TRANSPORT.ERROR, error);
98
- }
99
- }
100
- }
101
- async enumerate() {
102
- if (!this.listening)
103
- return;
104
- try {
105
- this.upcoming = await this.transport.enumerate();
106
- this._reportChanges();
107
- }
108
- catch (error) {
109
- }
110
- }
111
- stop() {
112
- this.listening = false;
113
- this.removeAllListeners();
114
- }
115
- _reportChanges() {
116
- const diff = getDiff(this.current || [], this.upcoming);
117
- this.current = this.upcoming;
118
- if (diff.didUpdate && this.listening) {
119
- diff.connected.forEach(d => {
120
- this.emit(device_1.DEVICE.CONNECT, d);
121
- });
122
- diff.disconnected.forEach(d => {
123
- this.emit(device_1.DEVICE.DISCONNECT, d);
124
- });
125
- diff.acquired.forEach(d => {
126
- this.emit(device_1.DEVICE.ACQUIRED, d);
127
- });
128
- diff.released.forEach(d => {
129
- this.emit(device_1.DEVICE.RELEASED, d);
130
- });
131
- diff.changedSessions.forEach(d => {
132
- this.emit(device_1.DEVICE.CHANGED, d);
133
- });
134
- this.emit(transport_1.TRANSPORT.UPDATE, diff);
135
- }
136
- }
137
- }
138
- exports.DescriptorStream = DescriptorStream;
139
- //# sourceMappingURL=DescriptorStream.js.map
@@ -1,10 +0,0 @@
1
- export declare function clone<T>(obj: T): T;
2
- export declare function entries<T>(obj: {
3
- [key: string]: T;
4
- }): Array<[string, T]>;
5
- export declare function deepClone(_obj: any, _hash?: any): void;
6
- export declare function snapshot(obj: any): any;
7
- export declare function objectValues<X>(object: {
8
- [key: string]: X;
9
- }): X[];
10
- //# sourceMappingURL=objectUtils.d.ts.map
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.objectValues = exports.snapshot = exports.deepClone = exports.entries = exports.clone = void 0;
4
- function clone(obj) {
5
- const jsonString = JSON.stringify(obj);
6
- if (jsonString === undefined) {
7
- return obj;
8
- }
9
- return JSON.parse(jsonString);
10
- }
11
- exports.clone = clone;
12
- function entries(obj) {
13
- const keys = Object.keys(obj);
14
- return keys.map(key => [key, obj[key]]);
15
- }
16
- exports.entries = entries;
17
- function deepClone(_obj, _hash = new WeakMap()) {
18
- }
19
- exports.deepClone = deepClone;
20
- function snapshot(obj) {
21
- if (obj == null || typeof obj !== 'object') {
22
- return obj;
23
- }
24
- const temp = new obj.constructor();
25
- Object.keys(temp).forEach(key => {
26
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
27
- temp[key] = snapshot(obj[key]);
28
- }
29
- });
30
- return temp;
31
- }
32
- exports.snapshot = snapshot;
33
- function objectValues(object) {
34
- return Object.keys(object).map(key => object[key]);
35
- }
36
- exports.objectValues = objectValues;
37
- //# sourceMappingURL=objectUtils.js.map
@@ -1,31 +0,0 @@
1
- type TrezorDeviceInfoDebug = {
2
- path: string;
3
- debug: boolean;
4
- };
5
- interface TrezorTransport {
6
- enumerate(): Promise<TrezorDeviceInfoDebug[]>;
7
- acquire(path: string, debugLink: boolean): Promise<void>;
8
- release(path: string, debugLink: boolean, closePort: boolean): Promise<void>;
9
- write(path: string, debugLink: boolean, data: string): Promise<void>;
10
- read(path: string, debugLink: boolean): Promise<{
11
- data: string;
12
- }>;
13
- }
14
- export declare class ReactNativePlugin {
15
- name: string;
16
- version: string;
17
- debug: boolean;
18
- allowsWriteAndEnumerate: boolean;
19
- requestNeeded: boolean;
20
- usb: TrezorTransport;
21
- constructor();
22
- init(debug?: boolean): Promise<void>;
23
- enumerate(): Promise<TrezorDeviceInfoDebug[]>;
24
- send(path: string, data: ArrayBuffer, debugLink: boolean): Promise<void>;
25
- receive(path: string, debugLink: boolean): Promise<ArrayBuffer>;
26
- connect(path: string, debugLink: boolean): Promise<void>;
27
- disconnect(path: string, debugLink: boolean, last: boolean): Promise<void>;
28
- requestDevice(): any;
29
- }
30
- export {};
31
- //# sourceMappingURL=RNUsbPlugin.d.ts.map
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReactNativePlugin = void 0;
4
- const react_native_1 = require("react-native");
5
- const bufferToHex = (buffer) => Array.prototype.map.call(new Uint8Array(buffer), x => `00${x.toString(16)}`.slice(-2)).join('');
6
- const toArrayBuffer = (buffer) => {
7
- const ab = new ArrayBuffer(buffer.length);
8
- const view = new Uint8Array(ab);
9
- const len = buffer.length;
10
- for (let i = 0; i < len; ++i) {
11
- view[i] = buffer[i];
12
- }
13
- return ab;
14
- };
15
- class ReactNativePlugin {
16
- constructor() {
17
- this.name = 'ReactNativePlugin';
18
- this.version = '1.0.0';
19
- this.debug = false;
20
- this.allowsWriteAndEnumerate = true;
21
- this.requestNeeded = false;
22
- this.usb = react_native_1.NativeModules.TrezorTransport;
23
- }
24
- init(debug) {
25
- this.debug = !!debug;
26
- if (!this.usb) {
27
- throw new Error('ReactNative plugin is not available');
28
- }
29
- return Promise.resolve();
30
- }
31
- enumerate() {
32
- return this.usb.enumerate();
33
- }
34
- send(path, data, debugLink) {
35
- const dataHex = bufferToHex(data);
36
- return this.usb.write(path, debugLink, dataHex);
37
- }
38
- async receive(path, debugLink) {
39
- const { data } = await this.usb.read(path, debugLink);
40
- return toArrayBuffer(Buffer.from(data, 'hex'));
41
- }
42
- async connect(path, debugLink) {
43
- for (let i = 0; i < 5; i++) {
44
- if (i > 0) {
45
- await new Promise(resolve => setTimeout(resolve, i * 200));
46
- }
47
- try {
48
- await this.usb.acquire(path, debugLink);
49
- return;
50
- }
51
- catch (e) {
52
- if (i === 4) {
53
- throw e;
54
- }
55
- }
56
- }
57
- }
58
- disconnect(path, debugLink, last) {
59
- return this.usb.release(path, debugLink, last);
60
- }
61
- requestDevice() {
62
- }
63
- }
64
- exports.ReactNativePlugin = ReactNativePlugin;
65
- //# sourceMappingURL=RNUsbPlugin.js.map