@ledgerhq/hw-app-btc 6.11.2 → 6.15.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/lib/Btc.js +1 -1
- package/lib/Btc.js.map +1 -1
- package/lib/BtcNew.js +3 -3
- package/lib/BtcNew.js.map +1 -1
- package/lib/buffertools.d.ts +4 -2
- package/lib/buffertools.d.ts.map +1 -1
- package/lib/buffertools.js +37 -5
- package/lib/buffertools.js.map +1 -1
- package/lib/newops/accounttype.d.ts.map +1 -1
- package/lib/newops/accounttype.js +9 -6
- package/lib/newops/accounttype.js.map +1 -1
- package/lib/newops/appClient.js +4 -4
- package/lib/newops/appClient.js.map +1 -1
- package/lib/newops/merkle.js +2 -2
- package/lib/newops/merkle.js.map +1 -1
- package/lib/newops/psbtExtractor.js +3 -3
- package/lib/newops/psbtExtractor.js.map +1 -1
- package/lib/newops/psbtv2.d.ts.map +1 -1
- package/lib/newops/psbtv2.js +7 -8
- package/lib/newops/psbtv2.js.map +1 -1
- package/lib-es/Btc.js +1 -1
- package/lib-es/Btc.js.map +1 -1
- package/lib-es/BtcNew.js +3 -3
- package/lib-es/BtcNew.js.map +1 -1
- package/lib-es/buffertools.d.ts +4 -2
- package/lib-es/buffertools.d.ts.map +1 -1
- package/lib-es/buffertools.js +34 -4
- package/lib-es/buffertools.js.map +1 -1
- package/lib-es/newops/accounttype.d.ts.map +1 -1
- package/lib-es/newops/accounttype.js +9 -6
- package/lib-es/newops/accounttype.js.map +1 -1
- package/lib-es/newops/appClient.js +4 -4
- package/lib-es/newops/appClient.js.map +1 -1
- package/lib-es/newops/merkle.js +2 -2
- package/lib-es/newops/merkle.js.map +1 -1
- package/lib-es/newops/psbtExtractor.js +3 -3
- package/lib-es/newops/psbtExtractor.js.map +1 -1
- package/lib-es/newops/psbtv2.d.ts.map +1 -1
- package/lib-es/newops/psbtv2.js +8 -9
- package/lib-es/newops/psbtv2.js.map +1 -1
- package/package.json +2 -2
- package/src/Btc.ts +1 -1
- package/src/BtcNew.ts +3 -3
- package/src/buffertools.ts +38 -6
- package/src/newops/accounttype.ts +9 -6
- package/src/newops/appClient.ts +4 -4
- package/src/newops/merkle.ts +2 -2
- package/src/newops/psbtExtractor.ts +3 -3
- package/src/newops/psbtv2.ts +13 -11
- package/tests/Btc.test.ts +68 -44
- package/tests/buffertools.test.ts +25 -0
- package/tests/newops/BtcNew.test.ts +13 -0
- package/tests/newops/integrationtools.ts +58 -28
- package/tests/newops/merkle.test.ts +1 -1
package/lib-es/newops/psbtv2.js
CHANGED
|
@@ -26,7 +26,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
26
26
|
};
|
|
27
27
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
28
28
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
29
|
-
import { BufferReader, BufferWriter } from "../buffertools";
|
|
29
|
+
import { BufferReader, BufferWriter, unsafeFrom64bitLE, unsafeTo64bitLE, } from "../buffertools";
|
|
30
30
|
export var psbtGlobal;
|
|
31
31
|
(function (psbtGlobal) {
|
|
32
32
|
psbtGlobal[psbtGlobal["TX_VERSION"] = 2] = "TX_VERSION";
|
|
@@ -60,7 +60,7 @@ export var psbtOut;
|
|
|
60
60
|
psbtOut[psbtOut["SCRIPT"] = 4] = "SCRIPT";
|
|
61
61
|
psbtOut[psbtOut["TAP_BIP32_DERIVATION"] = 7] = "TAP_BIP32_DERIVATION";
|
|
62
62
|
})(psbtOut || (psbtOut = {}));
|
|
63
|
-
var PSBT_MAGIC_BYTES = Buffer.
|
|
63
|
+
var PSBT_MAGIC_BYTES = Buffer.from([0x70, 0x73, 0x62, 0x74, 0xff]);
|
|
64
64
|
var NoSuchEntry = /** @class */ (function (_super) {
|
|
65
65
|
__extends(NoSuchEntry, _super);
|
|
66
66
|
function NoSuchEntry() {
|
|
@@ -248,7 +248,8 @@ var PsbtV2 = /** @class */ (function () {
|
|
|
248
248
|
this.setOutput(outputIndex, psbtOut.AMOUNT, b(), uint64LE(amount));
|
|
249
249
|
};
|
|
250
250
|
PsbtV2.prototype.getOutputAmount = function (outputIndex) {
|
|
251
|
-
|
|
251
|
+
var buf = this.getOutput(outputIndex, psbtOut.AMOUNT, b());
|
|
252
|
+
return unsafeFrom64bitLE(buf);
|
|
252
253
|
};
|
|
253
254
|
PsbtV2.prototype.setOutputScript = function (outputIndex, scriptPubKey) {
|
|
254
255
|
this.setOutput(outputIndex, psbtOut.SCRIPT, b(), scriptPubKey);
|
|
@@ -291,7 +292,7 @@ var PsbtV2 = /** @class */ (function () {
|
|
|
291
292
|
};
|
|
292
293
|
PsbtV2.prototype.serialize = function () {
|
|
293
294
|
var buf = new BufferWriter();
|
|
294
|
-
buf.writeSlice(Buffer.
|
|
295
|
+
buf.writeSlice(Buffer.from([0x70, 0x73, 0x62, 0x74, 0xff]));
|
|
295
296
|
serializeMap(buf, this.globalMap);
|
|
296
297
|
this.inputMaps.forEach(function (map) {
|
|
297
298
|
serializeMap(buf, map);
|
|
@@ -345,7 +346,7 @@ var PsbtV2 = /** @class */ (function () {
|
|
|
345
346
|
return keyTypes.some(function (k) { return k == keyType; });
|
|
346
347
|
};
|
|
347
348
|
PsbtV2.prototype.setGlobal = function (keyType, value) {
|
|
348
|
-
var key = new Key(keyType, Buffer.
|
|
349
|
+
var key = new Key(keyType, Buffer.from([]));
|
|
349
350
|
this.globalMap.set(key.toString(), value);
|
|
350
351
|
};
|
|
351
352
|
PsbtV2.prototype.getGlobal = function (keyType) {
|
|
@@ -477,7 +478,7 @@ function serializeMap(buf, map) {
|
|
|
477
478
|
buf.writeUInt8(0);
|
|
478
479
|
}
|
|
479
480
|
function b() {
|
|
480
|
-
return Buffer.
|
|
481
|
+
return Buffer.from([]);
|
|
481
482
|
}
|
|
482
483
|
function set(map, keyType, keyData, value) {
|
|
483
484
|
var key = new Key(keyType, keyData);
|
|
@@ -489,9 +490,7 @@ function uint32LE(n) {
|
|
|
489
490
|
return b;
|
|
490
491
|
}
|
|
491
492
|
function uint64LE(n) {
|
|
492
|
-
|
|
493
|
-
b.writeBigUInt64LE(BigInt(n), 0);
|
|
494
|
-
return b;
|
|
493
|
+
return unsafeTo64bitLE(n);
|
|
495
494
|
}
|
|
496
495
|
function varint(n) {
|
|
497
496
|
var b = new BufferWriter();
|
|
@@ -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.
|
|
3
|
+
"version": "6.15.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": "13600d0c9a11a546c0221d8b705ce36072b4cef4"
|
|
49
49
|
}
|
package/src/Btc.ts
CHANGED
|
@@ -342,7 +342,7 @@ function isPathNormal(path: string): boolean {
|
|
|
342
342
|
const h = 0x80000000;
|
|
343
343
|
const pathElems = pathStringToArray(path);
|
|
344
344
|
|
|
345
|
-
const hard = (n: number) => n
|
|
345
|
+
const hard = (n: number) => n >= h;
|
|
346
346
|
const soft = (n: number | undefined) => !n || n < h;
|
|
347
347
|
const change = (n: number | undefined) => !n || n == 0 || n == 1;
|
|
348
348
|
|
package/src/BtcNew.ts
CHANGED
|
@@ -206,7 +206,7 @@ export default class BtcNew {
|
|
|
206
206
|
|
|
207
207
|
const accountType = accountTypeFromArg(arg, psbt, masterFp);
|
|
208
208
|
|
|
209
|
-
if (arg.lockTime) {
|
|
209
|
+
if (arg.lockTime != undefined) {
|
|
210
210
|
// The signer will assume locktime 0 if unset
|
|
211
211
|
psbt.setGlobalFallbackLocktime(arg.lockTime);
|
|
212
212
|
}
|
|
@@ -362,10 +362,10 @@ export default class BtcNew {
|
|
|
362
362
|
// ourselves. But if set, it should be used.
|
|
363
363
|
const redeemScript = input[2] ? Buffer.from(input[2], "hex") : undefined;
|
|
364
364
|
const sequence = input[3];
|
|
365
|
-
if (sequence) {
|
|
365
|
+
if (sequence != undefined) {
|
|
366
366
|
psbt.setInputSequence(i, sequence);
|
|
367
367
|
}
|
|
368
|
-
if (sigHashType) {
|
|
368
|
+
if (sigHashType != undefined) {
|
|
369
369
|
psbt.setInputSighashType(i, sigHashType);
|
|
370
370
|
}
|
|
371
371
|
const inputTxBuffer = serializeTransaction(inputTx, true);
|
package/src/buffertools.ts
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
import varuint from "varuint-bitcoin";
|
|
2
2
|
|
|
3
|
+
export function unsafeTo64bitLE(n: number): Buffer {
|
|
4
|
+
// we want to represent the input as a 8-bytes array
|
|
5
|
+
if (n > Number.MAX_SAFE_INTEGER) {
|
|
6
|
+
throw new Error("Can't convert numbers > MAX_SAFE_INT");
|
|
7
|
+
}
|
|
8
|
+
const byteArray = Buffer.alloc(8, 0);
|
|
9
|
+
for (let index = 0; index < byteArray.length; index++) {
|
|
10
|
+
const byte = n & 0xff;
|
|
11
|
+
byteArray[index] = byte;
|
|
12
|
+
n = (n - byte) / 256;
|
|
13
|
+
}
|
|
14
|
+
return byteArray;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function unsafeFrom64bitLE(byteArray: Buffer): number {
|
|
18
|
+
let value = 0;
|
|
19
|
+
if (byteArray.length != 8) {
|
|
20
|
+
throw new Error("Expected Bufffer of lenght 8");
|
|
21
|
+
}
|
|
22
|
+
if (byteArray[7] != 0) {
|
|
23
|
+
throw new Error("Can't encode numbers > MAX_SAFE_INT");
|
|
24
|
+
}
|
|
25
|
+
if (byteArray[6] > 0x1f) {
|
|
26
|
+
throw new Error("Can't encode numbers > MAX_SAFE_INT");
|
|
27
|
+
}
|
|
28
|
+
for (let i = byteArray.length - 1; i >= 0; i--) {
|
|
29
|
+
value = value * 256 + byteArray[i];
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
|
|
3
34
|
export class BufferWriter {
|
|
4
35
|
private bufs: Buffer[] = [];
|
|
5
36
|
|
|
@@ -21,8 +52,9 @@ export class BufferWriter {
|
|
|
21
52
|
this.write(4, (b) => b.writeUInt32LE(i, 0));
|
|
22
53
|
}
|
|
23
54
|
|
|
24
|
-
writeUInt64(i:
|
|
25
|
-
|
|
55
|
+
writeUInt64(i: number): void {
|
|
56
|
+
const bytes = unsafeTo64bitLE(i);
|
|
57
|
+
this.writeSlice(bytes);
|
|
26
58
|
}
|
|
27
59
|
|
|
28
60
|
writeVarInt(i: number): void {
|
|
@@ -68,10 +100,10 @@ export class BufferReader {
|
|
|
68
100
|
return result;
|
|
69
101
|
}
|
|
70
102
|
|
|
71
|
-
readUInt64():
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
return
|
|
103
|
+
readUInt64(): number {
|
|
104
|
+
const buf = this.readSlice(8);
|
|
105
|
+
const n = unsafeFrom64bitLE(buf);
|
|
106
|
+
return n;
|
|
75
107
|
}
|
|
76
108
|
|
|
77
109
|
readVarInt(): number {
|
|
@@ -149,9 +149,9 @@ export class p2pkh extends SingleKeyAccount {
|
|
|
149
149
|
singleKeyCondition(pubkey: Buffer): SpendingCondition {
|
|
150
150
|
const buf = new BufferWriter();
|
|
151
151
|
const pubkeyHash = hashPublicKey(pubkey);
|
|
152
|
-
buf.writeSlice(Buffer.
|
|
152
|
+
buf.writeSlice(Buffer.from([OP_DUP, OP_HASH160, HASH_SIZE]));
|
|
153
153
|
buf.writeSlice(pubkeyHash);
|
|
154
|
-
buf.writeSlice(Buffer.
|
|
154
|
+
buf.writeSlice(Buffer.from([OP_EQUALVERIFY, OP_CHECKSIG]));
|
|
155
155
|
return { scriptPubKey: buf.buffer() };
|
|
156
156
|
}
|
|
157
157
|
|
|
@@ -188,7 +188,7 @@ export class p2tr extends SingleKeyAccount {
|
|
|
188
188
|
const xonlyPubkey = pubkey.slice(1); // x-only pubkey
|
|
189
189
|
const buf = new BufferWriter();
|
|
190
190
|
const outputKey = this.getTaprootOutputKey(xonlyPubkey);
|
|
191
|
-
buf.writeSlice(Buffer.
|
|
191
|
+
buf.writeSlice(Buffer.from([0x51, 32])); // push1, pubkeylen
|
|
192
192
|
buf.writeSlice(outputKey);
|
|
193
193
|
return { scriptPubKey: buf.buffer() };
|
|
194
194
|
}
|
|
@@ -251,7 +251,10 @@ export class p2tr extends SingleKeyAccount {
|
|
|
251
251
|
// the first byte, which represent the oddness/evenness. In schnorr all
|
|
252
252
|
// pubkeys are even.
|
|
253
253
|
// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki#public-key-conversion
|
|
254
|
-
const evenEcdsaPubkey = Buffer.concat([
|
|
254
|
+
const evenEcdsaPubkey = Buffer.concat([
|
|
255
|
+
Buffer.from([0x02]),
|
|
256
|
+
internalPubkey,
|
|
257
|
+
]);
|
|
255
258
|
const tweak = this.hashTapTweak(internalPubkey);
|
|
256
259
|
|
|
257
260
|
// Q = P + int(hash_TapTweak(bytes(P)))G
|
|
@@ -268,7 +271,7 @@ export class p2wpkhWrapped extends SingleKeyAccount {
|
|
|
268
271
|
const buf = new BufferWriter();
|
|
269
272
|
const redeemScript = this.createRedeemScript(pubkey);
|
|
270
273
|
const scriptHash = hashPublicKey(redeemScript);
|
|
271
|
-
buf.writeSlice(Buffer.
|
|
274
|
+
buf.writeSlice(Buffer.from([OP_HASH160, HASH_SIZE]));
|
|
272
275
|
buf.writeSlice(scriptHash);
|
|
273
276
|
buf.writeUInt8(OP_EQUAL);
|
|
274
277
|
return { scriptPubKey: buf.buffer(), redeemScript: redeemScript };
|
|
@@ -331,7 +334,7 @@ export class p2wpkh extends SingleKeyAccount {
|
|
|
331
334
|
singleKeyCondition(pubkey: Buffer): SpendingCondition {
|
|
332
335
|
const buf = new BufferWriter();
|
|
333
336
|
const pubkeyHash = hashPublicKey(pubkey);
|
|
334
|
-
buf.writeSlice(Buffer.
|
|
337
|
+
buf.writeSlice(Buffer.from([0, HASH_SIZE]));
|
|
335
338
|
buf.writeSlice(pubkeyHash);
|
|
336
339
|
return { scriptPubKey: buf.buffer() };
|
|
337
340
|
}
|
package/src/newops/appClient.ts
CHANGED
|
@@ -73,7 +73,7 @@ export class AppClient {
|
|
|
73
73
|
const response = await this.makeRequest(
|
|
74
74
|
BitcoinIns.GET_PUBKEY,
|
|
75
75
|
Buffer.concat([
|
|
76
|
-
Buffer.
|
|
76
|
+
Buffer.from(display ? [1] : [0]),
|
|
77
77
|
pathElementsToBuffer(pathElements),
|
|
78
78
|
])
|
|
79
79
|
);
|
|
@@ -108,10 +108,10 @@ export class AppClient {
|
|
|
108
108
|
const response = await this.makeRequest(
|
|
109
109
|
BitcoinIns.GET_WALLET_ADDRESS,
|
|
110
110
|
Buffer.concat([
|
|
111
|
-
Buffer.
|
|
111
|
+
Buffer.from(display ? [1] : [0]),
|
|
112
112
|
walletPolicy.getWalletId(),
|
|
113
113
|
walletHMAC || Buffer.alloc(32, 0),
|
|
114
|
-
Buffer.
|
|
114
|
+
Buffer.from([change]),
|
|
115
115
|
addressIndexBuffer,
|
|
116
116
|
]),
|
|
117
117
|
clientInterpreter
|
|
@@ -181,6 +181,6 @@ export class AppClient {
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
async getMasterFingerprint(): Promise<Buffer> {
|
|
184
|
-
return this.makeRequest(BitcoinIns.GET_MASTER_FINGERPRINT, Buffer.
|
|
184
|
+
return this.makeRequest(BitcoinIns.GET_MASTER_FINGERPRINT, Buffer.from([]));
|
|
185
185
|
}
|
|
186
186
|
}
|
package/src/newops/merkle.ts
CHANGED
|
@@ -62,7 +62,7 @@ export class Merkle {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
hashNode(left: Buffer, right: Buffer): Buffer {
|
|
65
|
-
return this.h(Buffer.concat([Buffer.
|
|
65
|
+
return this.h(Buffer.concat([Buffer.from([1]), left, right]));
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -70,7 +70,7 @@ export function hashLeaf(
|
|
|
70
70
|
buf: Buffer,
|
|
71
71
|
hashFunction: (buf: Buffer) => Buffer = crypto.sha256
|
|
72
72
|
): Buffer {
|
|
73
|
-
return hashConcat(Buffer.
|
|
73
|
+
return hashConcat(Buffer.from([0]), buf, hashFunction);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
function hashConcat(
|
|
@@ -13,7 +13,7 @@ export function extract(psbt: PsbtV2): Buffer {
|
|
|
13
13
|
|
|
14
14
|
const isSegwit = !!psbt.getInputWitnessUtxo(0);
|
|
15
15
|
if (isSegwit) {
|
|
16
|
-
tx.writeSlice(Buffer.
|
|
16
|
+
tx.writeSlice(Buffer.from([0, 1]));
|
|
17
17
|
}
|
|
18
18
|
const inputCount = psbt.getGlobalInputCount();
|
|
19
19
|
tx.writeVarInt(inputCount);
|
|
@@ -21,7 +21,7 @@ export function extract(psbt: PsbtV2): Buffer {
|
|
|
21
21
|
for (let i = 0; i < inputCount; i++) {
|
|
22
22
|
tx.writeSlice(psbt.getInputPreviousTxid(i));
|
|
23
23
|
tx.writeUInt32(psbt.getInputOutputIndex(i));
|
|
24
|
-
tx.writeVarSlice(psbt.getInputFinalScriptsig(i) ?? Buffer.
|
|
24
|
+
tx.writeVarSlice(psbt.getInputFinalScriptsig(i) ?? Buffer.from([]));
|
|
25
25
|
tx.writeUInt32(psbt.getInputSequence(i));
|
|
26
26
|
if (isSegwit) {
|
|
27
27
|
witnessWriter.writeSlice(psbt.getInputFinalScriptwitness(i));
|
|
@@ -30,7 +30,7 @@ export function extract(psbt: PsbtV2): Buffer {
|
|
|
30
30
|
const outputCount = psbt.getGlobalOutputCount();
|
|
31
31
|
tx.writeVarInt(outputCount);
|
|
32
32
|
for (let i = 0; i < outputCount; i++) {
|
|
33
|
-
tx.writeUInt64(
|
|
33
|
+
tx.writeUInt64(psbt.getOutputAmount(i));
|
|
34
34
|
tx.writeVarSlice(psbt.getOutputScript(i));
|
|
35
35
|
}
|
|
36
36
|
tx.writeSlice(witnessWriter.buffer());
|
package/src/newops/psbtv2.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
2
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
BufferReader,
|
|
5
|
+
BufferWriter,
|
|
6
|
+
unsafeFrom64bitLE,
|
|
7
|
+
unsafeTo64bitLE,
|
|
8
|
+
} from "../buffertools";
|
|
4
9
|
|
|
5
10
|
export enum psbtGlobal {
|
|
6
11
|
TX_VERSION = 0x02,
|
|
@@ -33,7 +38,7 @@ export enum psbtOut {
|
|
|
33
38
|
TAP_BIP32_DERIVATION = 0x07,
|
|
34
39
|
}
|
|
35
40
|
|
|
36
|
-
const PSBT_MAGIC_BYTES = Buffer.
|
|
41
|
+
const PSBT_MAGIC_BYTES = Buffer.from([0x70, 0x73, 0x62, 0x74, 0xff]);
|
|
37
42
|
|
|
38
43
|
export class NoSuchEntry extends Error {}
|
|
39
44
|
|
|
@@ -263,9 +268,8 @@ export class PsbtV2 {
|
|
|
263
268
|
this.setOutput(outputIndex, psbtOut.AMOUNT, b(), uint64LE(amount));
|
|
264
269
|
}
|
|
265
270
|
getOutputAmount(outputIndex: number): number {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
);
|
|
271
|
+
const buf = this.getOutput(outputIndex, psbtOut.AMOUNT, b());
|
|
272
|
+
return unsafeFrom64bitLE(buf);
|
|
269
273
|
}
|
|
270
274
|
setOutputScript(outputIndex: number, scriptPubKey: Buffer) {
|
|
271
275
|
this.setOutput(outputIndex, psbtOut.SCRIPT, b(), scriptPubKey);
|
|
@@ -321,7 +325,7 @@ export class PsbtV2 {
|
|
|
321
325
|
}
|
|
322
326
|
serialize(): Buffer {
|
|
323
327
|
const buf = new BufferWriter();
|
|
324
|
-
buf.writeSlice(Buffer.
|
|
328
|
+
buf.writeSlice(Buffer.from([0x70, 0x73, 0x62, 0x74, 0xff]));
|
|
325
329
|
serializeMap(buf, this.globalMap);
|
|
326
330
|
this.inputMaps.forEach((map) => {
|
|
327
331
|
serializeMap(buf, map);
|
|
@@ -371,7 +375,7 @@ export class PsbtV2 {
|
|
|
371
375
|
return keyTypes.some((k) => k == keyType);
|
|
372
376
|
}
|
|
373
377
|
private setGlobal(keyType: KeyType, value: Buffer) {
|
|
374
|
-
const key = new Key(keyType, Buffer.
|
|
378
|
+
const key = new Key(keyType, Buffer.from([]));
|
|
375
379
|
this.globalMap.set(key.toString(), value);
|
|
376
380
|
}
|
|
377
381
|
private getGlobal(keyType: KeyType): Buffer {
|
|
@@ -541,7 +545,7 @@ function serializeMap(buf: BufferWriter, map: Map<string, Buffer>) {
|
|
|
541
545
|
}
|
|
542
546
|
|
|
543
547
|
function b(): Buffer {
|
|
544
|
-
return Buffer.
|
|
548
|
+
return Buffer.from([]);
|
|
545
549
|
}
|
|
546
550
|
function set(
|
|
547
551
|
map: Map<string, Buffer>,
|
|
@@ -558,9 +562,7 @@ function uint32LE(n: number): Buffer {
|
|
|
558
562
|
return b;
|
|
559
563
|
}
|
|
560
564
|
function uint64LE(n: number): Buffer {
|
|
561
|
-
|
|
562
|
-
b.writeBigUInt64LE(BigInt(n), 0);
|
|
563
|
-
return b;
|
|
565
|
+
return unsafeTo64bitLE(n);
|
|
564
566
|
}
|
|
565
567
|
function varint(n: number): Buffer {
|
|
566
568
|
const b = new BufferWriter();
|
package/tests/Btc.test.ts
CHANGED
|
@@ -106,14 +106,24 @@ ascii(1NjiCsVBuKDT62LmaUd7WZZZBK2gPAkisb)
|
|
|
106
106
|
8bd937d416de7020952cc8e2c99ce9ac7e01265e31ceb8e47bf9c37f46f8abbd
|
|
107
107
|
*/
|
|
108
108
|
/*eslint-disable */
|
|
109
|
-
const pubkeyParent =
|
|
110
|
-
|
|
111
|
-
const
|
|
109
|
+
const pubkeyParent =
|
|
110
|
+
"045d4a72237572a91e13818fa38cedabe6174569cc9a319012f75150d5c0a0639d54eafd13a68d079b7a67764800c6a981825ef52384f08c3925109188ab21bc09";
|
|
111
|
+
const addrParent = Buffer.from(
|
|
112
|
+
"1NjiCsVBuKDT62LmaUd7WZZZBK2gPAkisb",
|
|
113
|
+
"ascii"
|
|
114
|
+
).toString("hex");
|
|
115
|
+
const ccParent =
|
|
116
|
+
"8bd937d416de7020952cc8e2c99ce9ac7e01265e31ceb8e47bf9c37f46f8abbd";
|
|
112
117
|
const responseParent = `41${pubkeyParent}22${addrParent}${ccParent}`;
|
|
113
118
|
|
|
114
|
-
const pubkeyAcc =
|
|
115
|
-
|
|
116
|
-
const
|
|
119
|
+
const pubkeyAcc =
|
|
120
|
+
"04250dfdfb84c1efd160ed0e10ebac845d0e4b04277174630ba56de96bbd3afb21fc6c04ce0d5a0cbd784fdabc99d16269c27cf3842fe8440f1f21b8af900f0eaa";
|
|
121
|
+
const addrAcc = Buffer.from(
|
|
122
|
+
"16Y97ByhyboePhTYMMmFj1tq5Cy1bDq8jT",
|
|
123
|
+
"ascii"
|
|
124
|
+
).toString("hex");
|
|
125
|
+
const ccAcc =
|
|
126
|
+
"c071c6f2d05cbc9ea9a04951b238086ce1608cf00020c3cab85b36aac5fdd591";
|
|
117
127
|
/*eslint-enable */
|
|
118
128
|
const responseAcc = `41${pubkeyAcc}22${addrAcc}${ccAcc}`;
|
|
119
129
|
const transport = await openTransportReplayer(
|
|
@@ -123,7 +133,7 @@ ascii(1NjiCsVBuKDT62LmaUd7WZZZBK2gPAkisb)
|
|
|
123
133
|
=> e040000009028000002c80000000
|
|
124
134
|
<= ${responseParent}9000
|
|
125
135
|
=> e04000000d038000002c8000000080000011
|
|
126
|
-
<= ${responseAcc}9000
|
|
136
|
+
<= ${responseAcc}9000
|
|
127
137
|
`)
|
|
128
138
|
);
|
|
129
139
|
const btc = new Btc(transport);
|
|
@@ -430,7 +440,7 @@ test("signMessage", async () => {
|
|
|
430
440
|
function testBackend(s: string): any {
|
|
431
441
|
return async () => {
|
|
432
442
|
return { publicKey: s, bitcoinAddress: "", chainCode: "" };
|
|
433
|
-
}
|
|
443
|
+
};
|
|
434
444
|
}
|
|
435
445
|
|
|
436
446
|
class TestBtc extends Btc {
|
|
@@ -461,42 +471,51 @@ class TestBtc extends Btc {
|
|
|
461
471
|
// });
|
|
462
472
|
|
|
463
473
|
test.each`
|
|
464
|
-
app | ver
|
|
465
|
-
${"Bitcoin"} | ${"1.99.99"}
|
|
466
|
-
${"Bitcoin"} | ${"1.99.99"}
|
|
467
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'"}
|
|
468
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'"}
|
|
469
|
-
${"Bitcoin"} | ${"2.0.0-
|
|
470
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'"}
|
|
471
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'"}
|
|
472
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'
|
|
473
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/
|
|
474
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/1/0"} | ${"
|
|
475
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/1/0"} | ${"
|
|
476
|
-
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
const
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
474
|
+
app | ver | path | format | display | exp
|
|
475
|
+
${"Bitcoin"} | ${"1.99.99"} | ${"m/44'/0'/1'"} | ${"bech32m"} | ${false} | ${""}
|
|
476
|
+
${"Bitcoin"} | ${"1.99.99"} | ${"m/44'/0'"} | ${"bech32m"} | ${false} | ${""}
|
|
477
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'"} | ${"bech32m"} | ${false} | ${"new"}
|
|
478
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'"} | ${"bech32m"} | ${false} | ${"new"}
|
|
479
|
+
${"Bitcoin"} | ${"2.0.0-beta"} | ${"m/84'/1'/0'"} | ${"bech32"} | ${false} | ${"new"}
|
|
480
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'"} | ${"bech32"} | ${false} | ${"new"}
|
|
481
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'"} | ${"bech32"} | ${undefined} | ${"old"}
|
|
482
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'"} | ${"bech32"} | ${true} | ${"new"}
|
|
483
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/0/0"} | ${"bech32"} | ${false} | ${"new"}
|
|
484
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/1/0"} | ${"bech32"} | ${false} | ${"new"}
|
|
485
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/1/0"} | ${"legacy"} | ${false} | ${"new"}
|
|
486
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/1/0"} | ${"p2sh"} | ${false} | ${"new"}
|
|
487
|
+
${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/2/0"} | ${"bech32"} | ${false} | ${"old"}
|
|
488
|
+
`(
|
|
489
|
+
"dispatch $app $ver $path $format $display to $exp",
|
|
490
|
+
async ({ app, ver, path, format, display, exp }) => {
|
|
491
|
+
const appName = Buffer.from([app.length])
|
|
492
|
+
.toString("hex")
|
|
493
|
+
.concat(Buffer.from(app, "ascii").toString("hex"));
|
|
494
|
+
const appVersion = Buffer.from([ver.length])
|
|
495
|
+
.toString("hex")
|
|
496
|
+
.concat(Buffer.from(ver, "ascii").toString("hex"));
|
|
497
|
+
const resp = `01${appName}${appVersion}01029000`;
|
|
498
|
+
const tr = await openTransportReplayer(
|
|
499
|
+
RecordStore.fromString(`=> b001000000\n <= ${resp}`)
|
|
500
|
+
);
|
|
501
|
+
const btc = new TestBtc(tr);
|
|
502
|
+
try {
|
|
503
|
+
const key = await btc.getWalletPublicKey(path, {
|
|
504
|
+
format: format,
|
|
505
|
+
verify: display,
|
|
506
|
+
});
|
|
507
|
+
if (exp === "") {
|
|
508
|
+
expect(1).toEqual(0); // Allways fail. Don't know how to do that properly
|
|
509
|
+
}
|
|
510
|
+
expect(key.publicKey).toEqual(exp);
|
|
511
|
+
} catch (e: any) {
|
|
512
|
+
if (exp != "") {
|
|
513
|
+
throw e;
|
|
514
|
+
}
|
|
515
|
+
expect(exp).toEqual("");
|
|
496
516
|
}
|
|
497
|
-
expect(exp).toEqual("");
|
|
498
517
|
}
|
|
499
|
-
|
|
518
|
+
);
|
|
500
519
|
|
|
501
520
|
// test("getWalletPublicKey compatibility for internal hardened keys", async () => {
|
|
502
521
|
// await testDispatch("Bitcoin", "1.99.99", "m/44'/0'/1'", "bech32m", "");
|
|
@@ -507,5 +526,10 @@ ${"Bitcoin"} | ${"2.0.0-alpha1"} | ${"m/44'/0'/1'/2/0"} | ${"bech32"} | ${false}
|
|
|
507
526
|
// await testDispatch("Bitcoin", "2.0.0-alpha1", "m/44'/0'", "bech32", "old");
|
|
508
527
|
// });
|
|
509
528
|
|
|
510
|
-
async function testDispatch(
|
|
511
|
-
|
|
529
|
+
async function testDispatch(
|
|
530
|
+
name: string,
|
|
531
|
+
version: string,
|
|
532
|
+
path: string,
|
|
533
|
+
addressFormat: AddressFormat | undefined,
|
|
534
|
+
exp: string
|
|
535
|
+
): Promise<void> {}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BufferReader, BufferWriter } from "../src/buffertools"
|
|
2
|
+
|
|
3
|
+
function run(n: number, expectedHex: string) {
|
|
4
|
+
const w = new BufferWriter();
|
|
5
|
+
w.writeUInt64(n)
|
|
6
|
+
expect(w.buffer()).toEqual(Buffer.from(expectedHex, "hex"));
|
|
7
|
+
const r = new BufferReader(w.buffer());
|
|
8
|
+
expect(r.readUInt64()).toEqual(n);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
test("Test 64 bit numbers", () => {
|
|
12
|
+
run(0, "0000000000000000");
|
|
13
|
+
run(1, "0100000000000000");
|
|
14
|
+
run(0xffffffff, "ffffffff00000000");
|
|
15
|
+
run(0x0100000000, "0000000001000000");
|
|
16
|
+
run(0x010203040506, "0605040302010000");
|
|
17
|
+
run(Number.MAX_SAFE_INTEGER, "FFFFFFFFFFFF1F00");
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
test("Too big 64 bit number", () => {
|
|
21
|
+
const w = new BufferWriter();
|
|
22
|
+
expect(() => w.writeUInt64(Number.MAX_SAFE_INTEGER+1)).toThrow();
|
|
23
|
+
const r = new BufferReader(Buffer.from("FFFFFFFFFFFF2000", "hex"))
|
|
24
|
+
expect(() => r.readUInt64()).toThrow();
|
|
25
|
+
})
|