@ledgerhq/hw-app-btc 10.1.2-nightly.0 → 10.2.0-nightly.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/hw-app-btc@10.1.1 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-btc
2
+ > @ledgerhq/hw-app-btc@10.1.2-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-btc
3
3
  > tsc && tsc -m ES6 --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ledgerhq/hw-app-btc
2
2
 
3
+ ## 10.2.0-nightly.1
4
+
5
+ ### Minor Changes
6
+
7
+ - [#5675](https://github.com/LedgerHQ/ledger-live/pull/5675) [`5fdd5f0`](https://github.com/LedgerHQ/ledger-live/commit/5fdd5f0acab5f990d46ad20d245315f38be0f08a) Thanks [@chabroA](https://github.com/chabroA)! - make Qtum work with old and new nano app interfaces
8
+
3
9
  ## 10.1.2-nightly.0
4
10
 
5
11
  ### Patch Changes
package/lib/Btc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Btc.d.ts","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,CAAC;AAI9B;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAAkB;gBAEnB,EACV,SAAS,EACT,WAAmB,EACnB,QAAoB,GACrB,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAuBD;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;;OAQG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInE;;;;OAIG;IACH,gBAAgB,CACd,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW;IAUd;;;;MAIE;IACF,2BAA2B,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM;IAInD,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,OAAO,CAAC,MAAM,CAAC;IAIlB,qBAAqB,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,MAAM;IAIH,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;CA6BxD"}
1
+ {"version":3,"file":"Btc.d.ts","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,CAAC;AAI9B;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAAkB;gBAEnB,EACV,SAAS,EACT,WAAmB,EACnB,QAAoB,GACrB,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA8BD;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;;OAQG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInE;;;;OAIG;IACH,gBAAgB,CACd,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW;IAUd;;;;MAIE;IACF,2BAA2B,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM;IAInD,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,OAAO,CAAC,MAAM,CAAC;IAIlB,qBAAqB,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,MAAM;IAIH,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;CAmCxD"}
package/lib/Btc.js CHANGED
@@ -12,6 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ const semver_1 = __importDefault(require("semver"));
15
16
  const BtcNew_1 = __importDefault(require("./BtcNew"));
16
17
  const BtcOld_1 = __importDefault(require("./BtcOld"));
17
18
  const getTrustedInput_1 = require("./getTrustedInput");
@@ -40,13 +41,18 @@ class Btc {
40
41
  "getTrustedInput",
41
42
  "getTrustedInputBIP143",
42
43
  ], scrambleKey);
43
- // new APDU (nano app API) for bitcoin and old APDU for altcoin
44
- if (currency === "bitcoin" || currency === "bitcoin_testnet") {
45
- this._impl = new BtcNew_1.default(new appClient_1.AppClient(this._transport));
46
- }
47
- else {
48
- this._impl = new BtcOld_1.default(this._transport);
49
- }
44
+ this._impl = (() => {
45
+ switch (currency) {
46
+ case "bitcoin":
47
+ case "bitcoin_testnet":
48
+ case "qtum":
49
+ // new APDU (nano app API) for currencies using app-bitcoin-new implementation
50
+ return new BtcNew_1.default(new appClient_1.AppClient(this._transport));
51
+ default:
52
+ // old APDU (legacy API) for currencies using legacy bitcoin app implementation
53
+ return new BtcOld_1.default(this._transport);
54
+ }
55
+ })();
50
56
  }
51
57
  /**
52
58
  * Get an XPUB with a ledger device
@@ -206,24 +212,30 @@ class Btc {
206
212
  // if BtcOld was instantiated, stick with it
207
213
  if (this._impl instanceof BtcOld_1.default)
208
214
  return this._impl;
209
- const appAndVersion = yield (0, getAppAndVersion_1.getAppAndVersion)(this._transport);
210
- let isBtcLegacy = true; // default for all altcoins
211
- if (appAndVersion.name === "Bitcoin" || appAndVersion.name === "Bitcoin Test") {
212
- const [major, minor] = appAndVersion.version.split(".");
213
- // we use the legacy protocol for versions below 2.1.0 of the Bitcoin app.
214
- isBtcLegacy = parseInt(major) <= 1 || (parseInt(major) == 2 && parseInt(minor) == 0);
215
- }
216
- else if (appAndVersion.name === "Bitcoin Legacy" ||
217
- appAndVersion.name === "Bitcoin Test Legacy") {
218
- // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
219
- isBtcLegacy = true;
220
- }
221
- else if (appAndVersion.name === "Exchange") {
222
- // We can't query the version of the Bitcoin app if we're coming from Exchange;
223
- // therefore, we use a workaround to distinguish legacy and new versions.
224
- // This can be removed once Ledger Live enforces minimum bitcoin version >= 2.1.0.
225
- isBtcLegacy = yield (0, getAppAndVersion_1.checkIsBtcLegacy)(this._transport);
226
- }
215
+ const { name, version } = yield (0, getAppAndVersion_1.getAppAndVersion)(this._transport);
216
+ const isBtcLegacy = yield (() => __awaiter(this, void 0, void 0, function* () {
217
+ switch (name) {
218
+ case "Bitcoin":
219
+ case "Bitcoin Test": {
220
+ // we use the legacy protocol for versions below 2.1.0 of the Bitcoin app.
221
+ return semver_1.default.lt(version, "2.1.0");
222
+ }
223
+ case "Bitcoin Legacy":
224
+ case "Bitcoin Test Legacy":
225
+ // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
226
+ return true;
227
+ case "Exchange":
228
+ // We can't query the version of the Bitcoin app if we're coming from Exchange;
229
+ // therefore, we use a workaround to distinguish legacy and new versions.
230
+ // This can be removed once Ledger Live enforces minimum bitcoin version >= 2.1.0.
231
+ return yield (0, getAppAndVersion_1.checkIsBtcLegacy)(this._transport);
232
+ case "Qtum":
233
+ // we use the legacy protocol for versions below 3.0.0 of the Qtum app.
234
+ return semver_1.default.lt(version, "3.0.0");
235
+ default:
236
+ return true;
237
+ }
238
+ }))();
227
239
  if (isBtcLegacy) {
228
240
  this._impl = new BtcOld_1.default(this._transport);
229
241
  }
package/lib/Btc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Btc.js","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Btc.js","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":"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"}
package/lib/BtcNew.d.ts CHANGED
@@ -130,4 +130,5 @@ export default class BtcNew {
130
130
  */
131
131
  private signPsbt;
132
132
  }
133
+ export declare function isPathNormal(path: string): boolean;
133
134
  //# sourceMappingURL=BtcNew.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BtcNew.d.ts","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQzD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,aAAa,CAAC,EAClB,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYnB;;;;;;OAMG;IACG,kBAAkB,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAuBF;;;;;;;;;;;;;;OAcG;YACW,gBAAgB;IAyB9B;;;;;;;OAOG;IACG,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2G1E;;;;OAIG;IACG,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACrF,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IAiBF;;;;;;;OAOG;YACW,cAAc;IAoB5B;;;;OAIG;YACW,QAAQ;IAuCtB;;;;;;;;OAQG;YACW,QAAQ;CA6BvB"}
1
+ {"version":3,"file":"BtcNew.d.ts","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQzD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,aAAa,CAAC,EAClB,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYnB;;;;;;OAMG;IACG,kBAAkB,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAuBF;;;;;;;;;;;;;;OAcG;YACW,gBAAgB;IAyB9B;;;;;;;OAOG;IACG,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2G1E;;;;OAIG;IACG,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACrF,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IAiBF;;;;;;;OAOG;YACW,cAAc;IAoB5B;;;;OAIG;YACW,QAAQ;IAuCtB;;;;;;;;OAQG;YACW,QAAQ;CA6BvB;AAuED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA8BlD"}
package/lib/BtcNew.js CHANGED
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.isPathNormal = void 0;
12
13
  const bitcoinjs_lib_1 = require("bitcoinjs-lib");
13
14
  const tiny_secp256k1_1 = require("tiny-secp256k1");
14
15
  const bip32_1 = require("./bip32");
@@ -369,11 +370,11 @@ function accountTypeFromArg(arg, psbt, masterFp) {
369
370
  /*
370
371
  The new protocol only allows standard path.
371
372
  Standard paths are (currently):
372
- M/44'/(1|0)'/X'
373
- M/49'/(1|0)'/X'
374
- M/84'/(1|0)'/X'
375
- M/86'/(1|0)'/X'
376
- M/48'/(1|0)'/X'/Y'
373
+ M/44'/(1|0|88)'/X'
374
+ M/49'/(1|0|88)'/X'
375
+ M/84'/(1|0|88)'/X'
376
+ M/86'/(1|0|88)'/X'
377
+ M/48'/(1|0|88)'/X'/Y'
377
378
  followed by "", "(0|1)", or "(0|1)/b", where a and b are
378
379
  non-hardened. For example, the following paths are standard
379
380
  M/48'/1'/99'/7'
@@ -384,27 +385,48 @@ function accountTypeFromArg(arg, psbt, masterFp) {
384
385
  M/48'/0'/99'/7'/1/17/2 // Too many non-hardened derivation steps
385
386
  M/199'/0'/1'/0/88 // Not a known purpose 199
386
387
  M/86'/1'/99'/2 // Change path item must be 0 or 1
388
+
389
+ Useful resource on derivation paths: https://learnmeabitcoin.com/technical/derivation-paths
387
390
  */
391
+ //path is not deepest hardened node of a standard path or deeper, use BtcOld
392
+ const H = 0x80000000; //HARDENED from bip32
393
+ const VALID_COIN_TYPES = [
394
+ 0,
395
+ 1,
396
+ 88, // Qtum
397
+ ];
398
+ const VALID_SINGLE_SIG_PURPOSES = [
399
+ 44,
400
+ 49,
401
+ 84,
402
+ 86, // BIP86 - https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
403
+ ];
404
+ const VALID_MULTISIG_PURPOSES = [
405
+ 48, // BIP48 - https://github.com/bitcoin/bips/blob/master/bip-0048.mediawiki
406
+ ];
407
+ const hard = (n) => n >= H;
408
+ const soft = (n) => n === undefined || n < H;
409
+ const change = (n) => n === undefined || n === 0 || n === 1;
410
+ const validCoinPathPartsSet = new Set(VALID_COIN_TYPES.map(t => t + H));
411
+ const validSingleSigPurposePathPartsSet = new Set(VALID_SINGLE_SIG_PURPOSES.map(t => t + H));
412
+ const validMultiSigPurposePathPartsSet = new Set(VALID_MULTISIG_PURPOSES.map(t => t + H));
388
413
  function isPathNormal(path) {
389
- //path is not deepest hardened node of a standard path or deeper, use BtcOld
390
- const h = 0x80000000; //HARDENED from bip32
391
414
  const pathElems = (0, bip32_1.pathStringToArray)(path);
392
- const hard = (n) => n >= h;
393
- const soft = (n) => n === undefined || n < h;
394
- const change = (n) => n === undefined || n === 0 || n === 1;
415
+ // Single sig
395
416
  if (pathElems.length >= 3 &&
396
417
  pathElems.length <= 5 &&
397
- [44 + h, 49 + h, 84 + h, 86 + h].some(v => v == pathElems[0]) &&
398
- [0 + h, 1 + h].some(v => v == pathElems[1]) &&
418
+ validSingleSigPurposePathPartsSet.has(pathElems[0]) &&
419
+ validCoinPathPartsSet.has(pathElems[1]) &&
399
420
  hard(pathElems[2]) &&
400
421
  change(pathElems[3]) &&
401
422
  soft(pathElems[4])) {
402
423
  return true;
403
424
  }
425
+ // Multi sig
404
426
  if (pathElems.length >= 4 &&
405
427
  pathElems.length <= 6 &&
406
- 48 + h == pathElems[0] &&
407
- [0 + h, 1 + h].some(v => v == pathElems[1]) &&
428
+ validMultiSigPurposePathPartsSet.has(pathElems[0]) &&
429
+ validCoinPathPartsSet.has(pathElems[1]) &&
408
430
  hard(pathElems[2]) &&
409
431
  hard(pathElems[3]) &&
410
432
  change(pathElems[4]) &&
@@ -413,4 +435,5 @@ function isPathNormal(path) {
413
435
  }
414
436
  return false;
415
437
  }
438
+ exports.isPathNormal = isPathNormal;
416
439
  //# sourceMappingURL=BtcNew.js.map
package/lib/BtcNew.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"BtcNew.js","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BtcNew.js","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Btc.d.ts","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,CAAC;AAI9B;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAAkB;gBAEnB,EACV,SAAS,EACT,WAAmB,EACnB,QAAoB,GACrB,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAuBD;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;;OAQG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInE;;;;OAIG;IACH,gBAAgB,CACd,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW;IAUd;;;;MAIE;IACF,2BAA2B,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM;IAInD,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,OAAO,CAAC,MAAM,CAAC;IAIlB,qBAAqB,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,MAAM;IAIH,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;CA6BxD"}
1
+ {"version":3,"file":"Btc.d.ts","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,CAAC;AAI9B;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,KAAK,CAAkB;gBAEnB,EACV,SAAS,EACT,WAAmB,EACnB,QAAoB,GACrB,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA8BD;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;;OAQG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInE;;;;OAIG;IACH,gBAAgB,CACd,cAAc,EAAE,MAAM,EACtB,iBAAiB,GAAE,OAAO,GAAG,IAAI,GAAG,SAAiB,EACrD,YAAY,UAAQ,EACpB,YAAY,UAAQ,EACpB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,WAAW;IAUd;;;;MAIE;IACF,2BAA2B,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM;IAInD,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,OAAO,CAAC,MAAM,CAAC;IAIlB,qBAAqB,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,WAAW,GAAE,KAAK,CAAC,MAAM,CAAM,GAC9B,MAAM;IAIH,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;CAmCxD"}
package/lib-es/Btc.js CHANGED
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import semver from "semver";
10
11
  import BtcNew from "./BtcNew";
11
12
  import BtcOld from "./BtcOld";
12
13
  import { getTrustedInput } from "./getTrustedInput";
@@ -35,13 +36,18 @@ export default class Btc {
35
36
  "getTrustedInput",
36
37
  "getTrustedInputBIP143",
37
38
  ], scrambleKey);
38
- // new APDU (nano app API) for bitcoin and old APDU for altcoin
39
- if (currency === "bitcoin" || currency === "bitcoin_testnet") {
40
- this._impl = new BtcNew(new AppClient(this._transport));
41
- }
42
- else {
43
- this._impl = new BtcOld(this._transport);
44
- }
39
+ this._impl = (() => {
40
+ switch (currency) {
41
+ case "bitcoin":
42
+ case "bitcoin_testnet":
43
+ case "qtum":
44
+ // new APDU (nano app API) for currencies using app-bitcoin-new implementation
45
+ return new BtcNew(new AppClient(this._transport));
46
+ default:
47
+ // old APDU (legacy API) for currencies using legacy bitcoin app implementation
48
+ return new BtcOld(this._transport);
49
+ }
50
+ })();
45
51
  }
46
52
  /**
47
53
  * Get an XPUB with a ledger device
@@ -201,24 +207,30 @@ export default class Btc {
201
207
  // if BtcOld was instantiated, stick with it
202
208
  if (this._impl instanceof BtcOld)
203
209
  return this._impl;
204
- const appAndVersion = yield getAppAndVersion(this._transport);
205
- let isBtcLegacy = true; // default for all altcoins
206
- if (appAndVersion.name === "Bitcoin" || appAndVersion.name === "Bitcoin Test") {
207
- const [major, minor] = appAndVersion.version.split(".");
208
- // we use the legacy protocol for versions below 2.1.0 of the Bitcoin app.
209
- isBtcLegacy = parseInt(major) <= 1 || (parseInt(major) == 2 && parseInt(minor) == 0);
210
- }
211
- else if (appAndVersion.name === "Bitcoin Legacy" ||
212
- appAndVersion.name === "Bitcoin Test Legacy") {
213
- // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
214
- isBtcLegacy = true;
215
- }
216
- else if (appAndVersion.name === "Exchange") {
217
- // We can't query the version of the Bitcoin app if we're coming from Exchange;
218
- // therefore, we use a workaround to distinguish legacy and new versions.
219
- // This can be removed once Ledger Live enforces minimum bitcoin version >= 2.1.0.
220
- isBtcLegacy = yield checkIsBtcLegacy(this._transport);
221
- }
210
+ const { name, version } = yield getAppAndVersion(this._transport);
211
+ const isBtcLegacy = yield (() => __awaiter(this, void 0, void 0, function* () {
212
+ switch (name) {
213
+ case "Bitcoin":
214
+ case "Bitcoin Test": {
215
+ // we use the legacy protocol for versions below 2.1.0 of the Bitcoin app.
216
+ return semver.lt(version, "2.1.0");
217
+ }
218
+ case "Bitcoin Legacy":
219
+ case "Bitcoin Test Legacy":
220
+ // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
221
+ return true;
222
+ case "Exchange":
223
+ // We can't query the version of the Bitcoin app if we're coming from Exchange;
224
+ // therefore, we use a workaround to distinguish legacy and new versions.
225
+ // This can be removed once Ledger Live enforces minimum bitcoin version >= 2.1.0.
226
+ return yield checkIsBtcLegacy(this._transport);
227
+ case "Qtum":
228
+ // we use the legacy protocol for versions below 3.0.0 of the Qtum app.
229
+ return semver.lt(version, "3.0.0");
230
+ default:
231
+ return true;
232
+ }
233
+ }))();
222
234
  if (isBtcLegacy) {
223
235
  this._impl = new BtcOld(this._transport);
224
236
  }
package/lib-es/Btc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Btc.js","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Btc.js","sourceRoot":"","sources":["../src/Btc.ts"],"names":[],"mappings":"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"}
@@ -130,4 +130,5 @@ export default class BtcNew {
130
130
  */
131
131
  private signPsbt;
132
132
  }
133
+ export declare function isPathNormal(path: string): boolean;
133
134
  //# sourceMappingURL=BtcNew.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BtcNew.d.ts","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQzD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,aAAa,CAAC,EAClB,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYnB;;;;;;OAMG;IACG,kBAAkB,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAuBF;;;;;;;;;;;;;;OAcG;YACW,gBAAgB;IAyB9B;;;;;;;OAOG;IACG,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2G1E;;;;OAIG;IACG,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACrF,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IAiBF;;;;;;;OAOG;YACW,cAAc;IAoB5B;;;;OAIG;YACW,QAAQ;IAuCtB;;;;;;;;OAQG;YACW,QAAQ;CA6BvB"}
1
+ {"version":3,"file":"BtcNew.d.ts","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQzD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,aAAa,CAAC,EAClB,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYnB;;;;;;OAMG;IACG,kBAAkB,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAuBF;;;;;;;;;;;;;;OAcG;YACW,gBAAgB;IAyB9B;;;;;;;OAOG;IACG,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2G1E;;;;OAIG;IACG,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACrF,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IAiBF;;;;;;;OAOG;YACW,cAAc;IAoB5B;;;;OAIG;YACW,QAAQ;IAuCtB;;;;;;;;OAQG;YACW,QAAQ;CA6BvB;AAuED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA8BlD"}
package/lib-es/BtcNew.js CHANGED
@@ -366,11 +366,11 @@ function accountTypeFromArg(arg, psbt, masterFp) {
366
366
  /*
367
367
  The new protocol only allows standard path.
368
368
  Standard paths are (currently):
369
- M/44'/(1|0)'/X'
370
- M/49'/(1|0)'/X'
371
- M/84'/(1|0)'/X'
372
- M/86'/(1|0)'/X'
373
- M/48'/(1|0)'/X'/Y'
369
+ M/44'/(1|0|88)'/X'
370
+ M/49'/(1|0|88)'/X'
371
+ M/84'/(1|0|88)'/X'
372
+ M/86'/(1|0|88)'/X'
373
+ M/48'/(1|0|88)'/X'/Y'
374
374
  followed by "", "(0|1)", or "(0|1)/b", where a and b are
375
375
  non-hardened. For example, the following paths are standard
376
376
  M/48'/1'/99'/7'
@@ -381,27 +381,48 @@ function accountTypeFromArg(arg, psbt, masterFp) {
381
381
  M/48'/0'/99'/7'/1/17/2 // Too many non-hardened derivation steps
382
382
  M/199'/0'/1'/0/88 // Not a known purpose 199
383
383
  M/86'/1'/99'/2 // Change path item must be 0 or 1
384
+
385
+ Useful resource on derivation paths: https://learnmeabitcoin.com/technical/derivation-paths
384
386
  */
385
- function isPathNormal(path) {
386
- //path is not deepest hardened node of a standard path or deeper, use BtcOld
387
- const h = 0x80000000; //HARDENED from bip32
387
+ //path is not deepest hardened node of a standard path or deeper, use BtcOld
388
+ const H = 0x80000000; //HARDENED from bip32
389
+ const VALID_COIN_TYPES = [
390
+ 0,
391
+ 1,
392
+ 88, // Qtum
393
+ ];
394
+ const VALID_SINGLE_SIG_PURPOSES = [
395
+ 44,
396
+ 49,
397
+ 84,
398
+ 86, // BIP86 - https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
399
+ ];
400
+ const VALID_MULTISIG_PURPOSES = [
401
+ 48, // BIP48 - https://github.com/bitcoin/bips/blob/master/bip-0048.mediawiki
402
+ ];
403
+ const hard = (n) => n >= H;
404
+ const soft = (n) => n === undefined || n < H;
405
+ const change = (n) => n === undefined || n === 0 || n === 1;
406
+ const validCoinPathPartsSet = new Set(VALID_COIN_TYPES.map(t => t + H));
407
+ const validSingleSigPurposePathPartsSet = new Set(VALID_SINGLE_SIG_PURPOSES.map(t => t + H));
408
+ const validMultiSigPurposePathPartsSet = new Set(VALID_MULTISIG_PURPOSES.map(t => t + H));
409
+ export function isPathNormal(path) {
388
410
  const pathElems = pathStringToArray(path);
389
- const hard = (n) => n >= h;
390
- const soft = (n) => n === undefined || n < h;
391
- const change = (n) => n === undefined || n === 0 || n === 1;
411
+ // Single sig
392
412
  if (pathElems.length >= 3 &&
393
413
  pathElems.length <= 5 &&
394
- [44 + h, 49 + h, 84 + h, 86 + h].some(v => v == pathElems[0]) &&
395
- [0 + h, 1 + h].some(v => v == pathElems[1]) &&
414
+ validSingleSigPurposePathPartsSet.has(pathElems[0]) &&
415
+ validCoinPathPartsSet.has(pathElems[1]) &&
396
416
  hard(pathElems[2]) &&
397
417
  change(pathElems[3]) &&
398
418
  soft(pathElems[4])) {
399
419
  return true;
400
420
  }
421
+ // Multi sig
401
422
  if (pathElems.length >= 4 &&
402
423
  pathElems.length <= 6 &&
403
- 48 + h == pathElems[0] &&
404
- [0 + h, 1 + h].some(v => v == pathElems[1]) &&
424
+ validMultiSigPurposePathPartsSet.has(pathElems[0]) &&
425
+ validCoinPathPartsSet.has(pathElems[1]) &&
405
426
  hard(pathElems[2]) &&
406
427
  hard(pathElems[3]) &&
407
428
  change(pathElems[4]) &&
@@ -1 +1 @@
1
- {"version":3,"file":"BtcNew.js","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BtcNew.js","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-app-btc",
3
- "version": "10.1.2-nightly.0",
3
+ "version": "10.2.0-nightly.1",
4
4
  "description": "Ledger Hardware Wallet Bitcoin Application API",
5
5
  "keywords": [
6
6
  "Ledger",
package/src/Btc.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import semver from "semver";
1
2
  import type Transport from "@ledgerhq/hw-transport";
2
3
  import BtcNew from "./BtcNew";
3
4
  import BtcOld from "./BtcOld";
@@ -49,12 +50,19 @@ export default class Btc {
49
50
  ],
50
51
  scrambleKey,
51
52
  );
52
- // new APDU (nano app API) for bitcoin and old APDU for altcoin
53
- if (currency === "bitcoin" || currency === "bitcoin_testnet") {
54
- this._impl = new BtcNew(new AppClient(this._transport));
55
- } else {
56
- this._impl = new BtcOld(this._transport);
57
- }
53
+
54
+ this._impl = (() => {
55
+ switch (currency) {
56
+ case "bitcoin":
57
+ case "bitcoin_testnet":
58
+ case "qtum":
59
+ // new APDU (nano app API) for currencies using app-bitcoin-new implementation
60
+ return new BtcNew(new AppClient(this._transport));
61
+ default:
62
+ // old APDU (legacy API) for currencies using legacy bitcoin app implementation
63
+ return new BtcOld(this._transport);
64
+ }
65
+ })();
58
66
  }
59
67
 
60
68
  /**
@@ -263,25 +271,31 @@ export default class Btc {
263
271
  // if BtcOld was instantiated, stick with it
264
272
  if (this._impl instanceof BtcOld) return this._impl;
265
273
 
266
- const appAndVersion = await getAppAndVersion(this._transport);
267
- let isBtcLegacy = true; // default for all altcoins
274
+ const { name, version } = await getAppAndVersion(this._transport);
268
275
 
269
- if (appAndVersion.name === "Bitcoin" || appAndVersion.name === "Bitcoin Test") {
270
- const [major, minor] = appAndVersion.version.split(".");
271
- // we use the legacy protocol for versions below 2.1.0 of the Bitcoin app.
272
- isBtcLegacy = parseInt(major) <= 1 || (parseInt(major) == 2 && parseInt(minor) == 0);
273
- } else if (
274
- appAndVersion.name === "Bitcoin Legacy" ||
275
- appAndVersion.name === "Bitcoin Test Legacy"
276
- ) {
277
- // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
278
- isBtcLegacy = true;
279
- } else if (appAndVersion.name === "Exchange") {
280
- // We can't query the version of the Bitcoin app if we're coming from Exchange;
281
- // therefore, we use a workaround to distinguish legacy and new versions.
282
- // This can be removed once Ledger Live enforces minimum bitcoin version >= 2.1.0.
283
- isBtcLegacy = await checkIsBtcLegacy(this._transport);
284
- }
276
+ const isBtcLegacy = await (async () => {
277
+ switch (name) {
278
+ case "Bitcoin":
279
+ case "Bitcoin Test": {
280
+ // we use the legacy protocol for versions below 2.1.0 of the Bitcoin app.
281
+ return semver.lt(version, "2.1.0");
282
+ }
283
+ case "Bitcoin Legacy":
284
+ case "Bitcoin Test Legacy":
285
+ // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
286
+ return true;
287
+ case "Exchange":
288
+ // We can't query the version of the Bitcoin app if we're coming from Exchange;
289
+ // therefore, we use a workaround to distinguish legacy and new versions.
290
+ // This can be removed once Ledger Live enforces minimum bitcoin version >= 2.1.0.
291
+ return await checkIsBtcLegacy(this._transport);
292
+ case "Qtum":
293
+ // we use the legacy protocol for versions below 3.0.0 of the Qtum app.
294
+ return semver.lt(version, "3.0.0");
295
+ default:
296
+ return true;
297
+ }
298
+ })();
285
299
 
286
300
  if (isBtcLegacy) {
287
301
  this._impl = new BtcOld(this._transport);
package/src/BtcNew.ts CHANGED
@@ -445,11 +445,11 @@ function accountTypeFromArg(
445
445
  /*
446
446
  The new protocol only allows standard path.
447
447
  Standard paths are (currently):
448
- M/44'/(1|0)'/X'
449
- M/49'/(1|0)'/X'
450
- M/84'/(1|0)'/X'
451
- M/86'/(1|0)'/X'
452
- M/48'/(1|0)'/X'/Y'
448
+ M/44'/(1|0|88)'/X'
449
+ M/49'/(1|0|88)'/X'
450
+ M/84'/(1|0|88)'/X'
451
+ M/86'/(1|0|88)'/X'
452
+ M/48'/(1|0|88)'/X'/Y'
453
453
  followed by "", "(0|1)", or "(0|1)/b", where a and b are
454
454
  non-hardened. For example, the following paths are standard
455
455
  M/48'/1'/99'/7'
@@ -460,32 +460,60 @@ function accountTypeFromArg(
460
460
  M/48'/0'/99'/7'/1/17/2 // Too many non-hardened derivation steps
461
461
  M/199'/0'/1'/0/88 // Not a known purpose 199
462
462
  M/86'/1'/99'/2 // Change path item must be 0 or 1
463
+
464
+ Useful resource on derivation paths: https://learnmeabitcoin.com/technical/derivation-paths
463
465
  */
464
- function isPathNormal(path: string): boolean {
465
- //path is not deepest hardened node of a standard path or deeper, use BtcOld
466
- const h = 0x80000000; //HARDENED from bip32
467
- const pathElems = pathStringToArray(path);
468
466
 
469
- const hard = (n: number) => n >= h;
470
- const soft = (n: number | undefined) => n === undefined || n < h;
471
- const change = (n: number | undefined) => n === undefined || n === 0 || n === 1;
467
+ //path is not deepest hardened node of a standard path or deeper, use BtcOld
468
+ const H = 0x80000000; //HARDENED from bip32
469
+
470
+ const VALID_COIN_TYPES = [
471
+ 0, // Bitcoin
472
+ 1, // Bitcoin (Testnet)
473
+ 88, // Qtum
474
+ ];
475
+
476
+ const VALID_SINGLE_SIG_PURPOSES = [
477
+ 44, // BIP44 - https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
478
+ 49, // BIP49 - https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki
479
+ 84, // BIP84 - https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki
480
+ 86, // BIP86 - https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
481
+ ];
482
+
483
+ const VALID_MULTISIG_PURPOSES = [
484
+ 48, // BIP48 - https://github.com/bitcoin/bips/blob/master/bip-0048.mediawiki
485
+ ];
472
486
 
487
+ const hard = (n: number) => n >= H;
488
+ const soft = (n: number | undefined) => n === undefined || n < H;
489
+ const change = (n: number | undefined) => n === undefined || n === 0 || n === 1;
490
+
491
+ const validCoinPathPartsSet = new Set(VALID_COIN_TYPES.map(t => t + H));
492
+ const validSingleSigPurposePathPartsSet = new Set(VALID_SINGLE_SIG_PURPOSES.map(t => t + H));
493
+ const validMultiSigPurposePathPartsSet = new Set(VALID_MULTISIG_PURPOSES.map(t => t + H));
494
+
495
+ export function isPathNormal(path: string): boolean {
496
+ const pathElems = pathStringToArray(path);
497
+
498
+ // Single sig
473
499
  if (
474
500
  pathElems.length >= 3 &&
475
501
  pathElems.length <= 5 &&
476
- [44 + h, 49 + h, 84 + h, 86 + h].some(v => v == pathElems[0]) &&
477
- [0 + h, 1 + h].some(v => v == pathElems[1]) &&
502
+ validSingleSigPurposePathPartsSet.has(pathElems[0]) &&
503
+ validCoinPathPartsSet.has(pathElems[1]) &&
478
504
  hard(pathElems[2]) &&
479
505
  change(pathElems[3]) &&
480
506
  soft(pathElems[4])
481
507
  ) {
482
508
  return true;
483
509
  }
510
+
511
+ // Multi sig
484
512
  if (
485
513
  pathElems.length >= 4 &&
486
514
  pathElems.length <= 6 &&
487
- 48 + h == pathElems[0] &&
488
- [0 + h, 1 + h].some(v => v == pathElems[1]) &&
515
+ validMultiSigPurposePathPartsSet.has(pathElems[0]) &&
516
+ validCoinPathPartsSet.has(pathElems[1]) &&
489
517
  hard(pathElems[2]) &&
490
518
  hard(pathElems[3]) &&
491
519
  change(pathElems[4]) &&
@@ -0,0 +1,30 @@
1
+ import { isPathNormal } from "../../src/BtcNew";
2
+
3
+ describe("isPathNormal", () => {
4
+ describe("should return true for normal and supported paths", () => {
5
+ test.each([
6
+ "44'/0'/0'",
7
+ "44'/0'/0'/0/0",
8
+ "84'/0'/0'",
9
+ "84'/0'/0'/0/0",
10
+ "86'/0'/0'",
11
+ "86'/0'/0'/0/0",
12
+ "49'/0'/0'",
13
+ "49'/0'/0'/0/0",
14
+ "48'/1'/99'/7'",
15
+ "86'/1'/99'/0",
16
+ "48'/0'/99'/7'/1/17",
17
+ ])("%s", path => {
18
+ expect(isPathNormal(path)).toEqual(true);
19
+ });
20
+ });
21
+
22
+ describe("should return false for non-normal or non supported paths", () => {
23
+ test.each(["48'/0'/99'", "48'/0'/99'/7'/1/17/2", "199'/0'/1'/0/88", "86'/1'/99'/2"])(
24
+ "%s",
25
+ path => {
26
+ expect(isPathNormal(path)).toEqual(false);
27
+ },
28
+ );
29
+ });
30
+ });
@@ -0,0 +1,37 @@
1
+ import semver from "semver";
2
+
3
+ /**
4
+ * To detect any semver regression that could impact the behavior of the package
5
+ * implementation when working with versions having prefix.
6
+ * One might say this is not necessary since it should already be covered by the
7
+ * semver package own testsuite, but better be safe than sorry.
8
+ *
9
+ * Following this comment:
10
+ * Are you 100% sure this does the same as the current implem?
11
+ * Just being paranoid, because app versions can be different from a clean
12
+ * major.minor.patch
13
+ * e.g they can have -rc0 -next0 or such additional stuff at the end,
14
+ * and it happened in the past that semver doesn't behave as we think it does.
15
+ * cf. https://github.com/LedgerHQ/ledger-live/pull/5675/files#r1417174514
16
+ */
17
+
18
+ describe("semver", () => {
19
+ describe("should be able to properly compare version with prefix", () => {
20
+ it("2.0.0-rc0 should be lower than 2.1.0", () => {
21
+ const version = "2.0.0-rc1";
22
+ expect(semver.lt(version, "2.1.0"));
23
+ });
24
+ it("2.0.0-next0 should be lower than 2.1.0", () => {
25
+ const version = "2.0.0-next0";
26
+ expect(semver.lt(version, "2.1.0"));
27
+ });
28
+ it("2.1.0-rc0 should be greater than 2.1.0", () => {
29
+ const version = "2.1.0-rc0";
30
+ expect(semver.gt(version, "2.1.0"));
31
+ });
32
+ it("2.1.0-next0 should be greater than 2.1.0", () => {
33
+ const version = "2.1.0-next0";
34
+ expect(semver.gt(version, "2.1.0"));
35
+ });
36
+ });
37
+ });