@airgap/bitcoin 0.13.41 → 0.13.42-beta.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.
Files changed (39) hide show
  1. package/package.json +8 -6
  2. package/v0/protocol/BitcoinSegwitProtocol.d.ts +1 -0
  3. package/v0/protocol/BitcoinSegwitProtocol.js +22 -15
  4. package/v0/protocol/BitcoinSegwitProtocol.js.map +1 -1
  5. package/v1/data/BitcoinSegwitAddress.d.ts +2 -1
  6. package/v1/data/BitcoinSegwitAddress.js.map +1 -1
  7. package/v1/data/BitcoinTaprootAddress.d.ts +9 -0
  8. package/v1/data/BitcoinTaprootAddress.js +57 -0
  9. package/v1/data/BitcoinTaprootAddress.js.map +1 -0
  10. package/v1/index.d.ts +4 -3
  11. package/v1/index.js +4 -1
  12. package/v1/index.js.map +1 -1
  13. package/v1/module/BitcoinModule.d.ts +1 -1
  14. package/v1/module/BitcoinModule.js +4 -0
  15. package/v1/module/BitcoinModule.js.map +1 -1
  16. package/v1/protocol/BitcoinSegwitProtocol.d.ts +3 -2
  17. package/v1/protocol/BitcoinSegwitProtocol.js +31 -19
  18. package/v1/protocol/BitcoinSegwitProtocol.js.map +1 -1
  19. package/v1/protocol/BitcoinTaprootProtocol.d.ts +60 -0
  20. package/v1/protocol/BitcoinTaprootProtocol.js +1091 -0
  21. package/v1/protocol/BitcoinTaprootProtocol.js.map +1 -0
  22. package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +7 -1
  23. package/v1/serializer/v3/schemas/converter/transaction-converter.js +22 -1
  24. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
  25. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.d.ts +4 -0
  26. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js +3 -0
  27. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js.map +1 -0
  28. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.d.ts +3 -0
  29. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js +3 -0
  30. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js.map +1 -0
  31. package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-taproot.json +29 -0
  32. package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-taproot.json +19 -0
  33. package/v1/serializer/v3/serializer-companion.js +26 -4
  34. package/v1/serializer/v3/serializer-companion.js.map +1 -1
  35. package/v1/types/bitcoinjs.d.ts +6 -0
  36. package/v1/types/transaction.d.ts +10 -0
  37. package/v1/utils/protocol.d.ts +3 -0
  38. package/v1/utils/protocol.js +6 -1
  39. package/v1/utils/protocol.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airgap/bitcoin",
3
- "version": "0.13.41",
3
+ "version": "0.13.42-beta.1",
4
4
  "description": "The @airgap/bitcoin is a Bitcoin implementation of the ICoinProtocol interface from @airgap/coinlib-core.",
5
5
  "keywords": [
6
6
  "airgap",
@@ -30,11 +30,13 @@
30
30
  },
31
31
  "author": "Papers AG <contact@papers.ch> (https://papers.ch)",
32
32
  "dependencies": {
33
- "@airgap/coinlib-core": "^0.13.41",
34
- "@airgap/crypto": "^0.13.41",
35
- "@airgap/module-kit": "^0.13.41",
36
- "@airgap/serializer": "^0.13.41",
37
- "bitcoinjs-lib": "5.2.0"
33
+ "@airgap/coinlib-core": "^0.13.42-beta.1",
34
+ "@airgap/crypto": "^0.13.42-beta.1",
35
+ "@airgap/module-kit": "^0.13.42-beta.1",
36
+ "@airgap/serializer": "^0.13.42-beta.1",
37
+ "@bitcoinerlab/secp256k1": "1.2.0",
38
+ "bip32": "5.0.0-rc.0",
39
+ "bitcoinjs-lib": "6.1.7"
38
40
  },
39
41
  "localDependencies": {
40
42
  "bitcoinjs-message": "2.1.1"
@@ -8,6 +8,7 @@ export declare class BitcoinSegwitProtocol extends BitcoinProtocol {
8
8
  identifier: ProtocolSymbols;
9
9
  standardDerivationPath: string;
10
10
  addressPlaceholder: string;
11
+ private readonly bip32;
11
12
  constructor(options?: BitcoinProtocolOptions);
12
13
  getPublicKeyFromHexSecret(secret: string, derivationPath: string): Promise<string>;
13
14
  getPrivateKeyFromHexSecret(secret: string, derivationPath: string): Promise<string>;
@@ -96,6 +96,8 @@ var bitcoinJS = __importStar(require("bitcoinjs-lib"));
96
96
  var BitcoinProtocol_1 = require("./BitcoinProtocol");
97
97
  var BitcoinProtocolOptions_1 = require("./BitcoinProtocolOptions");
98
98
  var BitcoinSegwitAddress_1 = require("./BitcoinSegwitAddress");
99
+ var bip32_1 = require("bip32");
100
+ var secp256k1_1 = __importDefault(require("@bitcoinerlab/secp256k1"));
99
101
  var DUST_AMOUNT = 50;
100
102
  // This function handles arrays and objects
101
103
  function eachRecursive(obj) {
@@ -138,13 +140,14 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
138
140
  _this.identifier = ProtocolSymbols_1.MainProtocolSymbols.BTC_SEGWIT;
139
141
  _this.standardDerivationPath = "m/84'/0'/0'";
140
142
  _this.addressPlaceholder = 'bc1...';
143
+ _this.bip32 = (0, bip32_1.BIP32Factory)(secp256k1_1.default);
141
144
  return _this;
142
145
  }
143
146
  BitcoinSegwitProtocol.prototype.getPublicKeyFromHexSecret = function (secret, derivationPath) {
144
147
  return __awaiter(this, void 0, void 0, function () {
145
148
  var bitcoinNode, neutered, zpub;
146
149
  return __generator(this, function (_a) {
147
- bitcoinNode = bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
150
+ bitcoinNode = this.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
148
151
  neutered = bitcoinNode.derivePath(derivationPath).neutered();
149
152
  zpub = new ExtendedPublicKey(neutered.toBase58()).toZPub();
150
153
  return [2 /*return*/, zpub];
@@ -156,14 +159,14 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
156
159
  var bitcoinNode, privateKey;
157
160
  return __generator(this, function (_a) {
158
161
  if (!derivationPath) {
159
- return [2 /*return*/, bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network)];
162
+ return [2 /*return*/, this.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network)];
160
163
  }
161
- bitcoinNode = bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
164
+ bitcoinNode = this.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
162
165
  privateKey = bitcoinNode.derivePath(derivationPath).privateKey;
163
166
  if (!privateKey) {
164
167
  throw new Error('No privatekey!');
165
168
  }
166
- return [2 /*return*/, privateKey.toString('hex')];
169
+ return [2 /*return*/, Buffer.from(privateKey).toString('hex')];
167
170
  });
168
171
  });
169
172
  };
@@ -180,7 +183,7 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
180
183
  return __awaiter(this, void 0, void 0, function () {
181
184
  var bitcoinNode;
182
185
  return __generator(this, function (_a) {
183
- bitcoinNode = bitcoinJS.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
186
+ bitcoinNode = this.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network);
184
187
  return [2 /*return*/, bitcoinNode.derivePath(derivationPath).toBase58()];
185
188
  });
186
189
  });
@@ -189,7 +192,7 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
189
192
  return __awaiter(this, void 0, void 0, function () {
190
193
  var address;
191
194
  return __generator(this, function (_a) {
192
- address = BitcoinSegwitAddress_1.BitcoinSegwitAddress.fromAddress(bitcoinJS.bip32.fromBase58(publicKey, this.options.network.extras.network).toBase58());
195
+ address = BitcoinSegwitAddress_1.BitcoinSegwitAddress.fromAddress(this.bip32.fromBase58(publicKey, this.options.network.extras.network).toBase58());
193
196
  return [2 /*return*/, {
194
197
  address: address.asString(),
195
198
  cursor: { hasNext: false }
@@ -212,11 +215,11 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
212
215
  var xpub, keyPair, obj, addressRaw, address;
213
216
  return __generator(this, function (_a) {
214
217
  xpub = new ExtendedPublicKey(extendedPublicKey).toXpub();
215
- keyPair = bitcoinJS.bip32
218
+ keyPair = this.bip32
216
219
  .fromBase58(xpub, this.options.network.extras.network)
217
220
  .derive(visibilityDerivationIndex)
218
221
  .derive(addressDerivationIndex);
219
- obj = bitcoinJS.payments.p2wpkh({ pubkey: keyPair.publicKey });
222
+ obj = bitcoinJS.payments.p2wpkh({ pubkey: Buffer.from(keyPair.publicKey) });
220
223
  addressRaw = obj.address;
221
224
  if (!addressRaw) {
222
225
  throw new Error('could not generate address');
@@ -231,11 +234,11 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
231
234
  };
232
235
  BitcoinSegwitProtocol.prototype.getAddressesFromExtendedPublicKey = function (extendedPublicKey, visibilityDerivationIndex, addressCount, offset) {
233
236
  // broadcaster knows this (both broadcaster and signer)
234
- var node = bitcoinJS.bip32.fromBase58(new ExtendedPublicKey(extendedPublicKey).toXpub(), this.options.network.extras.network);
237
+ var node = this.bip32.fromBase58(new ExtendedPublicKey(extendedPublicKey).toXpub(), this.options.network.extras.network);
235
238
  var generatorArray = Array.from(new Array(addressCount), function (x, i) { return i + offset; });
236
239
  return Promise.all(generatorArray.map(function (x) {
237
240
  var keyPair = node.derive(visibilityDerivationIndex).derive(x);
238
- var addressRaw = bitcoinJS.payments.p2wpkh({ pubkey: keyPair.publicKey }).address;
241
+ var addressRaw = bitcoinJS.payments.p2wpkh({ pubkey: Buffer.from(keyPair.publicKey) }).address;
239
242
  if (!addressRaw) {
240
243
  throw new Error('could not generate address');
241
244
  }
@@ -455,12 +458,12 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
455
458
  key: Buffer.from('amount'),
456
459
  value: Buffer.from(wrappedValues.reduce(function (accumulator, currentValue) { return accumulator.plus(currentValue); }).toString())
457
460
  });
458
- keyPair = bitcoinJS.bip32.fromBase58(new ExtendedPublicKey(extendedPublicKey).toXpub());
461
+ keyPair = this.bip32.fromBase58(new ExtendedPublicKey(extendedPublicKey).toXpub());
459
462
  replaceByFee = extras.replaceByFee ? true : false;
460
463
  transaction.ins.forEach(function (tx) {
461
464
  var indexes = getPathIndexes(tx.derivationPath);
462
465
  var childNode = keyPair.derivePath(indexes.join('/'));
463
- var p2wpkh = bitcoinJS.payments.p2wpkh({ pubkey: childNode.publicKey, network: _this.options.network.extras.network });
466
+ var p2wpkh = bitcoinJS.payments.p2wpkh({ pubkey: Buffer.from(childNode.publicKey), network: _this.options.network.extras.network });
464
467
  var p2shOutput = p2wpkh.output;
465
468
  if (!p2shOutput) {
466
469
  throw new Error('no p2shOutput');
@@ -476,7 +479,7 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
476
479
  bip32Derivation: [
477
480
  {
478
481
  masterFingerprint: Buffer.from(extras.masterFingerprint, 'hex'),
479
- pubkey: childNode.publicKey,
482
+ pubkey: Buffer.from(childNode.publicKey),
480
483
  path: tx.derivationPath
481
484
  }
482
485
  ]
@@ -505,7 +508,7 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
505
508
  var rawBitcoinSegwitTx, bip32PK, decodedPSBT;
506
509
  return __generator(this, function (_a) {
507
510
  rawBitcoinSegwitTx = transaction;
508
- bip32PK = bitcoinJS.bip32.fromBase58(extendedPrivateKey);
511
+ bip32PK = this.bip32.fromBase58(extendedPrivateKey);
509
512
  decodedPSBT = bitcoinJS.Psbt.fromHex(rawBitcoinSegwitTx.psbt);
510
513
  decodedPSBT.data.inputs.forEach(function (input, index) {
511
514
  var _a;
@@ -514,7 +517,11 @@ var BitcoinSegwitProtocol = /** @class */ (function (_super) {
514
517
  // This uses the same logic to find child key as the "findWalletByFingerprintDerivationPathAndProtocolIdentifier" method in the Vault
515
518
  var cutoffFrom = deriv.path.lastIndexOf("'") || deriv.path.lastIndexOf('h');
516
519
  var childPath = deriv.path.substr(cutoffFrom + 2);
517
- decodedPSBT.signInput(index, bip32PK.derivePath(childPath));
520
+ var childNode_1 = bip32PK.derivePath(childPath);
521
+ decodedPSBT.signInput(index, {
522
+ publicKey: Buffer.from(childNode_1.publicKey),
523
+ sign: function (hash, lowR) { return Buffer.from(childNode_1.sign(hash, lowR)); }
524
+ });
518
525
  console.log("Signed input ".concat(index, " with path ").concat(deriv.path));
519
526
  }
520
527
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"BitcoinSegwitProtocol.js","sourceRoot":"","sources":["../../../src/v0/protocol/BitcoinSegwitProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BitcoinSegwitProtocol.js","sourceRoot":"","sources":["../../../src/v0/protocol/BitcoinSegwitProtocol.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type * as bitcoin from 'bitcoinjs-lib';
2
+ import { BIP32Interface } from 'bip32';
2
3
  export declare class BitcoinSegwitAddress {
3
4
  protected readonly value: string;
4
5
  private constructor();
5
- static fromBip32(bip32: bitcoin.BIP32Interface): BitcoinSegwitAddress;
6
+ static fromBip32(bip32: BIP32Interface): BitcoinSegwitAddress;
6
7
  static fromPayment(payment: bitcoin.Payment): BitcoinSegwitAddress;
7
8
  asString(): string;
8
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BitcoinSegwitAddress.js","sourceRoot":"","sources":["../../../src/v1/data/BitcoinSegwitAddress.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,sDAA8D;AAG9D;IACE,8BAAuC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE1C,8BAAS,GAAvB,UAAwB,KAA6B;QACnD,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAEa,gCAAW,GAAzB,UAA0B,OAAwB;QAChD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;SAC1E;QAED,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAEM,uCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACH,2BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,oDAAoB"}
1
+ {"version":3,"file":"BitcoinSegwitAddress.js","sourceRoot":"","sources":["../../../src/v1/data/BitcoinSegwitAddress.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,sDAA8D;AAI9D;IACE,8BAAuC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE1C,8BAAS,GAAvB,UAAwB,KAAqB;QAC3C,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnD,CAAC;IAEa,gCAAW,GAAzB,UAA0B,OAAwB;QAChD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;SAC1E;QAED,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAEM,uCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACH,2BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,oDAAoB"}
@@ -0,0 +1,9 @@
1
+ import * as bitcoin from 'bitcoinjs-lib';
2
+ import { BIP32Interface } from 'bip32';
3
+ export declare class BitcoinTaprootAddress {
4
+ protected readonly value: string;
5
+ private constructor();
6
+ static fromBip32(bip32: BIP32Interface): BitcoinTaprootAddress;
7
+ static fromPayment(payment: bitcoin.Payment): BitcoinTaprootAddress;
8
+ asString(): string;
9
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.BitcoinTaprootAddress = void 0;
27
+ var coinlib_core_1 = require("@airgap/coinlib-core");
28
+ var errors_1 = require("@airgap/coinlib-core/errors");
29
+ var bitcoin = __importStar(require("bitcoinjs-lib"));
30
+ var BitcoinTaprootAddress = /** @class */ (function () {
31
+ function BitcoinTaprootAddress(value) {
32
+ this.value = value;
33
+ }
34
+ BitcoinTaprootAddress.fromBip32 = function (bip32) {
35
+ var xOnlyPubkey = bip32.publicKey.slice(1, 33);
36
+ var payment = bitcoin.payments.p2tr({
37
+ internalPubkey: Buffer.from(xOnlyPubkey),
38
+ network: bitcoin.networks.bitcoin
39
+ });
40
+ if (payment.address === undefined) {
41
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Could not generate Taproot address from BIP32.');
42
+ }
43
+ return new BitcoinTaprootAddress(payment.address);
44
+ };
45
+ BitcoinTaprootAddress.fromPayment = function (payment) {
46
+ if (payment.address === undefined) {
47
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.BITCOIN, 'Could not generate Taproot address from payment.');
48
+ }
49
+ return new BitcoinTaprootAddress(payment.address);
50
+ };
51
+ BitcoinTaprootAddress.prototype.asString = function () {
52
+ return this.value;
53
+ };
54
+ return BitcoinTaprootAddress;
55
+ }());
56
+ exports.BitcoinTaprootAddress = BitcoinTaprootAddress;
57
+ //# sourceMappingURL=BitcoinTaprootAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitcoinTaprootAddress.js","sourceRoot":"","sources":["../../../src/v1/data/BitcoinTaprootAddress.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA6C;AAC7C,sDAA8D;AAC9D,qDAAwC;AAGxC;IACE,+BAAuC,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE1C,+BAAS,GAAvB,UAAwB,KAAqB;QAC3C,IAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAEhD,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACpC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;YACxC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;SAClC,CAAC,CAAA;QAEF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAA;SAC7F;QAED,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAEa,iCAAW,GAAzB,UAA0B,OAAwB;QAChD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,kDAAkD,CAAC,CAAA;SAC/F;QAED,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAEM,wCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACH,4BAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,sDAAqB"}
package/v1/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { BlockCypherBlockExplorer } from './block-explorer/BlockCypherBlockExplo
2
2
  import { BitcoinModule } from './module/BitcoinModule';
3
3
  import { BitcoinProtocol, createBitcoinProtocol, createBitcoinProtocolOptions } from './protocol/BitcoinProtocol';
4
4
  import { BitcoinSegwitProtocol, createBitcoinSegwitProtocol } from './protocol/BitcoinSegwitProtocol';
5
+ import { BitcoinTaprootProtocol, createBitcoinTaprootProtocol } from './protocol/BitcoinTaprootProtocol';
5
6
  import { BitcoinTestnetProtocol, createBitcoinTestnetProtocol } from './protocol/BitcoinTestnetProtocol';
6
7
  import { bitcoinSignedTransactionToResponse, bitcoinTransactionSignRequestToUnsigned, bitcoinTransactionSignResponseToSigned, bitcoinUnsignedTransactionToRequest } from './serializer/v3/schemas/converter/transaction-converter';
7
8
  import { BitcoinTransactionSignRequest } from './serializer/v3/schemas/definitions/transaction-sign-request-bitcoin';
@@ -13,10 +14,10 @@ import { bitcoinValidators } from './serializer/v3/validators/validators';
13
14
  import { BitcoinCryptoConfiguration } from './types/crypto';
14
15
  import { BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinUnits } from './types/protocol';
15
16
  import { BitcoinInTransaction, BitcoinOutTransaction, BitcoinSegwitSignedTransaction, BitcoinSegwitUnsignedTransaction, BitcoinSignedTransaction, BitcoinTransactionCursor, BitcoinUnsignedTransaction } from './types/transaction';
16
- import { isBitcoinProtocol, isBitcoinSegwitProtocol } from './utils/protocol';
17
+ import { isBitcoinProtocol, isBitcoinSegwitProtocol, isBitcoinTaprootProtocol } from './utils/protocol';
17
18
  export { BitcoinModule };
18
- export { BitcoinProtocol, BitcoinTestnetProtocol, BitcoinSegwitProtocol, createBitcoinProtocol, createBitcoinTestnetProtocol, createBitcoinSegwitProtocol, createBitcoinProtocolOptions };
19
+ export { BitcoinProtocol, BitcoinTestnetProtocol, BitcoinSegwitProtocol, BitcoinTaprootProtocol, createBitcoinProtocol, createBitcoinTestnetProtocol, createBitcoinSegwitProtocol, createBitcoinTaprootProtocol, createBitcoinProtocolOptions };
19
20
  export { BlockCypherBlockExplorer };
20
21
  export { BitcoinCryptoConfiguration, BitcoinUnits, BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinUnsignedTransaction, BitcoinSignedTransaction, BitcoinSegwitUnsignedTransaction, BitcoinSegwitSignedTransaction, BitcoinInTransaction, BitcoinOutTransaction, BitcoinTransactionCursor };
21
22
  export { BitcoinTransactionSignRequest, BitcoinTransactionSignResponse, BitcoinSegwitTransactionSignRequest, BitcoinSegwitTransactionSignResponse, BitcoinTransactionValidator, bitcoinValidators, bitcoinUnsignedTransactionToRequest, bitcoinSignedTransactionToResponse, bitcoinTransactionSignRequestToUnsigned, bitcoinTransactionSignResponseToSigned };
22
- export { isBitcoinProtocol, isBitcoinSegwitProtocol };
23
+ export { isBitcoinProtocol, isBitcoinSegwitProtocol, isBitcoinTaprootProtocol };
package/v1/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isBitcoinSegwitProtocol = exports.isBitcoinProtocol = exports.bitcoinTransactionSignResponseToSigned = exports.bitcoinTransactionSignRequestToUnsigned = exports.bitcoinSignedTransactionToResponse = exports.bitcoinUnsignedTransactionToRequest = exports.bitcoinValidators = exports.BitcoinTransactionValidator = exports.BlockCypherBlockExplorer = exports.createBitcoinProtocolOptions = exports.createBitcoinSegwitProtocol = exports.createBitcoinTestnetProtocol = exports.createBitcoinProtocol = exports.BitcoinModule = void 0;
3
+ exports.isBitcoinTaprootProtocol = exports.isBitcoinSegwitProtocol = exports.isBitcoinProtocol = exports.bitcoinTransactionSignResponseToSigned = exports.bitcoinTransactionSignRequestToUnsigned = exports.bitcoinSignedTransactionToResponse = exports.bitcoinUnsignedTransactionToRequest = exports.bitcoinValidators = exports.BitcoinTransactionValidator = exports.BlockCypherBlockExplorer = exports.createBitcoinProtocolOptions = exports.createBitcoinTaprootProtocol = exports.createBitcoinSegwitProtocol = exports.createBitcoinTestnetProtocol = exports.createBitcoinProtocol = exports.BitcoinModule = void 0;
4
4
  var BlockCypherBlockExplorer_1 = require("./block-explorer/BlockCypherBlockExplorer");
5
5
  Object.defineProperty(exports, "BlockCypherBlockExplorer", { enumerable: true, get: function () { return BlockCypherBlockExplorer_1.BlockCypherBlockExplorer; } });
6
6
  var BitcoinModule_1 = require("./module/BitcoinModule");
@@ -10,6 +10,8 @@ Object.defineProperty(exports, "createBitcoinProtocol", { enumerable: true, get:
10
10
  Object.defineProperty(exports, "createBitcoinProtocolOptions", { enumerable: true, get: function () { return BitcoinProtocol_1.createBitcoinProtocolOptions; } });
11
11
  var BitcoinSegwitProtocol_1 = require("./protocol/BitcoinSegwitProtocol");
12
12
  Object.defineProperty(exports, "createBitcoinSegwitProtocol", { enumerable: true, get: function () { return BitcoinSegwitProtocol_1.createBitcoinSegwitProtocol; } });
13
+ var BitcoinTaprootProtocol_1 = require("./protocol/BitcoinTaprootProtocol");
14
+ Object.defineProperty(exports, "createBitcoinTaprootProtocol", { enumerable: true, get: function () { return BitcoinTaprootProtocol_1.createBitcoinTaprootProtocol; } });
13
15
  var BitcoinTestnetProtocol_1 = require("./protocol/BitcoinTestnetProtocol");
14
16
  Object.defineProperty(exports, "createBitcoinTestnetProtocol", { enumerable: true, get: function () { return BitcoinTestnetProtocol_1.createBitcoinTestnetProtocol; } });
15
17
  var transaction_converter_1 = require("./serializer/v3/schemas/converter/transaction-converter");
@@ -24,4 +26,5 @@ Object.defineProperty(exports, "bitcoinValidators", { enumerable: true, get: fun
24
26
  var protocol_1 = require("./utils/protocol");
25
27
  Object.defineProperty(exports, "isBitcoinProtocol", { enumerable: true, get: function () { return protocol_1.isBitcoinProtocol; } });
26
28
  Object.defineProperty(exports, "isBitcoinSegwitProtocol", { enumerable: true, get: function () { return protocol_1.isBitcoinSegwitProtocol; } });
29
+ Object.defineProperty(exports, "isBitcoinTaprootProtocol", { enumerable: true, get: function () { return protocol_1.isBitcoinTaprootProtocol; } });
27
30
  //# sourceMappingURL=index.js.map
package/v1/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":";;;AAAA,sFAAoF;AAgD3E,yGAhDA,mDAAwB,OAgDA;AA/CjC,wDAAsD;AA+B7C,8FA/BA,6BAAa,OA+BA;AA9BtB,8DAAiH;AAsC/G,sGAtCwB,uCAAqB,OAsCxB;AAGrB,6GAzC+C,8CAA4B,OAyC/C;AAxC9B,0EAAqG;AAuCnG,4GAvC8B,mDAA2B,OAuC9B;AAtC7B,4EAAwG;AAqCtG,6GArC+B,qDAA4B,OAqC/B;AApC9B,iGAKgE;AAkE9D,mHAtEA,0DAAkC,OAsEA;AAClC,wHAtEA,+DAAuC,OAsEA;AACvC,uHAtEA,8DAAsC,OAsEA;AAHtC,oHAlEA,2DAAmC,OAkEA;AA5DrC,0FAA8F;AA0D5F,4GA1DO,mDAA2B,OA0DP;AAzD7B,oEAAyE;AA0DvE,kGA1DO,8BAAiB,OA0DP;AA9CnB,6CAA6E;AAuDpE,kGAvDA,4BAAiB,OAuDA;AAAE,wGAvDA,kCAAuB,OAuDA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":";;;AAAA,sFAAoF;AAmD3E,yGAnDA,mDAAwB,OAmDA;AAlDjC,wDAAsD;AAgC7C,8FAhCA,6BAAa,OAgCA;AA/BtB,8DAAiH;AAwC/G,sGAxCwB,uCAAqB,OAwCxB;AAIrB,6GA5C+C,8CAA4B,OA4C/C;AA3C9B,0EAAqG;AAyCnG,4GAzC8B,mDAA2B,OAyC9B;AAxC7B,4EAAwG;AAyCtG,6GAzC+B,qDAA4B,OAyC/B;AAxC9B,4EAAwG;AAsCtG,6GAtC+B,qDAA4B,OAsC/B;AArC9B,iGAKgE;AAoE9D,mHAxEA,0DAAkC,OAwEA;AAClC,wHAxEA,+DAAuC,OAwEA;AACvC,uHAxEA,8DAAsC,OAwEA;AAHtC,oHApEA,2DAAmC,OAoEA;AA9DrC,0FAA8F;AA4D5F,4GA5DO,mDAA2B,OA4DP;AA3D7B,oEAAyE;AA4DvE,kGA5DO,8BAAiB,OA4DP;AAhDnB,6CAAuG;AAyD9F,kGAzDA,4BAAiB,OAyDA;AAAE,wGAzDA,kCAAuB,OAyDA;AAAE,yGAzDA,mCAAwB,OAyDA"}
@@ -1,7 +1,7 @@
1
1
  import { MainProtocolSymbols } from '@airgap/coinlib-core';
2
2
  import { AirGapBlockExplorer, AirGapModule, AirGapOfflineProtocol, AirGapOnlineProtocol, AirGapV3SerializerCompanion, ProtocolConfiguration } from '@airgap/module-kit';
3
3
  import { BitcoinProtocolNetwork } from '../types/protocol';
4
- declare type SupportedProtocols = MainProtocolSymbols.BTC | MainProtocolSymbols.BTC_SEGWIT;
4
+ declare type SupportedProtocols = MainProtocolSymbols.BTC | MainProtocolSymbols.BTC_SEGWIT | MainProtocolSymbols.BTC_TAPROOT;
5
5
  export declare class BitcoinModule implements AirGapModule<{
6
6
  Protocols: SupportedProtocols;
7
7
  ProtocolNetwork: BitcoinProtocolNetwork;
@@ -43,6 +43,7 @@ var module_kit_1 = require("@airgap/module-kit");
43
43
  var BlockCypherBlockExplorer_1 = require("../block-explorer/BlockCypherBlockExplorer");
44
44
  var BitcoinProtocol_1 = require("../protocol/BitcoinProtocol");
45
45
  var BitcoinSegwitProtocol_1 = require("../protocol/BitcoinSegwitProtocol");
46
+ var BitcoinTaprootProtocol_1 = require("../protocol/BitcoinTaprootProtocol");
46
47
  var serializer_companion_1 = require("../serializer/v3/serializer-companion");
47
48
  var BitcoinModule = /** @class */ (function () {
48
49
  function BitcoinModule() {
@@ -53,6 +54,7 @@ var BitcoinModule = /** @class */ (function () {
53
54
  this.networkRegistries = (_a = {},
54
55
  _a[coinlib_core_1.MainProtocolSymbols.BTC] = networkRegistry,
55
56
  _a[coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT] = networkRegistry,
57
+ _a[coinlib_core_1.MainProtocolSymbols.BTC_TAPROOT] = networkRegistry,
56
58
  _a);
57
59
  this.supportedProtocols = (0, module_kit_1.createSupportedProtocols)(this.networkRegistries);
58
60
  }
@@ -102,6 +104,8 @@ var BitcoinModule = /** @class */ (function () {
102
104
  return (0, BitcoinProtocol_1.createBitcoinProtocol)({ network: network });
103
105
  case coinlib_core_1.MainProtocolSymbols.BTC_SEGWIT:
104
106
  return (0, BitcoinSegwitProtocol_1.createBitcoinSegwitProtocol)({ network: network });
107
+ case coinlib_core_1.MainProtocolSymbols.BTC_TAPROOT:
108
+ return (0, BitcoinTaprootProtocol_1.createBitcoinTaprootProtocol)({ network: network });
105
109
  default:
106
110
  throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.BITCOIN, "Protocol ".concat(identifier, " not supported."));
107
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BitcoinModule.js","sourceRoot":"","sources":["../../../src/v1/module/BitcoinModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAkE;AAClE,sDAAqE;AACrE,iDAW2B;AAE3B,uFAAqF;AACrF,+DAAqG;AACrG,2EAA+E;AAC/E,8EAAoF;AAKpF;IAIE;;QACE,IAAM,eAAe,GAA0B,IAAI,kCAAqB,CAAC;YACvE,iBAAiB,EAAE,CAAC,kDAAgC,CAAC;SACtD,CAAC,CAAA;QACF,IAAI,CAAC,iBAAiB;YACpB,GAAC,kCAAmB,CAAC,GAAG,IAAG,eAAe;YAC1C,GAAC,kCAAmB,CAAC,UAAU,IAAG,eAAe;eAClD,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC5E,CAAC;IAEY,6CAAqB,GAAlC,UAAmC,UAA8B;;;gBAC/D,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAA;;;KACvC;IAEY,4CAAoB,GAAjC,UACE,UAA8B,EAC9B,WAA6C;;;;;gBAEvC,OAAO,GACX,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,WAAW,CAAC,CAAA;gBAE9G,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAA;iBACrF;gBAED,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;;KAChD;IAEY,2CAAmB,GAAhC,UACE,UAA8B,EAC9B,WAA6C;;;;;gBAEvC,OAAO,GACX,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,WAAW,CAAC,CAAA;gBAE9G,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAA;iBAC3F;gBAED,sBAAO,IAAI,mDAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAA;;;KAC9D;IAEY,mDAA2B,GAAxC;;;gBACE,sBAAO,IAAI,mDAA4B,EAAE,EAAA;;;KAC1C;IAEO,sCAAc,GAAtB,UAAuB,UAA8B,EAAE,OAAyB;QAC9E,QAAQ,UAAU,EAAE;YAClB,KAAK,kCAAmB,CAAC,GAAG;gBAC1B,OAAO,IAAA,uCAAqB,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;YAC3C,KAAK,kCAAmB,CAAC,UAAU;gBACjC,OAAO,IAAA,mDAA2B,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;YACjD;gBACE,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,mBAAY,UAAU,oBAAiB,CAAC,CAAA;SAC7F;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AA7DD,IA6DC;AA7DY,sCAAa"}
1
+ {"version":3,"file":"BitcoinModule.js","sourceRoot":"","sources":["../../../src/v1/module/BitcoinModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAkE;AAClE,sDAAqE;AACrE,iDAW2B;AAE3B,uFAAqF;AACrF,+DAAqG;AACrG,2EAA+E;AAC/E,6EAAiF;AACjF,8EAAoF;AAKpF;IAIE;;QACE,IAAM,eAAe,GAA0B,IAAI,kCAAqB,CAAC;YACvE,iBAAiB,EAAE,CAAC,kDAAgC,CAAC;SACtD,CAAC,CAAA;QACF,IAAI,CAAC,iBAAiB;YACpB,GAAC,kCAAmB,CAAC,GAAG,IAAG,eAAe;YAC1C,GAAC,kCAAmB,CAAC,UAAU,IAAG,eAAe;YACjD,GAAC,kCAAmB,CAAC,WAAW,IAAG,eAAe;eACnD,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC5E,CAAC;IAEY,6CAAqB,GAAlC,UAAmC,UAA8B;;;gBAC/D,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAA;;;KACvC;IAEY,4CAAoB,GAAjC,UACE,UAA8B,EAC9B,WAA6C;;;;;gBAEvC,OAAO,GACX,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,WAAW,CAAC,CAAA;gBAE9G,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAA;iBACrF;gBAED,sBAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;;KAChD;IAEY,2CAAmB,GAAhC,UACE,UAA8B,EAC9B,WAA6C;;;;;gBAEvC,OAAO,GACX,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,0CAAE,WAAW,CAAC,WAAW,CAAC,CAAA;gBAE9G,IAAI,OAAO,KAAK,SAAS,EAAE;oBACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAA;iBAC3F;gBAED,sBAAO,IAAI,mDAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAA;;;KAC9D;IAEY,mDAA2B,GAAxC;;;gBACE,sBAAO,IAAI,mDAA4B,EAAE,EAAA;;;KAC1C;IAEO,sCAAc,GAAtB,UAAuB,UAA8B,EAAE,OAAyB;QAC9E,QAAQ,UAAU,EAAE;YAClB,KAAK,kCAAmB,CAAC,GAAG;gBAC1B,OAAO,IAAA,uCAAqB,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;YAC3C,KAAK,kCAAmB,CAAC,UAAU;gBACjC,OAAO,IAAA,mDAA2B,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;YACjD,KAAK,kCAAmB,CAAC,WAAW;gBAClC,OAAO,IAAA,qDAA4B,EAAC,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;YAClD;gBACE,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,mBAAY,UAAU,oBAAiB,CAAC,CAAA;SAC7F;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAhED,IAgEC;AAhEY,sCAAa"}
@@ -3,7 +3,7 @@ import * as bitcoin from 'bitcoinjs-lib';
3
3
  import { BitcoinCryptoConfiguration } from '../types/crypto';
4
4
  import { BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinUnits } from '../types/protocol';
5
5
  import { BitcoinSegwitSignedTransaction, BitcoinSegwitUnsignedTransaction, BitcoinTransactionCursor, SegwitTransactionFullConfiguration } from '../types/transaction';
6
- import { BitcoinProtocol } from './BitcoinProtocol';
6
+ import { BitcoinProtocol, BitcoinProtocolImpl } from './BitcoinProtocol';
7
7
  export interface BitcoinSegwitProtocol extends BitcoinProtocol<BitcoinSegwitSignedTransaction, BitcoinSegwitUnsignedTransaction> {
8
8
  _isBitcoinSegwitProtocol: true;
9
9
  prepareTransactionWithPublicKey(publicKey: PublicKey | ExtendedPublicKey, details: TransactionDetails<BitcoinUnits>[], configuration: SegwitTransactionFullConfiguration<BitcoinUnits>): Promise<BitcoinSegwitUnsignedTransaction>;
@@ -11,10 +11,11 @@ export interface BitcoinSegwitProtocol extends BitcoinProtocol<BitcoinSegwitSign
11
11
  export declare class BitcoinSegwitProtocolImpl implements BitcoinSegwitProtocol {
12
12
  readonly _isBitcoinProtocol: true;
13
13
  readonly _isBitcoinSegwitProtocol: true;
14
- private readonly legacy;
14
+ readonly legacy: BitcoinProtocolImpl;
15
15
  private readonly options;
16
16
  private readonly bitcoinJS;
17
17
  constructor(options?: RecursivePartial<BitcoinProtocolOptions>, bitcoinJS?: typeof bitcoin);
18
+ private readonly bip32;
18
19
  private readonly metadata;
19
20
  getMetadata(): Promise<ProtocolMetadata<BitcoinUnits>>;
20
21
  getAddressFromPublicKey(publicKey: PublicKey | ExtendedPublicKey): Promise<string>;
@@ -95,6 +95,8 @@ var common_1 = require("../utils/common");
95
95
  var key_1 = require("../utils/key");
96
96
  var network_1 = require("../utils/network");
97
97
  var BitcoinProtocol_1 = require("./BitcoinProtocol");
98
+ var bip32_1 = require("bip32");
99
+ var secp256k1_1 = __importDefault(require("@bitcoinerlab/secp256k1"));
98
100
  // Implementation
99
101
  var DUST_AMOUNT = 50;
100
102
  var BitcoinSegwitProtocolImpl = /** @class */ (function () {
@@ -104,6 +106,7 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
104
106
  var _a, _b, _c;
105
107
  this._isBitcoinProtocol = true;
106
108
  this._isBitcoinSegwitProtocol = true;
109
+ this.bip32 = (0, bip32_1.BIP32Factory)(secp256k1_1.default);
107
110
  this.options = (0, BitcoinProtocol_1.createBitcoinProtocolOptions)(options.network);
108
111
  this.bitcoinJS = {
109
112
  lib: bitcoinJS,
@@ -160,7 +163,7 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
160
163
  var encodedExtendedPublicKey, bip32;
161
164
  return __generator(this, function (_a) {
162
165
  encodedExtendedPublicKey = (0, key_1.convertExtendedPublicKey)(extendedPublicKey, { format: 'encoded', type: 'xpub' });
163
- bip32 = this.bitcoinJS.lib.bip32.fromBase58(encodedExtendedPublicKey.value, this.bitcoinJS.config.network);
166
+ bip32 = this.bip32.fromBase58(encodedExtendedPublicKey.value, this.bitcoinJS.config.network);
164
167
  return [2 /*return*/, BitcoinSegwitAddress_1.BitcoinSegwitAddress.fromBip32(bip32).asString()];
165
168
  });
166
169
  });
@@ -170,11 +173,11 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
170
173
  var encodedPublicKey, derivedBip32;
171
174
  return __generator(this, function (_a) {
172
175
  encodedPublicKey = (0, key_1.convertExtendedPublicKey)(publicKey, { format: 'encoded', type: 'xpub' });
173
- derivedBip32 = this.bitcoinJS.lib.bip32
176
+ derivedBip32 = this.bip32
174
177
  .fromBase58(encodedPublicKey.value, this.bitcoinJS.config.network)
175
178
  .derive(visibilityIndex)
176
179
  .derive(addressIndex);
177
- return [2 /*return*/, (0, module_kit_1.newPublicKey)(derivedBip32.publicKey.toString('hex'), 'hex')];
180
+ return [2 /*return*/, (0, module_kit_1.newPublicKey)(Buffer.from(derivedBip32.publicKey).toString('hex'), 'hex')];
178
181
  });
179
182
  });
180
183
  };
@@ -428,14 +431,17 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
428
431
  };
429
432
  BitcoinSegwitProtocolImpl.prototype.getKeyPairFromDerivative = function (derivative) {
430
433
  return __awaiter(this, void 0, void 0, function () {
431
- var bip32, privateKey, publicKey;
434
+ var bip32, privateKeyUint8, privateKey, publicKeyUint8, publicKey;
432
435
  return __generator(this, function (_a) {
436
+ console.log('segwit derivative', derivative);
433
437
  bip32 = this.derivativeToBip32Node(derivative);
434
- privateKey = bip32.privateKey;
435
- if (privateKey === undefined) {
438
+ privateKeyUint8 = bip32.privateKey;
439
+ if (privateKeyUint8 === undefined) {
436
440
  throw new Error('No private key!');
437
441
  }
438
- publicKey = bip32.publicKey;
442
+ privateKey = Buffer.from(privateKeyUint8);
443
+ publicKeyUint8 = bip32.publicKey;
444
+ publicKey = Buffer.from(publicKeyUint8);
439
445
  return [2 /*return*/, {
440
446
  secretKey: (0, module_kit_1.newSecretKey)(privateKey.toString('hex'), 'hex'),
441
447
  publicKey: (0, module_kit_1.newPublicKey)(publicKey.toString('hex'), 'hex')
@@ -460,17 +466,18 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
460
466
  };
461
467
  BitcoinSegwitProtocolImpl.prototype.deriveFromExtendedSecretKey = function (extendedSecretKey, visibilityIndex, addressIndex) {
462
468
  return __awaiter(this, void 0, void 0, function () {
463
- var encodedSecretKey, derivedBip32, privateKey;
469
+ var encodedSecretKey, derivedBip32, privateKeyUint8, privateKey;
464
470
  return __generator(this, function (_a) {
465
471
  encodedSecretKey = (0, key_1.convertExtendedSecretKey)(extendedSecretKey, { format: 'encoded', type: 'xprv' });
466
- derivedBip32 = this.bitcoinJS.lib.bip32
472
+ derivedBip32 = this.bip32
467
473
  .fromBase58(encodedSecretKey.value, this.bitcoinJS.config.network)
468
474
  .derive(visibilityIndex)
469
475
  .derive(addressIndex);
470
- privateKey = derivedBip32.privateKey;
471
- if (privateKey === undefined) {
476
+ privateKeyUint8 = derivedBip32.privateKey;
477
+ if (privateKeyUint8 === undefined) {
472
478
  throw new Error('No private key!');
473
479
  }
480
+ privateKey = Buffer.from(privateKeyUint8);
474
481
  return [2 /*return*/, (0, module_kit_1.newSecretKey)(privateKey.toString('hex'), 'hex')];
475
482
  });
476
483
  });
@@ -504,7 +511,7 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
504
511
  var encodedExtendedSecretKey, bip32, decodedPSBT;
505
512
  return __generator(this, function (_a) {
506
513
  encodedExtendedSecretKey = (0, key_1.convertExtendedSecretKey)(extendedSecretKey, { format: 'encoded', type: 'xprv' });
507
- bip32 = this.bitcoinJS.lib.bip32.fromBase58(encodedExtendedSecretKey.value);
514
+ bip32 = this.bip32.fromBase58(encodedExtendedSecretKey.value);
508
515
  decodedPSBT = this.bitcoinJS.lib.Psbt.fromHex(transaction.psbt);
509
516
  decodedPSBT.data.inputs.forEach(function (input, index) {
510
517
  var _a;
@@ -513,7 +520,12 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
513
520
  // This uses the same logic to find child key as the "findWalletByFingerprintDerivationPathAndProtocolIdentifier" method in the Vault
514
521
  var cutoffFrom = deriv.path.lastIndexOf("'") || deriv.path.lastIndexOf('h');
515
522
  var childPath = deriv.path.substr(cutoffFrom + 2);
516
- decodedPSBT.signInput(index, bip32.derivePath(childPath));
523
+ var childNode_1 = bip32.derivePath(childPath);
524
+ // Wrap publicKey as Buffer to match Signer interface
525
+ decodedPSBT.signInput(index, {
526
+ publicKey: Buffer.from(childNode_1.publicKey),
527
+ sign: function (hash, lowR) { return Buffer.from(childNode_1.sign(hash, lowR)); }
528
+ });
517
529
  console.log("Signed input ".concat(index, " with path ").concat(deriv.path));
518
530
  }
519
531
  catch (e) {
@@ -769,16 +781,16 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
769
781
  .toString())
770
782
  });
771
783
  xpubExtendedPublicKey = (0, key_1.convertExtendedPublicKey)(extendedPublicKey, { format: 'encoded', type: 'xpub' });
772
- keyPair = this.bitcoinJS.lib.bip32.fromBase58(xpubExtendedPublicKey.value);
784
+ keyPair = this.bip32.fromBase58(xpubExtendedPublicKey.value);
773
785
  replaceByFee = (configuration === null || configuration === void 0 ? void 0 : configuration.replaceByFee) ? true : false;
774
786
  transaction.ins.forEach(function (tx) {
775
787
  var indexes = getPathIndexes(tx.derivationPath);
776
788
  var childNode = keyPair.derivePath(indexes.join('/'));
777
- var p2wpkh = _this.bitcoinJS.lib.payments.p2wpkh({
778
- pubkey: childNode.publicKey,
789
+ var payment = _this.bitcoinJS.lib.payments.p2wpkh({
790
+ pubkey: Buffer.from(childNode.publicKey),
779
791
  network: _this.bitcoinJS.config.network
780
792
  });
781
- var p2shOutput = p2wpkh.output;
793
+ var p2shOutput = payment.output;
782
794
  if (!p2shOutput) {
783
795
  throw new Error('no p2shOutput');
784
796
  }
@@ -793,7 +805,7 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
793
805
  bip32Derivation: [
794
806
  {
795
807
  masterFingerprint: Buffer.from(configuration.masterFingerprint.value, 'hex'),
796
- pubkey: childNode.publicKey,
808
+ pubkey: Buffer.from(childNode.publicKey),
797
809
  path: tx.derivationPath
798
810
  }
799
811
  ]
@@ -841,7 +853,7 @@ var BitcoinSegwitProtocolImpl = /** @class */ (function () {
841
853
  };
842
854
  BitcoinSegwitProtocolImpl.prototype.derivativeToBip32Node = function (derivative) {
843
855
  var extendedSecretKey = this.convertCryptoDerivative(derivative);
844
- return this.bitcoinJS.lib.bip32.fromBase58(extendedSecretKey.value, this.bitcoinJS.config.network);
856
+ return this.bip32.fromBase58(extendedSecretKey.value, this.bitcoinJS.config.network);
845
857
  };
846
858
  return BitcoinSegwitProtocolImpl;
847
859
  }());