@scure/btc-signer 1.0.1 โ 1.1.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.
- package/README.md +40 -20
- package/index.d.ts +26 -6
- package/index.d.ts.map +1 -1
- package/index.js +81 -39
- package/index.js.map +1 -1
- package/index.ts +100 -58
- package/package.json +9 -7
package/README.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Audited & minimal library for creating, signing & decoding Bitcoin transactions.
|
|
4
4
|
|
|
5
|
+
- ๐ [**Audited**](#security) by an independent security firm
|
|
5
6
|
- โ๏ธ Create transactions, inputs, outputs, sign them
|
|
6
7
|
- ๐ก No network code: simplified audits and offline usage
|
|
7
8
|
- ๐ป Classic & SegWit: P2PK, P2PKH, P2WPKH, P2SH, P2WSH, P2MS
|
|
8
9
|
- ๐งช Schnorr & Taproot BIP340/BIP341: P2TR, P2TR-NS, P2TR-MS
|
|
9
10
|
- ๐จ BIP174 PSBT
|
|
10
11
|
- ๐ฅ Multisig support
|
|
11
|
-
- ๐ [**Audited**](#security) by an independent security firm
|
|
12
12
|
- ๐ชถ ~2600 lines
|
|
13
13
|
|
|
14
14
|
Initial development has been funded by [Ryan Shea](https://shea.io). Check out [the demo](https://signerdemo.micro-btc.dev/) & [its github](https://github.com/shea256/micro-btc-web-demo).
|
|
@@ -17,14 +17,14 @@ Initial development has been funded by [Ryan Shea](https://shea.io). Check out [
|
|
|
17
17
|
|
|
18
18
|
> **scure** โ secure, independently audited packages for every use case.
|
|
19
19
|
|
|
20
|
-
-
|
|
20
|
+
- Minimal or zero dependencies
|
|
21
|
+
- Releases are signed with PGP keys and built transparently with NPM provenance
|
|
21
22
|
- Check out all libraries:
|
|
22
23
|
[base](https://github.com/paulmillr/scure-base),
|
|
23
24
|
[bip32](https://github.com/paulmillr/scure-bip32),
|
|
24
25
|
[bip39](https://github.com/paulmillr/scure-bip39),
|
|
25
|
-
[btc-signer](https://github.com/paulmillr/scure-btc-signer)
|
|
26
|
-
|
|
27
|
-
*Check out all web3 utility libraries:* [ETH](https://github.com/paulmillr/micro-eth-signer), [BTC](https://github.com/paulmillr/scure-btc-signer), [SOL](https://github.com/paulmillr/micro-sol-signer), [micro-web3](https://github.com/paulmillr/micro-web3), [tx-tor-broadcaster](https://github.com/paulmillr/tx-tor-broadcaster)
|
|
26
|
+
[btc-signer](https://github.com/paulmillr/scure-btc-signer),
|
|
27
|
+
[starknet](https://github.com/paulmillr/scure-starknet)
|
|
28
28
|
|
|
29
29
|
## Usage
|
|
30
30
|
|
|
@@ -36,7 +36,7 @@ For React Native, you may need a [polyfill for crypto.getRandomValues](https://g
|
|
|
36
36
|
|
|
37
37
|
```ts
|
|
38
38
|
import * as btc from '@scure/btc-signer';
|
|
39
|
-
// import * as btc from "npm:@scure/btc-signer@0.
|
|
39
|
+
// import * as btc from "npm:@scure/btc-signer@1.0.0"; // Deno
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
### Table of Contents
|
|
@@ -621,10 +621,10 @@ const epriv =
|
|
|
621
621
|
'tprv8ZgxMBicQKsPd9TeAdPADNnSyH9SSUUbTVeFszDE23Ki6TBB5nCefAdHkK8Fm3qMQR6sHwA56zqRmKmxnHk37JkiFzvncDqoKmPWubu7hDF';
|
|
622
622
|
const hdkey = bip32.HDKey.fromExtendedKey(epriv, testnet.bip32);
|
|
623
623
|
// const seed = 'cUkG8i1RFfWGWy5ziR11zJ5V4U4W3viSFCfyJmZnvQaUsd1xuF3T';
|
|
624
|
-
const tx = new btc.Transaction(
|
|
624
|
+
const tx = new btc.Transaction();
|
|
625
625
|
// A creator creating a PSBT for a transaction which creates the following outputs:
|
|
626
|
-
tx.addOutput({ script: '0014d85c2b71d0060b09c9886aeb815e50991dda124d', amount: '1.49990000' });
|
|
627
|
-
tx.addOutput({ script: '001400aea9a2e5f0f876a588df5546e8742d1d87008f', amount: '1.00000000' });
|
|
626
|
+
tx.addOutput({ script: '0014d85c2b71d0060b09c9886aeb815e50991dda124d', amount: btc.Decimal.decode('1.49990000') });
|
|
627
|
+
tx.addOutput({ script: '001400aea9a2e5f0f876a588df5546e8742d1d87008f', amount: btc.Decimal.decode('1.00000000') });
|
|
628
628
|
// and spends the following inputs:
|
|
629
629
|
tx.addInput({
|
|
630
630
|
txid: '75ddabb27b8845f5247975c8a5ba7c6f336c4570708ebe230caf6db5217ae858',
|
|
@@ -696,7 +696,7 @@ const psbt2 = tx2.toPSBT();
|
|
|
696
696
|
// An updater which adds SIGHASH_ALL to the above PSBT must create this PSBT:
|
|
697
697
|
const tx3 = btc.Transaction.fromPSBT(psbt2);
|
|
698
698
|
for (let i = 0; i < tx3.inputs.length; i++)
|
|
699
|
-
tx3.updateInput(i, { sighashType: btc.
|
|
699
|
+
tx3.updateInput(i, { sighashType: btc.SigHash.ALL });
|
|
700
700
|
const psbt3 = tx3.toPSBT();
|
|
701
701
|
/*
|
|
702
702
|
Given the above updated PSBT, a signer that supports SIGHASH_ALL for P2PKH and P2WPKH spends and uses RFC6979 for nonce generation and has the following keys:
|
|
@@ -836,16 +836,36 @@ deepStrictEqual(
|
|
|
836
836
|
|
|
837
837
|
## Security
|
|
838
838
|
|
|
839
|
-
The library has been audited
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
839
|
+
The library has been independently audited:
|
|
840
|
+
|
|
841
|
+
- at version 0.3.0, in Feb 2023, by [cure53](https://cure53.de)
|
|
842
|
+
- PDFs: [online](https://cure53.de/audit-report_micro-btc-signer.pdf), [offline](./audit/2023-02-21-cure53-audit-report.pdf)
|
|
843
|
+
- [Changes since audit](https://github.com/paulmillr/scure-btc-signer/compare/0.3.0..main).
|
|
844
|
+
- The audit has been funded by [Ryan Shea](https://shea.io)
|
|
845
|
+
|
|
846
|
+
### Supply chain security
|
|
847
|
+
|
|
848
|
+
1. **Commits** are signed with PGP keys, to prevent forgery. Make sure to verify commit signatures.
|
|
849
|
+
2. **Releases** are transparent and built on GitHub CI. Make sure to verify [provenance](https://docs.npmjs.com/generating-provenance-statements) logs
|
|
850
|
+
3. **Rare releasing** is followed.
|
|
851
|
+
The less often it is done, the less code dependents would need to audit
|
|
852
|
+
4. **Dependencies** are minimal:
|
|
853
|
+
- All deps are prevented from automatic updates and have locked-down version ranges. Every update is checked with `npm-diff`
|
|
854
|
+
- Updates themselves are rare, to ensure rogue updates are not catched accidentally
|
|
855
|
+
- [noble-hashes](https://github.com/paulmillr/noble-hashes) provides hashing functionality
|
|
856
|
+
- [noble-curves](https://github.com/paulmillr/noble-curves) provides elliptic curve cryptography
|
|
857
|
+
- [scure-base](https://github.com/paulmillr/scure-base) provides bech32 / base64
|
|
858
|
+
- [micro-packed](https://github.com/paulmillr/micro-packed) provides binary encoding - it has not been audited
|
|
859
|
+
5. devDependencies are only used if you want to contribute to the repo. They are disabled for end-users:
|
|
860
|
+
- scure-bip32, micro-packed-debugger and micro-should are developed by the same author and follow identical security practices
|
|
861
|
+
- prettier (linter), fast-check (property-based testing) and typescript are used for code quality, vector generation and ts compilation. The packages are big, which makes it hard to audit their source code thoroughly and fully
|
|
862
|
+
|
|
863
|
+
We consider infrastructure attacks like rogue NPM modules very important;
|
|
864
|
+
that's why it's crucial to minimize the amount of 3rd-party dependencies & native bindings.
|
|
865
|
+
If your app uses 500 dependencies, any dep could get hacked and you'll be
|
|
866
|
+
downloading malware with every install. Our goal is to minimize this attack vector.
|
|
867
|
+
|
|
868
|
+
If you see anything unusual: investigate and report.
|
|
849
869
|
|
|
850
870
|
## License
|
|
851
871
|
|
package/index.d.ts
CHANGED
|
@@ -1007,7 +1007,7 @@ export declare const RawPSBTV2: P.CoderType<({
|
|
|
1007
1007
|
readonly proprietary: readonly [252, P.CoderType<Uint8Array>, P.CoderType<Uint8Array>, readonly [], readonly [0, 2], false];
|
|
1008
1008
|
}>[];
|
|
1009
1009
|
} & {})>;
|
|
1010
|
-
type P2Ret = {
|
|
1010
|
+
export type P2Ret = {
|
|
1011
1011
|
type: string;
|
|
1012
1012
|
script: Bytes;
|
|
1013
1013
|
address?: string;
|
|
@@ -1088,7 +1088,6 @@ type TaprootLeaf = {
|
|
|
1088
1088
|
script: Bytes;
|
|
1089
1089
|
hash: Bytes;
|
|
1090
1090
|
path: Bytes[];
|
|
1091
|
-
tapInternalKey?: Bytes;
|
|
1092
1091
|
};
|
|
1093
1092
|
export declare const TAPROOT_UNSPENDABLE_KEY: Uint8Array;
|
|
1094
1093
|
export type P2TROut = P2Ret & {
|
|
@@ -1103,7 +1102,7 @@ export declare function p2tr(internalPubKey?: Bytes | string, tree?: TaprootScri
|
|
|
1103
1102
|
pubKeyHash: number;
|
|
1104
1103
|
scriptHash: number;
|
|
1105
1104
|
wif: number;
|
|
1106
|
-
},
|
|
1105
|
+
}, allowUnknownOutputs?: boolean): P2TROut;
|
|
1107
1106
|
type OutTRNSType = {
|
|
1108
1107
|
type: 'tr_ns';
|
|
1109
1108
|
pubkeys: Bytes[];
|
|
@@ -1135,7 +1134,7 @@ export declare function programToWitness(version: number, data: Bytes, network?:
|
|
|
1135
1134
|
pubKeyHash: number;
|
|
1136
1135
|
scriptHash: number;
|
|
1137
1136
|
wif: number;
|
|
1138
|
-
}): string
|
|
1137
|
+
}): `${Lowercase<string>}1${string}`;
|
|
1139
1138
|
export declare function WIF(network?: {
|
|
1140
1139
|
bech32: string;
|
|
1141
1140
|
pubKeyHash: number;
|
|
@@ -1151,6 +1150,10 @@ export declare function Address(network?: {
|
|
|
1151
1150
|
encode(from: P.UnwrapCoder<typeof OutScript>): string;
|
|
1152
1151
|
decode(address: string): P.UnwrapCoder<typeof OutScript>;
|
|
1153
1152
|
};
|
|
1153
|
+
/**
|
|
1154
|
+
* Internal, exported only for backwards-compat. Use `SigHash` instead.
|
|
1155
|
+
* @deprecated
|
|
1156
|
+
*/
|
|
1154
1157
|
export declare enum SignatureHash {
|
|
1155
1158
|
DEFAULT = 0,
|
|
1156
1159
|
ALL = 1,
|
|
@@ -1158,7 +1161,16 @@ export declare enum SignatureHash {
|
|
|
1158
1161
|
SINGLE = 3,
|
|
1159
1162
|
ANYONECANPAY = 128
|
|
1160
1163
|
}
|
|
1161
|
-
export declare
|
|
1164
|
+
export declare enum SigHash {
|
|
1165
|
+
DEFAULT = 0,
|
|
1166
|
+
ALL = 1,
|
|
1167
|
+
NONE = 2,
|
|
1168
|
+
SINGLE = 3,
|
|
1169
|
+
DEFAULT_ANYONECANPAY = 128,
|
|
1170
|
+
ALL_ANYONECANPAY = 129,
|
|
1171
|
+
NONE_ANYONECANPAY = 130,
|
|
1172
|
+
SINGLE_ANYONECANPAY = 131
|
|
1173
|
+
}
|
|
1162
1174
|
export declare const _sortPubkeys: (pubkeys: Bytes[]) => Uint8Array[];
|
|
1163
1175
|
export type TransactionInput = P.UnwrapCoder<typeof PSBTInputCoder>;
|
|
1164
1176
|
export type TransactionInputUpdate = ExtendType<TransactionInput, {
|
|
@@ -1194,8 +1206,12 @@ export type TxOpts = {
|
|
|
1194
1206
|
version?: number;
|
|
1195
1207
|
lockTime?: number;
|
|
1196
1208
|
PSBTVersion?: number;
|
|
1209
|
+
/** @deprecated Use `allowUnknownOutputs` */
|
|
1197
1210
|
allowUnknowOutput?: boolean;
|
|
1211
|
+
allowUnknownOutputs?: boolean;
|
|
1212
|
+
/** @deprecated Use `allowUnknownInputs` */
|
|
1198
1213
|
allowUnknowInput?: boolean;
|
|
1214
|
+
allowUnknownInputs?: boolean;
|
|
1199
1215
|
disableScriptCheck?: boolean;
|
|
1200
1216
|
bip174jsCompat?: boolean;
|
|
1201
1217
|
allowLegacyWitnessUtxo?: boolean;
|
|
@@ -1205,8 +1221,12 @@ declare function validateOpts(opts: TxOpts): Readonly<{
|
|
|
1205
1221
|
version: number;
|
|
1206
1222
|
lockTime: number;
|
|
1207
1223
|
PSBTVersion: number;
|
|
1224
|
+
/** @deprecated Use `allowUnknownOutputs` */
|
|
1208
1225
|
allowUnknowOutput?: boolean | undefined;
|
|
1226
|
+
allowUnknownOutputs?: boolean | undefined;
|
|
1227
|
+
/** @deprecated Use `allowUnknownInputs` */
|
|
1209
1228
|
allowUnknowInput?: boolean | undefined;
|
|
1229
|
+
allowUnknownInputs?: boolean | undefined;
|
|
1210
1230
|
disableScriptCheck?: boolean | undefined;
|
|
1211
1231
|
bip174jsCompat?: boolean | undefined;
|
|
1212
1232
|
allowLegacyWitnessUtxo?: boolean | undefined;
|
|
@@ -1344,7 +1364,7 @@ export declare class Transaction {
|
|
|
1344
1364
|
private preimageWitnessV1;
|
|
1345
1365
|
private prevOut;
|
|
1346
1366
|
private inputType;
|
|
1347
|
-
signIdx(privateKey: Signer, idx: number, allowedSighash?:
|
|
1367
|
+
signIdx(privateKey: Signer, idx: number, allowedSighash?: SigHash[], _auxRand?: Bytes): boolean;
|
|
1348
1368
|
sign(privateKey: Signer, allowedSighash?: number[], _auxRand?: Bytes): number;
|
|
1349
1369
|
finalizeIdx(idx: number): void;
|
|
1350
1370
|
finalize(): void;
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -431,6 +431,7 @@ export function OpToNum(op, bytesLimit = 4, forceMinimal = true) {
|
|
|
431
431
|
return;
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
|
+
return;
|
|
434
435
|
}
|
|
435
436
|
// BTC specific variable length integer encoding
|
|
436
437
|
// https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer
|
|
@@ -746,10 +747,10 @@ const PSBTInputCoder = P.validate(PSBTKeyMap(PSBTInput), (i) => {
|
|
|
746
747
|
if (i.partialSig && !i.partialSig.length)
|
|
747
748
|
throw new Error('Empty partialSig');
|
|
748
749
|
if (i.partialSig)
|
|
749
|
-
for (const [k
|
|
750
|
+
for (const [k] of i.partialSig)
|
|
750
751
|
validatePubkey(k, PubT.ecdsa);
|
|
751
752
|
if (i.bip32Derivation)
|
|
752
|
-
for (const [k
|
|
753
|
+
for (const [k] of i.bip32Derivation)
|
|
753
754
|
validatePubkey(k, PubT.ecdsa);
|
|
754
755
|
// Locktime = unsigned little endian integer greater than or equal to 500000000 representing
|
|
755
756
|
if (i.requiredTimeLocktime !== undefined && i.requiredTimeLocktime < 500000000)
|
|
@@ -791,7 +792,7 @@ const PSBTInputCoder = P.validate(PSBTKeyMap(PSBTInput), (i) => {
|
|
|
791
792
|
});
|
|
792
793
|
const PSBTOutputCoder = P.validate(PSBTKeyMap(PSBTOutput), (o) => {
|
|
793
794
|
if (o.bip32Derivation)
|
|
794
|
-
for (const [k
|
|
795
|
+
for (const [k] of o.bip32Derivation)
|
|
795
796
|
validatePubkey(k, PubT.ecdsa);
|
|
796
797
|
return o;
|
|
797
798
|
});
|
|
@@ -966,7 +967,9 @@ const OutPK = {
|
|
|
966
967
|
},
|
|
967
968
|
decode: (to) => (to.type === 'pk' ? [to.pubkey, 'CHECKSIG'] : undefined),
|
|
968
969
|
};
|
|
970
|
+
// @ts-ignore
|
|
969
971
|
export const p2pk = (pubkey, network = NETWORK) => {
|
|
972
|
+
// network is unused
|
|
970
973
|
if (!isValidPubkey(pubkey, PubT.ecdsa))
|
|
971
974
|
throw new Error('P2PK: invalid publicKey');
|
|
972
975
|
return {
|
|
@@ -1121,34 +1124,47 @@ export function taprootListToTree(taprootList) {
|
|
|
1121
1124
|
const last = lst[0];
|
|
1122
1125
|
return (last?.childs || last);
|
|
1123
1126
|
}
|
|
1124
|
-
function checkTaprootScript(script,
|
|
1127
|
+
function checkTaprootScript(script, internalPubKey, allowUnknownOutputs = false) {
|
|
1125
1128
|
const out = OutScript.decode(script);
|
|
1126
|
-
if (out.type === 'unknown' &&
|
|
1129
|
+
if (out.type === 'unknown' && allowUnknownOutputs)
|
|
1127
1130
|
return;
|
|
1128
1131
|
if (!['tr_ns', 'tr_ms'].includes(out.type))
|
|
1129
1132
|
throw new Error(`P2TR: invalid leaf script=${out.type}`);
|
|
1133
|
+
const outms = out;
|
|
1134
|
+
if (!allowUnknownOutputs && outms.pubkeys) {
|
|
1135
|
+
for (const p of outms.pubkeys) {
|
|
1136
|
+
if (P.equalBytes(p, TAPROOT_UNSPENDABLE_KEY))
|
|
1137
|
+
throw new Error('Unspendable taproot key in leaf script');
|
|
1138
|
+
// It's likely a mistake at this point:
|
|
1139
|
+
// 1. p2tr(A, p2tr_ns(2, [A, B])) == p2tr(A, p2tr_pk(B)) (A or B key)
|
|
1140
|
+
// but will take more space and fees.
|
|
1141
|
+
// 2. For multi-sig p2tr(A, p2tr_ns(2, [A, B, C])) it's probably a security issue:
|
|
1142
|
+
// User creates 2 of 3 multisig of keys [A, B, C],
|
|
1143
|
+
// but key A always can spend whole output without signatures from other keys.
|
|
1144
|
+
// p2tr(A, p2tr_ns(2, [B, C, D])) is ok: A or (B and C) or (B and D) or (C and D)
|
|
1145
|
+
if (P.equalBytes(p, internalPubKey)) {
|
|
1146
|
+
throw new Error('Using P2TR with leaf script with same key as internal key is not supported');
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1130
1150
|
}
|
|
1131
|
-
function taprootHashTree(tree,
|
|
1151
|
+
function taprootHashTree(tree, internalPubKey, allowUnknownOutputs = false) {
|
|
1132
1152
|
if (!tree)
|
|
1133
1153
|
throw new Error('taprootHashTree: empty tree');
|
|
1134
1154
|
if (Array.isArray(tree) && tree.length === 1)
|
|
1135
1155
|
tree = tree[0];
|
|
1136
1156
|
// Terminal node (leaf)
|
|
1137
1157
|
if (!Array.isArray(tree)) {
|
|
1138
|
-
const { leafVersion: version, script: leafScript
|
|
1158
|
+
const { leafVersion: version, script: leafScript } = tree;
|
|
1139
1159
|
// Earliest tree walk where we can validate tapScripts
|
|
1140
1160
|
if (tree.tapLeafScript || (tree.tapMerkleRoot && !P.equalBytes(tree.tapMerkleRoot, P.EMPTY)))
|
|
1141
1161
|
throw new Error('P2TR: tapRoot leafScript cannot have tree');
|
|
1142
|
-
// Just to be sure that it is spendable
|
|
1143
|
-
if (tapInternalKey && P.equalBytes(tapInternalKey, TAPROOT_UNSPENDABLE_KEY))
|
|
1144
|
-
throw new Error('P2TR: tapRoot leafScript cannot have unspendble key');
|
|
1145
1162
|
const script = typeof leafScript === 'string' ? hex.decode(leafScript) : leafScript;
|
|
1146
1163
|
if (!isBytes(script))
|
|
1147
1164
|
throw new Error(`checkScript: wrong script type=${script}`);
|
|
1148
|
-
checkTaprootScript(script,
|
|
1165
|
+
checkTaprootScript(script, internalPubKey, allowUnknownOutputs);
|
|
1149
1166
|
return {
|
|
1150
1167
|
type: 'leaf',
|
|
1151
|
-
tapInternalKey,
|
|
1152
1168
|
version,
|
|
1153
1169
|
script,
|
|
1154
1170
|
hash: tapLeafHash(script, version),
|
|
@@ -1161,8 +1177,8 @@ function taprootHashTree(tree, allowUnknowOutput = false) {
|
|
|
1161
1177
|
throw new Error('hashTree: non binary tree!');
|
|
1162
1178
|
// branch
|
|
1163
1179
|
// Both nodes should exist
|
|
1164
|
-
const left = taprootHashTree(tree[0],
|
|
1165
|
-
const right = taprootHashTree(tree[1],
|
|
1180
|
+
const left = taprootHashTree(tree[0], internalPubKey, allowUnknownOutputs);
|
|
1181
|
+
const right = taprootHashTree(tree[1], internalPubKey, allowUnknownOutputs);
|
|
1166
1182
|
// We cannot swap left/right here, since it will change structure of tree
|
|
1167
1183
|
let [lH, rH] = [left.hash, right.hash];
|
|
1168
1184
|
if (_cmpBytes(rH, lH) === -1)
|
|
@@ -1203,7 +1219,7 @@ export const TAPROOT_UNSPENDABLE_KEY = sha256(ProjPoint.BASE.toRawBytes(false));
|
|
|
1203
1219
|
// Works as key OR tree.
|
|
1204
1220
|
// If we only have tree, need to add unspendable key, otherwise
|
|
1205
1221
|
// complex multisig wallet can be spent by owner of key only. See TAPROOT_UNSPENDABLE_KEY
|
|
1206
|
-
export function p2tr(internalPubKey, tree, network = NETWORK,
|
|
1222
|
+
export function p2tr(internalPubKey, tree, network = NETWORK, allowUnknownOutputs = false) {
|
|
1207
1223
|
// Unspendable
|
|
1208
1224
|
if (!internalPubKey && !tree)
|
|
1209
1225
|
throw new Error('p2tr: should have pubKey or scriptTree (or both)');
|
|
@@ -1212,7 +1228,9 @@ export function p2tr(internalPubKey, tree, network = NETWORK, allowUnknowOutput
|
|
|
1212
1228
|
: internalPubKey || TAPROOT_UNSPENDABLE_KEY;
|
|
1213
1229
|
if (!isValidPubkey(pubKey, PubT.schnorr))
|
|
1214
1230
|
throw new Error('p2tr: non-schnorr pubkey');
|
|
1215
|
-
let hashedTree = tree
|
|
1231
|
+
let hashedTree = tree
|
|
1232
|
+
? taprootAddPath(taprootHashTree(tree, pubKey, allowUnknownOutputs))
|
|
1233
|
+
: undefined;
|
|
1216
1234
|
const tapMerkleRoot = hashedTree ? hashedTree.hash : undefined;
|
|
1217
1235
|
const [tweakedPubkey, parity] = taprootTweakPubkey(pubKey, tapMerkleRoot || P.EMPTY);
|
|
1218
1236
|
let leaves;
|
|
@@ -1221,7 +1239,7 @@ export function p2tr(internalPubKey, tree, network = NETWORK, allowUnknowOutput
|
|
|
1221
1239
|
...l,
|
|
1222
1240
|
controlBlock: TaprootControlBlock.encode({
|
|
1223
1241
|
version: (l.version || TAP_LEAF_VERSION) + parity,
|
|
1224
|
-
internalKey:
|
|
1242
|
+
internalKey: pubKey,
|
|
1225
1243
|
merklePath: l.path,
|
|
1226
1244
|
}),
|
|
1227
1245
|
}));
|
|
@@ -1512,7 +1530,7 @@ export function Address(network = NETWORK) {
|
|
|
1512
1530
|
else if (version === 1 && data.length === 32)
|
|
1513
1531
|
return { type: 'tr', pubkey: data };
|
|
1514
1532
|
else
|
|
1515
|
-
throw new Error('
|
|
1533
|
+
throw new Error('Unknown witness program');
|
|
1516
1534
|
}
|
|
1517
1535
|
const data = base58check.decode(address);
|
|
1518
1536
|
if (data.length !== 21)
|
|
@@ -1532,6 +1550,10 @@ export function Address(network = NETWORK) {
|
|
|
1532
1550
|
};
|
|
1533
1551
|
}
|
|
1534
1552
|
// /Address
|
|
1553
|
+
/**
|
|
1554
|
+
* Internal, exported only for backwards-compat. Use `SigHash` instead.
|
|
1555
|
+
* @deprecated
|
|
1556
|
+
*/
|
|
1535
1557
|
export var SignatureHash;
|
|
1536
1558
|
(function (SignatureHash) {
|
|
1537
1559
|
SignatureHash[SignatureHash["DEFAULT"] = 0] = "DEFAULT";
|
|
@@ -1540,7 +1562,22 @@ export var SignatureHash;
|
|
|
1540
1562
|
SignatureHash[SignatureHash["SINGLE"] = 3] = "SINGLE";
|
|
1541
1563
|
SignatureHash[SignatureHash["ANYONECANPAY"] = 128] = "ANYONECANPAY";
|
|
1542
1564
|
})(SignatureHash || (SignatureHash = {}));
|
|
1543
|
-
export
|
|
1565
|
+
export var SigHash;
|
|
1566
|
+
(function (SigHash) {
|
|
1567
|
+
SigHash[SigHash["DEFAULT"] = 0] = "DEFAULT";
|
|
1568
|
+
SigHash[SigHash["ALL"] = 1] = "ALL";
|
|
1569
|
+
SigHash[SigHash["NONE"] = 2] = "NONE";
|
|
1570
|
+
SigHash[SigHash["SINGLE"] = 3] = "SINGLE";
|
|
1571
|
+
SigHash[SigHash["DEFAULT_ANYONECANPAY"] = 128] = "DEFAULT_ANYONECANPAY";
|
|
1572
|
+
SigHash[SigHash["ALL_ANYONECANPAY"] = 129] = "ALL_ANYONECANPAY";
|
|
1573
|
+
SigHash[SigHash["NONE_ANYONECANPAY"] = 130] = "NONE_ANYONECANPAY";
|
|
1574
|
+
SigHash[SigHash["SINGLE_ANYONECANPAY"] = 131] = "SINGLE_ANYONECANPAY";
|
|
1575
|
+
})(SigHash || (SigHash = {}));
|
|
1576
|
+
function validateSigHash(s) {
|
|
1577
|
+
if (typeof s !== 'number' || typeof SigHash[s] !== 'string')
|
|
1578
|
+
throw new Error(`Invalid SigHash=${s}`);
|
|
1579
|
+
return s;
|
|
1580
|
+
}
|
|
1544
1581
|
function unpackSighash(hashType) {
|
|
1545
1582
|
const masked = hashType & 0b0011111;
|
|
1546
1583
|
return {
|
|
@@ -1583,17 +1620,21 @@ function getTaprootKeys(privKey, pubKey, internalKey, merkleRoot = P.EMPTY) {
|
|
|
1583
1620
|
}
|
|
1584
1621
|
return { privKey, pubKey };
|
|
1585
1622
|
}
|
|
1586
|
-
|
|
1587
|
-
const isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;
|
|
1623
|
+
const toStr = {}.toString;
|
|
1588
1624
|
function validateOpts(opts) {
|
|
1589
|
-
if (
|
|
1625
|
+
if (opts !== undefined && toStr.call(opts) !== '[object Object]')
|
|
1590
1626
|
throw new Error(`Wrong object type for transaction options: ${opts}`);
|
|
1591
1627
|
const _opts = {
|
|
1592
1628
|
...opts,
|
|
1629
|
+
// Defaults
|
|
1593
1630
|
version: def(opts.version, DEFAULT_VERSION),
|
|
1594
1631
|
lockTime: def(opts.lockTime, 0),
|
|
1595
1632
|
PSBTVersion: def(opts.PSBTVersion, 0),
|
|
1596
|
-
};
|
|
1633
|
+
};
|
|
1634
|
+
if (typeof _opts.allowUnknowInput !== 'undefined')
|
|
1635
|
+
opts.allowUnknownInputs = _opts.allowUnknowInput;
|
|
1636
|
+
if (typeof _opts.allowUnknowOutput !== 'undefined')
|
|
1637
|
+
opts.allowUnknownOutputs = _opts.allowUnknowOutput;
|
|
1597
1638
|
// 0 and -1 happens in tests
|
|
1598
1639
|
if (![-1, 0, 1, 2].includes(_opts.version))
|
|
1599
1640
|
throw new Error(`Unknown version: ${_opts.version}`);
|
|
@@ -1606,8 +1647,8 @@ function validateOpts(opts) {
|
|
|
1606
1647
|
throw new Error(`Unknown PSBT version ${_opts.PSBTVersion}`);
|
|
1607
1648
|
// Flags
|
|
1608
1649
|
for (const k of [
|
|
1609
|
-
'
|
|
1610
|
-
'
|
|
1650
|
+
'allowUnknownOutputs',
|
|
1651
|
+
'allowUnknownInputs',
|
|
1611
1652
|
'disableScriptCheck',
|
|
1612
1653
|
'bip174jsCompat',
|
|
1613
1654
|
'allowLegacyWitnessUtxo',
|
|
@@ -1973,9 +2014,9 @@ export class Transaction {
|
|
|
1973
2014
|
res = mergeKeyMap(PSBTOutput, res, cur, allowedFields);
|
|
1974
2015
|
PSBTOutputCoder.encode(res);
|
|
1975
2016
|
if (res.script &&
|
|
1976
|
-
!this.opts.
|
|
2017
|
+
!this.opts.allowUnknownOutputs &&
|
|
1977
2018
|
OutScript.decode(res.script).type === 'unknown') {
|
|
1978
|
-
throw new Error('Transaction/output: unknown output script type, there is a chance that input is unspendable. Pass
|
|
2019
|
+
throw new Error('Transaction/output: unknown output script type, there is a chance that input is unspendable. Pass allowUnknownScript=true, if you sure');
|
|
1979
2020
|
}
|
|
1980
2021
|
if (!this.opts.disableScriptCheck)
|
|
1981
2022
|
checkScript(res.script, res.redeemScript, res.witnessScript);
|
|
@@ -2120,13 +2161,13 @@ export class Transaction {
|
|
|
2120
2161
|
prevOut(input) {
|
|
2121
2162
|
if (input.nonWitnessUtxo) {
|
|
2122
2163
|
if (input.index === undefined)
|
|
2123
|
-
throw new Error('
|
|
2164
|
+
throw new Error('Unknown input index');
|
|
2124
2165
|
return input.nonWitnessUtxo.outputs[input.index];
|
|
2125
2166
|
}
|
|
2126
2167
|
else if (input.witnessUtxo)
|
|
2127
2168
|
return input.witnessUtxo;
|
|
2128
2169
|
else
|
|
2129
|
-
throw new Error('Cannot find previous output info
|
|
2170
|
+
throw new Error('Cannot find previous output info');
|
|
2130
2171
|
}
|
|
2131
2172
|
inputType(input) {
|
|
2132
2173
|
let txType = 'legacy';
|
|
@@ -2222,6 +2263,8 @@ export class Transaction {
|
|
|
2222
2263
|
// Just for compat with bitcoinjs-lib, so users won't face unexpected behaviour.
|
|
2223
2264
|
if (!allowedSighash)
|
|
2224
2265
|
allowedSighash = [inputType.defaultSighash];
|
|
2266
|
+
else
|
|
2267
|
+
allowedSighash.forEach(validateSigHash);
|
|
2225
2268
|
const sighash = inputType.sighash;
|
|
2226
2269
|
if (!allowedSighash.includes(sighash)) {
|
|
2227
2270
|
throw new Error(`Input with not allowed sigHash=${sighash}. Allowed: ${allowedSighash.join(', ')}`);
|
|
@@ -2230,7 +2273,7 @@ export class Transaction {
|
|
|
2230
2273
|
// however this was because of bug in bitcoin-core, which remains here because of consensus.
|
|
2231
2274
|
// If this is absolutely neccessary for your case, please open issue.
|
|
2232
2275
|
// We disable it to avoid complicated workflow where SINGLE will block adding new outputs
|
|
2233
|
-
const {
|
|
2276
|
+
const { sigOutputs } = this.inputSighash(idx);
|
|
2234
2277
|
if (sigOutputs === SignatureHash.SINGLE && idx >= this.outputs.length) {
|
|
2235
2278
|
throw new Error(`Input with sighash SINGLE, but there is no output with corresponding index=${idx}`);
|
|
2236
2279
|
}
|
|
@@ -2252,7 +2295,7 @@ export class Transaction {
|
|
|
2252
2295
|
// otherwise sign as is. bitcoinjs implementation always wants tweaked
|
|
2253
2296
|
// priv key to be provided
|
|
2254
2297
|
const { pubKey, privKey } = getTaprootKeys(privateKey, schnorrPub, input.tapInternalKey, merkleRoot);
|
|
2255
|
-
const [taprootPubKey,
|
|
2298
|
+
const [taprootPubKey, _] = taprootTweakPubkey(input.tapInternalKey, merkleRoot);
|
|
2256
2299
|
if (P.equalBytes(taprootPubKey, pubKey)) {
|
|
2257
2300
|
const hash = this.preimageWitnessV1(idx, prevOutScript, sighash, amount);
|
|
2258
2301
|
const sig = concat(schnorr.sign(hash, privKey, _auxRand), sighash !== SignatureHash.DEFAULT ? new Uint8Array([sighash]) : P.EMPTY);
|
|
@@ -2262,20 +2305,19 @@ export class Transaction {
|
|
|
2262
2305
|
}
|
|
2263
2306
|
if (input.tapLeafScript) {
|
|
2264
2307
|
input.tapScriptSig = input.tapScriptSig || [];
|
|
2265
|
-
for (const [
|
|
2308
|
+
for (const [_, _script] of input.tapLeafScript) {
|
|
2266
2309
|
const script = _script.subarray(0, -1);
|
|
2267
2310
|
const scriptDecoded = Script.decode(script);
|
|
2268
2311
|
const ver = _script[_script.length - 1];
|
|
2269
2312
|
const hash = tapLeafHash(script, ver);
|
|
2270
|
-
|
|
2271
|
-
);
|
|
2272
|
-
const pos = scriptDecoded.findIndex((i) => isBytes(i) && P.equalBytes(i, pubKey));
|
|
2313
|
+
// NOTE: no need to tweak internal key here, since we don't support nested p2tr
|
|
2314
|
+
const pos = scriptDecoded.findIndex((i) => isBytes(i) && P.equalBytes(i, schnorrPub));
|
|
2273
2315
|
// Skip if there is no public key in tapLeafScript
|
|
2274
2316
|
if (pos === -1)
|
|
2275
2317
|
continue;
|
|
2276
2318
|
const msg = this.preimageWitnessV1(idx, prevOutScript, sighash, amount, undefined, script, ver);
|
|
2277
|
-
const sig = concat(schnorr.sign(msg,
|
|
2278
|
-
this.updateInput(idx, { tapScriptSig: [[{ pubKey:
|
|
2319
|
+
const sig = concat(schnorr.sign(msg, privateKey, _auxRand), sighash !== SignatureHash.DEFAULT ? new Uint8Array([sighash]) : P.EMPTY);
|
|
2320
|
+
this.updateInput(idx, { tapScriptSig: [[{ pubKey: schnorrPub, leafHash: hash }, sig]] }, true);
|
|
2279
2321
|
signed = true;
|
|
2280
2322
|
}
|
|
2281
2323
|
}
|
|
@@ -2385,7 +2427,7 @@ export class Transaction {
|
|
|
2385
2427
|
if (signatures.length !== outScript.pubkeys.length)
|
|
2386
2428
|
continue;
|
|
2387
2429
|
}
|
|
2388
|
-
else if (outScript.type === 'unknown' && this.opts.
|
|
2430
|
+
else if (outScript.type === 'unknown' && this.opts.allowUnknownInputs) {
|
|
2389
2431
|
// Trying our best to sign what we can
|
|
2390
2432
|
const scriptDecoded = Script.decode(script);
|
|
2391
2433
|
signatures = scriptSig
|
|
@@ -2451,7 +2493,7 @@ export class Transaction {
|
|
|
2451
2493
|
inputScript = P.EMPTY;
|
|
2452
2494
|
witness = [input.partialSig[0][1], input.partialSig[0][0]];
|
|
2453
2495
|
}
|
|
2454
|
-
else if (inputType.last.type === 'unknown' && !this.opts.
|
|
2496
|
+
else if (inputType.last.type === 'unknown' && !this.opts.allowUnknownInputs)
|
|
2455
2497
|
throw new Error('Unknown inputs not allowed');
|
|
2456
2498
|
// Create final scripts (generic part)
|
|
2457
2499
|
let finalScriptSig, finalScriptWitness;
|