@bytezhang/hardware-ledger-connector-ble 0.0.24 → 0.0.26
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/index.js +17 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +18 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -42,6 +42,18 @@ function extractBleHexId(name) {
|
|
|
42
42
|
const match = name.match(/\b([0-9A-Fa-f]{4})$/);
|
|
43
43
|
return match ? match[1].toUpperCase() : void 0;
|
|
44
44
|
}
|
|
45
|
+
async function metroSignerKitImporter(pkg) {
|
|
46
|
+
switch (pkg) {
|
|
47
|
+
case "@ledgerhq/device-signer-kit-ethereum":
|
|
48
|
+
return import("@ledgerhq/device-signer-kit-ethereum/lib/cjs/index.js");
|
|
49
|
+
case "@ledgerhq/device-signer-kit-bitcoin":
|
|
50
|
+
return import("@ledgerhq/device-signer-kit-bitcoin");
|
|
51
|
+
case "@ledgerhq/device-signer-kit-solana":
|
|
52
|
+
return import("@ledgerhq/device-signer-kit-solana/lib/cjs/index.js");
|
|
53
|
+
default:
|
|
54
|
+
throw new Error(`Unknown signer kit package: ${pkg}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
45
57
|
var LedgerBleConnector = class extends import_ledger_adapter.LedgerConnectorBase {
|
|
46
58
|
constructor(options) {
|
|
47
59
|
super(
|
|
@@ -49,33 +61,16 @@ var LedgerBleConnector = class extends import_ledger_adapter.LedgerConnectorBase
|
|
|
49
61
|
const { rnBleTransportFactory } = await import("@ledgerhq/device-transport-kit-react-native-ble");
|
|
50
62
|
return rnBleTransportFactory;
|
|
51
63
|
},
|
|
52
|
-
{
|
|
64
|
+
{
|
|
65
|
+
connectionType: "ble",
|
|
66
|
+
dmk: options?.dmk,
|
|
67
|
+
importSignerKit: metroSignerKitImporter
|
|
68
|
+
}
|
|
53
69
|
);
|
|
54
70
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Override connectId resolution for BLE devices.
|
|
57
|
-
* Always attempts to extract the stable 4-digit HEX from the device name.
|
|
58
|
-
*/
|
|
59
71
|
_resolveConnectId(descriptor) {
|
|
60
72
|
return extractBleHexId(descriptor.name) || descriptor.path;
|
|
61
73
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Override SOL signer creation for Metro (React Native).
|
|
64
|
-
* `@ledgerhq/device-signer-kit-solana` has no `main` field — Metro can't
|
|
65
|
-
* resolve it via the bare specifier. Use the explicit CJS path instead.
|
|
66
|
-
*/
|
|
67
|
-
async _createSolSigner(sessionId) {
|
|
68
|
-
const dmk = await this._getOrCreateDmk();
|
|
69
|
-
const { SignerSolanaBuilder } = await import(
|
|
70
|
-
// @ts-ignore Metro needs explicit CJS path; no "main" field in package
|
|
71
|
-
"@ledgerhq/device-signer-kit-solana/lib/cjs/index.js"
|
|
72
|
-
);
|
|
73
|
-
const sdkSigner = new SignerSolanaBuilder({
|
|
74
|
-
dmk,
|
|
75
|
-
sessionId
|
|
76
|
-
}).build();
|
|
77
|
-
return new import_ledger_adapter.SignerSol(sdkSigner);
|
|
78
|
-
}
|
|
79
74
|
};
|
|
80
75
|
|
|
81
76
|
// src/index.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/LedgerBleConnector.ts"],"sourcesContent":["import type { IConnector } from '@bytezhang/hardware-wallet-core';\nimport type { IDmk } from '@bytezhang/ledger-adapter';\n\nimport {\n LedgerBleConnector,\n} from './LedgerBleConnector';\nimport type { LedgerBleConnectorOptions } from './LedgerBleConnector';\n\nexport { LedgerBleConnector };\nexport type { LedgerBleConnectorOptions };\n\n/**\n * Create a LedgerBleConnector.\n *\n * @param dmk - Optional pre-built DMK instance. If omitted, the connector\n * will lazily create one using `@ledgerhq/device-management-kit`\n * and `@ledgerhq/device-transport-kit-react-native-ble`.\n */\nexport function createLedgerBleConnector(dmk?: IDmk): IConnector {\n return new LedgerBleConnector({ dmk });\n}\n","import type { DeviceDescriptor } from '@bytezhang/hardware-wallet-core';\nimport type { IDmk } from '@bytezhang/ledger-adapter';\nimport { LedgerConnectorBase
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/LedgerBleConnector.ts"],"sourcesContent":["import type { IConnector } from '@bytezhang/hardware-wallet-core';\nimport type { IDmk } from '@bytezhang/ledger-adapter';\n\nimport {\n LedgerBleConnector,\n} from './LedgerBleConnector';\nimport type { LedgerBleConnectorOptions } from './LedgerBleConnector';\n\nexport { LedgerBleConnector };\nexport type { LedgerBleConnectorOptions };\n\n/**\n * Create a LedgerBleConnector.\n *\n * @param dmk - Optional pre-built DMK instance. If omitted, the connector\n * will lazily create one using `@ledgerhq/device-management-kit`\n * and `@ledgerhq/device-transport-kit-react-native-ble`.\n */\nexport function createLedgerBleConnector(dmk?: IDmk): IConnector {\n return new LedgerBleConnector({ dmk });\n}\n","import type { DeviceDescriptor } from '@bytezhang/hardware-wallet-core';\nimport type { IDmk } from '@bytezhang/ledger-adapter';\nimport { LedgerConnectorBase } from '@bytezhang/ledger-adapter';\n\n// ---------------------------------------------------------------------------\n// Utilities\n// ---------------------------------------------------------------------------\n\nfunction extractBleHexId(name?: string): string | undefined {\n if (!name) return undefined;\n const match = name.match(/\\b([0-9A-Fa-f]{4})$/);\n return match ? match[1].toUpperCase() : undefined;\n}\n\n/**\n * Metro (React Native) can't resolve packages that only have \"exports\"\n * (no \"main\" field). This importer uses explicit CJS paths.\n */\nasync function metroSignerKitImporter(pkg: string): Promise<any> {\n switch (pkg) {\n case '@ledgerhq/device-signer-kit-ethereum':\n // @ts-ignore Metro needs explicit CJS path\n return import('@ledgerhq/device-signer-kit-ethereum/lib/cjs/index.js');\n case '@ledgerhq/device-signer-kit-bitcoin':\n // bitcoin has \"main\" field, bare import works, but use CJS for consistency\n return import('@ledgerhq/device-signer-kit-bitcoin');\n case '@ledgerhq/device-signer-kit-solana':\n // @ts-ignore Metro needs explicit CJS path\n return import('@ledgerhq/device-signer-kit-solana/lib/cjs/index.js');\n default:\n throw new Error(`Unknown signer kit package: ${pkg}`);\n }\n}\n\n// ---------------------------------------------------------------------------\n// LedgerBleConnector\n// ---------------------------------------------------------------------------\n\nexport interface LedgerBleConnectorOptions {\n dmk?: IDmk;\n}\n\nexport class LedgerBleConnector extends LedgerConnectorBase {\n constructor(options?: LedgerBleConnectorOptions) {\n super(\n async () => {\n const { rnBleTransportFactory } = await import(\n '@ledgerhq/device-transport-kit-react-native-ble'\n );\n return rnBleTransportFactory;\n },\n {\n connectionType: 'ble',\n dmk: options?.dmk,\n importSignerKit: metroSignerKitImporter,\n },\n );\n }\n\n protected override _resolveConnectId(descriptor: DeviceDescriptor): string {\n return extractBleHexId(descriptor.name) || descriptor.path;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,4BAAoC;AAMpC,SAAS,gBAAgB,MAAmC;AAC1D,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,QAAQ,KAAK,MAAM,qBAAqB;AAC9C,SAAO,QAAQ,MAAM,CAAC,EAAE,YAAY,IAAI;AAC1C;AAMA,eAAe,uBAAuB,KAA2B;AAC/D,UAAQ,KAAK;AAAA,IACX,KAAK;AAEH,aAAO,OAAO,uDAAuD;AAAA,IACvE,KAAK;AAEH,aAAO,OAAO,qCAAqC;AAAA,IACrD,KAAK;AAEH,aAAO,OAAO,qDAAqD;AAAA,IACrE;AACE,YAAM,IAAI,MAAM,+BAA+B,GAAG,EAAE;AAAA,EACxD;AACF;AAUO,IAAM,qBAAN,cAAiC,0CAAoB;AAAA,EAC1D,YAAY,SAAqC;AAC/C;AAAA,MACE,YAAY;AACV,cAAM,EAAE,sBAAsB,IAAI,MAAM,OACtC,iDACF;AACA,eAAO;AAAA,MACT;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,KAAK,SAAS;AAAA,QACd,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EAEmB,kBAAkB,YAAsC;AACzE,WAAO,gBAAgB,WAAW,IAAI,KAAK,WAAW;AAAA,EACxD;AACF;;;AD5CO,SAAS,yBAAyB,KAAwB;AAC/D,SAAO,IAAI,mBAAmB,EAAE,IAAI,CAAC;AACvC;","names":[]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
// src/LedgerBleConnector.ts
|
|
2
|
-
import { LedgerConnectorBase
|
|
2
|
+
import { LedgerConnectorBase } from "@bytezhang/ledger-adapter";
|
|
3
3
|
function extractBleHexId(name) {
|
|
4
4
|
if (!name) return void 0;
|
|
5
5
|
const match = name.match(/\b([0-9A-Fa-f]{4})$/);
|
|
6
6
|
return match ? match[1].toUpperCase() : void 0;
|
|
7
7
|
}
|
|
8
|
+
async function metroSignerKitImporter(pkg) {
|
|
9
|
+
switch (pkg) {
|
|
10
|
+
case "@ledgerhq/device-signer-kit-ethereum":
|
|
11
|
+
return import("@ledgerhq/device-signer-kit-ethereum/lib/cjs/index.js");
|
|
12
|
+
case "@ledgerhq/device-signer-kit-bitcoin":
|
|
13
|
+
return import("@ledgerhq/device-signer-kit-bitcoin");
|
|
14
|
+
case "@ledgerhq/device-signer-kit-solana":
|
|
15
|
+
return import("@ledgerhq/device-signer-kit-solana/lib/cjs/index.js");
|
|
16
|
+
default:
|
|
17
|
+
throw new Error(`Unknown signer kit package: ${pkg}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
8
20
|
var LedgerBleConnector = class extends LedgerConnectorBase {
|
|
9
21
|
constructor(options) {
|
|
10
22
|
super(
|
|
@@ -12,33 +24,16 @@ var LedgerBleConnector = class extends LedgerConnectorBase {
|
|
|
12
24
|
const { rnBleTransportFactory } = await import("@ledgerhq/device-transport-kit-react-native-ble");
|
|
13
25
|
return rnBleTransportFactory;
|
|
14
26
|
},
|
|
15
|
-
{
|
|
27
|
+
{
|
|
28
|
+
connectionType: "ble",
|
|
29
|
+
dmk: options?.dmk,
|
|
30
|
+
importSignerKit: metroSignerKitImporter
|
|
31
|
+
}
|
|
16
32
|
);
|
|
17
33
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Override connectId resolution for BLE devices.
|
|
20
|
-
* Always attempts to extract the stable 4-digit HEX from the device name.
|
|
21
|
-
*/
|
|
22
34
|
_resolveConnectId(descriptor) {
|
|
23
35
|
return extractBleHexId(descriptor.name) || descriptor.path;
|
|
24
36
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Override SOL signer creation for Metro (React Native).
|
|
27
|
-
* `@ledgerhq/device-signer-kit-solana` has no `main` field — Metro can't
|
|
28
|
-
* resolve it via the bare specifier. Use the explicit CJS path instead.
|
|
29
|
-
*/
|
|
30
|
-
async _createSolSigner(sessionId) {
|
|
31
|
-
const dmk = await this._getOrCreateDmk();
|
|
32
|
-
const { SignerSolanaBuilder } = await import(
|
|
33
|
-
// @ts-ignore Metro needs explicit CJS path; no "main" field in package
|
|
34
|
-
"@ledgerhq/device-signer-kit-solana/lib/cjs/index.js"
|
|
35
|
-
);
|
|
36
|
-
const sdkSigner = new SignerSolanaBuilder({
|
|
37
|
-
dmk,
|
|
38
|
-
sessionId
|
|
39
|
-
}).build();
|
|
40
|
-
return new SignerSol(sdkSigner);
|
|
41
|
-
}
|
|
42
37
|
};
|
|
43
38
|
|
|
44
39
|
// src/index.ts
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/LedgerBleConnector.ts","../src/index.ts"],"sourcesContent":["import type { DeviceDescriptor } from '@bytezhang/hardware-wallet-core';\nimport type { IDmk } from '@bytezhang/ledger-adapter';\nimport { LedgerConnectorBase
|
|
1
|
+
{"version":3,"sources":["../src/LedgerBleConnector.ts","../src/index.ts"],"sourcesContent":["import type { DeviceDescriptor } from '@bytezhang/hardware-wallet-core';\nimport type { IDmk } from '@bytezhang/ledger-adapter';\nimport { LedgerConnectorBase } from '@bytezhang/ledger-adapter';\n\n// ---------------------------------------------------------------------------\n// Utilities\n// ---------------------------------------------------------------------------\n\nfunction extractBleHexId(name?: string): string | undefined {\n if (!name) return undefined;\n const match = name.match(/\\b([0-9A-Fa-f]{4})$/);\n return match ? match[1].toUpperCase() : undefined;\n}\n\n/**\n * Metro (React Native) can't resolve packages that only have \"exports\"\n * (no \"main\" field). This importer uses explicit CJS paths.\n */\nasync function metroSignerKitImporter(pkg: string): Promise<any> {\n switch (pkg) {\n case '@ledgerhq/device-signer-kit-ethereum':\n // @ts-ignore Metro needs explicit CJS path\n return import('@ledgerhq/device-signer-kit-ethereum/lib/cjs/index.js');\n case '@ledgerhq/device-signer-kit-bitcoin':\n // bitcoin has \"main\" field, bare import works, but use CJS for consistency\n return import('@ledgerhq/device-signer-kit-bitcoin');\n case '@ledgerhq/device-signer-kit-solana':\n // @ts-ignore Metro needs explicit CJS path\n return import('@ledgerhq/device-signer-kit-solana/lib/cjs/index.js');\n default:\n throw new Error(`Unknown signer kit package: ${pkg}`);\n }\n}\n\n// ---------------------------------------------------------------------------\n// LedgerBleConnector\n// ---------------------------------------------------------------------------\n\nexport interface LedgerBleConnectorOptions {\n dmk?: IDmk;\n}\n\nexport class LedgerBleConnector extends LedgerConnectorBase {\n constructor(options?: LedgerBleConnectorOptions) {\n super(\n async () => {\n const { rnBleTransportFactory } = await import(\n '@ledgerhq/device-transport-kit-react-native-ble'\n );\n return rnBleTransportFactory;\n },\n {\n connectionType: 'ble',\n dmk: options?.dmk,\n importSignerKit: metroSignerKitImporter,\n },\n );\n }\n\n protected override _resolveConnectId(descriptor: DeviceDescriptor): string {\n return extractBleHexId(descriptor.name) || descriptor.path;\n }\n}\n","import type { IConnector } from '@bytezhang/hardware-wallet-core';\nimport type { IDmk } from '@bytezhang/ledger-adapter';\n\nimport {\n LedgerBleConnector,\n} from './LedgerBleConnector';\nimport type { LedgerBleConnectorOptions } from './LedgerBleConnector';\n\nexport { LedgerBleConnector };\nexport type { LedgerBleConnectorOptions };\n\n/**\n * Create a LedgerBleConnector.\n *\n * @param dmk - Optional pre-built DMK instance. If omitted, the connector\n * will lazily create one using `@ledgerhq/device-management-kit`\n * and `@ledgerhq/device-transport-kit-react-native-ble`.\n */\nexport function createLedgerBleConnector(dmk?: IDmk): IConnector {\n return new LedgerBleConnector({ dmk });\n}\n"],"mappings":";AAEA,SAAS,2BAA2B;AAMpC,SAAS,gBAAgB,MAAmC;AAC1D,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,QAAQ,KAAK,MAAM,qBAAqB;AAC9C,SAAO,QAAQ,MAAM,CAAC,EAAE,YAAY,IAAI;AAC1C;AAMA,eAAe,uBAAuB,KAA2B;AAC/D,UAAQ,KAAK;AAAA,IACX,KAAK;AAEH,aAAO,OAAO,uDAAuD;AAAA,IACvE,KAAK;AAEH,aAAO,OAAO,qCAAqC;AAAA,IACrD,KAAK;AAEH,aAAO,OAAO,qDAAqD;AAAA,IACrE;AACE,YAAM,IAAI,MAAM,+BAA+B,GAAG,EAAE;AAAA,EACxD;AACF;AAUO,IAAM,qBAAN,cAAiC,oBAAoB;AAAA,EAC1D,YAAY,SAAqC;AAC/C;AAAA,MACE,YAAY;AACV,cAAM,EAAE,sBAAsB,IAAI,MAAM,OACtC,iDACF;AACA,eAAO;AAAA,MACT;AAAA,MACA;AAAA,QACE,gBAAgB;AAAA,QAChB,KAAK,SAAS;AAAA,QACd,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EAEmB,kBAAkB,YAAsC;AACzE,WAAO,gBAAgB,WAAW,IAAI,KAAK,WAAW;AAAA,EACxD;AACF;;;AC5CO,SAAS,yBAAyB,KAAwB;AAC/D,SAAO,IAAI,mBAAmB,EAAE,IAAI,CAAC;AACvC;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytezhang/hardware-ledger-connector-ble",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.26",
|
|
4
4
|
"description": "IConnector implementation for Ledger hardware wallets via React Native BLE",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"license": "MIT",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"connector"
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@bytezhang/hardware-wallet-core": "0.0.
|
|
50
|
-
"@bytezhang/ledger-adapter": "0.0.
|
|
49
|
+
"@bytezhang/hardware-wallet-core": "0.0.26",
|
|
50
|
+
"@bytezhang/ledger-adapter": "0.0.26",
|
|
51
51
|
"@ledgerhq/device-management-kit": "^1.1.0",
|
|
52
52
|
"@ledgerhq/device-signer-kit-ethereum": "^1.9.0",
|
|
53
53
|
"@ledgerhq/device-signer-kit-bitcoin": "^1.0.0",
|