@ledgerhq/hw-app-btc 10.0.1-recover-beta.0 → 10.0.2-next.0

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.
Files changed (163) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +16 -2
  3. package/lib/Btc.js +72 -136
  4. package/lib/Btc.js.map +1 -1
  5. package/lib/BtcNew.js +217 -313
  6. package/lib/BtcNew.js.map +1 -1
  7. package/lib/BtcOld.js +46 -106
  8. package/lib/BtcOld.js.map +1 -1
  9. package/lib/bip32.js +12 -12
  10. package/lib/bip32.js.map +1 -1
  11. package/lib/buffertools.js +66 -69
  12. package/lib/buffertools.js.map +1 -1
  13. package/lib/compressPublicKey.js +3 -3
  14. package/lib/compressPublicKey.js.map +1 -1
  15. package/lib/constants.js +1 -1
  16. package/lib/createTransaction.d.ts +1 -1
  17. package/lib/createTransaction.d.ts.map +1 -1
  18. package/lib/createTransaction.js +285 -398
  19. package/lib/createTransaction.js.map +1 -1
  20. package/lib/debug.js +11 -13
  21. package/lib/debug.js.map +1 -1
  22. package/lib/finalizeInput.js +23 -62
  23. package/lib/finalizeInput.js.map +1 -1
  24. package/lib/getAppAndVersion.d.ts +1 -1
  25. package/lib/getAppAndVersion.d.ts.map +1 -1
  26. package/lib/getAppAndVersion.js +29 -72
  27. package/lib/getAppAndVersion.js.map +1 -1
  28. package/lib/getTrustedInput.js +108 -251
  29. package/lib/getTrustedInput.js.map +1 -1
  30. package/lib/getTrustedInputBIP143.js +9 -10
  31. package/lib/getTrustedInputBIP143.js.map +1 -1
  32. package/lib/getWalletPublicKey.d.ts +1 -1
  33. package/lib/getWalletPublicKey.d.ts.map +1 -1
  34. package/lib/getWalletPublicKey.js +27 -73
  35. package/lib/getWalletPublicKey.js.map +1 -1
  36. package/lib/hashPublicKey.js +4 -4
  37. package/lib/hashPublicKey.js.map +1 -1
  38. package/lib/index.js +3 -3
  39. package/lib/index.js.map +1 -1
  40. package/lib/newops/accounttype.d.ts +2 -2
  41. package/lib/newops/accounttype.d.ts.map +1 -1
  42. package/lib/newops/accounttype.js +85 -125
  43. package/lib/newops/accounttype.js.map +1 -1
  44. package/lib/newops/appClient.js +98 -205
  45. package/lib/newops/appClient.js.map +1 -1
  46. package/lib/newops/clientCommands.js +122 -213
  47. package/lib/newops/clientCommands.js.map +1 -1
  48. package/lib/newops/merkelizedPsbt.js +28 -75
  49. package/lib/newops/merkelizedPsbt.js.map +1 -1
  50. package/lib/newops/merkle.js +38 -67
  51. package/lib/newops/merkle.js.map +1 -1
  52. package/lib/newops/merkleMap.js +11 -12
  53. package/lib/newops/merkleMap.js.map +1 -1
  54. package/lib/newops/policy.d.ts +1 -1
  55. package/lib/newops/policy.d.ts.map +1 -1
  56. package/lib/newops/policy.js +17 -18
  57. package/lib/newops/policy.js.map +1 -1
  58. package/lib/newops/psbtExtractor.js +9 -9
  59. package/lib/newops/psbtExtractor.js.map +1 -1
  60. package/lib/newops/psbtFinalizer.js +22 -22
  61. package/lib/newops/psbtFinalizer.js.map +1 -1
  62. package/lib/newops/psbtv2.d.ts +1 -1
  63. package/lib/newops/psbtv2.d.ts.map +1 -1
  64. package/lib/newops/psbtv2.js +227 -286
  65. package/lib/newops/psbtv2.js.map +1 -1
  66. package/lib/serializeTransaction.js +13 -15
  67. package/lib/serializeTransaction.js.map +1 -1
  68. package/lib/shouldUseTrustedInputForSegwit.js +4 -5
  69. package/lib/shouldUseTrustedInputForSegwit.js.map +1 -1
  70. package/lib/signMessage.js +47 -99
  71. package/lib/signMessage.js.map +1 -1
  72. package/lib/signP2SHTransaction.d.ts +1 -1
  73. package/lib/signP2SHTransaction.d.ts.map +1 -1
  74. package/lib/signP2SHTransaction.js +91 -187
  75. package/lib/signP2SHTransaction.js.map +1 -1
  76. package/lib/signTransaction.js +8 -9
  77. package/lib/signTransaction.js.map +1 -1
  78. package/lib/splitTransaction.js +50 -54
  79. package/lib/splitTransaction.js.map +1 -1
  80. package/lib/startUntrustedHashTransactionInput.js +65 -167
  81. package/lib/startUntrustedHashTransactionInput.js.map +1 -1
  82. package/lib/types.js +1 -1
  83. package/lib/varint.js +10 -10
  84. package/lib/varint.js.map +1 -1
  85. package/lib-es/Btc.js +58 -123
  86. package/lib-es/Btc.js.map +1 -1
  87. package/lib-es/BtcNew.js +205 -302
  88. package/lib-es/BtcNew.js.map +1 -1
  89. package/lib-es/BtcOld.js +35 -96
  90. package/lib-es/BtcOld.js.map +1 -1
  91. package/lib-es/bip32.js +7 -7
  92. package/lib-es/bip32.js.map +1 -1
  93. package/lib-es/buffertools.js +62 -67
  94. package/lib-es/buffertools.js.map +1 -1
  95. package/lib-es/compressPublicKey.js +2 -2
  96. package/lib-es/compressPublicKey.js.map +1 -1
  97. package/lib-es/constants.js +12 -12
  98. package/lib-es/constants.js.map +1 -1
  99. package/lib-es/createTransaction.d.ts +1 -1
  100. package/lib-es/createTransaction.d.ts.map +1 -1
  101. package/lib-es/createTransaction.js +271 -384
  102. package/lib-es/createTransaction.js.map +1 -1
  103. package/lib-es/debug.js +10 -12
  104. package/lib-es/debug.js.map +1 -1
  105. package/lib-es/finalizeInput.js +20 -59
  106. package/lib-es/finalizeInput.js.map +1 -1
  107. package/lib-es/getAppAndVersion.d.ts +1 -1
  108. package/lib-es/getAppAndVersion.d.ts.map +1 -1
  109. package/lib-es/getAppAndVersion.js +27 -70
  110. package/lib-es/getAppAndVersion.js.map +1 -1
  111. package/lib-es/getTrustedInput.js +104 -247
  112. package/lib-es/getTrustedInput.js.map +1 -1
  113. package/lib-es/getTrustedInputBIP143.js +5 -6
  114. package/lib-es/getTrustedInputBIP143.js.map +1 -1
  115. package/lib-es/getWalletPublicKey.d.ts +1 -1
  116. package/lib-es/getWalletPublicKey.d.ts.map +1 -1
  117. package/lib-es/getWalletPublicKey.js +25 -71
  118. package/lib-es/getWalletPublicKey.js.map +1 -1
  119. package/lib-es/newops/accounttype.d.ts +2 -2
  120. package/lib-es/newops/accounttype.d.ts.map +1 -1
  121. package/lib-es/newops/accounttype.js +79 -123
  122. package/lib-es/newops/accounttype.js.map +1 -1
  123. package/lib-es/newops/appClient.js +92 -200
  124. package/lib-es/newops/appClient.js.map +1 -1
  125. package/lib-es/newops/clientCommands.js +117 -214
  126. package/lib-es/newops/clientCommands.js.map +1 -1
  127. package/lib-es/newops/merkelizedPsbt.js +25 -73
  128. package/lib-es/newops/merkelizedPsbt.js.map +1 -1
  129. package/lib-es/newops/merkle.js +36 -66
  130. package/lib-es/newops/merkle.js.map +1 -1
  131. package/lib-es/newops/merkleMap.js +8 -10
  132. package/lib-es/newops/merkleMap.js.map +1 -1
  133. package/lib-es/newops/policy.d.ts +1 -1
  134. package/lib-es/newops/policy.d.ts.map +1 -1
  135. package/lib-es/newops/policy.js +12 -14
  136. package/lib-es/newops/policy.js.map +1 -1
  137. package/lib-es/newops/psbtExtractor.js +7 -7
  138. package/lib-es/newops/psbtExtractor.js.map +1 -1
  139. package/lib-es/newops/psbtFinalizer.js +19 -19
  140. package/lib-es/newops/psbtFinalizer.js.map +1 -1
  141. package/lib-es/newops/psbtv2.d.ts +1 -1
  142. package/lib-es/newops/psbtv2.d.ts.map +1 -1
  143. package/lib-es/newops/psbtv2.js +225 -286
  144. package/lib-es/newops/psbtv2.js.map +1 -1
  145. package/lib-es/serializeTransaction.js +11 -13
  146. package/lib-es/serializeTransaction.js.map +1 -1
  147. package/lib-es/shouldUseTrustedInputForSegwit.js +1 -2
  148. package/lib-es/shouldUseTrustedInputForSegwit.js.map +1 -1
  149. package/lib-es/signMessage.js +44 -96
  150. package/lib-es/signMessage.js.map +1 -1
  151. package/lib-es/signP2SHTransaction.d.ts +1 -1
  152. package/lib-es/signP2SHTransaction.d.ts.map +1 -1
  153. package/lib-es/signP2SHTransaction.js +84 -180
  154. package/lib-es/signP2SHTransaction.js.map +1 -1
  155. package/lib-es/signTransaction.js +6 -7
  156. package/lib-es/signTransaction.js.map +1 -1
  157. package/lib-es/splitTransaction.js +46 -50
  158. package/lib-es/splitTransaction.js.map +1 -1
  159. package/lib-es/startUntrustedHashTransactionInput.js +62 -164
  160. package/lib-es/startUntrustedHashTransactionInput.js.map +1 -1
  161. package/lib-es/varint.js +9 -9
  162. package/lib-es/varint.js.map +1 -1
  163. package/package.json +5 -6
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/hw-app-btc@10.0.1-recover-beta.0 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-btc
2
+ > @ledgerhq/hw-app-btc@10.0.1 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,11 +1,25 @@
1
1
  # @ledgerhq/hw-app-btc
2
2
 
3
- ## 10.0.1-recover-beta.0
3
+ ## 10.0.2-next.0
4
4
 
5
5
  ### Patch Changes
6
6
 
7
7
  - Updated dependencies []:
8
- - @ledgerhq/hw-transport@6.28.2-recover-beta.0
8
+ - @ledgerhq/hw-transport@6.28.3-next.0
9
+
10
+ ## 10.0.1
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies []:
15
+ - @ledgerhq/hw-transport@6.28.2
16
+
17
+ ## 10.0.1-next.0
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies []:
22
+ - @ledgerhq/hw-transport@6.28.2-next.0
9
23
 
10
24
  ## 10.0.0
11
25
 
package/lib/Btc.js CHANGED
@@ -8,63 +8,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __read = (this && this.__read) || function (o, n) {
39
- var m = typeof Symbol === "function" && o[Symbol.iterator];
40
- if (!m) return o;
41
- var i = m.call(o), r, ar = [], e;
42
- try {
43
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
- }
45
- catch (error) { e = { error: error }; }
46
- finally {
47
- try {
48
- if (r && !r.done && (m = i["return"])) m.call(i);
49
- }
50
- finally { if (e) throw e.error; }
51
- }
52
- return ar;
53
- };
54
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
55
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
56
13
  };
57
- exports.__esModule = true;
58
- var BtcNew_1 = __importDefault(require("./BtcNew"));
59
- var BtcOld_1 = __importDefault(require("./BtcOld"));
60
- var getTrustedInput_1 = require("./getTrustedInput");
61
- var getTrustedInputBIP143_1 = require("./getTrustedInputBIP143");
62
- var appClient_1 = require("./newops/appClient");
63
- var serializeTransaction_1 = require("./serializeTransaction");
64
- var splitTransaction_1 = require("./splitTransaction");
65
- var signP2SHTransaction_1 = require("./signP2SHTransaction");
66
- var signMessage_1 = require("./signMessage");
67
- var getAppAndVersion_1 = require("./getAppAndVersion");
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const BtcNew_1 = __importDefault(require("./BtcNew"));
16
+ const BtcOld_1 = __importDefault(require("./BtcOld"));
17
+ const getTrustedInput_1 = require("./getTrustedInput");
18
+ const getTrustedInputBIP143_1 = require("./getTrustedInputBIP143");
19
+ const appClient_1 = require("./newops/appClient");
20
+ const serializeTransaction_1 = require("./serializeTransaction");
21
+ const splitTransaction_1 = require("./splitTransaction");
22
+ const signP2SHTransaction_1 = require("./signP2SHTransaction");
23
+ const signMessage_1 = require("./signMessage");
24
+ const getAppAndVersion_1 = require("./getAppAndVersion");
68
25
  /**
69
26
  * Bitcoin API.
70
27
  *
@@ -72,9 +29,8 @@ var getAppAndVersion_1 = require("./getAppAndVersion");
72
29
  * import Btc from "@ledgerhq/hw-app-btc";
73
30
  * const btc = new Btc({ transport, currency: "bitcoin" });
74
31
  */
75
- var Btc = /** @class */ (function () {
76
- function Btc(_a) {
77
- var transport = _a.transport, _b = _a.scrambleKey, scrambleKey = _b === void 0 ? "BTC" : _b, _c = _a.currency, currency = _c === void 0 ? "bitcoin" : _c;
32
+ class Btc {
33
+ constructor({ transport, scrambleKey = "BTC", currency = "bitcoin", }) {
78
34
  this._transport = transport;
79
35
  this._transport.decorateAppAPIMethods(this, [
80
36
  "getWalletXpub",
@@ -87,10 +43,10 @@ var Btc = /** @class */ (function () {
87
43
  ], scrambleKey);
88
44
  // new APDU (nano app API) for bitcoin and old APDU for altcoin
89
45
  if (currency === "bitcoin" || currency === "bitcoin_testnet") {
90
- this._impl = new BtcNew_1["default"](new appClient_1.AppClient(this._transport));
46
+ this._impl = new BtcNew_1.default(new appClient_1.AppClient(this._transport));
91
47
  }
92
48
  else {
93
- this._impl = new BtcOld_1["default"](this._transport);
49
+ this._impl = new BtcOld_1.default(this._transport);
94
50
  }
95
51
  }
96
52
  /**
@@ -100,11 +56,11 @@ var Btc = /** @class */ (function () {
100
56
  * - xpubVersion: the XPUBVersion of the coin used. (use @ledgerhq/currencies if needed)
101
57
  * @returns XPUB of the account
102
58
  */
103
- Btc.prototype.getWalletXpub = function (arg) {
104
- return this.changeImplIfNecessary().then(function (impl) {
59
+ getWalletXpub(arg) {
60
+ return this.changeImplIfNecessary().then((impl) => {
105
61
  return impl.getWalletXpub(arg);
106
62
  });
107
- };
63
+ }
108
64
  /**
109
65
  * @param path a BIP 32 path
110
66
  * @param options an object with optional these fields:
@@ -127,23 +83,23 @@ var Btc = /** @class */ (function () {
127
83
  * btc.getWalletPublicKey("44'/0'/0'/0/0").then(o => o.bitcoinAddress)
128
84
  * btc.getWalletPublicKey("49'/0'/0'/0/0", { format: "p2sh" }).then(o => o.bitcoinAddress)
129
85
  */
130
- Btc.prototype.getWalletPublicKey = function (path, opts) {
131
- var options;
86
+ getWalletPublicKey(path, opts) {
87
+ let options;
132
88
  if (arguments.length > 2 || typeof opts === "boolean") {
133
89
  console.warn("btc.getWalletPublicKey deprecated signature used. Please switch to getWalletPublicKey(path, { format, verify })");
134
90
  options = {
135
91
  verify: !!opts,
136
92
  // eslint-disable-next-line prefer-rest-params
137
- format: arguments[2] ? "p2sh" : "legacy"
93
+ format: arguments[2] ? "p2sh" : "legacy",
138
94
  };
139
95
  }
140
96
  else {
141
97
  options = opts || {};
142
98
  }
143
- return this.changeImplIfNecessary().then(function (impl) {
99
+ return this.changeImplIfNecessary().then((impl) => {
144
100
  return impl.getWalletPublicKey(path, options);
145
101
  });
146
- };
102
+ }
147
103
  /**
148
104
  * You can sign a message according to the Bitcoin Signature format and retrieve v, r, s given the message and the BIP 32 path of the account to sign.
149
105
  * @example
@@ -153,12 +109,12 @@ var Btc = /** @class */ (function () {
153
109
  console.log("Signature : " + signature);
154
110
  }).catch(function(ex) {console.log(ex);});
155
111
  */
156
- Btc.prototype.signMessage = function (path, messageHex) {
112
+ signMessage(path, messageHex) {
157
113
  return (0, signMessage_1.signMessage)(this._transport, {
158
- path: path,
159
- messageHex: messageHex
114
+ path,
115
+ messageHex,
160
116
  });
161
- };
117
+ }
162
118
  /**
163
119
  * To sign a transaction involving standard (P2PKH) inputs, call createTransaction with the following parameters
164
120
  * @param inputs is an array of [ transaction, output_index, optional redeem script, optional sequence ] where
@@ -192,14 +148,14 @@ var Btc = /** @class */ (function () {
192
148
  outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
193
149
  }).then(res => ...);
194
150
  */
195
- Btc.prototype.createPaymentTransaction = function (arg) {
151
+ createPaymentTransaction(arg) {
196
152
  if (arguments.length > 1) {
197
153
  throw new Error("@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.");
198
154
  }
199
- return this.changeImplIfNecessary().then(function (impl) {
155
+ return this.changeImplIfNecessary().then((impl) => {
200
156
  return impl.createPaymentTransaction(arg);
201
157
  });
202
- };
158
+ }
203
159
  /**
204
160
  * To obtain the signature of multisignature (P2SH) inputs, call signP2SHTransaction_async with the folowing parameters
205
161
  * @param inputs is an array of [ transaction, output_index, redeem script, optional sequence ] where
@@ -219,82 +175,62 @@ var Btc = /** @class */ (function () {
219
175
  outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
220
176
  }).then(result => ...);
221
177
  */
222
- Btc.prototype.signP2SHTransaction = function (arg) {
178
+ signP2SHTransaction(arg) {
223
179
  return (0, signP2SHTransaction_1.signP2SHTransaction)(this._transport, arg);
224
- };
180
+ }
225
181
  /**
226
182
  * For each UTXO included in your transaction, create a transaction object from the raw serialized version of the transaction used in this UTXO.
227
183
  * @example
228
184
  const tx1 = btc.splitTransaction("01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000");
229
185
  */
230
- Btc.prototype.splitTransaction = function (transactionHex, isSegwitSupported, hasTimestamp, hasExtraData, additionals) {
231
- if (isSegwitSupported === void 0) { isSegwitSupported = false; }
232
- if (hasTimestamp === void 0) { hasTimestamp = false; }
233
- if (hasExtraData === void 0) { hasExtraData = false; }
234
- if (additionals === void 0) { additionals = []; }
186
+ splitTransaction(transactionHex, isSegwitSupported = false, hasTimestamp = false, hasExtraData = false, additionals = []) {
235
187
  return (0, splitTransaction_1.splitTransaction)(transactionHex, isSegwitSupported, hasTimestamp, hasExtraData, additionals);
236
- };
188
+ }
237
189
  /**
238
190
  @example
239
191
  const tx1 = btc.splitTransaction("01000000014ea60aeac5252c14291d428915bd7ccd1bfc4af009f4d4dc57ae597ed0420b71010000008a47304402201f36a12c240dbf9e566bc04321050b1984cd6eaf6caee8f02bb0bfec08e3354b022012ee2aeadcbbfd1e92959f57c15c1c6debb757b798451b104665aa3010569b49014104090b15bde569386734abf2a2b99f9ca6a50656627e77de663ca7325702769986cf26cc9dd7fdea0af432c8e2becc867c932e1b9dd742f2a108997c2252e2bdebffffffff0281b72e00000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88aca0860100000000001976a9144533f5fb9b4817f713c48f0bfe96b9f50c476c9b88ac00000000");
240
192
  const outputScript = btc.serializeTransactionOutputs(tx1).toString('hex');
241
193
  */
242
- Btc.prototype.serializeTransactionOutputs = function (t) {
194
+ serializeTransactionOutputs(t) {
243
195
  return (0, serializeTransaction_1.serializeTransactionOutputs)(t);
244
- };
245
- Btc.prototype.getTrustedInput = function (indexLookup, transaction, additionals) {
246
- if (additionals === void 0) { additionals = []; }
196
+ }
197
+ getTrustedInput(indexLookup, transaction, additionals = []) {
247
198
  return (0, getTrustedInput_1.getTrustedInput)(this._transport, indexLookup, transaction, additionals);
248
- };
249
- Btc.prototype.getTrustedInputBIP143 = function (indexLookup, transaction, additionals) {
250
- if (additionals === void 0) { additionals = []; }
199
+ }
200
+ getTrustedInputBIP143(indexLookup, transaction, additionals = []) {
251
201
  return (0, getTrustedInputBIP143_1.getTrustedInputBIP143)(this._transport, indexLookup, transaction, additionals);
252
- };
253
- Btc.prototype.changeImplIfNecessary = function () {
254
- return __awaiter(this, void 0, void 0, function () {
255
- var appAndVersion, isBtcLegacy, _a, major, minor;
256
- return __generator(this, function (_b) {
257
- switch (_b.label) {
258
- case 0:
259
- // if BtcOld was instantiated, stick with it
260
- if (this._impl instanceof BtcOld_1["default"])
261
- return [2 /*return*/, this._impl];
262
- return [4 /*yield*/, (0, getAppAndVersion_1.getAppAndVersion)(this._transport)];
263
- case 1:
264
- appAndVersion = _b.sent();
265
- isBtcLegacy = true;
266
- if (!(appAndVersion.name === "Bitcoin" ||
267
- appAndVersion.name === "Bitcoin Test")) return [3 /*break*/, 2];
268
- _a = __read(appAndVersion.version.split("."), 2), major = _a[0], minor = _a[1];
269
- // we use the legacy protocol for versions below 2.1.0 of the Bitcoin app.
270
- isBtcLegacy =
271
- parseInt(major) <= 1 || (parseInt(major) == 2 && parseInt(minor) == 0);
272
- return [3 /*break*/, 5];
273
- case 2:
274
- if (!(appAndVersion.name === "Bitcoin Legacy" ||
275
- appAndVersion.name === "Bitcoin Test Legacy")) return [3 /*break*/, 3];
276
- // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
277
- isBtcLegacy = true;
278
- return [3 /*break*/, 5];
279
- case 3:
280
- if (!(appAndVersion.name === "Exchange")) return [3 /*break*/, 5];
281
- return [4 /*yield*/, (0, getAppAndVersion_1.checkIsBtcLegacy)(this._transport)];
282
- case 4:
283
- // We can't query the version of the Bitcoin app if we're coming from Exchange;
284
- // therefore, we use a workaround to distinguish legacy and new versions.
285
- // This can be removed once Ledger Live enforces minimum bitcoin version >= 2.1.0.
286
- isBtcLegacy = _b.sent();
287
- _b.label = 5;
288
- case 5:
289
- if (isBtcLegacy) {
290
- this._impl = new BtcOld_1["default"](this._transport);
291
- }
292
- return [2 /*return*/, this._impl];
293
- }
294
- });
202
+ }
203
+ changeImplIfNecessary() {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ // if BtcOld was instantiated, stick with it
206
+ if (this._impl instanceof BtcOld_1.default)
207
+ return this._impl;
208
+ const appAndVersion = yield (0, getAppAndVersion_1.getAppAndVersion)(this._transport);
209
+ let isBtcLegacy = true; // default for all altcoins
210
+ if (appAndVersion.name === "Bitcoin" ||
211
+ 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 =
215
+ parseInt(major) <= 1 || (parseInt(major) == 2 && parseInt(minor) == 0);
216
+ }
217
+ else if (appAndVersion.name === "Bitcoin Legacy" ||
218
+ appAndVersion.name === "Bitcoin Test Legacy") {
219
+ // the "Bitcoin Legacy" and "Bitcoin Testnet Legacy" app use the legacy protocol, regardless of the version
220
+ isBtcLegacy = true;
221
+ }
222
+ else if (appAndVersion.name === "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
+ isBtcLegacy = yield (0, getAppAndVersion_1.checkIsBtcLegacy)(this._transport);
227
+ }
228
+ if (isBtcLegacy) {
229
+ this._impl = new BtcOld_1.default(this._transport);
230
+ }
231
+ return this._impl;
295
232
  });
296
- };
297
- return Btc;
298
- }());
299
- exports["default"] = Btc;
233
+ }
234
+ }
235
+ exports.default = Btc;
300
236
  //# sourceMappingURL=Btc.js.map
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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"}