@ledgerhq/hw-app-trx 6.19.0 → 6.24.2-monorepo.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/lib-es/Trx.js DELETED
@@ -1,312 +0,0 @@
1
- /********************************************************************************
2
- * Ledger Node JS API
3
- * (c) 2016-2017 Ledger
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- ********************************************************************************/
17
- // FIXME drop:
18
- import { splitPath, foreach, decodeVarint } from "./utils";
19
- var remapTransactionRelatedErrors = function (e) {
20
- if (e && e.statusCode === 0x6a80) {
21
- // TODO:
22
- }
23
- return e;
24
- };
25
- var PATH_SIZE = 4;
26
- var PATHS_LENGTH_SIZE = 1;
27
- var CLA = 0xe0;
28
- var ADDRESS = 0x02;
29
- var SIGN = 0x04;
30
- var SIGN_HASH = 0x05;
31
- var SIGN_MESSAGE = 0x08;
32
- var ECDH_SECRET = 0x0a;
33
- var VERSION = 0x06;
34
- var CHUNK_SIZE = 250;
35
- /**
36
- * Tron API
37
- *
38
- * @example
39
- * import Trx from "@ledgerhq/hw-app-trx";
40
- * const trx = new Trx(transport)
41
- */
42
- var Trx = /** @class */ (function () {
43
- function Trx(transport, scrambleKey) {
44
- if (scrambleKey === void 0) { scrambleKey = "TRX"; }
45
- this.transport = transport;
46
- transport.decorateAppAPIMethods(this, [
47
- "getAddress",
48
- "getECDHPairKey",
49
- "signTransaction",
50
- "signTransactionHash",
51
- "signPersonalMessage",
52
- "getAppConfiguration",
53
- ], scrambleKey);
54
- }
55
- /**
56
- * get Tron address for a given BIP 32 path.
57
- * @param path a path in BIP 32 format
58
- * @option boolDisplay optionally enable or not the display
59
- * @return an object with a publicKey and address
60
- * @example
61
- * const address = await tron.getAddress("44'/195'/0'/0/0").then(o => o.address)
62
- */
63
- Trx.prototype.getAddress = function (path, boolDisplay) {
64
- var paths = splitPath(path);
65
- var buffer = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
66
- buffer[0] = paths.length;
67
- paths.forEach(function (element, index) {
68
- buffer.writeUInt32BE(element, 1 + 4 * index);
69
- });
70
- return this.transport
71
- .send(CLA, ADDRESS, boolDisplay ? 0x01 : 0x00, 0x00, buffer)
72
- .then(function (response) {
73
- var publicKeyLength = response[0];
74
- var addressLength = response[1 + publicKeyLength];
75
- return {
76
- publicKey: response.slice(1, 1 + publicKeyLength).toString("hex"),
77
- address: response
78
- .slice(1 + publicKeyLength + 1, 1 + publicKeyLength + 1 + addressLength)
79
- .toString("ascii")
80
- };
81
- });
82
- };
83
- Trx.prototype.getNextLength = function (tx) {
84
- var field = decodeVarint(tx, 0);
85
- var data = decodeVarint(tx, field.pos);
86
- if ((field.value & 0x07) === 0)
87
- return data.pos;
88
- return data.value + data.pos;
89
- };
90
- /**
91
- * sign a Tron transaction with a given BIP 32 path and Token Names
92
- *
93
- * @param path a path in BIP 32 format
94
- * @param rawTxHex a raw transaction hex string
95
- * @param tokenSignatures Tokens Signatures array
96
- * @option version pack message based on ledger firmware version
97
- * @option smartContract boolean hack to set limit buffer on ledger device
98
- * @return a signature as hex string
99
- * @example
100
- * const signature = await tron.signTransaction("44'/195'/0'/0/0", "0a02f5942208704dda506d59dceb40f0f4978f802e5a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a1541978dbd103cfe59c35e753d09dd44ae1ae64621c7121541e2ae49db6a70b9b4757d2137a43b69b24a445780188ef8b5ba0470cbb5948f802e", [], 105);
101
- */
102
- Trx.prototype.signTransaction = function (path, rawTxHex, tokenSignatures) {
103
- var _this = this;
104
- var paths = splitPath(path);
105
- var rawTx = Buffer.from(rawTxHex, "hex");
106
- var toSend = [];
107
- var data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
108
- // write path for first chuck only
109
- data[0] = paths.length;
110
- paths.forEach(function (element, index) {
111
- data.writeUInt32BE(element, 1 + 4 * index);
112
- });
113
- while (rawTx.length > 0) {
114
- // get next message field
115
- var newpos = this.getNextLength(rawTx);
116
- if (newpos > CHUNK_SIZE)
117
- throw new Error("Too many bytes to encode.");
118
- if (data.length + newpos > CHUNK_SIZE) {
119
- toSend.push(data);
120
- data = Buffer.alloc(0);
121
- continue;
122
- }
123
- // append data
124
- data = Buffer.concat([data, rawTx.slice(0, newpos)]);
125
- rawTx = rawTx.slice(newpos, rawTx.length);
126
- }
127
- toSend.push(data);
128
- var startBytes = [];
129
- var response;
130
- var tokenPos = toSend.length;
131
- if (tokenSignatures !== undefined) {
132
- for (var i = 0; i < tokenSignatures.length; i += 1) {
133
- var buffer = Buffer.from(tokenSignatures[i], "hex");
134
- toSend.push(buffer);
135
- }
136
- }
137
- // get startBytes
138
- if (toSend.length === 1) {
139
- startBytes.push(0x10);
140
- }
141
- else {
142
- startBytes.push(0x00);
143
- for (var i = 1; i < toSend.length - 1; i += 1) {
144
- if (i >= tokenPos) {
145
- startBytes.push(0xa0 | 0x00 | (i - tokenPos)); // eslint-disable-line no-bitwise
146
- }
147
- else {
148
- startBytes.push(0x80);
149
- }
150
- }
151
- if (tokenSignatures !== undefined && tokenSignatures.length) {
152
- startBytes.push(0xa0 | 0x08 | (tokenSignatures.length - 1)); // eslint-disable-line no-bitwise
153
- }
154
- else {
155
- startBytes.push(0x90);
156
- }
157
- }
158
- return foreach(toSend, function (data, i) {
159
- return _this.transport
160
- .send(CLA, SIGN, startBytes[i], 0x00, data)
161
- .then(function (apduResponse) {
162
- response = apduResponse;
163
- });
164
- }).then(function () {
165
- return response.slice(0, 65).toString("hex");
166
- }, function (e) {
167
- throw remapTransactionRelatedErrors(e);
168
- });
169
- };
170
- /**
171
- * sign a Tron transaction hash with a given BIP 32 path
172
- *
173
- * @param path a path in BIP 32 format
174
- * @param rawTxHex a raw transaction hex string
175
- * @return a signature as hex string
176
- * @example
177
- * const signature = await tron.signTransactionHash("44'/195'/0'/0/0", "25b18a55f86afb10e7aca38d0073d04c80397c6636069193953fdefaea0b8369");
178
- */
179
- Trx.prototype.signTransactionHash = function (path, rawTxHashHex) {
180
- var paths = splitPath(path);
181
- var data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
182
- data[0] = paths.length;
183
- paths.forEach(function (element, index) {
184
- data.writeUInt32BE(element, 1 + 4 * index);
185
- });
186
- data = Buffer.concat([data, Buffer.from(rawTxHashHex, "hex")]);
187
- return this.transport
188
- .send(CLA, SIGN_HASH, 0x00, 0x00, data)
189
- .then(function (response) {
190
- return response.slice(0, 65).toString("hex");
191
- });
192
- };
193
- /**
194
- * get the version of the Tron app installed on the hardware device
195
- *
196
- * @return an object with a version
197
- * @example
198
- * const result = await tron.getAppConfiguration();
199
- * {
200
- * "version": "0.1.5",
201
- * "versionN": "105".
202
- * "allowData": false,
203
- * "allowContract": false,
204
- * "truncateAddress": false,
205
- * "signByHash": false
206
- * }
207
- */
208
- Trx.prototype.getAppConfiguration = function () {
209
- return this.transport.send(CLA, VERSION, 0x00, 0x00).then(function (response) {
210
- // eslint-disable-next-line no-bitwise
211
- var signByHash = (response[0] & (1 << 3)) > 0;
212
- // eslint-disable-next-line no-bitwise
213
- var truncateAddress = (response[0] & (1 << 2)) > 0;
214
- // eslint-disable-next-line no-bitwise
215
- var allowContract = (response[0] & (1 << 1)) > 0;
216
- // eslint-disable-next-line no-bitwise
217
- var allowData = (response[0] & (1 << 0)) > 0;
218
- if (response[1] === 0 && response[2] === 1 && response[3] < 2) {
219
- allowData = true;
220
- allowContract = false;
221
- }
222
- if (response[1] === 0 && response[2] === 1 && response[3] < 5) {
223
- truncateAddress = false;
224
- }
225
- var result = {
226
- version: "".concat(response[1], ".").concat(response[2], ".").concat(response[3]),
227
- versionN: response[1] * 10000 + response[2] * 100 + response[3],
228
- allowData: allowData,
229
- allowContract: allowContract,
230
- truncateAddress: truncateAddress,
231
- signByHash: signByHash
232
- };
233
- return result;
234
- });
235
- };
236
- /**
237
- * sign a Tron Message with a given BIP 32 path
238
- *
239
- * @param path a path in BIP 32 format
240
- * @param message hex string to sign
241
- * @return a signature as hex string
242
- * @example
243
- * const signature = await tron.signPersonalMessage("44'/195'/0'/0/0", "43727970746f436861696e2d54726f6e5352204c6564676572205472616e73616374696f6e73205465737473");
244
- */
245
- Trx.prototype.signPersonalMessage = function (path, messageHex) {
246
- var _this = this;
247
- var paths = splitPath(path);
248
- var message = Buffer.from(messageHex, "hex");
249
- var offset = 0;
250
- var toSend = [];
251
- var size = message.length.toString(16);
252
- var sizePack = "00000000".substr(size.length) + size;
253
- var packed = Buffer.concat([Buffer.from(sizePack, "hex"), message]);
254
- var _loop_1 = function () {
255
- // Use small buffer to be compatible with old and new protocol
256
- var maxChunkSize = offset === 0 ? CHUNK_SIZE - 1 - paths.length * 4 : CHUNK_SIZE;
257
- var chunkSize = offset + maxChunkSize > packed.length
258
- ? packed.length - offset
259
- : maxChunkSize;
260
- var buffer = Buffer.alloc(offset === 0 ? 1 + paths.length * 4 + chunkSize : chunkSize);
261
- if (offset === 0) {
262
- buffer[0] = paths.length;
263
- paths.forEach(function (element, index) {
264
- buffer.writeUInt32BE(element, 1 + 4 * index);
265
- });
266
- packed.copy(buffer, 1 + 4 * paths.length, offset, offset + chunkSize);
267
- }
268
- else {
269
- packed.copy(buffer, 0, offset, offset + chunkSize);
270
- }
271
- toSend.push(buffer);
272
- offset += chunkSize;
273
- };
274
- while (offset < packed.length) {
275
- _loop_1();
276
- }
277
- var response;
278
- return foreach(toSend, function (data, i) {
279
- return _this.transport
280
- .send(CLA, SIGN_MESSAGE, i === 0 ? 0x00 : 0x80, 0x00, data)
281
- .then(function (apduResponse) {
282
- response = apduResponse;
283
- });
284
- }).then(function () {
285
- return response.slice(0, 65).toString("hex");
286
- });
287
- };
288
- /**
289
- * get Tron address for a given BIP 32 path.
290
- * @param path a path in BIP 32 format
291
- * @param publicKey address public key to generate pair key
292
- * @return shared key hex string,
293
- * @example
294
- * const signature = await tron.getECDHPairKey("44'/195'/0'/0/0", "04ff21f8e64d3a3c0198edfbb7afdc79be959432e92e2f8a1984bb436a414b8edcec0345aad0c1bf7da04fd036dd7f9f617e30669224283d950fab9dd84831dc83");
295
- */
296
- Trx.prototype.getECDHPairKey = function (path, publicKey) {
297
- var paths = splitPath(path);
298
- var data = Buffer.from(publicKey, "hex");
299
- var buffer = Buffer.alloc(1 + paths.length * 4 + data.length);
300
- buffer[0] = paths.length;
301
- paths.forEach(function (element, index) {
302
- buffer.writeUInt32BE(element, 1 + 4 * index);
303
- });
304
- data.copy(buffer, 1 + 4 * paths.length, 0, data.length);
305
- return this.transport
306
- .send(CLA, ECDH_SECRET, 0x00, 0x01, buffer)
307
- .then(function (response) { return response.slice(0, 65).toString("hex"); });
308
- };
309
- return Trx;
310
- }());
311
- export default Trx;
312
- //# sourceMappingURL=Trx.js.map
package/lib-es/Trx.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Trx.js","sourceRoot":"","sources":["../src/Trx.ts"],"names":[],"mappings":"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"}
package/lib-es/utils.d.ts DELETED
@@ -1,35 +0,0 @@
1
- /// <reference types="node" />
2
- /********************************************************************************
3
- * Ledger Node JS API
4
- * (c) 2016-2017 Ledger
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
17
- ********************************************************************************/
18
- declare type Defer<T> = {
19
- promise: Promise<T>;
20
- resolve: (arg0: T) => void;
21
- reject: (arg0: any) => void;
22
- };
23
- export declare function defer<T>(): Defer<T>;
24
- export declare function splitPath(path: string): number[];
25
- export declare function eachSeries<A>(arr: A[], fun: (arg0: A) => Promise<any>): Promise<any>;
26
- export declare function foreach<T, A>(arr: T[], callback: (arg0: T, arg1: number) => Promise<A>): Promise<A[]>;
27
- export declare function doIf(condition: boolean, callback: () => any | Promise<any>): Promise<void>;
28
- export declare function asyncWhile<T>(predicate: () => boolean, callback: () => Promise<T>): Promise<Array<T>>;
29
- interface DecodeResult {
30
- value: number;
31
- pos: number;
32
- }
33
- export declare function decodeVarint(stream: Buffer, index: number): DecodeResult;
34
- export {};
35
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,aAAK,KAAK,CAAC,CAAC,IAAI;IACd,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CAC7B,CAAC;AACF,wBAAgB,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAanC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBhD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,GAAG,CAAC,CAEd;AACD,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAC1B,GAAG,EAAE,CAAC,EAAE,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,CAYd;AACD,wBAAgB,IAAI,CAClB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAMf;AACD,wBAAgB,UAAU,CAAC,CAAC,EAC1B,SAAS,EAAE,MAAM,OAAO,EACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAanB;AACD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAuBxE"}
package/lib-es/utils.js DELETED
@@ -1,89 +0,0 @@
1
- export function defer() {
2
- var resolve, reject;
3
- var promise = new Promise(function (success, failure) {
4
- resolve = success;
5
- reject = failure;
6
- });
7
- if (!resolve || !reject)
8
- throw "defer() error"; // this never happens and is just to make flow happy
9
- return {
10
- promise: promise,
11
- resolve: resolve,
12
- reject: reject
13
- };
14
- }
15
- // TODO use bip32-path library
16
- export function splitPath(path) {
17
- var result = [];
18
- var components = path.split("/");
19
- components.forEach(function (element) {
20
- var number = parseInt(element, 10);
21
- if (isNaN(number)) {
22
- return; // FIXME shouldn't it throws instead?
23
- }
24
- if (element.length > 1 && element[element.length - 1] === "'") {
25
- number += 0x80000000;
26
- }
27
- result.push(number);
28
- });
29
- return result;
30
- }
31
- // TODO use async await
32
- export function eachSeries(arr, fun) {
33
- return arr.reduce(function (p, e) { return p.then(function () { return fun(e); }); }, Promise.resolve());
34
- }
35
- export function foreach(arr, callback) {
36
- function iterate(index, array, result) {
37
- if (index >= array.length) {
38
- return result;
39
- }
40
- else
41
- return callback(array[index], index).then(function (res) {
42
- result.push(res);
43
- return iterate(index + 1, array, result);
44
- });
45
- }
46
- return Promise.resolve().then(function () { return iterate(0, arr, []); });
47
- }
48
- export function doIf(condition, callback) {
49
- return Promise.resolve().then(function () {
50
- if (condition) {
51
- return callback();
52
- }
53
- });
54
- }
55
- export function asyncWhile(predicate, callback) {
56
- function iterate(result) {
57
- if (!predicate()) {
58
- return result;
59
- }
60
- else {
61
- return callback().then(function (res) {
62
- result.push(res);
63
- return iterate(result);
64
- });
65
- }
66
- }
67
- return Promise.resolve([]).then(iterate);
68
- }
69
- export function decodeVarint(stream, index) {
70
- var result = 0;
71
- var shift = 0;
72
- var pos = index;
73
- // eslint-disable-next-line no-constant-condition
74
- while (shift < 64) {
75
- var b = stream[pos];
76
- result |= (b & 0x7f) << shift;
77
- pos += 1;
78
- if (!(b & 0x80)) {
79
- result &= 0xffffffff;
80
- return {
81
- value: result,
82
- pos: pos
83
- };
84
- }
85
- shift += 7;
86
- }
87
- throw new Error("Too many bytes when decoding varint.");
88
- }
89
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}