@ledgerhq/hw-app-btc 6.11.0 → 6.11.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.
- package/README.md +14 -9
- package/lib/BtcNew.d.ts +1 -1
- package/lib/BtcNew.d.ts.map +1 -1
- package/lib/BtcNew.js +44 -18
- package/lib/BtcNew.js.map +1 -1
- package/lib/newops/appClient.d.ts +1 -1
- package/lib/newops/appClient.d.ts.map +1 -1
- package/lib/newops/appClient.js +3 -3
- package/lib/newops/appClient.js.map +1 -1
- package/lib/newops/clientCommands.d.ts +3 -2
- package/lib/newops/clientCommands.d.ts.map +1 -1
- package/lib/newops/clientCommands.js +5 -3
- package/lib/newops/clientCommands.js.map +1 -1
- package/lib/newops/psbtv2.d.ts +3 -0
- package/lib/newops/psbtv2.d.ts.map +1 -1
- package/lib/newops/psbtv2.js +10 -0
- package/lib/newops/psbtv2.js.map +1 -1
- package/lib-es/BtcNew.d.ts +1 -1
- package/lib-es/BtcNew.d.ts.map +1 -1
- package/lib-es/BtcNew.js +44 -18
- package/lib-es/BtcNew.js.map +1 -1
- package/lib-es/newops/appClient.d.ts +1 -1
- package/lib-es/newops/appClient.d.ts.map +1 -1
- package/lib-es/newops/appClient.js +3 -3
- package/lib-es/newops/appClient.js.map +1 -1
- package/lib-es/newops/clientCommands.d.ts +3 -2
- package/lib-es/newops/clientCommands.d.ts.map +1 -1
- package/lib-es/newops/clientCommands.js +5 -3
- package/lib-es/newops/clientCommands.js.map +1 -1
- package/lib-es/newops/psbtv2.d.ts +3 -0
- package/lib-es/newops/psbtv2.d.ts.map +1 -1
- package/lib-es/newops/psbtv2.js +10 -0
- package/lib-es/newops/psbtv2.js.map +1 -1
- package/package.json +2 -2
- package/src/BtcNew.ts +58 -25
- package/src/newops/appClient.ts +4 -3
- package/src/newops/clientCommands.ts +4 -3
- package/src/newops/psbtv2.ts +9 -0
- package/tests/newops/BtcNew.test.ts +40 -13
- package/tests/newops/integrationtools.ts +32 -21
- package/tests/newops/testtx.ts +0 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psbtv2.js","sourceRoot":"","sources":["../../src/newops/psbtv2.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"psbtv2.js","sourceRoot":"","sources":["../../src/newops/psbtv2.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-app-btc",
|
|
3
|
-
"version": "6.11.
|
|
3
|
+
"version": "6.11.1",
|
|
4
4
|
"description": "Ledger Hardware Wallet Bitcoin Application API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"watch": "bash ../../script/watch.sh",
|
|
46
46
|
"doc": "bash ../../script/doc.sh"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "483aa0521782ca2380c5b78db7559cdd6ec210c6"
|
|
49
49
|
}
|
package/src/BtcNew.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { crypto } from "bitcoinjs-lib";
|
|
2
|
-
import { pointCompress, pointAddScalar } from "tiny-secp256k1";
|
|
3
2
|
import semver from "semver";
|
|
3
|
+
import { pointAddScalar, pointCompress } from "tiny-secp256k1";
|
|
4
4
|
import {
|
|
5
5
|
getXpubComponents,
|
|
6
6
|
hardenedPathOf,
|
|
@@ -9,7 +9,16 @@ import {
|
|
|
9
9
|
pubkeyFromXpub,
|
|
10
10
|
} from "./bip32";
|
|
11
11
|
import { BufferReader, BufferWriter } from "./buffertools";
|
|
12
|
+
import {
|
|
13
|
+
HASH_SIZE,
|
|
14
|
+
OP_CHECKSIG,
|
|
15
|
+
OP_DUP,
|
|
16
|
+
OP_EQUAL,
|
|
17
|
+
OP_EQUALVERIFY,
|
|
18
|
+
OP_HASH160,
|
|
19
|
+
} from "./constants";
|
|
12
20
|
import type { CreateTransactionArg } from "./createTransaction";
|
|
21
|
+
import { AppAndVersion } from "./getAppAndVersion";
|
|
13
22
|
import type { AddressFormat } from "./getWalletPublicKey";
|
|
14
23
|
import { hashPublicKey } from "./hashPublicKey";
|
|
15
24
|
import { AppClient as Client } from "./newops/appClient";
|
|
@@ -19,15 +28,6 @@ import { finalize } from "./newops/psbtFinalizer";
|
|
|
19
28
|
import { psbtIn, PsbtV2 } from "./newops/psbtv2";
|
|
20
29
|
import { serializeTransaction } from "./serializeTransaction";
|
|
21
30
|
import type { Transaction } from "./types";
|
|
22
|
-
import {
|
|
23
|
-
HASH_SIZE,
|
|
24
|
-
OP_CHECKSIG,
|
|
25
|
-
OP_DUP,
|
|
26
|
-
OP_EQUAL,
|
|
27
|
-
OP_EQUALVERIFY,
|
|
28
|
-
OP_HASH160,
|
|
29
|
-
} from "./constants";
|
|
30
|
-
import { AppAndVersion } from "./getAppAndVersion";
|
|
31
31
|
|
|
32
32
|
const newSupportedApps = ["Bitcoin", "Bitcoin Test"];
|
|
33
33
|
|
|
@@ -192,7 +192,8 @@ export default class BtcNew {
|
|
|
192
192
|
async createPaymentTransactionNew(
|
|
193
193
|
arg: CreateTransactionArg
|
|
194
194
|
): Promise<string> {
|
|
195
|
-
|
|
195
|
+
const inputCount = arg.inputs.length;
|
|
196
|
+
if (inputCount == 0) {
|
|
196
197
|
throw Error("No inputs");
|
|
197
198
|
}
|
|
198
199
|
const psbt = new PsbtV2();
|
|
@@ -203,16 +204,27 @@ export default class BtcNew {
|
|
|
203
204
|
// The signer will assume locktime 0 if unset
|
|
204
205
|
psbt.setGlobalFallbackLocktime(arg.lockTime);
|
|
205
206
|
}
|
|
206
|
-
psbt.setGlobalInputCount(
|
|
207
|
+
psbt.setGlobalInputCount(inputCount);
|
|
207
208
|
psbt.setGlobalPsbtVersion(2);
|
|
208
209
|
psbt.setGlobalTxVersion(2);
|
|
209
210
|
|
|
211
|
+
let notifyCount = 0;
|
|
212
|
+
const progress = () => {
|
|
213
|
+
if (!arg.onDeviceStreaming) return;
|
|
214
|
+
arg.onDeviceStreaming({
|
|
215
|
+
total: 2 * inputCount,
|
|
216
|
+
index: notifyCount,
|
|
217
|
+
progress: ++notifyCount / (2 * inputCount),
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
|
|
210
221
|
// The master fingerprint is needed when adding BIP32 derivation paths on
|
|
211
222
|
// the psbt.
|
|
212
223
|
const masterFp = await this.client.getMasterFingerprint();
|
|
213
224
|
let accountXpub = "";
|
|
214
225
|
let accountPath: number[] = [];
|
|
215
|
-
for (let i = 0; i <
|
|
226
|
+
for (let i = 0; i < inputCount; i++) {
|
|
227
|
+
progress();
|
|
216
228
|
const pathElems: number[] = pathStringToArray(arg.associatedKeysets[i]);
|
|
217
229
|
if (accountXpub == "") {
|
|
218
230
|
// We assume all inputs belong to the same account so we set
|
|
@@ -226,7 +238,8 @@ export default class BtcNew {
|
|
|
226
238
|
arg.inputs[i],
|
|
227
239
|
pathElems,
|
|
228
240
|
accountType,
|
|
229
|
-
masterFp
|
|
241
|
+
masterFp,
|
|
242
|
+
arg.sigHashType
|
|
230
243
|
);
|
|
231
244
|
}
|
|
232
245
|
|
|
@@ -280,7 +293,21 @@ export default class BtcNew {
|
|
|
280
293
|
|
|
281
294
|
const key = createKey(masterFp, accountPath, accountXpub);
|
|
282
295
|
const p = new WalletPolicy(accountType, key);
|
|
283
|
-
|
|
296
|
+
// This is cheating, because it's not actually requested on the
|
|
297
|
+
// device yet, but it will be, soonish.
|
|
298
|
+
if (arg.onDeviceSignatureRequested) arg.onDeviceSignatureRequested();
|
|
299
|
+
|
|
300
|
+
let firstSigned = false;
|
|
301
|
+
// This callback will be called once for each signature yielded.
|
|
302
|
+
const progressCallback = () => {
|
|
303
|
+
if (!firstSigned) {
|
|
304
|
+
firstSigned = true;
|
|
305
|
+
arg.onDeviceSignatureGranted && arg.onDeviceSignatureGranted();
|
|
306
|
+
}
|
|
307
|
+
progress();
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
await this.signPsbt(psbt, p, progressCallback);
|
|
284
311
|
finalize(psbt);
|
|
285
312
|
const serializedTx = extract(psbt);
|
|
286
313
|
return serializedTx.toString("hex");
|
|
@@ -337,15 +364,21 @@ export default class BtcNew {
|
|
|
337
364
|
],
|
|
338
365
|
pathElements: number[],
|
|
339
366
|
accountType: AccountType,
|
|
340
|
-
masterFP: Buffer
|
|
367
|
+
masterFP: Buffer,
|
|
368
|
+
sigHashType?: number
|
|
341
369
|
): Promise<void> {
|
|
342
370
|
const inputTx = input[0];
|
|
343
371
|
const spentOutputIndex = input[1];
|
|
372
|
+
// redeemScript will be null for wrapped p2wpkh, we need to create it
|
|
373
|
+
// ourselves. But if set, it should be used.
|
|
344
374
|
const redeemScript = input[2];
|
|
345
375
|
const sequence = input[3];
|
|
346
376
|
if (sequence) {
|
|
347
377
|
psbt.setInputSequence(i, sequence);
|
|
348
378
|
}
|
|
379
|
+
if (sigHashType) {
|
|
380
|
+
psbt.setInputSighashType(i, sigHashType);
|
|
381
|
+
}
|
|
349
382
|
const inputTxBuffer = serializeTransaction(inputTx, true);
|
|
350
383
|
const inputTxid = crypto.hash256(inputTxBuffer);
|
|
351
384
|
const xpubBase58 = await this.client.getExtendedPubkey(false, pathElements);
|
|
@@ -365,14 +398,12 @@ export default class BtcNew {
|
|
|
365
398
|
} else if (accountType == AccountType.p2wpkhWrapped) {
|
|
366
399
|
psbt.setInputNonWitnessUtxo(i, inputTxBuffer);
|
|
367
400
|
psbt.setInputBip32Derivation(i, pubkey, masterFP, pathElements);
|
|
368
|
-
if (
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
throw new Error("Unexpected redeemScript");
|
|
401
|
+
if (redeemScript) {
|
|
402
|
+
// At what point might a user set the redeemScript on its own?
|
|
403
|
+
psbt.setInputRedeemScript(i, Buffer.from(redeemScript, "hex"));
|
|
404
|
+
} else {
|
|
405
|
+
psbt.setInputRedeemScript(i, createRedeemScript(pubkey));
|
|
374
406
|
}
|
|
375
|
-
psbt.setInputRedeemScript(i, expectedRedeemScript);
|
|
376
407
|
psbt.setInputWitnessUtxo(i, spentOutput.amount, spentOutput.script);
|
|
377
408
|
} else if (accountType == AccountType.p2tr) {
|
|
378
409
|
const xonly = pubkey.slice(1);
|
|
@@ -395,12 +426,14 @@ export default class BtcNew {
|
|
|
395
426
|
*/
|
|
396
427
|
private async signPsbt(
|
|
397
428
|
psbt: PsbtV2,
|
|
398
|
-
walletPolicy: WalletPolicy
|
|
429
|
+
walletPolicy: WalletPolicy,
|
|
430
|
+
progressCallback: () => void
|
|
399
431
|
): Promise<void> {
|
|
400
432
|
const sigs: Map<number, Buffer> = await this.client.signPsbt(
|
|
401
433
|
psbt,
|
|
402
434
|
walletPolicy,
|
|
403
|
-
Buffer.alloc(32, 0)
|
|
435
|
+
Buffer.alloc(32, 0),
|
|
436
|
+
progressCallback
|
|
404
437
|
);
|
|
405
438
|
sigs.forEach((v, k) => {
|
|
406
439
|
// Note: Looking at BIP32 derivation does not work in the generic case,
|
package/src/newops/appClient.ts
CHANGED
|
@@ -96,7 +96,7 @@ export class AppClient {
|
|
|
96
96
|
throw new Error("Invalid HMAC length");
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
const clientInterpreter = new ClientCommandInterpreter();
|
|
99
|
+
const clientInterpreter = new ClientCommandInterpreter(() => {});
|
|
100
100
|
clientInterpreter.addKnownList(
|
|
101
101
|
walletPolicy.keys.map((k) => Buffer.from(k, "ascii"))
|
|
102
102
|
);
|
|
@@ -123,7 +123,8 @@ export class AppClient {
|
|
|
123
123
|
async signPsbt(
|
|
124
124
|
psbt: PsbtV2,
|
|
125
125
|
walletPolicy: WalletPolicy,
|
|
126
|
-
walletHMAC: Buffer | null
|
|
126
|
+
walletHMAC: Buffer | null,
|
|
127
|
+
progressCallback: () => void
|
|
127
128
|
): Promise<Map<number, Buffer>> {
|
|
128
129
|
const merkelizedPsbt = new MerkelizedPsbt(psbt);
|
|
129
130
|
|
|
@@ -131,7 +132,7 @@ export class AppClient {
|
|
|
131
132
|
throw new Error("Invalid HMAC length");
|
|
132
133
|
}
|
|
133
134
|
|
|
134
|
-
const clientInterpreter = new ClientCommandInterpreter();
|
|
135
|
+
const clientInterpreter = new ClientCommandInterpreter(progressCallback);
|
|
135
136
|
|
|
136
137
|
// prepare ClientCommandInterpreter
|
|
137
138
|
clientInterpreter.addKnownList(
|
|
@@ -21,13 +21,14 @@ export class YieldCommand extends ClientCommand {
|
|
|
21
21
|
|
|
22
22
|
code = ClientCommandCode.YIELD;
|
|
23
23
|
|
|
24
|
-
constructor(results: Buffer[]) {
|
|
24
|
+
constructor(results: Buffer[], private progressCallback: () => void) {
|
|
25
25
|
super();
|
|
26
26
|
this.results = results;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
execute(request: Buffer): Buffer {
|
|
30
30
|
this.results.push(Buffer.from(request.subarray(1)));
|
|
31
|
+
this.progressCallback();
|
|
31
32
|
return Buffer.from("");
|
|
32
33
|
}
|
|
33
34
|
}
|
|
@@ -272,9 +273,9 @@ export class ClientCommandInterpreter {
|
|
|
272
273
|
|
|
273
274
|
private commands: Map<ClientCommandCode, ClientCommand> = new Map();
|
|
274
275
|
|
|
275
|
-
constructor() {
|
|
276
|
+
constructor(progressCallback: () => void) {
|
|
276
277
|
const commands = [
|
|
277
|
-
new YieldCommand(this.yielded),
|
|
278
|
+
new YieldCommand(this.yielded, progressCallback),
|
|
278
279
|
new GetPreimageCommand(this.preimages, this.queue),
|
|
279
280
|
new GetMerkleLeafIndexCommand(this.roots),
|
|
280
281
|
new GetMerkleLeafProofCommand(this.roots, this.queue),
|
package/src/newops/psbtv2.ts
CHANGED
|
@@ -14,6 +14,7 @@ export enum psbtIn {
|
|
|
14
14
|
NON_WITNESS_UTXO = 0x00,
|
|
15
15
|
WITNESS_UTXO = 0x01,
|
|
16
16
|
PARTIAL_SIG = 0x02,
|
|
17
|
+
SIGHASH_TYPE = 0x03,
|
|
17
18
|
REDEEM_SCRIPT = 0x04,
|
|
18
19
|
BIP32_DERIVATION = 0x06,
|
|
19
20
|
FINAL_SCRIPTSIG = 0x07,
|
|
@@ -128,6 +129,14 @@ export class PsbtV2 {
|
|
|
128
129
|
getInputPartialSig(inputIndex: number, pubkey: Buffer): Buffer | undefined {
|
|
129
130
|
return this.getInputOptional(inputIndex, psbtIn.PARTIAL_SIG, pubkey);
|
|
130
131
|
}
|
|
132
|
+
setInputSighashType(inputIndex: number, sigHashtype: number) {
|
|
133
|
+
this.setInput(inputIndex, psbtIn.SIGHASH_TYPE, b(), uint32LE(sigHashtype));
|
|
134
|
+
}
|
|
135
|
+
getInputSighashType(inputIndex: number): number | undefined {
|
|
136
|
+
const result = this.getInputOptional(inputIndex, psbtIn.SIGHASH_TYPE, b());
|
|
137
|
+
if (!result) return undefined;
|
|
138
|
+
return result.readUInt32LE(0);
|
|
139
|
+
}
|
|
131
140
|
setInputRedeemScript(inputIndex: number, redeemScript: Buffer) {
|
|
132
141
|
this.setInput(inputIndex, psbtIn.REDEEM_SCRIPT, b(), redeemScript);
|
|
133
142
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
/* eslint-disable prettier/prettier */
|
|
3
2
|
import { openTransportReplayer, RecordStore } from "@ledgerhq/hw-transport-mocker";
|
|
4
3
|
import { TransportReplayer } from "@ledgerhq/hw-transport-mocker/lib/openTransportReplayer";
|
|
5
4
|
import ecc from "tiny-secp256k1";
|
|
@@ -11,7 +10,7 @@ import {
|
|
|
11
10
|
} from "../../src/newops/policy";
|
|
12
11
|
import { PsbtV2 } from "../../src/newops/psbtv2";
|
|
13
12
|
import { AccountType, addressFormatFromDescriptorTemplate, creatDummyXpub, masterFingerprint, runSignTransaction, TestingClient } from "./integrationtools";
|
|
14
|
-
import { CoreTx, p2pkh, p2tr, p2wpkh,
|
|
13
|
+
import { CoreInput, CoreTx, p2pkh, p2tr, p2wpkh, wrappedP2wpkh, wrappedP2wpkhTwoInputs } from "./testtx";
|
|
15
14
|
|
|
16
15
|
test("getWalletPublicKey p2pkh", async () => {
|
|
17
16
|
await testGetWalletPublicKey("m/44'/1'/0'", "pkh(@0)");
|
|
@@ -41,7 +40,7 @@ test("getWalletXpub normal path", async () => {
|
|
|
41
40
|
await testGetWalletXpub("m/44'/0'/0'");
|
|
42
41
|
});
|
|
43
42
|
|
|
44
|
-
function testPaths(type: AccountType): {ins: string[], out?: string} {
|
|
43
|
+
function testPaths(type: AccountType): { ins: string[], out?: string } {
|
|
45
44
|
const basePath = `m/${type}/1'/0'/`;
|
|
46
45
|
const ins = [
|
|
47
46
|
basePath + "0/0",
|
|
@@ -51,7 +50,7 @@ function testPaths(type: AccountType): {ins: string[], out?: string} {
|
|
|
51
50
|
basePath + "0/2",
|
|
52
51
|
basePath + "1/2",
|
|
53
52
|
];
|
|
54
|
-
return {ins};
|
|
53
|
+
return { ins };
|
|
55
54
|
}
|
|
56
55
|
|
|
57
56
|
test("Sign p2pkh", async () => {
|
|
@@ -66,33 +65,49 @@ test("Sign p2wpkh wrapped", async () => {
|
|
|
66
65
|
});
|
|
67
66
|
test("Sign p2wpkh", async () => {
|
|
68
67
|
await runSignTransactionTest(p2wpkh, AccountType.p2wpkh);
|
|
69
|
-
await runSignTransactionTest(p2wpkhTwoInputs, AccountType.p2wpkh);
|
|
70
68
|
});
|
|
71
69
|
test("Sign p2tr", async () => {
|
|
70
|
+
// This tx uses locktime, so this test verifies that locktime is propagated to/from
|
|
71
|
+
// the psbt correctly.
|
|
72
72
|
await runSignTransactionTest(p2tr, AccountType.p2tr);
|
|
73
73
|
});
|
|
74
74
|
|
|
75
|
+
test("Sign p2tr with sigHashType", async () => {
|
|
76
|
+
const testTx = JSON.parse(JSON.stringify(p2tr));
|
|
77
|
+
testTx.vin.forEach((input: CoreInput, index: number) => {
|
|
78
|
+
// Test SIGHASH_SINGLE | SIGHASH_ANYONECANPAY, 0x83
|
|
79
|
+
const sig = input.txinwitness![0] + "83";
|
|
80
|
+
input.txinwitness = [sig];
|
|
81
|
+
})
|
|
82
|
+
const tx = await runSignTransactionNoVerification(testTx, AccountType.p2tr);
|
|
83
|
+
// The verification of the sighashtype is done in MockClient.signPsbt
|
|
84
|
+
})
|
|
85
|
+
|
|
75
86
|
async function runSignTransactionTest(testTx: CoreTx, accountType: AccountType, changePubkey?: string) {
|
|
87
|
+
const tx = await runSignTransactionNoVerification(testTx, accountType, changePubkey);
|
|
88
|
+
expect(tx).toEqual(testTx.hex);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
async function runSignTransactionNoVerification(testTx: CoreTx, accountType: AccountType, changePubkey?: string): Promise<string> {
|
|
76
92
|
const [client, transport] = await createClient();
|
|
77
93
|
const accountXpub = "tpubDCwYjpDhUdPGP5rS3wgNg13mTrrjBuG8V9VpWbyptX6TRPbNoZVXsoVUSkCjmQ8jJycjuDKBb9eataSymXakTTaGifxR6kmVsfFehH1ZgJT";
|
|
78
94
|
client.mockGetPubkeyResponse(`m/${accountType}/1'/0'`, accountXpub);
|
|
79
95
|
const paths = testPaths(accountType);
|
|
80
96
|
if (changePubkey) {
|
|
81
|
-
paths.out =
|
|
97
|
+
paths.out = `m/${accountType}/1'/0'` + "/1/3";
|
|
82
98
|
client.mockGetPubkeyResponse(paths.out, creatDummyXpub(Buffer.from(changePubkey, "hex")));
|
|
83
99
|
}
|
|
84
100
|
const tx = await runSignTransaction(testTx, paths, client, transport);
|
|
85
|
-
expect(tx).toEqual(testTx.hex);
|
|
86
101
|
await transport.close();
|
|
102
|
+
return tx;
|
|
87
103
|
}
|
|
88
104
|
|
|
89
|
-
|
|
90
105
|
async function testGetWalletXpub(path: string, version = 0x043587cf) {
|
|
91
106
|
const [client] = await createClient();
|
|
92
107
|
const expectedXpub = "tpubDCwYjpDhUdPGP5rS3wgNg13mTrrjBuG8V9VpWbyptX6TRPbNoZVXsoVUSkCjmQ8jJycjuDKBb9eataSymXakTTaGifxR6kmVsfFehH1ZgJT";
|
|
93
108
|
client.mockGetPubkeyResponse(path, expectedXpub);
|
|
94
109
|
const btc = new BtcNew(client);
|
|
95
|
-
const result = await btc.getWalletXpub({path: path, xpubVersion: version});
|
|
110
|
+
const result = await btc.getWalletXpub({ path: path, xpubVersion: version });
|
|
96
111
|
expect(result).toEqual(expectedXpub);
|
|
97
112
|
}
|
|
98
113
|
async function testGetWalletPublicKey(
|
|
@@ -119,7 +134,7 @@ async function testGetWalletPublicKey(
|
|
|
119
134
|
|
|
120
135
|
const btcNew = new BtcNew(client);
|
|
121
136
|
const addressFormat = addressFormatFromDescriptorTemplate(expectedDescriptorTemplate);
|
|
122
|
-
const result = await btcNew.getWalletPublicKey(path, {format: addressFormat});
|
|
137
|
+
const result = await btcNew.getWalletPublicKey(path, { format: addressFormat });
|
|
123
138
|
verifyGetWalletPublicKeyResult(result, keyXpub, "testaddress");
|
|
124
139
|
|
|
125
140
|
const resultAccount = await btcNew.getWalletPublicKey(accountPath);
|
|
@@ -195,11 +210,23 @@ class MockClient extends TestingClient {
|
|
|
195
210
|
return masterFingerprint;
|
|
196
211
|
}
|
|
197
212
|
async signPsbt(
|
|
198
|
-
|
|
213
|
+
psbt: PsbtV2,
|
|
199
214
|
_walletPolicy: WalletPolicy,
|
|
200
|
-
_walletHMAC: Buffer | null
|
|
215
|
+
_walletHMAC: Buffer | null,
|
|
201
216
|
): Promise<Map<number, Buffer>> {
|
|
202
|
-
|
|
217
|
+
const sigs = this.yieldSigs.splice(0, 1)[0];
|
|
218
|
+
const sig0 = sigs.get(0)!;
|
|
219
|
+
if (sig0.length == 64) {
|
|
220
|
+
// Taproot may leave out sighash type, which defaults to 0x01 SIGHASH_ALL
|
|
221
|
+
return sigs;
|
|
222
|
+
}
|
|
223
|
+
const sigHashType = sig0.readUInt8(sig0.length - 1);
|
|
224
|
+
if (sigHashType != 0x01) {
|
|
225
|
+
for (let i = 0; i < psbt.getGlobalInputCount(); i++) {
|
|
226
|
+
expect(psbt.getInputSighashType(i)).toEqual(sigHashType);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return sigs;
|
|
203
230
|
}
|
|
204
231
|
private getWalletAddressKey(
|
|
205
232
|
walletPolicy: WalletPolicy,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
/* eslint-disable prettier/prettier */
|
|
3
2
|
import Transport from "@ledgerhq/hw-transport";
|
|
4
3
|
import bs58check from "bs58check";
|
|
5
4
|
import Btc from "../../src/Btc";
|
|
@@ -17,9 +16,9 @@ import { CoreInput, CoreTx, spentTxs } from "./testtx";
|
|
|
17
16
|
|
|
18
17
|
|
|
19
18
|
export async function runSignTransaction(
|
|
20
|
-
testTx: CoreTx,
|
|
21
|
-
testPaths: {ins: string[], out?: string},
|
|
22
|
-
client: TestingClient,
|
|
19
|
+
testTx: CoreTx,
|
|
20
|
+
testPaths: { ins: string[], out?: string },
|
|
21
|
+
client: TestingClient,
|
|
23
22
|
transport: Transport): Promise<string> {
|
|
24
23
|
const btcNew = new BtcNew(client);
|
|
25
24
|
// btc is needed to perform some functions like splitTransaction.
|
|
@@ -44,15 +43,23 @@ export async function runSignTransaction(
|
|
|
44
43
|
yieldSigs.set(index, getSignature(input, accountType));
|
|
45
44
|
return inputData;
|
|
46
45
|
});
|
|
46
|
+
const sig0 = yieldSigs.get(0)!;
|
|
47
|
+
let sigHashType: number | undefined = sig0.readUInt8(sig0.length - 1)
|
|
48
|
+
if (sigHashType == 0x01) {
|
|
49
|
+
sigHashType = undefined;
|
|
50
|
+
}
|
|
47
51
|
client.mockSignPsbt(yieldSigs);
|
|
48
52
|
const outputWriter = new BufferWriter();
|
|
49
53
|
outputWriter.writeVarInt(testTx.vout.length);
|
|
50
54
|
testTx.vout.forEach(output => {
|
|
51
55
|
outputWriter.writeUInt64(BigInt(Number.parseFloat((output.value * 100000000).toFixed(8))));
|
|
52
|
-
outputWriter.writeVarSlice(Buffer.from(output.scriptPubKey.hex, "hex"));
|
|
56
|
+
outputWriter.writeVarSlice(Buffer.from(output.scriptPubKey.hex, "hex"));
|
|
53
57
|
});
|
|
54
58
|
const outputScriptHex = outputWriter.buffer().toString("hex");
|
|
55
|
-
|
|
59
|
+
let callbacks = "";
|
|
60
|
+
function logCallback(message: string) {
|
|
61
|
+
callbacks += new Date().toISOString() + " " + message + "\n";
|
|
62
|
+
}
|
|
56
63
|
const arg: CreateTransactionArg = {
|
|
57
64
|
inputs,
|
|
58
65
|
additionals,
|
|
@@ -60,12 +67,21 @@ export async function runSignTransaction(
|
|
|
60
67
|
changePath: testPaths.out,
|
|
61
68
|
outputScriptHex,
|
|
62
69
|
lockTime: testTx.locktime,
|
|
63
|
-
|
|
70
|
+
sigHashType,
|
|
71
|
+
segwit: accountType != AccountType.p2pkh,
|
|
72
|
+
onDeviceSignatureGranted: () => logCallback("CALLBACK: signature granted"),
|
|
73
|
+
onDeviceSignatureRequested: () => logCallback("CALLBACK: signature requested"),
|
|
74
|
+
onDeviceStreaming: (arg) => logCallback("CALLBACK: " + JSON.stringify(arg))
|
|
64
75
|
};
|
|
76
|
+
logCallback("Start createPaymentTransactionNew");
|
|
65
77
|
const tx = await btcNew.createPaymentTransactionNew(arg);
|
|
78
|
+
logCallback("Done createPaymentTransactionNew");
|
|
79
|
+
// console.log(callbacks);
|
|
66
80
|
return tx;
|
|
67
81
|
};
|
|
68
82
|
|
|
83
|
+
|
|
84
|
+
|
|
69
85
|
export function addressFormatFromDescriptorTemplate(descTemp: DefaultDescriptorTemplate): AddressFormat {
|
|
70
86
|
if (descTemp == "tr(@0)") return "bech32m";
|
|
71
87
|
if (descTemp == "pkh(@0)") return "legacy";
|
|
@@ -83,8 +99,8 @@ export enum AccountType {
|
|
|
83
99
|
|
|
84
100
|
function getPubkey(inputIndex: number, accountType: AccountType, testTx: CoreTx, spentTx: Transaction, spentOutputIndex: number): Buffer {
|
|
85
101
|
const scriptSig = Buffer.from(testTx.vin[inputIndex].scriptSig.hex, "hex");
|
|
86
|
-
if (accountType == AccountType.p2pkh) {
|
|
87
|
-
return scriptSig.slice(scriptSig.length-33);
|
|
102
|
+
if (accountType == AccountType.p2pkh) {
|
|
103
|
+
return scriptSig.slice(scriptSig.length - 33);
|
|
88
104
|
}
|
|
89
105
|
if (accountType == AccountType.p2tr) {
|
|
90
106
|
return spentTx.outputs![spentOutputIndex].script.slice(2, 34); // 32 bytes x-only pubkey
|
|
@@ -98,7 +114,7 @@ function getPubkey(inputIndex: number, accountType: AccountType, testTx: CoreTx,
|
|
|
98
114
|
function getSignature(testTxInput: CoreInput, accountType: AccountType): Buffer {
|
|
99
115
|
const scriptSig = Buffer.from(testTxInput.scriptSig.hex, "hex");
|
|
100
116
|
if (accountType == AccountType.p2pkh) {
|
|
101
|
-
return scriptSig.slice(1, scriptSig.length-34);
|
|
117
|
+
return scriptSig.slice(1, scriptSig.length - 34);
|
|
102
118
|
}
|
|
103
119
|
if (accountType == AccountType.p2tr) {
|
|
104
120
|
return Buffer.from(testTxInput.txinwitness![0], "hex");
|
|
@@ -132,32 +148,27 @@ function getAccountType(coreInput: CoreInput, btc: Btc): AccountType {
|
|
|
132
148
|
export function creatDummyXpub(pubkey: Buffer): string {
|
|
133
149
|
const xpubDecoded = bs58check.decode("tpubDHcN44A4UHqdHJZwBxgTbu8Cy87ZrZkN8tQnmJGhcijHqe4rztuvGcD4wo36XSviLmiqL5fUbDnekYaQ7LzAnaqauBb9RsyahsTTFHdeJGd");
|
|
134
150
|
const pubkey33 = pubkey.length == 33 ? pubkey : Buffer.concat([Buffer.of(2), pubkey]);
|
|
135
|
-
xpubDecoded.fill(pubkey33, xpubDecoded.length-33);
|
|
151
|
+
xpubDecoded.fill(pubkey33, xpubDecoded.length - 33);
|
|
136
152
|
return bs58check.encode(xpubDecoded);
|
|
137
153
|
}
|
|
138
154
|
|
|
139
|
-
function createInput(coreInput: CoreInput, btc: Btc): [Transaction, number, string, number] {
|
|
155
|
+
function createInput(coreInput: CoreInput, btc: Btc): [Transaction, number, string | null, number] {
|
|
140
156
|
const spentTx = spentTxs[coreInput.txid];
|
|
141
157
|
if (!spentTx) {
|
|
142
158
|
throw new Error("Spent tx " + coreInput.txid + " unavailable.");
|
|
143
159
|
}
|
|
144
160
|
const splitSpentTx = btc.splitTransaction(spentTx, true);
|
|
145
|
-
|
|
146
|
-
let redeemScript;
|
|
147
|
-
if (scriptSig?.hex && scriptSig.hex.startsWith("160014")) {
|
|
148
|
-
redeemScript = scriptSig.hex.substring(2);
|
|
149
|
-
}
|
|
150
|
-
return [splitSpentTx, coreInput.vout, redeemScript, coreInput.sequence];
|
|
161
|
+
return [splitSpentTx, coreInput.vout, null, coreInput.sequence];
|
|
151
162
|
}
|
|
152
163
|
|
|
153
164
|
export const masterFingerprint = Buffer.of(1, 2, 3, 4);
|
|
154
165
|
export class TestingClient extends AppClient {
|
|
155
|
-
mockGetPubkeyResponse(_pathElements: string, _response: string): void {};
|
|
166
|
+
mockGetPubkeyResponse(_pathElements: string, _response: string): void { };
|
|
156
167
|
mockGetWalletAddressResponse(
|
|
157
168
|
_walletPolicy: WalletPolicy,
|
|
158
169
|
_change: number,
|
|
159
170
|
_addressIndex: number,
|
|
160
171
|
_response: string
|
|
161
|
-
): void {};
|
|
162
|
-
mockSignPsbt(_yieldSigs: Map<number, Buffer>): void {};
|
|
172
|
+
): void { };
|
|
173
|
+
mockSignPsbt(_yieldSigs: Map<number, Buffer>): void { };
|
|
163
174
|
}
|
package/tests/newops/testtx.ts
CHANGED
|
@@ -237,61 +237,6 @@ export const p2pkh: CoreTx = {
|
|
|
237
237
|
"blocktime": 1633611385
|
|
238
238
|
};
|
|
239
239
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
240
|
-
export const p2wpkhTwoInputs = {
|
|
241
|
-
"txid": "1913b7b5ffdcb5f32b9aca1f5eec2a189e7c66650f82b560eae211265fc995b7",
|
|
242
|
-
"hash": "c3439dcd3489373c586c7aed48c32f2b5d9c71aad24acd765a61684d98690a3f",
|
|
243
|
-
"version": 2,
|
|
244
|
-
"size": 388,
|
|
245
|
-
"vsize": 226,
|
|
246
|
-
"weight": 904,
|
|
247
|
-
"locktime": 0,
|
|
248
|
-
"vin": [
|
|
249
|
-
{
|
|
250
|
-
"txid": "5512d5788d4c26117f093de91223ef384c3fb22799810a92e3304bb6f0819224",
|
|
251
|
-
"vout": 1,
|
|
252
|
-
"scriptSig": {
|
|
253
|
-
"asm": "0014c1ac0d63d0258ea1b6fe90ef72d0c35d8d773dd3",
|
|
254
|
-
"hex": "160014c1ac0d63d0258ea1b6fe90ef72d0c35d8d773dd3"
|
|
255
|
-
},
|
|
256
|
-
"txinwitness": [
|
|
257
|
-
"30440220543617c5f4504dc29d34d2d06d0d7733dac4ec418b77c67feefb29f3f82ba3d80220690b784c52c3375f4ba9e64cc5c0aeb6a1b9fc6aadda0062905c06ce3bbba57501",
|
|
258
|
-
"02fb255ed920db5c2f507289202eb60a160e5a067ee7e30199a4ed81b74c22e441"
|
|
259
|
-
],
|
|
260
|
-
"sequence": 4294967295
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
"txid": "28ad5054e029252d72da37f13fce66212d7f7763845b4a8c4aaf78e897b2bf9f",
|
|
264
|
-
"vout": 1,
|
|
265
|
-
"scriptSig": {
|
|
266
|
-
"asm": "0014c1ac0d63d0258ea1b6fe90ef72d0c35d8d773dd3",
|
|
267
|
-
"hex": "160014c1ac0d63d0258ea1b6fe90ef72d0c35d8d773dd3"
|
|
268
|
-
},
|
|
269
|
-
"txinwitness": [
|
|
270
|
-
"3044022049e7f3015a33ccdb015fe3891667564fd37111272df57e58447645c7bad8fed0022074d1e93ba946453896d0f0bc500df3a1e0d5bb5ad10cd9906736d5fbaebadd5801",
|
|
271
|
-
"02fb255ed920db5c2f507289202eb60a160e5a067ee7e30199a4ed81b74c22e441"
|
|
272
|
-
],
|
|
273
|
-
"sequence": 4294967295
|
|
274
|
-
}
|
|
275
|
-
],
|
|
276
|
-
"vout": [
|
|
277
|
-
{
|
|
278
|
-
"value": 0.01800000,
|
|
279
|
-
"n": 0,
|
|
280
|
-
"scriptPubKey": {
|
|
281
|
-
"asm": "OP_DUP OP_HASH160 f73384bcc3951ab6a75541ff79a9a51f82056ed8 OP_EQUALVERIFY OP_CHECKSIG",
|
|
282
|
-
"hex": "76a914f73384bcc3951ab6a75541ff79a9a51f82056ed888ac",
|
|
283
|
-
"address": "n442v1DrXQNim9gjjctKjyGVoe717hNdtG",
|
|
284
|
-
"type": "pubkeyhash"
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
],
|
|
288
|
-
"hex": "02000000000102249281f0b64b30e3920a819927b23f4c38ef2312e93d097f11264c8d78d512550100000017160014c1ac0d63d0258ea1b6fe90ef72d0c35d8d773dd3ffffffff9fbfb297e878af4a8c4a5b8463777f2d2166ce3ff137da722d2529e05450ad280100000017160014c1ac0d63d0258ea1b6fe90ef72d0c35d8d773dd3ffffffff0140771b00000000001976a914f73384bcc3951ab6a75541ff79a9a51f82056ed888ac024730440220543617c5f4504dc29d34d2d06d0d7733dac4ec418b77c67feefb29f3f82ba3d80220690b784c52c3375f4ba9e64cc5c0aeb6a1b9fc6aadda0062905c06ce3bbba575012102fb255ed920db5c2f507289202eb60a160e5a067ee7e30199a4ed81b74c22e44102473044022049e7f3015a33ccdb015fe3891667564fd37111272df57e58447645c7bad8fed0022074d1e93ba946453896d0f0bc500df3a1e0d5bb5ad10cd9906736d5fbaebadd58012102fb255ed920db5c2f507289202eb60a160e5a067ee7e30199a4ed81b74c22e44100000000",
|
|
289
|
-
"blockhash": "00000000025a711e6cd4bce9138dc852232a4494afbf36d8bb80499a786da2a4",
|
|
290
|
-
"confirmations": 1,
|
|
291
|
-
"time": 1633944124,
|
|
292
|
-
"blocktime": 1633944124
|
|
293
|
-
};
|
|
294
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
295
240
|
export const wrappedP2wpkhTwoInputs = {
|
|
296
241
|
"txid": "c03119b538c78f56c8ce2e6cc5fc6998d447eeef42e34c12692764a3f1a3da7c",
|
|
297
242
|
"hash": "6b3812304554a6964e43a6971ac533046f4be101e39609f72179856916e20268",
|