@ledgerhq/hw-app-btc 9.0.0-nightly.3 → 9.0.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +5 -14
- package/README.md +111 -33
- package/lib/Btc.d.ts +13 -11
- package/lib/Btc.d.ts.map +1 -1
- package/lib/Btc.js +191 -31
- package/lib/Btc.js.map +1 -1
- package/lib/BtcNew.d.ts +4 -2
- package/lib/BtcNew.d.ts.map +1 -1
- package/lib/BtcNew.js +13 -54
- package/lib/BtcNew.js.map +1 -1
- package/lib/BtcOld.d.ts +37 -2
- package/lib/BtcOld.d.ts.map +1 -1
- package/lib/BtcOld.js +45 -3
- package/lib/BtcOld.js.map +1 -1
- package/lib-es/Btc.d.ts +13 -11
- package/lib-es/Btc.d.ts.map +1 -1
- package/lib-es/Btc.js +168 -31
- package/lib-es/Btc.js.map +1 -1
- package/lib-es/BtcNew.d.ts +4 -2
- package/lib-es/BtcNew.d.ts.map +1 -1
- package/lib-es/BtcNew.js +8 -54
- package/lib-es/BtcNew.js.map +1 -1
- package/lib-es/BtcOld.d.ts +37 -2
- package/lib-es/BtcOld.d.ts.map +1 -1
- package/lib-es/BtcOld.js +45 -3
- package/lib-es/BtcOld.js.map +1 -1
- package/package.json +4 -4
- package/src/Btc.ts +151 -41
- package/src/BtcNew.ts +15 -60
- package/src/BtcOld.ts +59 -4
- package/tests/Btc.test.ts +132 -16
- package/tests/newops/BtcNew.test.ts +5 -0
- package/tests/newops/integrationtools.ts +4 -4
- package/tests/parseTx.test.ts +1 -1
- package/tests/trustedInputs.test.ts +8 -6
package/lib-es/BtcNew.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BtcNew.js","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BtcNew.js","sourceRoot":"","sources":["../src/BtcNew.ts"],"names":[],"mappings":"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"}
|
package/lib-es/BtcOld.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type Transport from "@ledgerhq/hw-transport";
|
|
2
2
|
import type { CreateTransactionArg } from "./createTransaction";
|
|
3
3
|
import type { AddressFormat } from "./getWalletPublicKey";
|
|
4
|
+
import type { SignP2SHTransactionArg } from "./signP2SHTransaction";
|
|
4
5
|
export type { AddressFormat };
|
|
5
6
|
/**
|
|
6
7
|
* Bitcoin API.
|
|
7
8
|
*
|
|
8
9
|
* @example
|
|
9
10
|
* import Btc from "@ledgerhq/hw-app-btc";
|
|
10
|
-
* const btc = new Btc(
|
|
11
|
+
* const btc = new Btc(transport)
|
|
11
12
|
*/
|
|
12
13
|
export default class BtcOld {
|
|
13
14
|
private transport;
|
|
@@ -48,6 +49,20 @@ export default class BtcOld {
|
|
|
48
49
|
bitcoinAddress: string;
|
|
49
50
|
chainCode: string;
|
|
50
51
|
}>;
|
|
52
|
+
/**
|
|
53
|
+
* You can sign a message according to the Bitcoin Signature format and retrieve v, r, s given the message and the BIP 32 path of the account to sign.
|
|
54
|
+
* @example
|
|
55
|
+
btc.signMessageNew_async("44'/60'/0'/0'/0", Buffer.from("test").toString("hex")).then(function(result) {
|
|
56
|
+
var v = result['v'] + 27 + 4;
|
|
57
|
+
var signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');
|
|
58
|
+
console.log("Signature : " + signature);
|
|
59
|
+
}).catch(function(ex) {console.log(ex);});
|
|
60
|
+
*/
|
|
61
|
+
signMessageNew(path: string, messageHex: string): Promise<{
|
|
62
|
+
v: number;
|
|
63
|
+
r: string;
|
|
64
|
+
s: string;
|
|
65
|
+
}>;
|
|
51
66
|
/**
|
|
52
67
|
* To sign a transaction involving standard (P2PKH) inputs, call createTransaction with the following parameters
|
|
53
68
|
* @param inputs is an array of [ transaction, output_index, optional redeem script, optional sequence ] where
|
|
@@ -80,6 +95,26 @@ export default class BtcOld {
|
|
|
80
95
|
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
81
96
|
}).then(res => ...);
|
|
82
97
|
*/
|
|
83
|
-
|
|
98
|
+
createPaymentTransactionNew(arg: CreateTransactionArg): Promise<string>;
|
|
99
|
+
/**
|
|
100
|
+
* To obtain the signature of multisignature (P2SH) inputs, call signP2SHTransaction_async with the folowing parameters
|
|
101
|
+
* @param inputs is an array of [ transaction, output_index, redeem script, optional sequence ] where
|
|
102
|
+
* * transaction is the previously computed transaction object for this UTXO
|
|
103
|
+
* * output_index is the output in the transaction used as input for this UTXO (counting from 0)
|
|
104
|
+
* * redeem script is the mandatory redeem script associated to the current P2SH input
|
|
105
|
+
* * sequence is the sequence number to use for this input (when using RBF), or non present
|
|
106
|
+
* @param associatedKeysets is an array of BIP 32 paths pointing to the path to the private key used for each UTXO
|
|
107
|
+
* @param outputScriptHex is the hexadecimal serialized outputs of the transaction to sign
|
|
108
|
+
* @param lockTime is the optional lockTime of the transaction to sign, or default (0)
|
|
109
|
+
* @param sigHashType is the hash type of the transaction to sign, or default (all)
|
|
110
|
+
* @return the signed transaction ready to be broadcast
|
|
111
|
+
* @example
|
|
112
|
+
btc.signP2SHTransaction({
|
|
113
|
+
inputs: [ [tx, 1, "52210289b4a3ad52a919abd2bdd6920d8a6879b1e788c38aa76f0440a6f32a9f1996d02103a3393b1439d1693b063482c04bd40142db97bdf139eedd1b51ffb7070a37eac321030b9a409a1e476b0d5d17b804fcdb81cf30f9b99c6f3ae1178206e08bc500639853ae"] ],
|
|
114
|
+
associatedKeysets: ["0'/0/0"],
|
|
115
|
+
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
116
|
+
}).then(result => ...);
|
|
117
|
+
*/
|
|
118
|
+
signP2SHTransaction(arg: SignP2SHTransactionArg): Promise<string[]>;
|
|
84
119
|
}
|
|
85
120
|
//# sourceMappingURL=BtcOld.d.ts.map
|
package/lib-es/BtcOld.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BtcOld.d.ts","sourceRoot":"","sources":["../src/BtcOld.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,MAAM;IACb,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAExC,OAAO,CAAC,gBAAgB,CAAM;YAChB,YAAY;IASpB,aAAa,CAAC,EAClB,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,
|
|
1
|
+
{"version":3,"file":"BtcOld.d.ts","sourceRoot":"","sources":["../src/BtcOld.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,MAAM;IACb,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS;IAExC,OAAO,CAAC,gBAAgB,CAAM;YAChB,YAAY;IASpB,aAAa,CAAC,EAClB,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GACA,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAOF;;;;;;;;OAQG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,2BAA2B,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IASvE;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CASpE"}
|
package/lib-es/BtcOld.js
CHANGED
|
@@ -50,13 +50,15 @@ import RIPEMD160 from "ripemd160";
|
|
|
50
50
|
import sha from "sha.js";
|
|
51
51
|
import { createTransaction } from "./createTransaction";
|
|
52
52
|
import { getWalletPublicKey } from "./getWalletPublicKey";
|
|
53
|
+
import { signMessage } from "./signMessage";
|
|
54
|
+
import { signP2SHTransaction } from "./signP2SHTransaction";
|
|
53
55
|
import { pathArrayToString, pathStringToArray } from "./bip32";
|
|
54
56
|
/**
|
|
55
57
|
* Bitcoin API.
|
|
56
58
|
*
|
|
57
59
|
* @example
|
|
58
60
|
* import Btc from "@ledgerhq/hw-app-btc";
|
|
59
|
-
* const btc = new Btc(
|
|
61
|
+
* const btc = new Btc(transport)
|
|
60
62
|
*/
|
|
61
63
|
var BtcOld = /** @class */ (function () {
|
|
62
64
|
function BtcOld(transport) {
|
|
@@ -132,6 +134,21 @@ var BtcOld = /** @class */ (function () {
|
|
|
132
134
|
}
|
|
133
135
|
return getWalletPublicKey(this.transport, __assign(__assign({}, opts), { path: path }));
|
|
134
136
|
};
|
|
137
|
+
/**
|
|
138
|
+
* You can sign a message according to the Bitcoin Signature format and retrieve v, r, s given the message and the BIP 32 path of the account to sign.
|
|
139
|
+
* @example
|
|
140
|
+
btc.signMessageNew_async("44'/60'/0'/0'/0", Buffer.from("test").toString("hex")).then(function(result) {
|
|
141
|
+
var v = result['v'] + 27 + 4;
|
|
142
|
+
var signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');
|
|
143
|
+
console.log("Signature : " + signature);
|
|
144
|
+
}).catch(function(ex) {console.log(ex);});
|
|
145
|
+
*/
|
|
146
|
+
BtcOld.prototype.signMessageNew = function (path, messageHex) {
|
|
147
|
+
return signMessage(this.transport, {
|
|
148
|
+
path: path,
|
|
149
|
+
messageHex: messageHex
|
|
150
|
+
});
|
|
151
|
+
};
|
|
135
152
|
/**
|
|
136
153
|
* To sign a transaction involving standard (P2PKH) inputs, call createTransaction with the following parameters
|
|
137
154
|
* @param inputs is an array of [ transaction, output_index, optional redeem script, optional sequence ] where
|
|
@@ -164,12 +181,37 @@ var BtcOld = /** @class */ (function () {
|
|
|
164
181
|
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
165
182
|
}).then(res => ...);
|
|
166
183
|
*/
|
|
167
|
-
BtcOld.prototype.
|
|
184
|
+
BtcOld.prototype.createPaymentTransactionNew = function (arg) {
|
|
168
185
|
if (arguments.length > 1) {
|
|
169
|
-
|
|
186
|
+
console.warn("@ledgerhq/hw-app-btc: createPaymentTransactionNew multi argument signature is deprecated. please switch to named parameters.");
|
|
170
187
|
}
|
|
171
188
|
return createTransaction(this.transport, arg);
|
|
172
189
|
};
|
|
190
|
+
/**
|
|
191
|
+
* To obtain the signature of multisignature (P2SH) inputs, call signP2SHTransaction_async with the folowing parameters
|
|
192
|
+
* @param inputs is an array of [ transaction, output_index, redeem script, optional sequence ] where
|
|
193
|
+
* * transaction is the previously computed transaction object for this UTXO
|
|
194
|
+
* * output_index is the output in the transaction used as input for this UTXO (counting from 0)
|
|
195
|
+
* * redeem script is the mandatory redeem script associated to the current P2SH input
|
|
196
|
+
* * sequence is the sequence number to use for this input (when using RBF), or non present
|
|
197
|
+
* @param associatedKeysets is an array of BIP 32 paths pointing to the path to the private key used for each UTXO
|
|
198
|
+
* @param outputScriptHex is the hexadecimal serialized outputs of the transaction to sign
|
|
199
|
+
* @param lockTime is the optional lockTime of the transaction to sign, or default (0)
|
|
200
|
+
* @param sigHashType is the hash type of the transaction to sign, or default (all)
|
|
201
|
+
* @return the signed transaction ready to be broadcast
|
|
202
|
+
* @example
|
|
203
|
+
btc.signP2SHTransaction({
|
|
204
|
+
inputs: [ [tx, 1, "52210289b4a3ad52a919abd2bdd6920d8a6879b1e788c38aa76f0440a6f32a9f1996d02103a3393b1439d1693b063482c04bd40142db97bdf139eedd1b51ffb7070a37eac321030b9a409a1e476b0d5d17b804fcdb81cf30f9b99c6f3ae1178206e08bc500639853ae"] ],
|
|
205
|
+
associatedKeysets: ["0'/0/0"],
|
|
206
|
+
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
207
|
+
}).then(result => ...);
|
|
208
|
+
*/
|
|
209
|
+
BtcOld.prototype.signP2SHTransaction = function (arg) {
|
|
210
|
+
if (arguments.length > 1) {
|
|
211
|
+
console.warn("@ledgerhq/hw-app-btc: signP2SHTransaction multi argument signature is deprecated. please switch to named parameters.");
|
|
212
|
+
}
|
|
213
|
+
return signP2SHTransaction(this.transport, arg);
|
|
214
|
+
};
|
|
173
215
|
return BtcOld;
|
|
174
216
|
}());
|
|
175
217
|
export default BtcOld;
|
package/lib-es/BtcOld.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BtcOld.js","sourceRoot":"","sources":["../src/BtcOld.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,GAAG,MAAM,QAAQ,CAAC;AAGzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG/D;;;;;;GAMG;AAEH;IACE,gBAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAEhC,qBAAgB,GAAG,EAAE,CAAC;IAFa,CAAC;IAG9B,6BAAY,GAA1B,UAA2B,IAAY;;;;;;wBACrC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;4BAAE,sBAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAC;wBACxD,qBAAM,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE;gCACnD,IAAI,MAAA;6BACL,CAAC,EAAA;;wBAFI,GAAG,GAAG,SAEV;wBACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;wBAClC,sBAAO,GAAG,EAAC;;;;KACZ;IAEK,8BAAa,GAAnB,UAAoB,EAMnB;YALC,IAAI,UAAA,EACJ,WAAW,iBAAA;;;;;;wBAKL,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;wBACvC,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpB,qBAAM,IAAI,CAAC,YAAY,CAC9C,iBAAiB,CAAC,UAAU,CAAC,CAC9B,EAAA;;wBAFK,gBAAgB,GAAG,SAExB;wBACyB,qBAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAA;;wBAAjD,iBAAiB,GAAG,SAA6B;wBACjD,WAAW,GAAG,eAAe,CACjC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACzE,CAAC;wBACI,IAAI,GAAG,QAAQ,CACnB,WAAW,EACX,YAAY,CAAC,MAAM,EACnB,WAAW,EACX,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EACrC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EAC/C,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAC1E,CAAC;wBACF,sBAAO,IAAI,EAAC;;;;KACb;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mCAAkB,GAAlB,UACE,IAAY,EACZ,IAGC;QAMD,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,wBAAO,IAAI,KAAE,IAAI,MAAA,IAAG,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,
|
|
1
|
+
{"version":3,"file":"BtcOld.js","sourceRoot":"","sources":["../src/BtcOld.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": "9.0.0
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet Bitcoin Application API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
},
|
|
70
70
|
"license": "Apache-2.0",
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@ledgerhq/hw-transport": "^6.27.7
|
|
72
|
+
"@ledgerhq/hw-transport": "^6.27.7",
|
|
73
73
|
"@ledgerhq/logs": "^6.10.1",
|
|
74
74
|
"bip32-path": "^0.4.2",
|
|
75
75
|
"bitcoinjs-lib": "^5.2.0",
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"varuint-bitcoin": "1.1.2"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
|
-
"@ledgerhq/hw-transport-mocker": "^6.27.7
|
|
87
|
-
"@ledgerhq/hw-transport-node-speculos": "^6.27.7
|
|
86
|
+
"@ledgerhq/hw-transport-mocker": "^6.27.7",
|
|
87
|
+
"@ledgerhq/hw-transport-node-speculos": "^6.27.7",
|
|
88
88
|
"axios": "^0.25.0"
|
|
89
89
|
},
|
|
90
90
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
package/src/Btc.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type Transport from "@ledgerhq/hw-transport";
|
|
2
|
-
import
|
|
2
|
+
import { pathStringToArray } from "./bip32";
|
|
3
|
+
import BtcNew, { canSupportApp } from "./BtcNew";
|
|
3
4
|
import BtcOld from "./BtcOld";
|
|
4
5
|
import type { CreateTransactionArg } from "./createTransaction";
|
|
6
|
+
import { getAppAndVersion } from "./getAppAndVersion";
|
|
5
7
|
import { getTrustedInput } from "./getTrustedInput";
|
|
6
8
|
import { getTrustedInputBIP143 } from "./getTrustedInputBIP143";
|
|
7
9
|
import type { AddressFormat } from "./getWalletPublicKey";
|
|
@@ -11,50 +13,32 @@ import type { SignP2SHTransactionArg } from "./signP2SHTransaction";
|
|
|
11
13
|
import { splitTransaction } from "./splitTransaction";
|
|
12
14
|
import type { Transaction } from "./types";
|
|
13
15
|
export type { AddressFormat };
|
|
14
|
-
import { signP2SHTransaction } from "./signP2SHTransaction";
|
|
15
|
-
import { signMessage } from "./signMessage";
|
|
16
|
-
|
|
17
16
|
/**
|
|
18
17
|
* Bitcoin API.
|
|
19
18
|
*
|
|
20
19
|
* @example
|
|
21
20
|
* import Btc from "@ledgerhq/hw-app-btc";
|
|
22
|
-
* const btc = new Btc(
|
|
21
|
+
* const btc = new Btc(transport)
|
|
23
22
|
*/
|
|
24
23
|
|
|
25
24
|
export default class Btc {
|
|
26
|
-
|
|
27
|
-
private _impl: BtcOld | BtcNew;
|
|
25
|
+
transport: Transport;
|
|
28
26
|
|
|
29
|
-
constructor({
|
|
30
|
-
transport
|
|
31
|
-
|
|
32
|
-
currency = "bitcoin",
|
|
33
|
-
}: {
|
|
34
|
-
transport: Transport;
|
|
35
|
-
scrambleKey?: string;
|
|
36
|
-
currency?: string;
|
|
37
|
-
}) {
|
|
38
|
-
this._transport = transport;
|
|
39
|
-
this._transport.decorateAppAPIMethods(
|
|
27
|
+
constructor(transport: Transport, scrambleKey = "BTC") {
|
|
28
|
+
this.transport = transport;
|
|
29
|
+
transport.decorateAppAPIMethods(
|
|
40
30
|
this,
|
|
41
31
|
[
|
|
42
32
|
"getWalletXpub",
|
|
43
33
|
"getWalletPublicKey",
|
|
44
34
|
"signP2SHTransaction",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
35
|
+
"signMessageNew",
|
|
36
|
+
"createPaymentTransactionNew",
|
|
47
37
|
"getTrustedInput",
|
|
48
38
|
"getTrustedInputBIP143",
|
|
49
39
|
],
|
|
50
40
|
scrambleKey
|
|
51
41
|
);
|
|
52
|
-
// new APDU (nano app API) for bitcoin and old APDU for altcoin
|
|
53
|
-
if (currency === "bitcoin" || currency === "bitcoin_testnet") {
|
|
54
|
-
this._impl = new BtcNew(new AppClient(this._transport));
|
|
55
|
-
} else {
|
|
56
|
-
this._impl = new BtcOld(this._transport);
|
|
57
|
-
}
|
|
58
42
|
}
|
|
59
43
|
|
|
60
44
|
/**
|
|
@@ -65,7 +49,7 @@ export default class Btc {
|
|
|
65
49
|
* @returns XPUB of the account
|
|
66
50
|
*/
|
|
67
51
|
getWalletXpub(arg: { path: string; xpubVersion: number }): Promise<string> {
|
|
68
|
-
return this.
|
|
52
|
+
return this.getCorrectImpl().then((impl) => impl.getWalletXpub(arg));
|
|
69
53
|
}
|
|
70
54
|
|
|
71
55
|
/**
|
|
@@ -114,19 +98,83 @@ export default class Btc {
|
|
|
114
98
|
} else {
|
|
115
99
|
options = opts || {};
|
|
116
100
|
}
|
|
117
|
-
return this.
|
|
101
|
+
return this.getCorrectImpl().then((impl) => {
|
|
102
|
+
/**
|
|
103
|
+
* Definition: A "normal path" is a prefix of a standard path where all
|
|
104
|
+
* the hardened steps of the standard path are included. For example, the
|
|
105
|
+
* paths m/44'/1'/17' and m/44'/1'/17'/1 are normal paths, but m/44'/1'
|
|
106
|
+
* is not. m/'199/1'/17'/0/1 is not a normal path either.
|
|
107
|
+
*
|
|
108
|
+
* There's a compatiblity issue between old and new app: When exporting
|
|
109
|
+
* the key of a non-normal path with verify=false, the new app would
|
|
110
|
+
* return an error, whereas the old app would return the key.
|
|
111
|
+
*
|
|
112
|
+
* See
|
|
113
|
+
* https://github.com/LedgerHQ/app-bitcoin-new/blob/master/doc/bitcoin.md#get_extended_pubkey
|
|
114
|
+
*
|
|
115
|
+
* If format bech32m is used, we'll not use old, because it doesn't
|
|
116
|
+
* support it.
|
|
117
|
+
*
|
|
118
|
+
* When to use new (given the app supports it)
|
|
119
|
+
* * format is bech32m or
|
|
120
|
+
* * path is normal or
|
|
121
|
+
* * verify is true
|
|
122
|
+
*
|
|
123
|
+
* Otherwise use old.
|
|
124
|
+
*/
|
|
125
|
+
if (
|
|
126
|
+
impl instanceof BtcNew &&
|
|
127
|
+
options.format != "bech32m" &&
|
|
128
|
+
(!options.verify || options.verify == false) &&
|
|
129
|
+
!isPathNormal(path)
|
|
130
|
+
) {
|
|
131
|
+
console.warn(`WARNING: Using deprecated device protocol to get the public key because
|
|
132
|
+
|
|
133
|
+
* a non-standard path is requested, and
|
|
134
|
+
* verify flag is false
|
|
135
|
+
|
|
136
|
+
The new protocol only allows export of non-standard paths if the
|
|
137
|
+
verify flag is true. Standard paths are (currently):
|
|
138
|
+
|
|
139
|
+
M/44'/(1|0)'/X'
|
|
140
|
+
M/49'/(1|0)'/X'
|
|
141
|
+
M/84'/(1|0)'/X'
|
|
142
|
+
M/86'/(1|0)'/X'
|
|
143
|
+
M/48'/(1|0)'/X'/Y'
|
|
144
|
+
|
|
145
|
+
followed by "", "(0|1)", or "(0|1)/b", where a and b are
|
|
146
|
+
non-hardened. For example, the following paths are standard
|
|
147
|
+
|
|
148
|
+
M/48'/1'/99'/7'
|
|
149
|
+
M/86'/1'/99'/0
|
|
150
|
+
M/48'/0'/99'/7'/1/17
|
|
151
|
+
|
|
152
|
+
The following paths are non-standard
|
|
153
|
+
|
|
154
|
+
M/48'/0'/99' // Not deepest hardened path
|
|
155
|
+
M/48'/0'/99'/7'/1/17/2 // Too many non-hardened derivation steps
|
|
156
|
+
M/199'/0'/1'/0/88 // Not a known purpose 199
|
|
157
|
+
M/86'/1'/99'/2 // Change path item must be 0 or 1
|
|
158
|
+
|
|
159
|
+
This compatibility safeguard will be removed in the future.
|
|
160
|
+
Please consider calling Btc.getWalletXpub() instead.`);
|
|
161
|
+
return this.old().getWalletPublicKey(path, options);
|
|
162
|
+
} else {
|
|
163
|
+
return impl.getWalletPublicKey(path, options);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
118
166
|
}
|
|
119
167
|
|
|
120
168
|
/**
|
|
121
169
|
* You can sign a message according to the Bitcoin Signature format and retrieve v, r, s given the message and the BIP 32 path of the account to sign.
|
|
122
170
|
* @example
|
|
123
|
-
btc.
|
|
171
|
+
btc.signMessageNew_async("44'/60'/0'/0'/0", Buffer.from("test").toString("hex")).then(function(result) {
|
|
124
172
|
var v = result['v'] + 27 + 4;
|
|
125
173
|
var signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');
|
|
126
174
|
console.log("Signature : " + signature);
|
|
127
175
|
}).catch(function(ex) {console.log(ex);});
|
|
128
176
|
*/
|
|
129
|
-
|
|
177
|
+
signMessageNew(
|
|
130
178
|
path: string,
|
|
131
179
|
messageHex: string
|
|
132
180
|
): Promise<{
|
|
@@ -134,10 +182,7 @@ export default class Btc {
|
|
|
134
182
|
r: string;
|
|
135
183
|
s: string;
|
|
136
184
|
}> {
|
|
137
|
-
return
|
|
138
|
-
path,
|
|
139
|
-
messageHex,
|
|
140
|
-
});
|
|
185
|
+
return this.old().signMessageNew(path, messageHex);
|
|
141
186
|
}
|
|
142
187
|
|
|
143
188
|
/**
|
|
@@ -173,13 +218,15 @@ export default class Btc {
|
|
|
173
218
|
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
174
219
|
}).then(res => ...);
|
|
175
220
|
*/
|
|
176
|
-
|
|
221
|
+
createPaymentTransactionNew(arg: CreateTransactionArg): Promise<string> {
|
|
177
222
|
if (arguments.length > 1) {
|
|
178
|
-
|
|
179
|
-
"@ledgerhq/hw-app-btc:
|
|
223
|
+
console.warn(
|
|
224
|
+
"@ledgerhq/hw-app-btc: createPaymentTransactionNew multi argument signature is deprecated. please switch to named parameters."
|
|
180
225
|
);
|
|
181
226
|
}
|
|
182
|
-
return this.
|
|
227
|
+
return this.getCorrectImpl().then((impl) => {
|
|
228
|
+
return impl.createPaymentTransactionNew(arg);
|
|
229
|
+
});
|
|
183
230
|
}
|
|
184
231
|
|
|
185
232
|
/**
|
|
@@ -202,7 +249,7 @@ export default class Btc {
|
|
|
202
249
|
}).then(result => ...);
|
|
203
250
|
*/
|
|
204
251
|
signP2SHTransaction(arg: SignP2SHTransactionArg): Promise<string[]> {
|
|
205
|
-
return signP2SHTransaction(
|
|
252
|
+
return this.old().signP2SHTransaction(arg);
|
|
206
253
|
}
|
|
207
254
|
|
|
208
255
|
/**
|
|
@@ -241,7 +288,7 @@ export default class Btc {
|
|
|
241
288
|
additionals: Array<string> = []
|
|
242
289
|
): Promise<string> {
|
|
243
290
|
return getTrustedInput(
|
|
244
|
-
this.
|
|
291
|
+
this.transport,
|
|
245
292
|
indexLookup,
|
|
246
293
|
transaction,
|
|
247
294
|
additionals
|
|
@@ -254,10 +301,73 @@ export default class Btc {
|
|
|
254
301
|
additionals: Array<string> = []
|
|
255
302
|
): string {
|
|
256
303
|
return getTrustedInputBIP143(
|
|
257
|
-
this.
|
|
304
|
+
this.transport,
|
|
258
305
|
indexLookup,
|
|
259
306
|
transaction,
|
|
260
307
|
additionals
|
|
261
308
|
);
|
|
262
309
|
}
|
|
310
|
+
|
|
311
|
+
// cache the underlying implementation (only once)
|
|
312
|
+
private _lazyImpl: BtcOld | BtcNew | null = null;
|
|
313
|
+
private async getCorrectImpl(): Promise<BtcOld | BtcNew> {
|
|
314
|
+
const { _lazyImpl } = this;
|
|
315
|
+
if (_lazyImpl) return _lazyImpl;
|
|
316
|
+
const impl = await this.inferCorrectImpl();
|
|
317
|
+
this._lazyImpl = impl;
|
|
318
|
+
return impl;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
private async inferCorrectImpl(): Promise<BtcOld | BtcNew> {
|
|
322
|
+
const appAndVersion = await getAppAndVersion(this.transport);
|
|
323
|
+
const canUseNewImplementation = canSupportApp(appAndVersion);
|
|
324
|
+
if (!canUseNewImplementation) {
|
|
325
|
+
return this.old();
|
|
326
|
+
} else {
|
|
327
|
+
return this.new();
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
protected old(): BtcOld {
|
|
332
|
+
return new BtcOld(this.transport);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
protected new(): BtcNew {
|
|
336
|
+
return new BtcNew(new AppClient(this.transport));
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
function isPathNormal(path: string): boolean {
|
|
341
|
+
//path is not deepest hardened node of a standard path or deeper, use BtcOld
|
|
342
|
+
const h = 0x80000000;
|
|
343
|
+
const pathElems = pathStringToArray(path);
|
|
344
|
+
|
|
345
|
+
const hard = (n: number) => n >= h;
|
|
346
|
+
const soft = (n: number | undefined) => !n || n < h;
|
|
347
|
+
const change = (n: number | undefined) => !n || n == 0 || n == 1;
|
|
348
|
+
|
|
349
|
+
if (
|
|
350
|
+
pathElems.length >= 3 &&
|
|
351
|
+
pathElems.length <= 5 &&
|
|
352
|
+
[44 + h, 49 + h, 84 + h, 86 + h].some((v) => v == pathElems[0]) &&
|
|
353
|
+
[0 + h, 1 + h].some((v) => v == pathElems[1]) &&
|
|
354
|
+
hard(pathElems[2]) &&
|
|
355
|
+
change(pathElems[3]) &&
|
|
356
|
+
soft(pathElems[4])
|
|
357
|
+
) {
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
if (
|
|
361
|
+
pathElems.length >= 4 &&
|
|
362
|
+
pathElems.length <= 6 &&
|
|
363
|
+
48 + h == pathElems[0] &&
|
|
364
|
+
[0 + h, 1 + h].some((v) => v == pathElems[1]) &&
|
|
365
|
+
hard(pathElems[2]) &&
|
|
366
|
+
hard(pathElems[3]) &&
|
|
367
|
+
change(pathElems[4]) &&
|
|
368
|
+
soft(pathElems[5])
|
|
369
|
+
) {
|
|
370
|
+
return true;
|
|
371
|
+
}
|
|
372
|
+
return false;
|
|
263
373
|
}
|
package/src/BtcNew.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { crypto } from "bitcoinjs-lib";
|
|
2
|
+
import semver from "semver";
|
|
2
3
|
import { pointCompress } from "tiny-secp256k1";
|
|
3
4
|
import {
|
|
4
5
|
getXpubComponents,
|
|
@@ -9,6 +10,7 @@ import {
|
|
|
9
10
|
} from "./bip32";
|
|
10
11
|
import { BufferReader } from "./buffertools";
|
|
11
12
|
import type { CreateTransactionArg } from "./createTransaction";
|
|
13
|
+
import { AppAndVersion } from "./getAppAndVersion";
|
|
12
14
|
import type { AddressFormat } from "./getWalletPublicKey";
|
|
13
15
|
import {
|
|
14
16
|
AccountType,
|
|
@@ -30,6 +32,15 @@ import { psbtIn, PsbtV2 } from "./newops/psbtv2";
|
|
|
30
32
|
import { serializeTransaction } from "./serializeTransaction";
|
|
31
33
|
import type { Transaction } from "./types";
|
|
32
34
|
|
|
35
|
+
const newSupportedApps = ["Bitcoin", "Bitcoin Test"];
|
|
36
|
+
|
|
37
|
+
export function canSupportApp(appAndVersion: AppAndVersion): boolean {
|
|
38
|
+
return (
|
|
39
|
+
newSupportedApps.includes(appAndVersion.name) &&
|
|
40
|
+
semver.major(appAndVersion.version) >= 2
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
33
44
|
/**
|
|
34
45
|
* This class implements the same interface as BtcOld (formerly
|
|
35
46
|
* named Btc), but interacts with Bitcoin hardware app version 2+
|
|
@@ -112,9 +123,6 @@ export default class BtcNew {
|
|
|
112
123
|
bitcoinAddress: string;
|
|
113
124
|
chainCode: string;
|
|
114
125
|
}> {
|
|
115
|
-
if (!isPathNormal(path)) {
|
|
116
|
-
throw Error(`non-standard path: ${path}`);
|
|
117
|
-
}
|
|
118
126
|
const pathElements: number[] = pathStringToArray(path);
|
|
119
127
|
const xpub = await this.client.getExtendedPubkey(false, pathElements);
|
|
120
128
|
|
|
@@ -177,14 +185,16 @@ export default class BtcNew {
|
|
|
177
185
|
}
|
|
178
186
|
|
|
179
187
|
/**
|
|
180
|
-
* Build and sign a transaction. See Btc.
|
|
188
|
+
* Build and sign a transaction. See Btc.createPaymentTransactionNew for
|
|
181
189
|
* details on how to use this method.
|
|
182
190
|
*
|
|
183
191
|
* This method will convert the legacy arguments, CreateTransactionArg, into
|
|
184
192
|
* a psbt which is finally signed and finalized, and the extracted fully signed
|
|
185
193
|
* transaction is returned.
|
|
186
194
|
*/
|
|
187
|
-
async
|
|
195
|
+
async createPaymentTransactionNew(
|
|
196
|
+
arg: CreateTransactionArg
|
|
197
|
+
): Promise<string> {
|
|
188
198
|
const inputCount = arg.inputs.length;
|
|
189
199
|
if (inputCount == 0) {
|
|
190
200
|
throw Error("No inputs");
|
|
@@ -443,58 +453,3 @@ function accountTypeFromArg(
|
|
|
443
453
|
if (arg.segwit) return new p2wpkhWrapped(psbt, masterFp);
|
|
444
454
|
return new p2pkh(psbt, masterFp);
|
|
445
455
|
}
|
|
446
|
-
|
|
447
|
-
/*
|
|
448
|
-
The new protocol only allows standard path.
|
|
449
|
-
Standard paths are (currently):
|
|
450
|
-
M/44'/(1|0)'/X'
|
|
451
|
-
M/49'/(1|0)'/X'
|
|
452
|
-
M/84'/(1|0)'/X'
|
|
453
|
-
M/86'/(1|0)'/X'
|
|
454
|
-
M/48'/(1|0)'/X'/Y'
|
|
455
|
-
followed by "", "(0|1)", or "(0|1)/b", where a and b are
|
|
456
|
-
non-hardened. For example, the following paths are standard
|
|
457
|
-
M/48'/1'/99'/7'
|
|
458
|
-
M/86'/1'/99'/0
|
|
459
|
-
M/48'/0'/99'/7'/1/17
|
|
460
|
-
The following paths are non-standard
|
|
461
|
-
M/48'/0'/99' // Not deepest hardened path
|
|
462
|
-
M/48'/0'/99'/7'/1/17/2 // Too many non-hardened derivation steps
|
|
463
|
-
M/199'/0'/1'/0/88 // Not a known purpose 199
|
|
464
|
-
M/86'/1'/99'/2 // Change path item must be 0 or 1
|
|
465
|
-
*/
|
|
466
|
-
function isPathNormal(path: string): boolean {
|
|
467
|
-
//path is not deepest hardened node of a standard path or deeper, use BtcOld
|
|
468
|
-
const h = 0x80000000; //HARDENED from bip32
|
|
469
|
-
const pathElems = pathStringToArray(path);
|
|
470
|
-
|
|
471
|
-
const hard = (n: number) => n >= h;
|
|
472
|
-
const soft = (n: number | undefined) => n === undefined || n < h;
|
|
473
|
-
const change = (n: number | undefined) =>
|
|
474
|
-
n === undefined || n === 0 || n === 1;
|
|
475
|
-
|
|
476
|
-
if (
|
|
477
|
-
pathElems.length >= 3 &&
|
|
478
|
-
pathElems.length <= 5 &&
|
|
479
|
-
[44 + h, 49 + h, 84 + h, 86 + h].some((v) => v == pathElems[0]) &&
|
|
480
|
-
[0 + h, 1 + h].some((v) => v == pathElems[1]) &&
|
|
481
|
-
hard(pathElems[2]) &&
|
|
482
|
-
change(pathElems[3]) &&
|
|
483
|
-
soft(pathElems[4])
|
|
484
|
-
) {
|
|
485
|
-
return true;
|
|
486
|
-
}
|
|
487
|
-
if (
|
|
488
|
-
pathElems.length >= 4 &&
|
|
489
|
-
pathElems.length <= 6 &&
|
|
490
|
-
48 + h == pathElems[0] &&
|
|
491
|
-
[0 + h, 1 + h].some((v) => v == pathElems[1]) &&
|
|
492
|
-
hard(pathElems[2]) &&
|
|
493
|
-
hard(pathElems[3]) &&
|
|
494
|
-
change(pathElems[4]) &&
|
|
495
|
-
soft(pathElems[5])
|
|
496
|
-
) {
|
|
497
|
-
return true;
|
|
498
|
-
}
|
|
499
|
-
return false;
|
|
500
|
-
}
|