@ledgerhq/hw-app-btc 6.11.1 → 6.11.2

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.
@@ -0,0 +1,230 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ import { crypto } from "bitcoinjs-lib";
17
+ import { pointAddScalar } from "tiny-secp256k1";
18
+ import { BufferWriter } from "../buffertools";
19
+ import { HASH_SIZE, OP_CHECKSIG, OP_DUP, OP_EQUAL, OP_EQUALVERIFY, OP_HASH160, } from "../constants";
20
+ import { hashPublicKey } from "../hashPublicKey";
21
+ var BaseAccount = /** @class */ (function () {
22
+ function BaseAccount(psbt, masterFp) {
23
+ this.psbt = psbt;
24
+ this.masterFp = masterFp;
25
+ }
26
+ return BaseAccount;
27
+ }());
28
+ /**
29
+ * Superclass for single signature accounts. This will make sure that the pubkey
30
+ * arrays and path arrays in the method arguments contains exactly one element
31
+ * and calls an abstract method to do the actual work.
32
+ */
33
+ var SingleKeyAccount = /** @class */ (function (_super) {
34
+ __extends(SingleKeyAccount, _super);
35
+ function SingleKeyAccount() {
36
+ return _super !== null && _super.apply(this, arguments) || this;
37
+ }
38
+ SingleKeyAccount.prototype.spendingCondition = function (pubkeys) {
39
+ if (pubkeys.length != 1) {
40
+ throw new Error("Expected single key, got " + pubkeys.length);
41
+ }
42
+ return this.singleKeyCondition(pubkeys[0]);
43
+ };
44
+ SingleKeyAccount.prototype.setInput = function (i, inputTx, spentOutput, pubkeys, pathElems) {
45
+ if (pubkeys.length != 1) {
46
+ throw new Error("Expected single key, got " + pubkeys.length);
47
+ }
48
+ if (pathElems.length != 1) {
49
+ throw new Error("Expected single path, got " + pathElems.length);
50
+ }
51
+ this.setSingleKeyInput(i, inputTx, spentOutput, pubkeys[0], pathElems[0]);
52
+ };
53
+ SingleKeyAccount.prototype.setOwnOutput = function (i, cond, pubkeys, paths) {
54
+ if (pubkeys.length != 1) {
55
+ throw new Error("Expected single key, got " + pubkeys.length);
56
+ }
57
+ if (paths.length != 1) {
58
+ throw new Error("Expected single path, got " + paths.length);
59
+ }
60
+ this.setSingleKeyOutput(i, cond, pubkeys[0], paths[0]);
61
+ };
62
+ return SingleKeyAccount;
63
+ }(BaseAccount));
64
+ var p2pkh = /** @class */ (function (_super) {
65
+ __extends(p2pkh, _super);
66
+ function p2pkh() {
67
+ return _super !== null && _super.apply(this, arguments) || this;
68
+ }
69
+ p2pkh.prototype.singleKeyCondition = function (pubkey) {
70
+ var buf = new BufferWriter();
71
+ var pubkeyHash = hashPublicKey(pubkey);
72
+ buf.writeSlice(Buffer.of(OP_DUP, OP_HASH160, HASH_SIZE));
73
+ buf.writeSlice(pubkeyHash);
74
+ buf.writeSlice(Buffer.of(OP_EQUALVERIFY, OP_CHECKSIG));
75
+ return { scriptPubKey: buf.buffer() };
76
+ };
77
+ p2pkh.prototype.setSingleKeyInput = function (i, inputTx, _spentOutput, pubkey, path) {
78
+ if (!inputTx) {
79
+ throw new Error("Full input base transaction required");
80
+ }
81
+ this.psbt.setInputNonWitnessUtxo(i, inputTx);
82
+ this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);
83
+ };
84
+ p2pkh.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
85
+ this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);
86
+ };
87
+ p2pkh.prototype.getDescriptorTemplate = function () {
88
+ return "pkh(@0)";
89
+ };
90
+ return p2pkh;
91
+ }(SingleKeyAccount));
92
+ export { p2pkh };
93
+ var p2tr = /** @class */ (function (_super) {
94
+ __extends(p2tr, _super);
95
+ function p2tr() {
96
+ return _super !== null && _super.apply(this, arguments) || this;
97
+ }
98
+ p2tr.prototype.singleKeyCondition = function (pubkey) {
99
+ var xonlyPubkey = pubkey.slice(1); // x-only pubkey
100
+ var buf = new BufferWriter();
101
+ var outputKey = this.getTaprootOutputKey(xonlyPubkey);
102
+ buf.writeSlice(Buffer.of(0x51, 32)); // push1, pubkeylen
103
+ buf.writeSlice(outputKey);
104
+ return { scriptPubKey: buf.buffer() };
105
+ };
106
+ p2tr.prototype.setSingleKeyInput = function (i, _inputTx, spentOutput, pubkey, path) {
107
+ var xonly = pubkey.slice(1);
108
+ this.psbt.setInputTapBip32Derivation(i, xonly, [], this.masterFp, path);
109
+ this.psbt.setInputWitnessUtxo(i, spentOutput.amount, spentOutput.cond.scriptPubKey);
110
+ };
111
+ p2tr.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
112
+ var xonly = pubkey.slice(1);
113
+ this.psbt.setOutputTapBip32Derivation(i, xonly, [], this.masterFp, path);
114
+ };
115
+ p2tr.prototype.getDescriptorTemplate = function () {
116
+ return "tr(@0)";
117
+ };
118
+ /*
119
+ The following two functions are copied from wallet-btc and adapted.
120
+ They should be moved to a library to avoid code reuse.
121
+ */
122
+ p2tr.prototype.hashTapTweak = function (x) {
123
+ // hash_tag(x) = SHA256(SHA256(tag) || SHA256(tag) || x), see BIP340
124
+ // See https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#specification
125
+ var h = crypto.sha256(Buffer.from("TapTweak", "utf-8"));
126
+ return crypto.sha256(Buffer.concat([h, h, x]));
127
+ };
128
+ /**
129
+ * Calculates a taproot output key from an internal key. This output key will be
130
+ * used as witness program in a taproot output. The internal key is tweaked
131
+ * according to recommendation in BIP341:
132
+ * https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#cite_ref-22-0
133
+ *
134
+ * @param internalPubkey A 32 byte x-only taproot internal key
135
+ * @returns The output key
136
+ */
137
+ p2tr.prototype.getTaprootOutputKey = function (internalPubkey) {
138
+ if (internalPubkey.length != 32) {
139
+ throw new Error("Expected 32 byte pubkey. Got " + internalPubkey.length);
140
+ }
141
+ // A BIP32 derived key can be converted to a schnorr pubkey by dropping
142
+ // the first byte, which represent the oddness/evenness. In schnorr all
143
+ // pubkeys are even.
144
+ // https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#public-key-conversion
145
+ var evenEcdsaPubkey = Buffer.concat([Buffer.of(0x02), internalPubkey]);
146
+ var tweak = this.hashTapTweak(internalPubkey);
147
+ // Q = P + int(hash_TapTweak(bytes(P)))G
148
+ var outputEcdsaKey = Buffer.from(pointAddScalar(evenEcdsaPubkey, tweak));
149
+ // Convert to schnorr.
150
+ var outputSchnorrKey = outputEcdsaKey.slice(1);
151
+ // Create address
152
+ return outputSchnorrKey;
153
+ };
154
+ return p2tr;
155
+ }(SingleKeyAccount));
156
+ export { p2tr };
157
+ var p2wpkhWrapped = /** @class */ (function (_super) {
158
+ __extends(p2wpkhWrapped, _super);
159
+ function p2wpkhWrapped() {
160
+ return _super !== null && _super.apply(this, arguments) || this;
161
+ }
162
+ p2wpkhWrapped.prototype.singleKeyCondition = function (pubkey) {
163
+ var buf = new BufferWriter();
164
+ var redeemScript = this.createRedeemScript(pubkey);
165
+ var scriptHash = hashPublicKey(redeemScript);
166
+ buf.writeSlice(Buffer.of(OP_HASH160, HASH_SIZE));
167
+ buf.writeSlice(scriptHash);
168
+ buf.writeUInt8(OP_EQUAL);
169
+ return { scriptPubKey: buf.buffer(), redeemScript: redeemScript };
170
+ };
171
+ p2wpkhWrapped.prototype.setSingleKeyInput = function (i, inputTx, spentOutput, pubkey, path) {
172
+ if (!inputTx) {
173
+ throw new Error("Full input base transaction required");
174
+ }
175
+ this.psbt.setInputNonWitnessUtxo(i, inputTx);
176
+ this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);
177
+ var userSuppliedRedeemScript = spentOutput.cond.redeemScript;
178
+ var expectedRedeemScript = this.createRedeemScript(pubkey);
179
+ if (userSuppliedRedeemScript &&
180
+ !expectedRedeemScript.equals(userSuppliedRedeemScript)) {
181
+ // At what point might a user set the redeemScript on its own?
182
+ throw new Error("User-supplied redeemScript " + userSuppliedRedeemScript.toString("hex") + " doesn't\n match expected " + expectedRedeemScript.toString("hex") + " for input " + i);
183
+ }
184
+ this.psbt.setInputRedeemScript(i, expectedRedeemScript);
185
+ this.psbt.setInputWitnessUtxo(i, spentOutput.amount, spentOutput.cond.scriptPubKey);
186
+ };
187
+ p2wpkhWrapped.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
188
+ this.psbt.setOutputRedeemScript(i, cond.redeemScript);
189
+ this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);
190
+ };
191
+ p2wpkhWrapped.prototype.getDescriptorTemplate = function () {
192
+ return "sh(wpkh(@0))";
193
+ };
194
+ p2wpkhWrapped.prototype.createRedeemScript = function (pubkey) {
195
+ var pubkeyHash = hashPublicKey(pubkey);
196
+ return Buffer.concat([Buffer.from("0014", "hex"), pubkeyHash]);
197
+ };
198
+ return p2wpkhWrapped;
199
+ }(SingleKeyAccount));
200
+ export { p2wpkhWrapped };
201
+ var p2wpkh = /** @class */ (function (_super) {
202
+ __extends(p2wpkh, _super);
203
+ function p2wpkh() {
204
+ return _super !== null && _super.apply(this, arguments) || this;
205
+ }
206
+ p2wpkh.prototype.singleKeyCondition = function (pubkey) {
207
+ var buf = new BufferWriter();
208
+ var pubkeyHash = hashPublicKey(pubkey);
209
+ buf.writeSlice(Buffer.of(0, HASH_SIZE));
210
+ buf.writeSlice(pubkeyHash);
211
+ return { scriptPubKey: buf.buffer() };
212
+ };
213
+ p2wpkh.prototype.setSingleKeyInput = function (i, inputTx, spentOutput, pubkey, path) {
214
+ if (!inputTx) {
215
+ throw new Error("Full input base transaction required");
216
+ }
217
+ this.psbt.setInputNonWitnessUtxo(i, inputTx);
218
+ this.psbt.setInputBip32Derivation(i, pubkey, this.masterFp, path);
219
+ this.psbt.setInputWitnessUtxo(i, spentOutput.amount, spentOutput.cond.scriptPubKey);
220
+ };
221
+ p2wpkh.prototype.setSingleKeyOutput = function (i, cond, pubkey, path) {
222
+ this.psbt.setOutputBip32Derivation(i, pubkey, this.masterFp, path);
223
+ };
224
+ p2wpkh.prototype.getDescriptorTemplate = function () {
225
+ return "wpkh(@0)";
226
+ };
227
+ return p2wpkh;
228
+ }(SingleKeyAccount));
229
+ export { p2wpkh };
230
+ //# sourceMappingURL=accounttype.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounttype.js","sourceRoot":"","sources":["../../src/newops/accounttype.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clientCommands.d.ts","sourceRoot":"","sources":["../../src/newops/clientCommands.ts"],"names":[],"mappings":";AAEA,OAAO,EAAY,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,aAAK,iBAAiB;IACpB,KAAK,KAAO;IACZ,YAAY,KAAO;IACnB,qBAAqB,KAAO;IAC5B,qBAAqB,KAAO;IAC5B,iBAAiB,MAAO;CACzB;AAED,uBAAe,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAC1C;AAED,qBAAa,YAAa,SAAQ,aAAa;IAKd,OAAO,CAAC,gBAAgB;IAJvD,OAAO,CAAC,OAAO,CAAW;IAE1B,IAAI,oBAA2B;gBAEnB,OAAO,EAAE,MAAM,EAAE,EAAU,gBAAgB,EAAE,MAAM,IAAI;IAKnE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAKjC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,KAAK,CAAW;IAExB,IAAI,oBAAkC;gBAE1B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAMjE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CA4CjC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,KAAK,CAAW;IAExB,IAAI,oBAA2C;gBAEnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAM7D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAoDjC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,OAAO,CAAC,WAAW,CAAsB;IAEzC,IAAI,oBAA2C;gBAEnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAK5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAuCjC;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,IAAI,oBAAuC;gBAE/B,KAAK,EAAE,MAAM,EAAE;IAK3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CA4BjC;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAAkC;IAEnD,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,QAAQ,CAAoD;gBAExD,gBAAgB,EAAE,MAAM,IAAI;IAiBxC,UAAU,IAAI,MAAM,EAAE;IAItB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAStC,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAKpC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAajC"}
1
+ {"version":3,"file":"clientCommands.d.ts","sourceRoot":"","sources":["../../src/newops/clientCommands.ts"],"names":[],"mappings":";AAGA,OAAO,EAAY,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,aAAK,iBAAiB;IACpB,KAAK,KAAO;IACZ,YAAY,KAAO;IACnB,qBAAqB,KAAO;IAC5B,qBAAqB,KAAO;IAC5B,iBAAiB,MAAO;CACzB;AAED,uBAAe,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAC1C;AAED,qBAAa,YAAa,SAAQ,aAAa;IAKd,OAAO,CAAC,gBAAgB;IAJvD,OAAO,CAAC,OAAO,CAAW;IAE1B,IAAI,oBAA2B;gBAEnB,OAAO,EAAE,MAAM,EAAE,EAAU,gBAAgB,EAAE,MAAM,IAAI;IAKnE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAKjC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,KAAK,CAAW;IAExB,IAAI,oBAAkC;gBAE1B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAMjE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CA4CjC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,KAAK,CAAW;IAExB,IAAI,oBAA2C;gBAEnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAM7D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAyDjC;AAED,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,OAAO,CAAC,WAAW,CAAsB;IAEzC,IAAI,oBAA2C;gBAEnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAK5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAuCjC;AAED,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,IAAI,oBAAuC;gBAE/B,KAAK,EAAE,MAAM,EAAE;IAK3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CA4BjC;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAAkC;IAEnD,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,QAAQ,CAAoD;gBAExD,gBAAgB,EAAE,MAAM,IAAI;IAiBxC,UAAU,IAAI,MAAM,EAAE;IAItB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAStC,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAKpC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAajC"}
@@ -50,6 +50,7 @@ var __values = (this && this.__values) || function(o) {
50
50
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
51
51
  };
52
52
  import { crypto } from "bitcoinjs-lib";
53
+ import { BufferReader } from "../buffertools";
53
54
  import { createVarint } from "../varint";
54
55
  import { hashLeaf, Merkle } from "./merkle";
55
56
  var ClientCommandCode;
@@ -141,17 +142,21 @@ var GetMerkleLeafProofCommand = /** @class */ (function (_super) {
141
142
  GetMerkleLeafProofCommand.prototype.execute = function (request) {
142
143
  var _a;
143
144
  var req = request.subarray(1);
144
- if (req.length != 32 + 4 + 4) {
145
- throw new Error("Invalid request, unexpected trailing data");
146
- }
147
- // read the hash
148
- var hash = Buffer.alloc(32);
149
- for (var i = 0; i < 32; i++) {
150
- hash[i] = req.readUInt8(i);
145
+ if (req.length < 32 + 1 + 1) {
146
+ throw new Error("Invalid request, expected at least 34 bytes");
151
147
  }
148
+ var reqBuf = new BufferReader(req);
149
+ var hash = reqBuf.readSlice(32);
152
150
  var hash_hex = hash.toString("hex");
153
- var tree_size = req.readUInt32BE(32);
154
- var leaf_index = req.readUInt32BE(32 + 4);
151
+ var tree_size;
152
+ var leaf_index;
153
+ try {
154
+ tree_size = reqBuf.readVarInt();
155
+ leaf_index = reqBuf.readVarInt();
156
+ }
157
+ catch (e) {
158
+ throw new Error("Invalid request, couldn't parse tree_size or leaf_index");
159
+ }
155
160
  var mt = this.known_trees.get(hash_hex);
156
161
  if (!mt) {
157
162
  throw Error("Requested Merkle leaf proof for unknown tree: " + hash_hex);
@@ -1 +1 @@
1
- {"version":3,"file":"clientCommands.js","sourceRoot":"","sources":["../../src/newops/clientCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientCommands.js","sourceRoot":"","sources":["../../src/newops/clientCommands.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": "6.11.1",
3
+ "version": "6.11.2",
4
4
  "description": "Ledger Hardware Wallet Bitcoin Application API",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -27,7 +27,7 @@
27
27
  "types": "lib/Btc.d.ts",
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
- "@ledgerhq/hw-transport": "^6.11.0",
30
+ "@ledgerhq/hw-transport": "^6.11.2",
31
31
  "@ledgerhq/logs": "^6.10.0",
32
32
  "bip32-path": "^0.4.2",
33
33
  "bitcoinjs-lib": "^5.2.0",
@@ -45,5 +45,5 @@
45
45
  "watch": "bash ../../script/watch.sh",
46
46
  "doc": "bash ../../script/doc.sh"
47
47
  },
48
- "gitHead": "483aa0521782ca2380c5b78db7559cdd6ec210c6"
48
+ "gitHead": "d243550a31bd781924fc301492320b16212c3dbe"
49
49
  }
package/src/Btc.ts CHANGED
@@ -128,6 +128,36 @@ export default class Btc {
128
128
  (!options.verify || options.verify == false) &&
129
129
  !isPathNormal(path)
130
130
  ) {
131
+ console.warn(`WARNING: Using deprecated device protocol to get the public key because
132
+
133
+ * a non-standard path is requested, and
134
+ * verify flag is false
135
+
136
+ The new protocol only allows export of non-standard paths if the
137
+ verify flag is true. Standard paths are (currently):
138
+
139
+ M/44'/(1|0)'/X'
140
+ M/49'/(1|0)'/X'
141
+ M/84'/(1|0)'/X'
142
+ M/86'/(1|0)'/X'
143
+ M/48'/(1|0)'/X'/Y'
144
+
145
+ followed by "", "(0|1)", or "(0|1)/b", where a and b are
146
+ non-hardened. For example, the following paths are standard
147
+
148
+ M/48'/1'/99'/7'
149
+ M/86'/1'/99'/0
150
+ M/48'/0'/99'/7'/1/17
151
+
152
+ The following paths are non-standard
153
+
154
+ M/48'/0'/99' // Not deepest hardened path
155
+ M/48'/0'/99'/7'/1/17/2 // Too many non-hardened derivation steps
156
+ M/199'/0'/1'/0/88 // Not a known purpose 199
157
+ M/86'/1'/99'/2 // Change path item must be 0 or 1
158
+
159
+ This compatibility safeguard will be removed in the future.
160
+ Please consider calling Btc.getWalletXpub() instead.`);
131
161
  return this.old().getWalletPublicKey(path, options);
132
162
  } else {
133
163
  return impl.getWalletPublicKey(path, options);
@@ -314,6 +344,7 @@ function isPathNormal(path: string): boolean {
314
344
 
315
345
  const hard = (n: number) => n > h;
316
346
  const soft = (n: number | undefined) => !n || n < h;
347
+ const change = (n: number | undefined) => !n || n == 0 || n == 1;
317
348
 
318
349
  if (
319
350
  pathElems.length >= 3 &&
@@ -321,7 +352,7 @@ function isPathNormal(path: string): boolean {
321
352
  [44 + h, 49 + h, 84 + h, 86 + h].some((v) => v == pathElems[0]) &&
322
353
  [0 + h, 1 + h].some((v) => v == pathElems[1]) &&
323
354
  hard(pathElems[2]) &&
324
- soft(pathElems[3]) &&
355
+ change(pathElems[3]) &&
325
356
  soft(pathElems[4])
326
357
  ) {
327
358
  return true;
@@ -333,7 +364,7 @@ function isPathNormal(path: string): boolean {
333
364
  [0 + h, 1 + h].some((v) => v == pathElems[1]) &&
334
365
  hard(pathElems[2]) &&
335
366
  hard(pathElems[3]) &&
336
- soft(pathElems[4]) &&
367
+ change(pathElems[4]) &&
337
368
  soft(pathElems[5])
338
369
  ) {
339
370
  return true;