@shapeshiftoss/hdwallet-trezor-connect 1.55.2 → 1.55.3
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.
- package/dist/adapter.js +118 -163
- package/dist/adapter.js.map +1 -1
- package/dist/index.js +2 -18
- package/dist/index.js.map +1 -1
- package/dist/transport.js +114 -161
- package/dist/transport.js.map +1 -1
- package/package.json +4 -4
package/dist/adapter.js
CHANGED
|
@@ -1,101 +1,67 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.TrezorAdapter = void 0;
|
|
36
|
-
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
37
|
-
const trezor = __importStar(require("@shapeshiftoss/hdwallet-trezor"));
|
|
38
|
-
const trezor_connect_1 = __importStar(require("trezor-connect"));
|
|
39
|
-
const transport_1 = require("./transport");
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import * as trezor from "@shapeshiftoss/hdwallet-trezor";
|
|
3
|
+
import TrezorConnect, { DEVICE, DEVICE_EVENT, TRANSPORT_EVENT, UI } from "trezor-connect";
|
|
4
|
+
import { POPUP, TrezorConnectTransport } from "./transport";
|
|
40
5
|
let _initialization = undefined;
|
|
41
|
-
class TrezorAdapter {
|
|
6
|
+
export class TrezorAdapter {
|
|
7
|
+
keyring;
|
|
8
|
+
_deviceIDToPath = new Map();
|
|
42
9
|
constructor(keyring, args) {
|
|
43
|
-
this._deviceIDToPath = new Map();
|
|
44
10
|
this.keyring = keyring;
|
|
45
11
|
if (!_initialization)
|
|
46
12
|
_initialization = this.connectInit(args);
|
|
47
13
|
}
|
|
48
|
-
connectInit(args) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.handleConnectTrezor(connectEvent);
|
|
67
|
-
trezor_connect_1.default.on(trezor_connect_1.DEVICE_EVENT, (event) => {
|
|
68
|
-
if (event.type === trezor_connect_1.DEVICE.CONNECT) {
|
|
69
|
-
this.handleConnectTrezor(event);
|
|
70
|
-
}
|
|
71
|
-
else if (event.type === trezor_connect_1.DEVICE.CHANGED) {
|
|
72
|
-
this.handleChangeTrezor(event);
|
|
73
|
-
}
|
|
74
|
-
else if (event.type === trezor_connect_1.DEVICE.DISCONNECT) {
|
|
75
|
-
this.handleDisconnectTrezor(event);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
trezor_connect_1.default.on(trezor_connect_1.TRANSPORT_EVENT, (event) => {
|
|
79
|
-
// Log TrezorConnect's event raw:
|
|
80
|
-
try {
|
|
81
|
-
const device_id = event.payload && event.payload.features ? event.payload.features.device_id : "";
|
|
82
|
-
this.keyring.emit(["Trezor", device_id, event.type], event);
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
console.error("Could not emit Trezor transport event", event, e);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
trezor_connect_1.default.on(trezor_connect_1.UI.ADDRESS_VALIDATION, (event) => {
|
|
89
|
-
console.info("Confirm on Trezor", event);
|
|
90
|
-
});
|
|
91
|
-
return true;
|
|
14
|
+
async connectInit(args) {
|
|
15
|
+
// Collect connect events that happen during init, but don't handle them
|
|
16
|
+
// until after init has resolved. This awkward sequence is needed because we
|
|
17
|
+
// need TrezorConnect to be fully operational before we're able to process
|
|
18
|
+
// the events.
|
|
19
|
+
const connectEvents = [];
|
|
20
|
+
const connectHandler = (event) => {
|
|
21
|
+
if (event.type === DEVICE.CONNECT) {
|
|
22
|
+
connectEvents.push(event);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
TrezorConnect.on(DEVICE_EVENT, connectHandler);
|
|
26
|
+
// TODO: using this in electron will needs some more scaffolding:
|
|
27
|
+
// https://github.com/szymonlesisz/trezor-connect-electron-boilerplate/blob/master/src/electron.js
|
|
28
|
+
await TrezorConnect.init({
|
|
29
|
+
...args,
|
|
30
|
+
popup: POPUP,
|
|
31
|
+
lazyLoad: false,
|
|
92
32
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
33
|
+
TrezorConnect.off(DEVICE_EVENT, connectHandler);
|
|
34
|
+
for (const connectEvent of connectEvents)
|
|
35
|
+
this.handleConnectTrezor(connectEvent);
|
|
36
|
+
TrezorConnect.on(DEVICE_EVENT, (event) => {
|
|
37
|
+
if (event.type === DEVICE.CONNECT) {
|
|
38
|
+
this.handleConnectTrezor(event);
|
|
39
|
+
}
|
|
40
|
+
else if (event.type === DEVICE.CHANGED) {
|
|
41
|
+
this.handleChangeTrezor(event);
|
|
42
|
+
}
|
|
43
|
+
else if (event.type === DEVICE.DISCONNECT) {
|
|
44
|
+
this.handleDisconnectTrezor(event);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
TrezorConnect.on(TRANSPORT_EVENT, (event) => {
|
|
48
|
+
// Log TrezorConnect's event raw:
|
|
49
|
+
try {
|
|
50
|
+
const device_id = event.payload && event.payload.features ? event.payload.features.device_id : "";
|
|
51
|
+
this.keyring.emit(["Trezor", device_id, event.type], event);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
console.error("Could not emit Trezor transport event", event, e);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
TrezorConnect.on(UI.ADDRESS_VALIDATION, (event) => {
|
|
58
|
+
console.info("Confirm on Trezor", event);
|
|
98
59
|
});
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
async addDevice(deviceID, path) {
|
|
63
|
+
this._deviceIDToPath.set(deviceID, path);
|
|
64
|
+
await this.initialize([{ path: path, deviceID: deviceID }]);
|
|
99
65
|
}
|
|
100
66
|
static useKeyring(keyring, args) {
|
|
101
67
|
return new TrezorAdapter(keyring, args);
|
|
@@ -103,32 +69,28 @@ class TrezorAdapter {
|
|
|
103
69
|
get(device) {
|
|
104
70
|
return this.keyring.get(device.deviceID);
|
|
105
71
|
}
|
|
106
|
-
handleConnectTrezor(event) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
});
|
|
72
|
+
async handleConnectTrezor(event) {
|
|
73
|
+
const { payload: { path, features: { device_id }, }, } = event;
|
|
74
|
+
try {
|
|
75
|
+
await this.addDevice(device_id, path);
|
|
76
|
+
this.connectCacheFeatures(event);
|
|
77
|
+
this.keyring.emit(["Trezor", device_id, core.Events.CONNECT], device_id);
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
console.error(e);
|
|
81
|
+
}
|
|
118
82
|
}
|
|
119
|
-
handleDisconnectTrezor(event) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
});
|
|
83
|
+
async handleDisconnectTrezor(event) {
|
|
84
|
+
const { payload: { features: { device_id }, }, } = event;
|
|
85
|
+
try {
|
|
86
|
+
await this.keyring.remove(device_id);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
console.error(e);
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
this.keyring.emit(["Trezor", device_id, core.Events.DISCONNECT], device_id);
|
|
93
|
+
}
|
|
132
94
|
}
|
|
133
95
|
/**
|
|
134
96
|
* Help the wallet by cacheing the Features object whenever TrezorConnect
|
|
@@ -144,57 +106,50 @@ class TrezorAdapter {
|
|
|
144
106
|
return;
|
|
145
107
|
wallet.cacheFeatures(features);
|
|
146
108
|
}
|
|
147
|
-
handleChangeTrezor(event) {
|
|
148
|
-
|
|
149
|
-
this.connectCacheFeatures(event);
|
|
150
|
-
});
|
|
109
|
+
async handleChangeTrezor(event) {
|
|
110
|
+
this.connectCacheFeatures(event);
|
|
151
111
|
}
|
|
152
|
-
initialize(devices) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
if (wallet)
|
|
162
|
-
|
|
163
|
-
wallet.transport.device.path = device.path;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
wallet = trezor.create(new transport_1.TrezorConnectTransport(device, this.keyring));
|
|
167
|
-
}
|
|
168
|
-
yield wallet.initialize();
|
|
169
|
-
this.keyring.add(wallet, device.deviceID);
|
|
112
|
+
async initialize(devices) {
|
|
113
|
+
const init = await _initialization;
|
|
114
|
+
if (!init)
|
|
115
|
+
throw new Error("Could not initialize TrezorAdapter: TrezorConnect not initialized");
|
|
116
|
+
const devicesToInitialize = devices || [];
|
|
117
|
+
for (let i = 0; i < devicesToInitialize.length; i++) {
|
|
118
|
+
const device = devicesToInitialize[i];
|
|
119
|
+
let wallet = this.keyring.get(device.deviceID);
|
|
120
|
+
if (wallet) {
|
|
121
|
+
if (device.path && !wallet.transport.device.path)
|
|
122
|
+
wallet.transport.device.path = device.path;
|
|
170
123
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
pairDevice() {
|
|
175
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
176
|
-
const init = yield _initialization;
|
|
177
|
-
if (!init)
|
|
178
|
-
throw new Error("Could not pair Trezor: TrezorConnect not initialized");
|
|
179
|
-
const { success, payload } = yield transport_1.TrezorConnectTransport.callQuiet(undefined, "getFeatures", {});
|
|
180
|
-
if (!success) {
|
|
181
|
-
if (payload.error === "Popup closed")
|
|
182
|
-
throw new core.PopupClosedError();
|
|
183
|
-
throw new Error(`Could not pair Trezor: '${payload.error}'`);
|
|
124
|
+
else {
|
|
125
|
+
wallet = trezor.create(new TrezorConnectTransport(device, this.keyring));
|
|
184
126
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
127
|
+
await wallet.initialize();
|
|
128
|
+
this.keyring.add(wallet, device.deviceID);
|
|
129
|
+
}
|
|
130
|
+
return Object.keys(this.keyring.wallets).length;
|
|
131
|
+
}
|
|
132
|
+
async pairDevice() {
|
|
133
|
+
const init = await _initialization;
|
|
134
|
+
if (!init)
|
|
135
|
+
throw new Error("Could not pair Trezor: TrezorConnect not initialized");
|
|
136
|
+
const { success, payload } = await TrezorConnectTransport.callQuiet(undefined, "getFeatures", {});
|
|
137
|
+
if (!success) {
|
|
138
|
+
if (payload.error === "Popup closed")
|
|
139
|
+
throw new core.PopupClosedError();
|
|
140
|
+
throw new Error(`Could not pair Trezor: '${payload.error}'`);
|
|
141
|
+
}
|
|
142
|
+
const deviceID = payload.device_id;
|
|
143
|
+
await this.initialize([
|
|
144
|
+
{
|
|
145
|
+
path: this._deviceIDToPath.get(deviceID),
|
|
146
|
+
deviceID: deviceID,
|
|
147
|
+
},
|
|
148
|
+
]);
|
|
149
|
+
const wallet = this.keyring.get(deviceID);
|
|
150
|
+
if (wallet)
|
|
151
|
+
wallet.cacheFeatures(payload);
|
|
152
|
+
return wallet;
|
|
197
153
|
}
|
|
198
154
|
}
|
|
199
|
-
exports.TrezorAdapter = TrezorAdapter;
|
|
200
155
|
//# sourceMappingURL=adapter.js.map
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./adapter"), exports);
|
|
18
|
-
__exportStar(require("./transport"), exports);
|
|
1
|
+
export * from "./adapter";
|
|
2
|
+
export * from "./transport";
|
|
19
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
package/dist/transport.js
CHANGED
|
@@ -1,175 +1,132 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.TrezorConnectTransport = exports.POPUP = void 0;
|
|
36
|
-
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
37
|
-
const trezor = __importStar(require("@shapeshiftoss/hdwallet-trezor"));
|
|
38
|
-
const trezor_connect_1 = __importStar(require("trezor-connect"));
|
|
39
|
-
exports.POPUP = true;
|
|
40
|
-
class TrezorConnectTransport extends trezor.TrezorTransport {
|
|
41
|
-
static cancellable(inProgress) {
|
|
42
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
try {
|
|
44
|
-
// We throw away the result, since it's either undefined, or meant for the
|
|
45
|
-
// other concurrent thread, possibly involving a different TrezorConnectTransport.
|
|
46
|
-
yield inProgress;
|
|
47
|
-
}
|
|
48
|
-
catch (e) {
|
|
49
|
-
// Unless it's a cancel, throw away the error, as the other context will handle it.
|
|
50
|
-
if (core.isIndexable(e) && e.type === core.HDWalletErrorType.ActionCancelled) {
|
|
51
|
-
TrezorConnectTransport.callInProgress = Promise.resolve();
|
|
52
|
-
throw e;
|
|
53
|
-
}
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import * as trezor from "@shapeshiftoss/hdwallet-trezor";
|
|
3
|
+
import TrezorConnect, { DEVICE, DEVICE_EVENT, UI_EVENT } from "trezor-connect";
|
|
4
|
+
export const POPUP = true;
|
|
5
|
+
export class TrezorConnectTransport extends trezor.TrezorTransport {
|
|
6
|
+
hasPopup = POPUP;
|
|
7
|
+
device;
|
|
8
|
+
/// Gobal, shared between all instances of this class, since TrezorConnect only
|
|
9
|
+
/// allows us to make one device call at a time.
|
|
10
|
+
static callInProgress = Promise.resolve();
|
|
11
|
+
static async cancellable(inProgress) {
|
|
12
|
+
try {
|
|
13
|
+
// We throw away the result, since it's either undefined, or meant for the
|
|
14
|
+
// other concurrent thread, possibly involving a different TrezorConnectTransport.
|
|
15
|
+
await inProgress;
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
// Unless it's a cancel, throw away the error, as the other context will handle it.
|
|
19
|
+
if (core.isIndexable(e) && e.type === core.HDWalletErrorType.ActionCancelled) {
|
|
20
|
+
TrezorConnectTransport.callInProgress = Promise.resolve();
|
|
21
|
+
throw e;
|
|
54
22
|
}
|
|
55
|
-
}
|
|
23
|
+
}
|
|
56
24
|
}
|
|
57
25
|
constructor(device, keyring) {
|
|
58
26
|
super(keyring);
|
|
59
|
-
this.hasPopup = exports.POPUP;
|
|
60
27
|
this.device = device;
|
|
61
28
|
}
|
|
62
|
-
getDeviceID() {
|
|
63
|
-
return
|
|
64
|
-
return this.device.deviceID;
|
|
65
|
-
});
|
|
29
|
+
async getDeviceID() {
|
|
30
|
+
return this.device.deviceID;
|
|
66
31
|
}
|
|
67
|
-
connect() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
32
|
+
async connect() {
|
|
33
|
+
TrezorConnect.on(DEVICE_EVENT, (event) => {
|
|
34
|
+
if (!this.device.path && event.features && event.path && event.features.device_id === this.device.deviceID) {
|
|
35
|
+
this.device.path = event.path;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
TrezorConnect.on(UI_EVENT, (event) => {
|
|
39
|
+
if (!event.payload)
|
|
40
|
+
return;
|
|
41
|
+
if (!event.payload.device)
|
|
42
|
+
return;
|
|
43
|
+
if (!event.payload.device.features)
|
|
44
|
+
return;
|
|
45
|
+
if (this.device.deviceID !== event.payload.device.features.device_id)
|
|
46
|
+
return;
|
|
47
|
+
// Log TrezorConnect's event raw:
|
|
48
|
+
this.emit(event.type, core.makeEvent({
|
|
49
|
+
message_type: event.type,
|
|
50
|
+
message: event,
|
|
51
|
+
from_wallet: true,
|
|
52
|
+
}));
|
|
53
|
+
// Then log it the 'unified' way:
|
|
54
|
+
if (event.type === DEVICE.PIN) {
|
|
55
|
+
this.emit(core.Events.PIN_REQUEST, core.makeEvent({
|
|
56
|
+
message_type: core.Events.PIN_REQUEST,
|
|
87
57
|
from_wallet: true,
|
|
88
58
|
}));
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
from_wallet: true,
|
|
100
|
-
}));
|
|
101
|
-
}
|
|
102
|
-
else if (event.type === "ui-request_confirmation") {
|
|
103
|
-
if (event.payload.view == "no-backup") {
|
|
104
|
-
this.emit("NEEDS_BACKUP");
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
else if (event.type === "ui-button") {
|
|
108
|
-
const kind = event.payload.code;
|
|
109
|
-
this.emit(core.Events.BUTTON_REQUEST, core.makeEvent({
|
|
110
|
-
message_type: core.Events.BUTTON_REQUEST,
|
|
111
|
-
from_wallet: true,
|
|
112
|
-
message: kind,
|
|
113
|
-
}));
|
|
59
|
+
}
|
|
60
|
+
else if (event.type === "ui-request_passphrase") {
|
|
61
|
+
this.emit(core.Events.PASSPHRASE_REQUEST, core.makeEvent({
|
|
62
|
+
message_type: core.Events.PASSPHRASE_REQUEST,
|
|
63
|
+
from_wallet: true,
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
else if (event.type === "ui-request_confirmation") {
|
|
67
|
+
if (event.payload.view == "no-backup") {
|
|
68
|
+
this.emit("NEEDS_BACKUP");
|
|
114
69
|
}
|
|
115
|
-
}
|
|
70
|
+
}
|
|
71
|
+
else if (event.type === "ui-button") {
|
|
72
|
+
const kind = event.payload.code;
|
|
73
|
+
this.emit(core.Events.BUTTON_REQUEST, core.makeEvent({
|
|
74
|
+
message_type: core.Events.BUTTON_REQUEST,
|
|
75
|
+
from_wallet: true,
|
|
76
|
+
message: kind,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
116
79
|
});
|
|
117
80
|
}
|
|
118
|
-
cancel() {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
yield trezor_connect_1.default.cancel();
|
|
122
|
-
});
|
|
81
|
+
async cancel() {
|
|
82
|
+
TrezorConnectTransport.callInProgress = Promise.resolve();
|
|
83
|
+
await TrezorConnect.cancel();
|
|
123
84
|
}
|
|
124
|
-
static callQuiet(device, method, msg) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
TrezorConnectTransport.callInProgress
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
throw error;
|
|
146
|
-
}
|
|
147
|
-
console.error("TrezorConnect isn't supposed to throw?", error);
|
|
148
|
-
}
|
|
149
|
-
finally {
|
|
150
|
-
// Avoid a TrezorConnect bug: https://github.com/trezor/connect/issues/403
|
|
151
|
-
yield new Promise((resolve) => setTimeout(resolve, 1000));
|
|
85
|
+
static async callQuiet(device, method, msg) {
|
|
86
|
+
// TrezorConnect only lets us make one call at a time. If this library is
|
|
87
|
+
// used in a concurrent environment like say, React, then we need to guard
|
|
88
|
+
// against promises resolving in strange orders. To force an ordering here,
|
|
89
|
+
// and keep wires from getting crossed, we wait for the other call to finish
|
|
90
|
+
// first, if there is one.
|
|
91
|
+
// Notify any other concurrent threads that they need to wait, making sure
|
|
92
|
+
// to clean up after we're done talking to TrezorConnect.
|
|
93
|
+
TrezorConnectTransport.callInProgress = (async () => {
|
|
94
|
+
await TrezorConnectTransport.cancellable(TrezorConnectTransport.callInProgress);
|
|
95
|
+
try {
|
|
96
|
+
const result = await TrezorConnect[method]({ device, ...msg });
|
|
97
|
+
if (result.payload.error === "Popup closed" ||
|
|
98
|
+
result.payload.error === "Cancelled" ||
|
|
99
|
+
result.payload.code === "Failure_ActionCancelled")
|
|
100
|
+
throw new core.ActionCancelled();
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (core.isIndexable(error) && error.type === core.HDWalletErrorType.ActionCancelled) {
|
|
105
|
+
throw error;
|
|
152
106
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
107
|
+
console.error("TrezorConnect isn't supposed to throw?", error);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
// Avoid a TrezorConnect bug: https://github.com/trezor/connect/issues/403
|
|
111
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
112
|
+
}
|
|
113
|
+
})();
|
|
114
|
+
// And now we wait on our own results:
|
|
115
|
+
return TrezorConnectTransport.callInProgress;
|
|
157
116
|
}
|
|
158
|
-
call(method, msg) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
return response;
|
|
172
|
-
});
|
|
117
|
+
async call(method, msg) {
|
|
118
|
+
this.emit(method, core.makeEvent({
|
|
119
|
+
message_type: method,
|
|
120
|
+
message: this.censor(method, msg),
|
|
121
|
+
from_wallet: false,
|
|
122
|
+
}));
|
|
123
|
+
const response = await TrezorConnectTransport.callQuiet(this.device, method, msg);
|
|
124
|
+
this.emit(method, core.makeEvent({
|
|
125
|
+
message_type: method,
|
|
126
|
+
message: response,
|
|
127
|
+
from_wallet: true,
|
|
128
|
+
}));
|
|
129
|
+
return response;
|
|
173
130
|
}
|
|
174
131
|
/**
|
|
175
132
|
* Keep sensitive data out of logs.
|
|
@@ -198,8 +155,4 @@ class TrezorConnectTransport extends trezor.TrezorTransport {
|
|
|
198
155
|
return msg;
|
|
199
156
|
}
|
|
200
157
|
}
|
|
201
|
-
exports.TrezorConnectTransport = TrezorConnectTransport;
|
|
202
|
-
/// Gobal, shared between all instances of this class, since TrezorConnect only
|
|
203
|
-
/// allows us to make one device call at a time.
|
|
204
|
-
TrezorConnectTransport.callInProgress = Promise.resolve();
|
|
205
158
|
//# sourceMappingURL=transport.js.map
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/hdwallet-trezor-connect",
|
|
3
|
-
"version": "1.55.
|
|
3
|
+
"version": "1.55.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"prepublishOnly": "yarn clean && yarn build"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@shapeshiftoss/hdwallet-core": "1.55.
|
|
18
|
-
"@shapeshiftoss/hdwallet-trezor": "1.55.
|
|
17
|
+
"@shapeshiftoss/hdwallet-core": "1.55.3",
|
|
18
|
+
"@shapeshiftoss/hdwallet-trezor": "1.55.3",
|
|
19
19
|
"@trezor/rollout": "^1.2.0",
|
|
20
20
|
"trezor-connect": "^8.2.1"
|
|
21
21
|
},
|
|
22
|
-
"gitHead": "
|
|
22
|
+
"gitHead": "139e31e9d61b2d8d63488101c6227a50f4fad061"
|
|
23
23
|
}
|