@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.
@@ -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 };
@@ -1,23 +1,24 @@
1
- import { AbstractConnector } from '@web3-react/abstract-connector';
2
- import type { ConnectorUpdate } from '@web3-react/types';
3
- import type { LedgerHQProvider } from './provider';
4
- type LedgerHQConnectorArguments = {
5
- chainId: number;
6
- url: string;
7
- };
8
- export declare class LedgerHQConnector extends AbstractConnector {
9
- provider?: LedgerHQProvider;
10
- url: string;
11
- chainId: number;
12
- constructor({ chainId, url }: LedgerHQConnectorArguments);
13
- private handleDisconnect;
14
- isSupported(): boolean;
15
- getProviderInstance(): Promise<LedgerHQProvider>;
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
- getAccount(): Promise<string>;
20
- deactivate(): void;
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":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,KAAK,0BAA0B,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,iBAAiB;IAC/C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC;gBAEX,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,0BAA0B;IASxD,OAAO,CAAC,gBAAgB;IAKjB,WAAW,IAAI,OAAO;IAIhB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMhD,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAepC,WAAW,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAKpD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAKnC,UAAU,IAAI,IAAI;CAK1B;AAED,eAAe,iBAAiB,CAAC"}
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"}
@@ -1,75 +1,106 @@
1
- import { __awaiter } from '../_virtual/_tslib.js';
2
- import invariant from 'tiny-invariant';
3
- import { AbstractConnector } from '@web3-react/abstract-connector';
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
- class LedgerHQConnector extends AbstractConnector {
5
+ var _LedgerHIDConnector_chain, _LedgerHIDConnector_provider, _LedgerHIDConnector_rpc;
6
+ class LedgerHIDConnector extends Connector {
7
7
  constructor({
8
- chainId,
9
- url
8
+ defaultChain,
9
+ chains,
10
+ rpc,
11
+ options
10
12
  }) {
11
13
  super({
12
- supportedChainIds: [chainId]
14
+ chains,
15
+ options
13
16
  });
14
- this.chainId = chainId;
15
- this.url = url;
16
- this.handleDisconnect = this.handleDisconnect.bind(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
- handleDisconnect() {
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.provider = yield this.getProviderInstance();
38
- // eslint-disable-next-line @typescript-eslint/unbound-method
39
- this.provider.on('disconnect', this.handleDisconnect);
40
- const account = yield this.provider.enable();
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
- provider: this.provider,
43
- account
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
- // eslint-disable-next-line @typescript-eslint/require-await
51
- getProvider() {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- return this.provider;
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.chainId;
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
- getAccount() {
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
- invariant(this.provider, 'Provider is not defined');
65
- return this.provider.getAddress();
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 { LedgerHQConnector, LedgerHQConnector as default };
106
+ export { LedgerHIDConnector };
@@ -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, isHIDSupported, toNumber };
63
+ export { checkError, convertToUnsigned, hasEIP1559, toNumber };
@@ -1,3 +1,3 @@
1
- export { LedgerHQConnector } from './connector';
1
+ export { LedgerHIDConnector } from './connector';
2
2
  export { LS_KEY_DERIVATION_PATH } from './signer';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
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"}
@@ -1,15 +1,16 @@
1
1
  /// <reference types="w3c-web-hid" />
2
2
  import { JsonRpcBatchProvider, Network } from '@ethersproject/providers';
3
- import type TransportHID from '@ledgerhq/hw-transport-webhid';
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 TransportHID;
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<TransportHID>;
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,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK1C,qBAAa,gBAAiB,SAAQ,oBAAoB;IACjD,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,YAAY,CAAC;IAEvC,SAAS,IAAI,cAAc;IAK3B,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAKhC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IAarC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IA6BzB,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"}
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"}
@@ -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 __awaiter(this, void 0, void 0, function* () {
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 transport = yield (_a = this.transport) === null || _a === void 0 ? void 0 : _a.create();
27
- this.device = transport.device;
28
- return transport;
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: TransportHID
38
+ default: TransportWebHID
40
39
  } = yield import('@ledgerhq/hw-transport-webhid');
41
- this.transport = TransportHID;
40
+ this.transport = TransportWebHID;
42
41
  const {
43
42
  hid
44
43
  } = window.navigator;
@@ -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 {
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/hid/signer.ts"],"names":[],"mappings":"AAAA,OAAO,GAAsB,MAAM,sBAAsB,CAAC;AAC1D,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,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,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;IAgBpD,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;IAsBlB,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"}
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"}
@@ -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
@@ -1,3 +1,3 @@
1
- export { LedgerHQConnector, LS_KEY_DERIVATION_PATH } from './hid';
2
1
  export * from './iframe';
2
+ export * from './hid';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAClE,cAAc,UAAU,CAAC"}
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": "1.1.1",
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.34.8",
48
- "@ledgerhq/hw-transport": "^6.28.8",
49
- "@ledgerhq/hw-transport-webhid": "^6.27.19",
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
  }