@ledgerhq/hw-app-btc 8.1.2-nightly.1 → 9.0.0-nightly.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +6 -0
- package/README.md +33 -111
- package/lib/Btc.d.ts +11 -13
- package/lib/Btc.d.ts.map +1 -1
- package/lib/Btc.js +31 -191
- package/lib/Btc.js.map +1 -1
- package/lib/BtcNew.d.ts +2 -4
- package/lib/BtcNew.d.ts.map +1 -1
- package/lib/BtcNew.js +54 -13
- package/lib/BtcNew.js.map +1 -1
- package/lib/BtcOld.d.ts +2 -37
- package/lib/BtcOld.d.ts.map +1 -1
- package/lib/BtcOld.js +3 -45
- package/lib/BtcOld.js.map +1 -1
- package/lib-es/Btc.d.ts +11 -13
- package/lib-es/Btc.d.ts.map +1 -1
- package/lib-es/Btc.js +31 -168
- package/lib-es/Btc.js.map +1 -1
- package/lib-es/BtcNew.d.ts +2 -4
- package/lib-es/BtcNew.d.ts.map +1 -1
- package/lib-es/BtcNew.js +54 -8
- package/lib-es/BtcNew.js.map +1 -1
- package/lib-es/BtcOld.d.ts +2 -37
- package/lib-es/BtcOld.d.ts.map +1 -1
- package/lib-es/BtcOld.js +3 -45
- package/lib-es/BtcOld.js.map +1 -1
- package/package.json +1 -1
- package/src/Btc.ts +41 -151
- package/src/BtcNew.ts +60 -15
- package/src/BtcOld.ts +4 -59
- package/tests/Btc.test.ts +16 -132
- package/tests/newops/BtcNew.test.ts +0 -5
- package/tests/newops/integrationtools.ts +4 -4
- package/tests/parseTx.test.ts +1 -1
- package/tests/trustedInputs.test.ts +6 -8
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,14 +1,13 @@
|
|
|
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";
|
|
5
4
|
export type { AddressFormat };
|
|
6
5
|
/**
|
|
7
6
|
* Bitcoin API.
|
|
8
7
|
*
|
|
9
8
|
* @example
|
|
10
9
|
* import Btc from "@ledgerhq/hw-app-btc";
|
|
11
|
-
* const btc = new Btc(transport)
|
|
10
|
+
* const btc = new Btc({ transport, currency: "zcash" });
|
|
12
11
|
*/
|
|
13
12
|
export default class BtcOld {
|
|
14
13
|
private transport;
|
|
@@ -49,20 +48,6 @@ export default class BtcOld {
|
|
|
49
48
|
bitcoinAddress: string;
|
|
50
49
|
chainCode: string;
|
|
51
50
|
}>;
|
|
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
|
-
}>;
|
|
66
51
|
/**
|
|
67
52
|
* To sign a transaction involving standard (P2PKH) inputs, call createTransaction with the following parameters
|
|
68
53
|
* @param inputs is an array of [ transaction, output_index, optional redeem script, optional sequence ] where
|
|
@@ -95,26 +80,6 @@ export default class BtcOld {
|
|
|
95
80
|
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
96
81
|
}).then(res => ...);
|
|
97
82
|
*/
|
|
98
|
-
|
|
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[]>;
|
|
83
|
+
createPaymentTransaction(arg: CreateTransactionArg): Promise<string>;
|
|
119
84
|
}
|
|
120
85
|
//# 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,
|
|
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,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;CAQrE"}
|
package/lib-es/BtcOld.js
CHANGED
|
@@ -50,15 +50,13 @@ 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";
|
|
55
53
|
import { pathArrayToString, pathStringToArray } from "./bip32";
|
|
56
54
|
/**
|
|
57
55
|
* Bitcoin API.
|
|
58
56
|
*
|
|
59
57
|
* @example
|
|
60
58
|
* import Btc from "@ledgerhq/hw-app-btc";
|
|
61
|
-
* const btc = new Btc(transport)
|
|
59
|
+
* const btc = new Btc({ transport, currency: "zcash" });
|
|
62
60
|
*/
|
|
63
61
|
var BtcOld = /** @class */ (function () {
|
|
64
62
|
function BtcOld(transport) {
|
|
@@ -134,21 +132,6 @@ var BtcOld = /** @class */ (function () {
|
|
|
134
132
|
}
|
|
135
133
|
return getWalletPublicKey(this.transport, __assign(__assign({}, opts), { path: path }));
|
|
136
134
|
};
|
|
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
|
-
};
|
|
152
135
|
/**
|
|
153
136
|
* To sign a transaction involving standard (P2PKH) inputs, call createTransaction with the following parameters
|
|
154
137
|
* @param inputs is an array of [ transaction, output_index, optional redeem script, optional sequence ] where
|
|
@@ -181,37 +164,12 @@ var BtcOld = /** @class */ (function () {
|
|
|
181
164
|
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
182
165
|
}).then(res => ...);
|
|
183
166
|
*/
|
|
184
|
-
BtcOld.prototype.
|
|
167
|
+
BtcOld.prototype.createPaymentTransaction = function (arg) {
|
|
185
168
|
if (arguments.length > 1) {
|
|
186
|
-
|
|
169
|
+
throw new Error("@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.");
|
|
187
170
|
}
|
|
188
171
|
return createTransaction(this.transport, arg);
|
|
189
172
|
};
|
|
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
|
-
};
|
|
215
173
|
return BtcOld;
|
|
216
174
|
}());
|
|
217
175
|
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,
|
|
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,yCAAwB,GAAxB,UAAyB,GAAyB;QAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;SACH;QACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IACH,aAAC;AAAD,CAAC,AAvHD,IAuHC;;AAED,SAAS,eAAe,CAAC,gBAAgB;IACvC,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,IAAM,wBAAwB,GAAG,UAAC,SAAiB;IACjD,OAAA,MAAM,CAAC,MAAM,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC5C,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;KACvB,CAAC;AAHF,CAGE,CAAC;AAEL,SAAS,QAAQ,CACf,OAAe,EACf,KAAa,EACb,iBAAyB,EACzB,KAAa,EACb,SAAiB,EACjB,MAAc;IAEd,IAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACvB,IAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;QACrC,gBAAgB,CAAC,OAAO,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QACpB,iBAAiB;QACjB,WAAW;QACX,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IACH,IAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,MAAM,CAAC,MAAuB;IACrC,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAC/C,CAAC;AACD,SAAS,OAAO,CAAC,MAAuB;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAChC,CAAC;AACD,SAAS,SAAS,CAAC,MAAuB;IACxC,OAAO,IAAI,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AACjD,CAAC;AACD,SAAS,OAAO,CAAC,MAAuB;IACtC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
package/package.json
CHANGED
package/src/Btc.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type Transport from "@ledgerhq/hw-transport";
|
|
2
|
-
import
|
|
3
|
-
import BtcNew, { canSupportApp } from "./BtcNew";
|
|
2
|
+
import BtcNew from "./BtcNew";
|
|
4
3
|
import BtcOld from "./BtcOld";
|
|
5
4
|
import type { CreateTransactionArg } from "./createTransaction";
|
|
6
|
-
import { getAppAndVersion } from "./getAppAndVersion";
|
|
7
5
|
import { getTrustedInput } from "./getTrustedInput";
|
|
8
6
|
import { getTrustedInputBIP143 } from "./getTrustedInputBIP143";
|
|
9
7
|
import type { AddressFormat } from "./getWalletPublicKey";
|
|
@@ -13,32 +11,50 @@ import type { SignP2SHTransactionArg } from "./signP2SHTransaction";
|
|
|
13
11
|
import { splitTransaction } from "./splitTransaction";
|
|
14
12
|
import type { Transaction } from "./types";
|
|
15
13
|
export type { AddressFormat };
|
|
14
|
+
import { signP2SHTransaction } from "./signP2SHTransaction";
|
|
15
|
+
import { signMessage } from "./signMessage";
|
|
16
|
+
|
|
16
17
|
/**
|
|
17
18
|
* Bitcoin API.
|
|
18
19
|
*
|
|
19
20
|
* @example
|
|
20
21
|
* import Btc from "@ledgerhq/hw-app-btc";
|
|
21
|
-
* const btc = new Btc(transport)
|
|
22
|
+
* const btc = new Btc({ transport, currency: "bitcoin" });
|
|
22
23
|
*/
|
|
23
24
|
|
|
24
25
|
export default class Btc {
|
|
25
|
-
|
|
26
|
+
private _transport: Transport;
|
|
27
|
+
private _impl: BtcOld | BtcNew;
|
|
26
28
|
|
|
27
|
-
constructor(
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
constructor({
|
|
30
|
+
transport,
|
|
31
|
+
scrambleKey = "BTC",
|
|
32
|
+
currency = "bitcoin",
|
|
33
|
+
}: {
|
|
34
|
+
transport: Transport;
|
|
35
|
+
scrambleKey?: string;
|
|
36
|
+
currency?: string;
|
|
37
|
+
}) {
|
|
38
|
+
this._transport = transport;
|
|
39
|
+
this._transport.decorateAppAPIMethods(
|
|
30
40
|
this,
|
|
31
41
|
[
|
|
32
42
|
"getWalletXpub",
|
|
33
43
|
"getWalletPublicKey",
|
|
34
44
|
"signP2SHTransaction",
|
|
35
|
-
"
|
|
36
|
-
"
|
|
45
|
+
"signMessage",
|
|
46
|
+
"createPaymentTransaction",
|
|
37
47
|
"getTrustedInput",
|
|
38
48
|
"getTrustedInputBIP143",
|
|
39
49
|
],
|
|
40
50
|
scrambleKey
|
|
41
51
|
);
|
|
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
|
+
}
|
|
42
58
|
}
|
|
43
59
|
|
|
44
60
|
/**
|
|
@@ -49,7 +65,7 @@ export default class Btc {
|
|
|
49
65
|
* @returns XPUB of the account
|
|
50
66
|
*/
|
|
51
67
|
getWalletXpub(arg: { path: string; xpubVersion: number }): Promise<string> {
|
|
52
|
-
return this.
|
|
68
|
+
return this._impl.getWalletXpub(arg);
|
|
53
69
|
}
|
|
54
70
|
|
|
55
71
|
/**
|
|
@@ -98,83 +114,19 @@ export default class Btc {
|
|
|
98
114
|
} else {
|
|
99
115
|
options = opts || {};
|
|
100
116
|
}
|
|
101
|
-
return this.
|
|
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
|
-
});
|
|
117
|
+
return this._impl.getWalletPublicKey(path, options);
|
|
166
118
|
}
|
|
167
119
|
|
|
168
120
|
/**
|
|
169
121
|
* 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.
|
|
170
122
|
* @example
|
|
171
|
-
btc.
|
|
123
|
+
btc.signMessage("44'/60'/0'/0'/0", Buffer.from("test").toString("hex")).then(function(result) {
|
|
172
124
|
var v = result['v'] + 27 + 4;
|
|
173
125
|
var signature = Buffer.from(v.toString(16) + result['r'] + result['s'], 'hex').toString('base64');
|
|
174
126
|
console.log("Signature : " + signature);
|
|
175
127
|
}).catch(function(ex) {console.log(ex);});
|
|
176
128
|
*/
|
|
177
|
-
|
|
129
|
+
signMessage(
|
|
178
130
|
path: string,
|
|
179
131
|
messageHex: string
|
|
180
132
|
): Promise<{
|
|
@@ -182,7 +134,10 @@ export default class Btc {
|
|
|
182
134
|
r: string;
|
|
183
135
|
s: string;
|
|
184
136
|
}> {
|
|
185
|
-
return this.
|
|
137
|
+
return signMessage(this._transport, {
|
|
138
|
+
path,
|
|
139
|
+
messageHex,
|
|
140
|
+
});
|
|
186
141
|
}
|
|
187
142
|
|
|
188
143
|
/**
|
|
@@ -218,15 +173,13 @@ export default class Btc {
|
|
|
218
173
|
outputScriptHex: "01905f0100000000001976a91472a5d75c8d2d0565b656a5232703b167d50d5a2b88ac"
|
|
219
174
|
}).then(res => ...);
|
|
220
175
|
*/
|
|
221
|
-
|
|
176
|
+
createPaymentTransaction(arg: CreateTransactionArg): Promise<string> {
|
|
222
177
|
if (arguments.length > 1) {
|
|
223
|
-
|
|
224
|
-
"@ledgerhq/hw-app-btc:
|
|
178
|
+
throw new Error(
|
|
179
|
+
"@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters."
|
|
225
180
|
);
|
|
226
181
|
}
|
|
227
|
-
return this.
|
|
228
|
-
return impl.createPaymentTransactionNew(arg);
|
|
229
|
-
});
|
|
182
|
+
return this._impl.createPaymentTransaction(arg);
|
|
230
183
|
}
|
|
231
184
|
|
|
232
185
|
/**
|
|
@@ -249,7 +202,7 @@ export default class Btc {
|
|
|
249
202
|
}).then(result => ...);
|
|
250
203
|
*/
|
|
251
204
|
signP2SHTransaction(arg: SignP2SHTransactionArg): Promise<string[]> {
|
|
252
|
-
return this.
|
|
205
|
+
return signP2SHTransaction(this._transport, arg);
|
|
253
206
|
}
|
|
254
207
|
|
|
255
208
|
/**
|
|
@@ -288,7 +241,7 @@ export default class Btc {
|
|
|
288
241
|
additionals: Array<string> = []
|
|
289
242
|
): Promise<string> {
|
|
290
243
|
return getTrustedInput(
|
|
291
|
-
this.
|
|
244
|
+
this._transport,
|
|
292
245
|
indexLookup,
|
|
293
246
|
transaction,
|
|
294
247
|
additionals
|
|
@@ -301,73 +254,10 @@ export default class Btc {
|
|
|
301
254
|
additionals: Array<string> = []
|
|
302
255
|
): string {
|
|
303
256
|
return getTrustedInputBIP143(
|
|
304
|
-
this.
|
|
257
|
+
this._transport,
|
|
305
258
|
indexLookup,
|
|
306
259
|
transaction,
|
|
307
260
|
additionals
|
|
308
261
|
);
|
|
309
262
|
}
|
|
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;
|
|
373
263
|
}
|
package/src/BtcNew.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { crypto } from "bitcoinjs-lib";
|
|
2
|
-
import semver from "semver";
|
|
3
2
|
import { pointCompress } from "tiny-secp256k1";
|
|
4
3
|
import {
|
|
5
4
|
getXpubComponents,
|
|
@@ -10,7 +9,6 @@ import {
|
|
|
10
9
|
} from "./bip32";
|
|
11
10
|
import { BufferReader } from "./buffertools";
|
|
12
11
|
import type { CreateTransactionArg } from "./createTransaction";
|
|
13
|
-
import { AppAndVersion } from "./getAppAndVersion";
|
|
14
12
|
import type { AddressFormat } from "./getWalletPublicKey";
|
|
15
13
|
import {
|
|
16
14
|
AccountType,
|
|
@@ -32,15 +30,6 @@ import { psbtIn, PsbtV2 } from "./newops/psbtv2";
|
|
|
32
30
|
import { serializeTransaction } from "./serializeTransaction";
|
|
33
31
|
import type { Transaction } from "./types";
|
|
34
32
|
|
|
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
|
-
|
|
44
33
|
/**
|
|
45
34
|
* This class implements the same interface as BtcOld (formerly
|
|
46
35
|
* named Btc), but interacts with Bitcoin hardware app version 2+
|
|
@@ -123,6 +112,9 @@ export default class BtcNew {
|
|
|
123
112
|
bitcoinAddress: string;
|
|
124
113
|
chainCode: string;
|
|
125
114
|
}> {
|
|
115
|
+
if (!isPathNormal(path)) {
|
|
116
|
+
throw Error(`non-standard path: ${path}`);
|
|
117
|
+
}
|
|
126
118
|
const pathElements: number[] = pathStringToArray(path);
|
|
127
119
|
const xpub = await this.client.getExtendedPubkey(false, pathElements);
|
|
128
120
|
|
|
@@ -185,16 +177,14 @@ export default class BtcNew {
|
|
|
185
177
|
}
|
|
186
178
|
|
|
187
179
|
/**
|
|
188
|
-
* Build and sign a transaction. See Btc.
|
|
180
|
+
* Build and sign a transaction. See Btc.createPaymentTransaction for
|
|
189
181
|
* details on how to use this method.
|
|
190
182
|
*
|
|
191
183
|
* This method will convert the legacy arguments, CreateTransactionArg, into
|
|
192
184
|
* a psbt which is finally signed and finalized, and the extracted fully signed
|
|
193
185
|
* transaction is returned.
|
|
194
186
|
*/
|
|
195
|
-
async
|
|
196
|
-
arg: CreateTransactionArg
|
|
197
|
-
): Promise<string> {
|
|
187
|
+
async createPaymentTransaction(arg: CreateTransactionArg): Promise<string> {
|
|
198
188
|
const inputCount = arg.inputs.length;
|
|
199
189
|
if (inputCount == 0) {
|
|
200
190
|
throw Error("No inputs");
|
|
@@ -453,3 +443,58 @@ function accountTypeFromArg(
|
|
|
453
443
|
if (arg.segwit) return new p2wpkhWrapped(psbt, masterFp);
|
|
454
444
|
return new p2pkh(psbt, masterFp);
|
|
455
445
|
}
|
|
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
|
+
}
|