@airgap/bitcoin 0.13.41 → 0.13.42-beta.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.
- package/package.json +8 -6
- package/v0/protocol/BitcoinSegwitProtocol.d.ts +1 -0
- package/v0/protocol/BitcoinSegwitProtocol.js +22 -15
- package/v0/protocol/BitcoinSegwitProtocol.js.map +1 -1
- package/v1/data/BitcoinSegwitAddress.d.ts +2 -1
- package/v1/data/BitcoinSegwitAddress.js.map +1 -1
- package/v1/data/BitcoinTaprootAddress.d.ts +9 -0
- package/v1/data/BitcoinTaprootAddress.js +57 -0
- package/v1/data/BitcoinTaprootAddress.js.map +1 -0
- package/v1/index.d.ts +9 -6
- package/v1/index.js +4 -1
- package/v1/index.js.map +1 -1
- package/v1/module/BitcoinModule.d.ts +1 -1
- package/v1/module/BitcoinModule.js +4 -0
- package/v1/module/BitcoinModule.js.map +1 -1
- package/v1/protocol/BitcoinSegwitProtocol.d.ts +3 -2
- package/v1/protocol/BitcoinSegwitProtocol.js +31 -19
- package/v1/protocol/BitcoinSegwitProtocol.js.map +1 -1
- package/v1/protocol/BitcoinTaprootProtocol.d.ts +60 -0
- package/v1/protocol/BitcoinTaprootProtocol.js +1091 -0
- package/v1/protocol/BitcoinTaprootProtocol.js.map +1 -0
- package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +7 -1
- package/v1/serializer/v3/schemas/converter/transaction-converter.js +22 -1
- package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.d.ts +4 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot.js.map +1 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.d.ts +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js +3 -0
- package/v1/serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot.js.map +1 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-request-bitcoin-taproot.json +29 -0
- package/v1/serializer/v3/schemas/generated/transaction-sign-response-bitcoin-taproot.json +19 -0
- package/v1/serializer/v3/serializer-companion.js +26 -4
- package/v1/serializer/v3/serializer-companion.js.map +1 -1
- package/v1/types/bitcoinjs.d.ts +6 -0
- package/v1/types/transaction.d.ts +10 -0
- package/v1/utils/protocol.d.ts +3 -0
- package/v1/utils/protocol.js +6 -1
- 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.
|
|
3
|
+
"version": "0.13.42-beta.2",
|
|
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.
|
|
34
|
-
"@airgap/crypto": "^0.13.
|
|
35
|
-
"@airgap/module-kit": "^0.13.
|
|
36
|
-
"@airgap/serializer": "^0.13.
|
|
37
|
-
"
|
|
33
|
+
"@airgap/coinlib-core": "^0.13.42-beta.2",
|
|
34
|
+
"@airgap/crypto": "^0.13.42-beta.2",
|
|
35
|
+
"@airgap/module-kit": "^0.13.42-beta.2",
|
|
36
|
+
"@airgap/serializer": "^0.13.42-beta.2",
|
|
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 =
|
|
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*/,
|
|
162
|
+
return [2 /*return*/, this.bip32.fromSeed(Buffer.from(secret, 'hex'), this.options.network.extras.network)];
|
|
160
163
|
}
|
|
161
|
-
bitcoinNode =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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:
|
|
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;
|
|
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,21 +2,24 @@ 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';
|
|
8
9
|
import { BitcoinSegwitTransactionSignRequest } from './serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-segwit';
|
|
10
|
+
import { BitcoinTaprootTransactionSignRequest } from './serializer/v3/schemas/definitions/transaction-sign-request-bitcoin-taproot';
|
|
9
11
|
import { BitcoinTransactionSignResponse } from './serializer/v3/schemas/definitions/transaction-sign-response-bitcoin';
|
|
10
12
|
import { BitcoinSegwitTransactionSignResponse } from './serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-segwit';
|
|
13
|
+
import { BitcoinTaprootTransactionSignResponse } from './serializer/v3/schemas/definitions/transaction-sign-response-bitcoin-taproot';
|
|
11
14
|
import { BitcoinTransactionValidator } from './serializer/v3/validators/transaction-validator';
|
|
12
15
|
import { bitcoinValidators } from './serializer/v3/validators/validators';
|
|
13
16
|
import { BitcoinCryptoConfiguration } from './types/crypto';
|
|
14
17
|
import { BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinUnits } from './types/protocol';
|
|
15
|
-
import { BitcoinInTransaction, BitcoinOutTransaction, BitcoinSegwitSignedTransaction, BitcoinSegwitUnsignedTransaction, BitcoinSignedTransaction, BitcoinTransactionCursor, BitcoinUnsignedTransaction } from './types/transaction';
|
|
16
|
-
import { isBitcoinProtocol, isBitcoinSegwitProtocol } from './utils/protocol';
|
|
18
|
+
import { BitcoinInTransaction, BitcoinOutTransaction, BitcoinSegwitSignedTransaction, BitcoinSegwitUnsignedTransaction, BitcoinTaprootSignedTransaction, BitcoinTaprootUnsignedTransaction, BitcoinSignedTransaction, BitcoinTransactionCursor, BitcoinUnsignedTransaction } from './types/transaction';
|
|
19
|
+
import { isBitcoinProtocol, isBitcoinSegwitProtocol, isBitcoinTaprootProtocol } from './utils/protocol';
|
|
17
20
|
export { BitcoinModule };
|
|
18
|
-
export { BitcoinProtocol, BitcoinTestnetProtocol, BitcoinSegwitProtocol, createBitcoinProtocol, createBitcoinTestnetProtocol, createBitcoinSegwitProtocol, createBitcoinProtocolOptions };
|
|
21
|
+
export { BitcoinProtocol, BitcoinTestnetProtocol, BitcoinSegwitProtocol, BitcoinTaprootProtocol, createBitcoinProtocol, createBitcoinTestnetProtocol, createBitcoinSegwitProtocol, createBitcoinTaprootProtocol, createBitcoinProtocolOptions };
|
|
19
22
|
export { BlockCypherBlockExplorer };
|
|
20
|
-
export { BitcoinCryptoConfiguration, BitcoinUnits, BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinUnsignedTransaction, BitcoinSignedTransaction, BitcoinSegwitUnsignedTransaction, BitcoinSegwitSignedTransaction, BitcoinInTransaction, BitcoinOutTransaction, BitcoinTransactionCursor };
|
|
21
|
-
export { BitcoinTransactionSignRequest, BitcoinTransactionSignResponse, BitcoinSegwitTransactionSignRequest, BitcoinSegwitTransactionSignResponse, BitcoinTransactionValidator, bitcoinValidators, bitcoinUnsignedTransactionToRequest, bitcoinSignedTransactionToResponse, bitcoinTransactionSignRequestToUnsigned, bitcoinTransactionSignResponseToSigned };
|
|
22
|
-
export { isBitcoinProtocol, isBitcoinSegwitProtocol };
|
|
23
|
+
export { BitcoinCryptoConfiguration, BitcoinUnits, BitcoinProtocolNetwork, BitcoinProtocolOptions, BitcoinUnsignedTransaction, BitcoinSignedTransaction, BitcoinSegwitUnsignedTransaction, BitcoinSegwitSignedTransaction, BitcoinTaprootUnsignedTransaction, BitcoinTaprootSignedTransaction, BitcoinInTransaction, BitcoinOutTransaction, BitcoinTransactionCursor };
|
|
24
|
+
export { BitcoinTransactionSignRequest, BitcoinTransactionSignResponse, BitcoinSegwitTransactionSignRequest, BitcoinTaprootTransactionSignRequest, BitcoinSegwitTransactionSignResponse, BitcoinTaprootTransactionSignResponse, BitcoinTransactionValidator, bitcoinValidators, bitcoinUnsignedTransactionToRequest, bitcoinSignedTransactionToResponse, bitcoinTransactionSignRequestToUnsigned, bitcoinTransactionSignResponseToSigned };
|
|
25
|
+
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":";;;AAAA,sFAAoF;AAuD3E,yGAvDA,mDAAwB,OAuDA;AAtDjC,wDAAsD;AAoC7C,8FApCA,6BAAa,OAoCA;AAnCtB,8DAAiH;AA4C/G,sGA5CwB,uCAAqB,OA4CxB;AAIrB,6GAhD+C,8CAA4B,OAgD/C;AA/C9B,0EAAqG;AA6CnG,4GA7C8B,mDAA2B,OA6C9B;AA5C7B,4EAAwG;AA6CtG,6GA7C+B,qDAA4B,OA6C/B;AA5C9B,4EAAwG;AA0CtG,6GA1C+B,qDAA4B,OA0C/B;AAzC9B,iGAKgE;AA4E9D,mHAhFA,0DAAkC,OAgFA;AAClC,wHAhFA,+DAAuC,OAgFA;AACvC,uHAhFA,8DAAsC,OAgFA;AAHtC,oHA5EA,2DAAmC,OA4EA;AApErC,0FAA8F;AAkE5F,4GAlEO,mDAA2B,OAkEP;AAjE7B,oEAAyE;AAkEvE,kGAlEO,8BAAiB,OAkEP;AApDnB,6CAAuG;AA6D9F,kGA7DA,4BAAiB,OA6DA;AAAE,wGA7DA,kCAAuB,OA6DA;AAAE,yGA7DA,mCAAwB,OA6DA"}
|
|
@@ -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;
|
|
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
|
-
|
|
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>;
|