@reef-knot/ledger-connector 1.1.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_tslib.js +14 -1
- package/dist/hid/connector.d.ts +21 -20
- package/dist/hid/connector.d.ts.map +1 -1
- package/dist/hid/connector.js +81 -50
- package/dist/hid/helpers.js +1 -8
- package/dist/hid/index.d.ts +1 -1
- package/dist/hid/index.d.ts.map +1 -1
- package/dist/hid/provider.d.ts +4 -3
- package/dist/hid/provider.d.ts.map +1 -1
- package/dist/hid/provider.js +10 -11
- package/dist/hid/signer.d.ts +2 -2
- package/dist/hid/signer.d.ts.map +1 -1
- package/dist/hid/signer.js +6 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/package.json +9 -5
package/dist/_virtual/_tslib.js
CHANGED
|
@@ -23,9 +23,22 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
function __classPrivateFieldGet(receiver, state, kind, f) {
|
|
27
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
28
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
29
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
33
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
34
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
35
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
36
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
37
|
+
}
|
|
38
|
+
|
|
26
39
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
27
40
|
var e = new Error(message);
|
|
28
41
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
29
42
|
};
|
|
30
43
|
|
|
31
|
-
export { __awaiter };
|
|
44
|
+
export { __awaiter, __classPrivateFieldGet, __classPrivateFieldSet };
|
package/dist/hid/connector.d.ts
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
activate(): Promise<ConnectorUpdate>;
|
|
17
|
-
getProvider(): Promise<LedgerHQProvider | undefined>;
|
|
1
|
+
import { Address, Chain, Connector, ConnectorData } from 'wagmi';
|
|
2
|
+
export declare class LedgerHIDConnector<Options = any> extends Connector {
|
|
3
|
+
#private;
|
|
4
|
+
readonly id = "ledgerHID";
|
|
5
|
+
readonly name = "Ledger";
|
|
6
|
+
ready: boolean;
|
|
7
|
+
constructor({ defaultChain, chains, rpc, options, }: {
|
|
8
|
+
defaultChain: Chain;
|
|
9
|
+
chains?: Chain[];
|
|
10
|
+
rpc: Record<number, string>;
|
|
11
|
+
options?: Options;
|
|
12
|
+
});
|
|
13
|
+
connect(): Promise<Required<ConnectorData>>;
|
|
14
|
+
disconnect(): Promise<void>;
|
|
15
|
+
getAccount(): Promise<Address>;
|
|
18
16
|
getChainId(): Promise<number>;
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
getProvider(): Promise<any>;
|
|
18
|
+
getSigner(): Promise<any>;
|
|
19
|
+
isAuthorized(): Promise<boolean>;
|
|
20
|
+
protected onDisconnect: () => void;
|
|
21
|
+
protected onAccountsChanged: () => void;
|
|
22
|
+
protected onChainChanged: () => void;
|
|
21
23
|
}
|
|
22
|
-
export default LedgerHQConnector;
|
|
23
24
|
//# sourceMappingURL=connector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/hid/connector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/hid/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EACL,SAAS,EACT,aAAa,EAEd,MAAM,OAAO,CAAC;AAGf,qBAAa,kBAAkB,CAAC,OAAO,GAAG,GAAG,CAAE,SAAQ,SAAS;;IAC9D,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,YAAY;IAEzB,KAAK,UAAS;gBAIF,EACV,YAAY,EACZ,MAAM,EACN,GAAG,EACH,OAAO,GACR,EAAE;QACD,YAAY,EAAE,KAAK,CAAC;QACpB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB;IAMK,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAsBjD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAOvB,WAAW;IAYjB,SAAS;IAKH,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAWtC,SAAS,CAAC,YAAY,QAAO,IAAI,CAK/B;IAEF,SAAS,CAAC,iBAAiB,QAAO,IAAI,CAEpC;IAEF,SAAS,CAAC,cAAc,QAAO,IAAI,CAEjC;CACH"}
|
package/dist/hid/connector.js
CHANGED
|
@@ -1,75 +1,106 @@
|
|
|
1
|
-
import { __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { isHIDSupported, checkError } from './helpers.js';
|
|
1
|
+
import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../_virtual/_tslib.js';
|
|
2
|
+
import { Connector, ConnectorNotFoundError } from 'wagmi';
|
|
3
|
+
import { checkError } from './helpers.js';
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
var _LedgerHIDConnector_chain, _LedgerHIDConnector_provider, _LedgerHIDConnector_rpc;
|
|
6
|
+
class LedgerHIDConnector extends Connector {
|
|
7
7
|
constructor({
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
defaultChain,
|
|
9
|
+
chains,
|
|
10
|
+
rpc,
|
|
11
|
+
options
|
|
10
12
|
}) {
|
|
11
13
|
super({
|
|
12
|
-
|
|
14
|
+
chains,
|
|
15
|
+
options
|
|
13
16
|
});
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this
|
|
17
|
+
this.id = 'ledgerHID';
|
|
18
|
+
this.name = 'Ledger';
|
|
19
|
+
_LedgerHIDConnector_chain.set(this, void 0);
|
|
20
|
+
this.ready = false;
|
|
21
|
+
_LedgerHIDConnector_provider.set(this, void 0);
|
|
22
|
+
_LedgerHIDConnector_rpc.set(this, void 0);
|
|
23
|
+
this.onDisconnect = () => {
|
|
24
|
+
// Is called when HID API emits 'disconnect' event for some reason.
|
|
25
|
+
// For example, the device was manually unplugged.
|
|
26
|
+
// It is common to emit 'disconnect' from connector in this case.
|
|
27
|
+
this.emit('disconnect');
|
|
28
|
+
};
|
|
29
|
+
this.onAccountsChanged = () => {
|
|
30
|
+
// NOOP
|
|
31
|
+
};
|
|
32
|
+
this.onChainChanged = () => {
|
|
33
|
+
// NOOP
|
|
34
|
+
};
|
|
35
|
+
__classPrivateFieldSet(this, _LedgerHIDConnector_chain, defaultChain, "f");
|
|
36
|
+
__classPrivateFieldSet(this, _LedgerHIDConnector_rpc, rpc === null || rpc === void 0 ? void 0 : rpc[defaultChain.id], "f");
|
|
17
37
|
}
|
|
18
|
-
|
|
19
|
-
this.emitDeactivate();
|
|
20
|
-
}
|
|
21
|
-
// eslint-disable-next-line class-methods-use-this
|
|
22
|
-
isSupported() {
|
|
23
|
-
return isHIDSupported();
|
|
24
|
-
}
|
|
25
|
-
getProviderInstance() {
|
|
26
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
// eslint-disable-next-line no-shadow
|
|
28
|
-
const {
|
|
29
|
-
LedgerHQProvider
|
|
30
|
-
} = yield import('./provider.js');
|
|
31
|
-
return new LedgerHQProvider(this.url, this.chainId);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
activate() {
|
|
38
|
+
connect() {
|
|
35
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
40
|
try {
|
|
37
|
-
this
|
|
38
|
-
|
|
39
|
-
this
|
|
40
|
-
const
|
|
41
|
+
__classPrivateFieldSet(this, _LedgerHIDConnector_provider, yield this.getProvider(), "f");
|
|
42
|
+
__classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f").on('disconnect', this.onDisconnect);
|
|
43
|
+
const account = yield __classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f").enable();
|
|
44
|
+
const chainId = yield this.getChainId();
|
|
45
|
+
const chainUnsupported = this.isChainUnsupported(chainId);
|
|
46
|
+
this.ready = !!__classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f");
|
|
41
47
|
return {
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
account,
|
|
49
|
+
provider: __classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f"),
|
|
50
|
+
chain: {
|
|
51
|
+
id: chainId,
|
|
52
|
+
unsupported: chainUnsupported
|
|
53
|
+
}
|
|
44
54
|
};
|
|
45
55
|
} catch (error) {
|
|
46
56
|
return checkError(error);
|
|
47
57
|
}
|
|
48
58
|
});
|
|
49
59
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
disconnect() {
|
|
61
|
+
// Handles programmatic disconnect.
|
|
62
|
+
// We don't need to do anything specific for HID Ledger connection in this case.
|
|
63
|
+
__classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f").removeListener('disconnect', this.onDisconnect);
|
|
64
|
+
return Promise.resolve();
|
|
65
|
+
}
|
|
66
|
+
getAccount() {
|
|
67
|
+
return __classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f").getAddress();
|
|
55
68
|
}
|
|
56
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
57
69
|
getChainId() {
|
|
70
|
+
if (__classPrivateFieldGet(this, _LedgerHIDConnector_chain, "f")) {
|
|
71
|
+
return Promise.resolve(__classPrivateFieldGet(this, _LedgerHIDConnector_chain, "f").id);
|
|
72
|
+
}
|
|
73
|
+
return Promise.reject('The chain must be set');
|
|
74
|
+
}
|
|
75
|
+
getProvider() {
|
|
58
76
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
return this
|
|
77
|
+
if (__classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f")) return __classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f");
|
|
78
|
+
const {
|
|
79
|
+
LedgerHQProvider
|
|
80
|
+
} = yield import('./provider.js');
|
|
81
|
+
const chainId = yield this.getChainId();
|
|
82
|
+
return new LedgerHQProvider({
|
|
83
|
+
url: __classPrivateFieldGet(this, _LedgerHIDConnector_rpc, "f")
|
|
84
|
+
}, chainId);
|
|
60
85
|
});
|
|
61
86
|
}
|
|
62
|
-
|
|
87
|
+
getSigner() {
|
|
88
|
+
const signer = __classPrivateFieldGet(this, _LedgerHIDConnector_provider, "f").signer;
|
|
89
|
+
return Promise.resolve(signer);
|
|
90
|
+
}
|
|
91
|
+
isAuthorized() {
|
|
63
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
|
|
65
|
-
|
|
93
|
+
try {
|
|
94
|
+
const provider = yield this.getProvider();
|
|
95
|
+
if (!provider) throw new ConnectorNotFoundError();
|
|
96
|
+
const account = yield this.getAccount();
|
|
97
|
+
return !!account;
|
|
98
|
+
} catch (_a) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
66
101
|
});
|
|
67
102
|
}
|
|
68
|
-
deactivate() {
|
|
69
|
-
invariant(this.provider, 'Provider is not defined');
|
|
70
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
71
|
-
this.provider.removeListener('disconnect', this.handleDisconnect);
|
|
72
|
-
}
|
|
73
103
|
}
|
|
104
|
+
_LedgerHIDConnector_chain = new WeakMap(), _LedgerHIDConnector_provider = new WeakMap(), _LedgerHIDConnector_rpc = new WeakMap();
|
|
74
105
|
|
|
75
|
-
export {
|
|
106
|
+
export { LedgerHIDConnector };
|
package/dist/hid/helpers.js
CHANGED
|
@@ -2,13 +2,6 @@ import { __awaiter } from '../_virtual/_tslib.js';
|
|
|
2
2
|
import { BigNumber } from '@ethersproject/bignumber';
|
|
3
3
|
import { resolveProperties } from '@ethersproject/properties';
|
|
4
4
|
|
|
5
|
-
const isHIDSupported = () => {
|
|
6
|
-
try {
|
|
7
|
-
return 'hid' in window.navigator;
|
|
8
|
-
} catch (error) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
5
|
const hasEIP1559 = tx => {
|
|
13
6
|
return tx.type === 2 || tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null;
|
|
14
7
|
};
|
|
@@ -67,4 +60,4 @@ const checkError = error => {
|
|
|
67
60
|
throw error;
|
|
68
61
|
};
|
|
69
62
|
|
|
70
|
-
export { checkError, convertToUnsigned, hasEIP1559,
|
|
63
|
+
export { checkError, convertToUnsigned, hasEIP1559, toNumber };
|
package/dist/hid/index.d.ts
CHANGED
package/dist/hid/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/hid/provider.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/// <reference types="w3c-web-hid" />
|
|
2
2
|
import { JsonRpcBatchProvider, Network } from '@ethersproject/providers';
|
|
3
|
-
import type
|
|
3
|
+
import type TransportWebHID from '@ledgerhq/hw-transport-webhid';
|
|
4
4
|
import { LedgerHQSigner } from './signer';
|
|
5
5
|
export declare class LedgerHQProvider extends JsonRpcBatchProvider {
|
|
6
6
|
signer?: LedgerHQSigner;
|
|
7
7
|
device?: HIDDevice;
|
|
8
|
-
transport?: typeof
|
|
8
|
+
transport?: typeof TransportWebHID;
|
|
9
|
+
constructor(...args: any[]);
|
|
9
10
|
getSigner(): LedgerHQSigner;
|
|
10
11
|
listAccounts(): Promise<Array<string>>;
|
|
11
12
|
detectNetwork(): Promise<Network>;
|
|
12
|
-
getTransport(): Promise<
|
|
13
|
+
getTransport(): Promise<TransportWebHID>;
|
|
13
14
|
enable(): Promise<string>;
|
|
14
15
|
getAddress(): Promise<string>;
|
|
15
16
|
request({ method, params, }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/hid/provider.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/hid/provider.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,eAAe,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1C,qBAAa,gBAAiB,SAAQ,oBAAoB;IACjD,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,eAAe,CAAC;gBAE9B,GAAG,IAAI,EAAE,GAAG,EAAE;IAK1B,SAAS,IAAI,cAAc;IAI3B,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAItC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAcxC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IA4BzB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAK7B,OAAO,CAAC,EACZ,MAAM,EACN,MAAM,GACP,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB,GAAG,OAAO,CAAC,OAAO,CAAC;CA0BrB"}
|
package/dist/hid/provider.js
CHANGED
|
@@ -5,27 +5,27 @@ import { LedgerHQSigner } from './signer.js';
|
|
|
5
5
|
import { checkError, convertToUnsigned } from './helpers.js';
|
|
6
6
|
|
|
7
7
|
class LedgerHQProvider extends JsonRpcBatchProvider {
|
|
8
|
+
constructor(...args) {
|
|
9
|
+
super(...args);
|
|
10
|
+
this.signer = this.getSigner();
|
|
11
|
+
}
|
|
8
12
|
getSigner() {
|
|
9
13
|
return new LedgerHQSigner(this);
|
|
10
14
|
}
|
|
11
|
-
// eslint-disable-next-line class-methods-use-this
|
|
12
15
|
listAccounts() {
|
|
13
16
|
throw new Error('method is not implemented');
|
|
14
17
|
}
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
16
18
|
detectNetwork() {
|
|
17
|
-
return
|
|
18
|
-
return this._network;
|
|
19
|
-
});
|
|
19
|
+
return Promise.resolve(this._network);
|
|
20
20
|
}
|
|
21
21
|
getTransport() {
|
|
22
22
|
var _a;
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
24
|
invariant(this.transport, 'Transport is not defined');
|
|
25
25
|
try {
|
|
26
|
-
const
|
|
27
|
-
this.device =
|
|
28
|
-
return
|
|
26
|
+
const transportInstance = yield (_a = this.transport) === null || _a === void 0 ? void 0 : _a.create();
|
|
27
|
+
this.device = transportInstance.device;
|
|
28
|
+
return transportInstance;
|
|
29
29
|
} catch (error) {
|
|
30
30
|
return checkError(error);
|
|
31
31
|
}
|
|
@@ -34,11 +34,10 @@ class LedgerHQProvider extends JsonRpcBatchProvider {
|
|
|
34
34
|
enable() {
|
|
35
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
36
|
try {
|
|
37
|
-
// eslint-disable-next-line no-shadow
|
|
38
37
|
const {
|
|
39
|
-
default:
|
|
38
|
+
default: TransportWebHID
|
|
40
39
|
} = yield import('@ledgerhq/hw-transport-webhid');
|
|
41
|
-
this.transport =
|
|
40
|
+
this.transport = TransportWebHID;
|
|
42
41
|
const {
|
|
43
42
|
hid
|
|
44
43
|
} = window.navigator;
|
package/dist/hid/signer.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import Eth from '@ledgerhq/hw-app-eth';
|
|
1
|
+
import type Eth from '@ledgerhq/hw-app-eth';
|
|
2
2
|
import { LoadConfig, ResolutionConfig } from '@ledgerhq/hw-app-eth/lib/services/types';
|
|
3
3
|
import { EIP712Message } from '@ledgerhq/types-live';
|
|
4
4
|
import { JsonRpcSigner, TransactionRequest } from '@ethersproject/providers';
|
|
5
5
|
import { Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from '@ethersproject/abstract-signer';
|
|
6
6
|
import { UnsignedTransaction } from '@ethersproject/transactions';
|
|
7
7
|
import { Bytes } from '@ethersproject/bytes';
|
|
8
|
-
import { LedgerHQProvider } from './provider';
|
|
8
|
+
import type { LedgerHQProvider } from './provider';
|
|
9
9
|
import { UnsignedTransactionStrict } from './types';
|
|
10
10
|
export declare const LS_KEY_DERIVATION_PATH = "reef-knot_ledger-derivation-path";
|
|
11
11
|
export declare class LedgerHQSigner extends Signer implements TypedDataSigner {
|
package/dist/hid/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/hid/signer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/hid/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EACL,UAAU,EACV,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAsB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EACL,MAAM,EACN,eAAe,EACf,cAAc,EACd,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAa,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,KAAK,EAA0B,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AAGzE,qBAAa,cAAe,SAAQ,MAAO,YAAW,eAAe;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC,MAAM,SAAK;IAEX,QAAQ,SAAM;gBAEF,QAAQ,EAAE,gBAAgB,EAAE,IAAI,SAAK;IAW3C,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAiBpD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAS7B,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBrD,gBAAgB,CACpB,WAAW,EAAE,yBAAyB,GACrC,OAAO,CAAC,mBAAmB,CAAC;IAczB,eAAe,CACnB,WAAW,EAAE,kBAAkB,EAC/B,UAAU,GAAE,UAAe,EAC3B,gBAAgB,GAAE,gBAAqB,GACtC,OAAO,CAAC,MAAM,CAAC;IAuBlB,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa;IAKlD,gBAAgB,IAAI,aAAa;IAKjC,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKrC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1B,kBAAkB,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D,cAAc,CAClB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC;IA8BZ,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAOhE"}
|
package/dist/hid/signer.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
-
import Eth, { ledgerService } from '@ledgerhq/hw-app-eth';
|
|
3
2
|
import { BigNumber } from '@ethersproject/bignumber';
|
|
4
3
|
import { Signer } from '@ethersproject/abstract-signer';
|
|
5
4
|
import { serialize } from '@ethersproject/transactions';
|
|
@@ -26,6 +25,9 @@ class LedgerHQSigner extends Signer {
|
|
|
26
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
26
|
const transport = yield this.provider.getTransport();
|
|
28
27
|
try {
|
|
28
|
+
const {
|
|
29
|
+
default: Eth
|
|
30
|
+
} = yield import('@ledgerhq/hw-app-eth');
|
|
29
31
|
const eth = new Eth(transport);
|
|
30
32
|
yield eth.getAppConfiguration();
|
|
31
33
|
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
@@ -95,6 +97,9 @@ class LedgerHQSigner extends Signer {
|
|
|
95
97
|
const unsignedTx = yield convertToUnsigned(transaction);
|
|
96
98
|
const populatedTx = yield this.populateUnsigned(unsignedTx);
|
|
97
99
|
const serializedTx = serialize(populatedTx).substring(2);
|
|
100
|
+
const {
|
|
101
|
+
ledgerService
|
|
102
|
+
} = yield import('@ledgerhq/hw-app-eth');
|
|
98
103
|
const resolution = yield ledgerService.resolveTransaction(serializedTx, loadConfig, resolutionConfig);
|
|
99
104
|
const sig = yield this.withEthApp(eth => eth.signTransaction(this.path, serializedTx, resolution));
|
|
100
105
|
return serialize(populatedTx, {
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { LedgerHQConnector } from './hid/connector.js';
|
|
2
|
-
export { LS_KEY_DERIVATION_PATH } from './hid/signer.js';
|
|
3
1
|
export { LedgerHQFrameConnector } from './iframe/connector.js';
|
|
4
2
|
export { isIframe, isLedgerDappBrowserProvider } from './iframe/helpers.js';
|
|
3
|
+
export { LedgerHIDConnector } from './hid/connector.js';
|
|
4
|
+
export { LS_KEY_DERIVATION_PATH } from './hid/signer.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reef-knot/ledger-connector",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/w3c-web-hid": "^1.0.2",
|
|
36
|
+
"wagmi": "^0.12.19",
|
|
36
37
|
"eslint-config-custom": "*"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
@@ -44,12 +45,15 @@
|
|
|
44
45
|
"@ethersproject/strings": "^5.5.0",
|
|
45
46
|
"@ethersproject/transactions": "^5.5.0",
|
|
46
47
|
"@ethersproject/hash": "^5.5.0",
|
|
47
|
-
"@ledgerhq/hw-app-eth": "^6.
|
|
48
|
-
"@ledgerhq/hw-transport": "^6.
|
|
49
|
-
"@ledgerhq/hw-transport-webhid": "^6.
|
|
50
|
-
"@ledgerhq/iframe-provider": "0",
|
|
48
|
+
"@ledgerhq/hw-app-eth": "^6.35.2",
|
|
49
|
+
"@ledgerhq/hw-transport": "^6.30.1",
|
|
50
|
+
"@ledgerhq/hw-transport-webhid": "^6.28.1",
|
|
51
|
+
"@ledgerhq/iframe-provider": "^0.4.3",
|
|
51
52
|
"@web3-react/abstract-connector": "^6.0.7",
|
|
52
53
|
"@web3-react/types": "^6.0.7",
|
|
53
54
|
"tiny-invariant": "^1.2.0"
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"wagmi": "^0.12.19"
|
|
54
58
|
}
|
|
55
59
|
}
|