@cardano-sdk/hardware-ledger 0.8.19 → 0.9.0
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/cjs/LedgerKeyAgent.d.ts +25 -11
- package/dist/cjs/LedgerKeyAgent.d.ts.map +1 -1
- package/dist/cjs/LedgerKeyAgent.js +123 -31
- package/dist/cjs/LedgerKeyAgent.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/types.d.ts +5 -2
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/LedgerKeyAgent.d.ts +25 -11
- package/dist/esm/LedgerKeyAgent.d.ts.map +1 -1
- package/dist/esm/LedgerKeyAgent.js +123 -31
- package/dist/esm/LedgerKeyAgent.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/types.d.ts +5 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +4 -3
package/dist/cjs/types.d.ts
CHANGED
@@ -1,11 +1,14 @@
|
|
1
|
+
/// <reference types="w3c-web-usb" />
|
1
2
|
import { Cardano } from '@cardano-sdk/core';
|
3
|
+
import { HID } from 'node-hid';
|
2
4
|
import { SignTransactionContext } from '@cardano-sdk/key-management';
|
3
5
|
import TransportNodeHid from '@ledgerhq/hw-transport-node-hid-noevents';
|
4
|
-
import
|
6
|
+
import TransportWebUSB from '@ledgerhq/hw-transport-webusb';
|
5
7
|
export declare enum DeviceType {
|
6
8
|
Ledger = "Ledger"
|
7
9
|
}
|
8
|
-
export declare type LedgerTransportType =
|
10
|
+
export declare type LedgerTransportType = TransportWebUSB | TransportNodeHid;
|
11
|
+
export declare type LedgerDevice = USBDevice | HID;
|
9
12
|
export declare type LedgerTxTransformerContext = {
|
10
13
|
chainId: Cardano.ChainId;
|
11
14
|
accountIndex: number;
|
package/dist/cjs/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AACxE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,oBAAY,UAAU;IACpB,MAAM,WAAW;CAClB;AAED,oBAAY,mBAAmB,GAAG,eAAe,GAAG,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AACxE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,oBAAY,UAAU;IACpB,MAAM,WAAW;CAClB;AAED,oBAAY,mBAAmB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAErE,oBAAY,YAAY,GAAG,SAAS,GAAG,GAAG,CAAC;AAM3C,oBAAY,0BAA0B,GAAG;IAEvC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IAEzB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,sBAAsB,CAAC"}
|
package/dist/cjs/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAMA,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,+BAAiB,CAAA;AACnB,CAAC,EAFW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAErB"}
|
@@ -1,6 +1,8 @@
|
|
1
|
+
/// <reference types="w3c-web-usb" />
|
1
2
|
import * as Crypto from '@cardano-sdk/crypto';
|
2
3
|
import { Cardano } from '@cardano-sdk/core';
|
3
4
|
import { CommunicationType, KeyAgentBase, KeyAgentDependencies, SerializableLedgerKeyAgentData, SignBlobResult, SignTransactionContext } from '@cardano-sdk/key-management';
|
5
|
+
import { HID } from 'node-hid';
|
4
6
|
import { LedgerTransportType } from './types';
|
5
7
|
import _LedgerConnection, { GetVersionResponse, Transaction, TransactionSigningMode } from '@cardano-foundation/ledgerjs-hw-app-cardano';
|
6
8
|
import type LedgerTransport from '@ledgerhq/hw-transport';
|
@@ -22,24 +24,36 @@ export interface GetLedgerXpubProps {
|
|
22
24
|
}
|
23
25
|
export interface CreateLedgerTransportProps {
|
24
26
|
communicationType: CommunicationType;
|
25
|
-
|
26
|
-
devicePath?: string;
|
27
|
+
nodeHidDevicePath?: string;
|
27
28
|
}
|
28
|
-
declare
|
29
|
+
declare const establishDeviceConnectionMethodName = "establishDeviceConnection";
|
30
|
+
declare type DeviceConnectionsWithTheirInitialParams = {
|
29
31
|
deviceConnection: LedgerConnection;
|
30
|
-
|
31
|
-
|
32
|
-
|
32
|
+
} & ({
|
33
|
+
communicationType: CommunicationType.Node;
|
34
|
+
device?: HID;
|
35
|
+
nodeHidDevicePath?: string;
|
36
|
+
} | {
|
37
|
+
communicationType: CommunicationType.Web;
|
38
|
+
device?: USBDevice;
|
39
|
+
});
|
33
40
|
export declare class LedgerKeyAgent extends KeyAgentBase {
|
34
41
|
#private;
|
35
42
|
readonly deviceConnection?: LedgerConnection;
|
36
|
-
static deviceConnections:
|
43
|
+
static deviceConnections: DeviceConnectionsWithTheirInitialParams[];
|
37
44
|
constructor({ deviceConnection, ...serializableData }: LedgerKeyAgentProps, dependencies: KeyAgentDependencies);
|
38
|
-
static
|
39
|
-
static getHidDeviceList
|
40
|
-
static
|
45
|
+
private static findConnectionByCommunicationTypeAndDevicePath;
|
46
|
+
private static getHidDeviceList;
|
47
|
+
private static attachDisconnectionCleanupHandler;
|
48
|
+
private static openTransportForDevice;
|
49
|
+
static createTransport({ communicationType, nodeHidDevicePath }: CreateLedgerTransportProps): Promise<LedgerTransportType>;
|
50
|
+
private static testConnection;
|
41
51
|
static createDeviceConnection(activeTransport: LedgerTransport): Promise<LedgerConnection>;
|
42
|
-
static
|
52
|
+
private static rememberConnection;
|
53
|
+
static [establishDeviceConnectionMethodName](communicationType: CommunicationType): Promise<LedgerConnection>;
|
54
|
+
static [establishDeviceConnectionMethodName](communicationType: CommunicationType, nodeHidDevicePath: string): Promise<LedgerConnection>;
|
55
|
+
static [establishDeviceConnectionMethodName](communicationType: CommunicationType.Node, device: HID): Promise<LedgerConnection>;
|
56
|
+
static [establishDeviceConnectionMethodName](communicationType: CommunicationType.Web, device: USBDevice): Promise<LedgerConnection>;
|
43
57
|
static checkDeviceConnection(communicationType: CommunicationType, deviceConnection?: LedgerConnection): Promise<LedgerConnection>;
|
44
58
|
static getXpub({ deviceConnection, communicationType, accountIndex }: GetLedgerXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
|
45
59
|
static getAppVersion(communicationType: CommunicationType, deviceConnection?: LedgerConnection): Promise<GetVersionResponse>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LedgerKeyAgent.d.ts","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAuB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAGL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EAEpB,8BAA8B,EAC9B,cAAc,EACd,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"LedgerKeyAgent.d.ts","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"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"}
|
@@ -13,17 +13,19 @@ var _LedgerKeyAgent_communicationType;
|
|
13
13
|
import * as Crypto from '@cardano-sdk/crypto';
|
14
14
|
import { NotImplementedError } from '@cardano-sdk/core';
|
15
15
|
import { CardanoKeyConst, Cip1852PathLevelIndexes, CommunicationType, KeyAgentBase, KeyAgentType, errors } from '@cardano-sdk/key-management';
|
16
|
+
import { HID } from 'node-hid';
|
16
17
|
import { str_to_path } from '@cardano-foundation/ledgerjs-hw-app-cardano/dist/utils/address';
|
17
18
|
import { toLedgerTx } from './transformers';
|
18
19
|
import TransportNodeHid from '@ledgerhq/hw-transport-node-hid-noevents';
|
19
20
|
import _LedgerConnection, { CertificateType, PoolKeyType, PoolOwnerType, StakeCredentialParamsType, TransactionSigningMode, TxOutputDestinationType } from '@cardano-foundation/ledgerjs-hw-app-cardano';
|
20
|
-
import
|
21
|
-
const
|
22
|
-
?
|
23
|
-
:
|
21
|
+
import _TransportWebUSB from '@ledgerhq/hw-transport-webusb';
|
22
|
+
const TransportWebUSB = _TransportWebUSB.default
|
23
|
+
? _TransportWebUSB.default
|
24
|
+
: _TransportWebUSB;
|
24
25
|
const LedgerConnection = _LedgerConnection.default
|
25
26
|
? _LedgerConnection.default
|
26
27
|
: _LedgerConnection;
|
28
|
+
const isUsbDevice = (device) => typeof USBDevice !== 'undefined' && device instanceof USBDevice;
|
27
29
|
const isDeviceAlreadyOpenError = (error) => {
|
28
30
|
if (typeof error !== 'object')
|
29
31
|
return false;
|
@@ -33,6 +35,7 @@ const isDeviceAlreadyOpenError = (error) => {
|
|
33
35
|
return (innerError.code === 11 ||
|
34
36
|
(typeof innerError.message === 'string' && innerError.message.includes('cannot open device with path')));
|
35
37
|
};
|
38
|
+
const CARDANO_APP_CONNECTION_ERROR_MESSAGE = 'Cannot communicate with Ledger Cardano App';
|
36
39
|
const transportTypedError = (error) => new errors.TransportError('Ledger transport failed', error);
|
37
40
|
const hasRegistrationOrRetirementCerts = (certificates) => {
|
38
41
|
if (!certificates)
|
@@ -43,6 +46,28 @@ const hasRegistrationOrRetirementCerts = (certificates) => {
|
|
43
46
|
const stakeCredentialCert = (cert) => cert.type === CertificateType.STAKE_REGISTRATION ||
|
44
47
|
cert.type === CertificateType.STAKE_DEREGISTRATION ||
|
45
48
|
cert.type === CertificateType.STAKE_DELEGATION;
|
49
|
+
const isLedgerModelSupported = (deviceModelId) => ['nanoS', 'nanoX', 'nanoSP'].includes(deviceModelId);
|
50
|
+
const establishDeviceConnectionMethodName = 'establishDeviceConnection';
|
51
|
+
const parseEstablishDeviceConnectionSecondParam = (communicationType, nodeHidDevicePathOrDevice) => {
|
52
|
+
let device;
|
53
|
+
let nodeHidDevicePath;
|
54
|
+
const deviceObjectRecognized = (communicationType === CommunicationType.Node && nodeHidDevicePathOrDevice instanceof HID) ||
|
55
|
+
(communicationType === CommunicationType.Web && isUsbDevice(nodeHidDevicePathOrDevice));
|
56
|
+
const devicePathRecognized = communicationType === CommunicationType.Node && typeof nodeHidDevicePathOrDevice === 'string';
|
57
|
+
if (deviceObjectRecognized) {
|
58
|
+
device = nodeHidDevicePathOrDevice;
|
59
|
+
}
|
60
|
+
else if (devicePathRecognized) {
|
61
|
+
nodeHidDevicePath = nodeHidDevicePathOrDevice;
|
62
|
+
}
|
63
|
+
else if (nodeHidDevicePathOrDevice !== undefined) {
|
64
|
+
throw new Error(`Invalid arguments of the '${establishDeviceConnectionMethodName}' method`);
|
65
|
+
}
|
66
|
+
return {
|
67
|
+
device,
|
68
|
+
nodeHidDevicePath
|
69
|
+
};
|
70
|
+
};
|
46
71
|
const containsOnlyScriptHashCreds = (tx) => {
|
47
72
|
const withdrawalsAllScriptHash = !tx.withdrawals?.some((withdrawal) => withdrawal.stakeCredential.type !== StakeCredentialParamsType.SCRIPT_HASH);
|
48
73
|
if (tx.certificates) {
|
@@ -77,61 +102,129 @@ export class LedgerKeyAgent extends KeyAgentBase {
|
|
77
102
|
this.deviceConnection = deviceConnection;
|
78
103
|
__classPrivateFieldSet(this, _LedgerKeyAgent_communicationType, serializableData.communicationType, "f");
|
79
104
|
}
|
80
|
-
static
|
81
|
-
|
105
|
+
static async findConnectionByCommunicationTypeAndDevicePath(communicationType, nodeHidDevicePath, device) {
|
106
|
+
const matchingConnectionData = this.deviceConnections?.find((connection) => {
|
107
|
+
const sameCommunication = communicationType === connection.communicationType;
|
108
|
+
if (connection.communicationType === CommunicationType.Web) {
|
109
|
+
return sameCommunication && device === connection.device;
|
110
|
+
}
|
111
|
+
if (connection.communicationType === CommunicationType.Node) {
|
112
|
+
return sameCommunication && device === connection.device && nodeHidDevicePath === connection.nodeHidDevicePath;
|
113
|
+
}
|
114
|
+
});
|
115
|
+
if (!matchingConnectionData)
|
116
|
+
return null;
|
117
|
+
try {
|
118
|
+
await this.testConnection(matchingConnectionData.deviceConnection);
|
119
|
+
}
|
120
|
+
catch (error) {
|
121
|
+
if (error instanceof errors.TransportError && error.message.includes(CARDANO_APP_CONNECTION_ERROR_MESSAGE)) {
|
122
|
+
this.deviceConnections = this.deviceConnections.filter((connectionData) => connectionData !== matchingConnectionData);
|
123
|
+
return null;
|
124
|
+
}
|
125
|
+
throw error;
|
126
|
+
}
|
127
|
+
return matchingConnectionData.deviceConnection;
|
82
128
|
}
|
83
129
|
static async getHidDeviceList(communicationType) {
|
84
130
|
try {
|
85
|
-
return communicationType === CommunicationType.Node ? TransportNodeHid.list() :
|
131
|
+
return communicationType === CommunicationType.Node ? TransportNodeHid.list() : TransportWebUSB.list();
|
86
132
|
}
|
87
133
|
catch (error) {
|
88
134
|
throw new errors.TransportError('Cannot fetch device list', error);
|
89
135
|
}
|
90
136
|
}
|
91
|
-
static
|
137
|
+
static attachDisconnectionCleanupHandler(transport) {
|
138
|
+
const onDisconnect = () => {
|
139
|
+
transport.off('disconnect', onDisconnect);
|
140
|
+
this.deviceConnections = this.deviceConnections.filter(({ deviceConnection }) => deviceConnection.transport !== transport);
|
141
|
+
void transport.close();
|
142
|
+
};
|
143
|
+
transport.on('disconnect', onDisconnect);
|
144
|
+
}
|
145
|
+
static async openTransportForDevice({ communicationType, device }) {
|
146
|
+
let transport;
|
92
147
|
try {
|
93
|
-
if (communicationType === CommunicationType.Node) {
|
94
|
-
|
148
|
+
if (communicationType === CommunicationType.Node && device instanceof HID) {
|
149
|
+
transport = new TransportNodeHid(device);
|
150
|
+
}
|
151
|
+
else if (communicationType === CommunicationType.Web && isUsbDevice(device)) {
|
152
|
+
transport = await TransportWebUSB.open(device);
|
95
153
|
}
|
96
|
-
|
97
|
-
|
98
|
-
|
154
|
+
else {
|
155
|
+
throw new errors.TransportError(`Invalid device object provided for communication type ${communicationType}`);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
catch (error) {
|
159
|
+
throw new errors.TransportError('Failed to open a transport for a given device', error);
|
160
|
+
}
|
161
|
+
this.attachDisconnectionCleanupHandler(transport);
|
162
|
+
return transport;
|
163
|
+
}
|
164
|
+
static async createTransport({ communicationType, nodeHidDevicePath = '' }) {
|
165
|
+
let transport;
|
166
|
+
try {
|
167
|
+
transport =
|
168
|
+
communicationType === CommunicationType.Node
|
169
|
+
? await TransportNodeHid.open(nodeHidDevicePath)
|
170
|
+
: await TransportWebUSB.request();
|
99
171
|
}
|
100
172
|
catch (error) {
|
101
173
|
throw new errors.TransportError('Creating transport failed', error);
|
102
174
|
}
|
175
|
+
this.attachDisconnectionCleanupHandler(transport);
|
176
|
+
return transport;
|
103
177
|
}
|
104
|
-
static async
|
178
|
+
static async testConnection(activeConnection) {
|
105
179
|
try {
|
106
|
-
|
107
|
-
await deviceConnection.getVersion();
|
108
|
-
return deviceConnection;
|
180
|
+
await activeConnection.getVersion();
|
109
181
|
}
|
110
182
|
catch (error) {
|
111
|
-
throw new errors.TransportError(
|
183
|
+
throw new errors.TransportError(CARDANO_APP_CONNECTION_ERROR_MESSAGE, error);
|
112
184
|
}
|
113
185
|
}
|
114
|
-
static async
|
115
|
-
const
|
116
|
-
|
117
|
-
|
186
|
+
static async createDeviceConnection(activeTransport) {
|
187
|
+
const deviceConnection = new LedgerConnection(activeTransport);
|
188
|
+
await this.testConnection(deviceConnection);
|
189
|
+
return deviceConnection;
|
190
|
+
}
|
191
|
+
static rememberConnection({ communicationType, device, deviceConnection, nodeHidDevicePath }) {
|
192
|
+
this.deviceConnections.push({
|
193
|
+
deviceConnection,
|
194
|
+
...(communicationType === CommunicationType.Node
|
195
|
+
? {
|
196
|
+
communicationType,
|
197
|
+
...(device instanceof HID && { device }),
|
198
|
+
...(nodeHidDevicePath !== undefined && { nodeHidDevicePath })
|
199
|
+
}
|
200
|
+
: {
|
201
|
+
communicationType,
|
202
|
+
...(isUsbDevice(device) && { device })
|
203
|
+
})
|
204
|
+
});
|
205
|
+
}
|
206
|
+
static async [(_LedgerKeyAgent_communicationType = new WeakMap(), establishDeviceConnectionMethodName)](communicationType, nodeHidDevicePathOrDevice) {
|
207
|
+
const { device, nodeHidDevicePath } = parseEstablishDeviceConnectionSecondParam(communicationType, nodeHidDevicePathOrDevice);
|
208
|
+
const matchingOpenConnection = await this.findConnectionByCommunicationTypeAndDevicePath(communicationType, nodeHidDevicePath, device);
|
209
|
+
if (matchingOpenConnection)
|
210
|
+
return matchingOpenConnection;
|
118
211
|
let transport;
|
119
212
|
try {
|
120
|
-
transport =
|
213
|
+
transport = device
|
214
|
+
? await LedgerKeyAgent.openTransportForDevice({ communicationType, device })
|
215
|
+
: await LedgerKeyAgent.createTransport({ communicationType, nodeHidDevicePath });
|
121
216
|
if (!transport || !transport.deviceModel) {
|
122
217
|
throw new errors.TransportError('Missing transport');
|
123
218
|
}
|
124
|
-
|
125
|
-
transport.deviceModel.id === 'nanoX' ||
|
126
|
-
transport.deviceModel.id === 'nanoSP';
|
127
|
-
if (!isSupportedLedgerModel) {
|
219
|
+
if (!isLedgerModelSupported(transport.deviceModel.id)) {
|
128
220
|
throw new errors.TransportError(`Ledger device model: "${transport.deviceModel.id}" is not supported`);
|
129
221
|
}
|
130
222
|
const newConnection = await LedgerKeyAgent.createDeviceConnection(transport);
|
131
|
-
this.
|
223
|
+
this.rememberConnection({
|
132
224
|
communicationType,
|
225
|
+
device,
|
133
226
|
deviceConnection: newConnection,
|
134
|
-
|
227
|
+
nodeHidDevicePath
|
135
228
|
});
|
136
229
|
return newConnection;
|
137
230
|
}
|
@@ -140,7 +233,7 @@ export class LedgerKeyAgent extends KeyAgentBase {
|
|
140
233
|
throw new errors.TransportError('Connection already established', error);
|
141
234
|
}
|
142
235
|
if (transport) {
|
143
|
-
transport.close();
|
236
|
+
void transport.close();
|
144
237
|
}
|
145
238
|
throw new errors.TransportError('Establishing device connection failed', error);
|
146
239
|
}
|
@@ -257,6 +350,5 @@ export class LedgerKeyAgent extends KeyAgentBase {
|
|
257
350
|
throw new NotImplementedError('Operation not supported!');
|
258
351
|
}
|
259
352
|
}
|
260
|
-
_LedgerKeyAgent_communicationType = new WeakMap();
|
261
353
|
LedgerKeyAgent.deviceConnections = [];
|
262
354
|
//# sourceMappingURL=LedgerKeyAgent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LedgerKeyAgent.js","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"LedgerKeyAgent.js","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"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"}
|