@ledgerhq/hw-app-trx 6.27.13 → 6.27.14-nightly.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 +8 -0
- package/lib/Trx.js +94 -101
- package/lib/Trx.js.map +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +19 -19
- package/lib/utils.js.map +1 -1
- package/lib-es/Trx.js +91 -99
- package/lib-es/Trx.js.map +1 -1
- package/lib-es/utils.d.ts +1 -1
- package/lib-es/utils.d.ts.map +1 -1
- package/lib-es/utils.js +18 -18
- package/lib-es/utils.js.map +1 -1
- package/package.json +5 -6
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/hw-app-trx@6.27.
|
|
2
|
+
> @ledgerhq/hw-app-trx@6.27.14-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-trx
|
|
3
3
|
> tsc && tsc -m ES6 --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @ledgerhq/hw-app-trx
|
|
2
2
|
|
|
3
|
+
## 6.27.14-nightly.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`87d2349fd8`](https://github.com/LedgerHQ/ledger-live/commit/87d2349fd835e5deb39d1ee8dfcf3539f4195472)]:
|
|
8
|
+
- @ledgerhq/errors@6.12.5-nightly.0
|
|
9
|
+
- @ledgerhq/hw-transport@6.28.3-nightly.0
|
|
10
|
+
|
|
3
11
|
## 6.27.13
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/lib/Trx.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
exports
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
/********************************************************************************
|
|
4
4
|
* Ledger Node JS API
|
|
5
5
|
* (c) 2016-2017 Ledger
|
|
@@ -17,23 +17,23 @@ exports.__esModule = true;
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
********************************************************************************/
|
|
19
19
|
// FIXME drop:
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const utils_1 = require("./utils");
|
|
21
|
+
const remapTransactionRelatedErrors = (e) => {
|
|
22
22
|
if (e && e.statusCode === 0x6a80) {
|
|
23
23
|
// TODO:
|
|
24
24
|
}
|
|
25
25
|
return e;
|
|
26
26
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
const PATH_SIZE = 4;
|
|
28
|
+
const PATHS_LENGTH_SIZE = 1;
|
|
29
|
+
const CLA = 0xe0;
|
|
30
|
+
const ADDRESS = 0x02;
|
|
31
|
+
const SIGN = 0x04;
|
|
32
|
+
const SIGN_HASH = 0x05;
|
|
33
|
+
const SIGN_MESSAGE = 0x08;
|
|
34
|
+
const ECDH_SECRET = 0x0a;
|
|
35
|
+
const VERSION = 0x06;
|
|
36
|
+
const CHUNK_SIZE = 250;
|
|
37
37
|
/**
|
|
38
38
|
* Tron API
|
|
39
39
|
*
|
|
@@ -41,9 +41,8 @@ var CHUNK_SIZE = 250;
|
|
|
41
41
|
* import Trx from "@ledgerhq/hw-app-trx";
|
|
42
42
|
* const trx = new Trx(transport)
|
|
43
43
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (scrambleKey === void 0) { scrambleKey = "TRX"; }
|
|
44
|
+
class Trx {
|
|
45
|
+
constructor(transport, scrambleKey = "TRX") {
|
|
47
46
|
this.transport = transport;
|
|
48
47
|
transport.decorateAppAPIMethods(this, [
|
|
49
48
|
"getAddress",
|
|
@@ -62,33 +61,33 @@ var Trx = /** @class */ (function () {
|
|
|
62
61
|
* @example
|
|
63
62
|
* const address = await tron.getAddress("44'/195'/0'/0/0").then(o => o.address)
|
|
64
63
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
getAddress(path, boolDisplay) {
|
|
65
|
+
const paths = (0, utils_1.splitPath)(path);
|
|
66
|
+
const buffer = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
68
67
|
buffer[0] = paths.length;
|
|
69
|
-
paths.forEach(
|
|
68
|
+
paths.forEach((element, index) => {
|
|
70
69
|
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
71
70
|
});
|
|
72
71
|
return this.transport
|
|
73
72
|
.send(CLA, ADDRESS, boolDisplay ? 0x01 : 0x00, 0x00, buffer)
|
|
74
|
-
.then(
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
.then((response) => {
|
|
74
|
+
const publicKeyLength = response[0];
|
|
75
|
+
const addressLength = response[1 + publicKeyLength];
|
|
77
76
|
return {
|
|
78
77
|
publicKey: response.slice(1, 1 + publicKeyLength).toString("hex"),
|
|
79
78
|
address: response
|
|
80
79
|
.slice(1 + publicKeyLength + 1, 1 + publicKeyLength + 1 + addressLength)
|
|
81
|
-
.toString("ascii")
|
|
80
|
+
.toString("ascii"),
|
|
82
81
|
};
|
|
83
82
|
});
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
}
|
|
84
|
+
getNextLength(tx) {
|
|
85
|
+
const field = (0, utils_1.decodeVarint)(tx, 0);
|
|
86
|
+
const data = (0, utils_1.decodeVarint)(tx, field.pos);
|
|
88
87
|
if ((field.value & 0x07) === 0)
|
|
89
88
|
return data.pos;
|
|
90
89
|
return data.value + data.pos;
|
|
91
|
-
}
|
|
90
|
+
}
|
|
92
91
|
/**
|
|
93
92
|
* sign a Tron transaction with a given BIP 32 path and Token Names
|
|
94
93
|
*
|
|
@@ -101,20 +100,19 @@ var Trx = /** @class */ (function () {
|
|
|
101
100
|
* @example
|
|
102
101
|
* const signature = await tron.signTransaction("44'/195'/0'/0/0", "0a02f5942208704dda506d59dceb40f0f4978f802e5a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a1541978dbd103cfe59c35e753d09dd44ae1ae64621c7121541e2ae49db6a70b9b4757d2137a43b69b24a445780188ef8b5ba0470cbb5948f802e", [], 105);
|
|
103
102
|
*/
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
var data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
103
|
+
signTransaction(path, rawTxHex, tokenSignatures) {
|
|
104
|
+
const paths = (0, utils_1.splitPath)(path);
|
|
105
|
+
let rawTx = Buffer.from(rawTxHex, "hex");
|
|
106
|
+
const toSend = [];
|
|
107
|
+
let data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
110
108
|
// write path for first chuck only
|
|
111
109
|
data[0] = paths.length;
|
|
112
|
-
paths.forEach(
|
|
110
|
+
paths.forEach((element, index) => {
|
|
113
111
|
data.writeUInt32BE(element, 1 + 4 * index);
|
|
114
112
|
});
|
|
115
113
|
while (rawTx.length > 0) {
|
|
116
114
|
// get next message field
|
|
117
|
-
|
|
115
|
+
const newpos = this.getNextLength(rawTx);
|
|
118
116
|
if (newpos > CHUNK_SIZE)
|
|
119
117
|
throw new Error("Too many bytes to encode.");
|
|
120
118
|
if (data.length + newpos > CHUNK_SIZE) {
|
|
@@ -127,12 +125,12 @@ var Trx = /** @class */ (function () {
|
|
|
127
125
|
rawTx = rawTx.slice(newpos, rawTx.length);
|
|
128
126
|
}
|
|
129
127
|
toSend.push(data);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
128
|
+
const startBytes = [];
|
|
129
|
+
let response;
|
|
130
|
+
const tokenPos = toSend.length;
|
|
133
131
|
if (tokenSignatures !== undefined) {
|
|
134
|
-
for (
|
|
135
|
-
|
|
132
|
+
for (let i = 0; i < tokenSignatures.length; i += 1) {
|
|
133
|
+
const buffer = Buffer.from(tokenSignatures[i], "hex");
|
|
136
134
|
toSend.push(buffer);
|
|
137
135
|
}
|
|
138
136
|
}
|
|
@@ -142,7 +140,7 @@ var Trx = /** @class */ (function () {
|
|
|
142
140
|
}
|
|
143
141
|
else {
|
|
144
142
|
startBytes.push(0x00);
|
|
145
|
-
for (
|
|
143
|
+
for (let i = 1; i < toSend.length - 1; i += 1) {
|
|
146
144
|
if (i >= tokenPos) {
|
|
147
145
|
startBytes.push(0xa0 | 0x00 | (i - tokenPos)); // eslint-disable-line no-bitwise
|
|
148
146
|
}
|
|
@@ -157,18 +155,18 @@ var Trx = /** @class */ (function () {
|
|
|
157
155
|
startBytes.push(0x90);
|
|
158
156
|
}
|
|
159
157
|
}
|
|
160
|
-
return (0, utils_1.foreach)(toSend,
|
|
161
|
-
return
|
|
158
|
+
return (0, utils_1.foreach)(toSend, (data, i) => {
|
|
159
|
+
return this.transport
|
|
162
160
|
.send(CLA, SIGN, startBytes[i], 0x00, data)
|
|
163
|
-
.then(
|
|
161
|
+
.then((apduResponse) => {
|
|
164
162
|
response = apduResponse;
|
|
165
163
|
});
|
|
166
|
-
}).then(
|
|
164
|
+
}).then(() => {
|
|
167
165
|
return response.slice(0, 65).toString("hex");
|
|
168
|
-
},
|
|
166
|
+
}, (e) => {
|
|
169
167
|
throw remapTransactionRelatedErrors(e);
|
|
170
168
|
});
|
|
171
|
-
}
|
|
169
|
+
}
|
|
172
170
|
/**
|
|
173
171
|
* sign a Tron transaction hash with a given BIP 32 path
|
|
174
172
|
*
|
|
@@ -178,20 +176,20 @@ var Trx = /** @class */ (function () {
|
|
|
178
176
|
* @example
|
|
179
177
|
* const signature = await tron.signTransactionHash("44'/195'/0'/0/0", "25b18a55f86afb10e7aca38d0073d04c80397c6636069193953fdefaea0b8369");
|
|
180
178
|
*/
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
179
|
+
signTransactionHash(path, rawTxHashHex) {
|
|
180
|
+
const paths = (0, utils_1.splitPath)(path);
|
|
181
|
+
let data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
184
182
|
data[0] = paths.length;
|
|
185
|
-
paths.forEach(
|
|
183
|
+
paths.forEach((element, index) => {
|
|
186
184
|
data.writeUInt32BE(element, 1 + 4 * index);
|
|
187
185
|
});
|
|
188
186
|
data = Buffer.concat([data, Buffer.from(rawTxHashHex, "hex")]);
|
|
189
187
|
return this.transport
|
|
190
188
|
.send(CLA, SIGN_HASH, 0x00, 0x00, data)
|
|
191
|
-
.then(
|
|
189
|
+
.then((response) => {
|
|
192
190
|
return response.slice(0, 65).toString("hex");
|
|
193
191
|
});
|
|
194
|
-
}
|
|
192
|
+
}
|
|
195
193
|
/**
|
|
196
194
|
* get the version of the Tron app installed on the hardware device
|
|
197
195
|
*
|
|
@@ -207,16 +205,16 @@ var Trx = /** @class */ (function () {
|
|
|
207
205
|
* "signByHash": false
|
|
208
206
|
* }
|
|
209
207
|
*/
|
|
210
|
-
|
|
211
|
-
return this.transport.send(CLA, VERSION, 0x00, 0x00).then(
|
|
208
|
+
getAppConfiguration() {
|
|
209
|
+
return this.transport.send(CLA, VERSION, 0x00, 0x00).then((response) => {
|
|
212
210
|
// eslint-disable-next-line no-bitwise
|
|
213
|
-
|
|
211
|
+
const signByHash = (response[0] & (1 << 3)) > 0;
|
|
214
212
|
// eslint-disable-next-line no-bitwise
|
|
215
|
-
|
|
213
|
+
let truncateAddress = (response[0] & (1 << 2)) > 0;
|
|
216
214
|
// eslint-disable-next-line no-bitwise
|
|
217
|
-
|
|
215
|
+
let allowContract = (response[0] & (1 << 1)) > 0;
|
|
218
216
|
// eslint-disable-next-line no-bitwise
|
|
219
|
-
|
|
217
|
+
let allowData = (response[0] & (1 << 0)) > 0;
|
|
220
218
|
if (response[1] === 0 && response[2] === 1 && response[3] < 2) {
|
|
221
219
|
allowData = true;
|
|
222
220
|
allowContract = false;
|
|
@@ -224,17 +222,17 @@ var Trx = /** @class */ (function () {
|
|
|
224
222
|
if (response[1] === 0 && response[2] === 1 && response[3] < 5) {
|
|
225
223
|
truncateAddress = false;
|
|
226
224
|
}
|
|
227
|
-
|
|
228
|
-
version:
|
|
225
|
+
const result = {
|
|
226
|
+
version: `${response[1]}.${response[2]}.${response[3]}`,
|
|
229
227
|
versionN: response[1] * 10000 + response[2] * 100 + response[3],
|
|
230
|
-
allowData
|
|
231
|
-
allowContract
|
|
232
|
-
truncateAddress
|
|
233
|
-
signByHash
|
|
228
|
+
allowData,
|
|
229
|
+
allowContract,
|
|
230
|
+
truncateAddress,
|
|
231
|
+
signByHash,
|
|
234
232
|
};
|
|
235
233
|
return result;
|
|
236
234
|
});
|
|
237
|
-
}
|
|
235
|
+
}
|
|
238
236
|
/**
|
|
239
237
|
* sign a Tron Message with a given BIP 32 path
|
|
240
238
|
*
|
|
@@ -244,25 +242,24 @@ var Trx = /** @class */ (function () {
|
|
|
244
242
|
* @example
|
|
245
243
|
* const signature = await tron.signPersonalMessage("44'/195'/0'/0/0", "43727970746f436861696e2d54726f6e5352204c6564676572205472616e73616374696f6e73205465737473");
|
|
246
244
|
*/
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
var _loop_1 = function () {
|
|
245
|
+
signPersonalMessage(path, messageHex) {
|
|
246
|
+
const paths = (0, utils_1.splitPath)(path);
|
|
247
|
+
const message = Buffer.from(messageHex, "hex");
|
|
248
|
+
let offset = 0;
|
|
249
|
+
const toSend = [];
|
|
250
|
+
const size = message.length.toString(16);
|
|
251
|
+
const sizePack = "00000000".substr(size.length) + size;
|
|
252
|
+
const packed = Buffer.concat([Buffer.from(sizePack, "hex"), message]);
|
|
253
|
+
while (offset < packed.length) {
|
|
257
254
|
// Use small buffer to be compatible with old and new protocol
|
|
258
|
-
|
|
259
|
-
|
|
255
|
+
const maxChunkSize = offset === 0 ? CHUNK_SIZE - 1 - paths.length * 4 : CHUNK_SIZE;
|
|
256
|
+
const chunkSize = offset + maxChunkSize > packed.length
|
|
260
257
|
? packed.length - offset
|
|
261
258
|
: maxChunkSize;
|
|
262
|
-
|
|
259
|
+
const buffer = Buffer.alloc(offset === 0 ? 1 + paths.length * 4 + chunkSize : chunkSize);
|
|
263
260
|
if (offset === 0) {
|
|
264
261
|
buffer[0] = paths.length;
|
|
265
|
-
paths.forEach(
|
|
262
|
+
paths.forEach((element, index) => {
|
|
266
263
|
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
267
264
|
});
|
|
268
265
|
packed.copy(buffer, 1 + 4 * paths.length, offset, offset + chunkSize);
|
|
@@ -272,21 +269,18 @@ var Trx = /** @class */ (function () {
|
|
|
272
269
|
}
|
|
273
270
|
toSend.push(buffer);
|
|
274
271
|
offset += chunkSize;
|
|
275
|
-
};
|
|
276
|
-
while (offset < packed.length) {
|
|
277
|
-
_loop_1();
|
|
278
272
|
}
|
|
279
|
-
|
|
280
|
-
return (0, utils_1.foreach)(toSend,
|
|
281
|
-
return
|
|
273
|
+
let response;
|
|
274
|
+
return (0, utils_1.foreach)(toSend, (data, i) => {
|
|
275
|
+
return this.transport
|
|
282
276
|
.send(CLA, SIGN_MESSAGE, i === 0 ? 0x00 : 0x80, 0x00, data)
|
|
283
|
-
.then(
|
|
277
|
+
.then((apduResponse) => {
|
|
284
278
|
response = apduResponse;
|
|
285
279
|
});
|
|
286
|
-
}).then(
|
|
280
|
+
}).then(() => {
|
|
287
281
|
return response.slice(0, 65).toString("hex");
|
|
288
282
|
});
|
|
289
|
-
}
|
|
283
|
+
}
|
|
290
284
|
/**
|
|
291
285
|
* get Tron address for a given BIP 32 path.
|
|
292
286
|
* @param path a path in BIP 32 format
|
|
@@ -295,20 +289,19 @@ var Trx = /** @class */ (function () {
|
|
|
295
289
|
* @example
|
|
296
290
|
* const signature = await tron.getECDHPairKey("44'/195'/0'/0/0", "04ff21f8e64d3a3c0198edfbb7afdc79be959432e92e2f8a1984bb436a414b8edcec0345aad0c1bf7da04fd036dd7f9f617e30669224283d950fab9dd84831dc83");
|
|
297
291
|
*/
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
292
|
+
getECDHPairKey(path, publicKey) {
|
|
293
|
+
const paths = (0, utils_1.splitPath)(path);
|
|
294
|
+
const data = Buffer.from(publicKey, "hex");
|
|
295
|
+
const buffer = Buffer.alloc(1 + paths.length * 4 + data.length);
|
|
302
296
|
buffer[0] = paths.length;
|
|
303
|
-
paths.forEach(
|
|
297
|
+
paths.forEach((element, index) => {
|
|
304
298
|
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
305
299
|
});
|
|
306
300
|
data.copy(buffer, 1 + 4 * paths.length, 0, data.length);
|
|
307
301
|
return this.transport
|
|
308
302
|
.send(CLA, ECDH_SECRET, 0x00, 0x01, buffer)
|
|
309
|
-
.then(
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
exports["default"] = Trx;
|
|
303
|
+
.then((response) => response.slice(0, 65).toString("hex"));
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
exports.default = Trx;
|
|
314
307
|
//# sourceMappingURL=Trx.js.map
|
package/lib/Trx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Trx.js","sourceRoot":"","sources":["../src/Trx.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,cAAc;AACd,
|
|
1
|
+
{"version":3,"file":"Trx.js","sourceRoot":"","sources":["../src/Trx.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,cAAc;AACd,mCAA2D;AAI3D,MAAM,6BAA6B,GAAG,CAAC,CAAC,EAAE,EAAE;IAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,EAAE;QAChC,QAAQ;KACT;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,GAAG,GAAG,IAAI,CAAC;AACjB,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB;;;;;;GAMG;AAEH,MAAqB,GAAG;IAGtB,YAAY,SAAoB,EAAE,WAAW,GAAG,KAAK;QACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,SAAS,CAAC,qBAAqB,CAC7B,IAAI,EACJ;YACE,YAAY;YACZ,gBAAgB;YAChB,iBAAiB;YACjB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;SACtB,EACD,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CACR,IAAY,EACZ,WAAqB;QAKrB,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC1E,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,SAAS;aAClB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;aAC3D,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;YAEpD,OAAO;gBACL,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACjE,OAAO,EAAE,QAAQ;qBACd,KAAK,CACJ,CAAC,GAAG,eAAe,GAAG,CAAC,EACvB,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,aAAa,CACxC;qBACA,QAAQ,CAAC,OAAO,CAAC;aACrB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAA,oBAAY,EAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,eAAe,CACb,IAAY,EACZ,QAAgB,EAChB,eAAyB;QAEzB,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACtE,kCAAkC;QAClC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,yBAAyB;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAEtE,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,SAAS;aACV;YAED,cAAc;YACd,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACrD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3C;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,QAAQ,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QAE/B,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACrB;SACF;QAED,iBAAiB;QACjB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC7C,IAAI,CAAC,IAAI,QAAQ,EAAE;oBACjB,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,iCAAiC;iBACjF;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvB;aACF;YAED,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,MAAM,EAAE;gBAC3D,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC;aAC/F;iBAAM;gBACL,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;SACF;QAED,OAAO,IAAA,eAAO,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,SAAS;iBAClB,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;iBAC1C,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;gBACrB,QAAQ,GAAG,YAAY,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CACL,GAAG,EAAE;YACH,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;YACJ,MAAM,6BAA6B,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,IAAY,EAAE,YAAoB;QACpD,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS;aAClB,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;aACtC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAAmB;QAQjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrE,sCAAsC;YACtC,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChD,sCAAsC;YACtC,IAAI,eAAe,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,sCAAsC;YACtC,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,sCAAsC;YACtC,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAE7C,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC7D,SAAS,GAAG,IAAI,CAAC;gBACjB,aAAa,GAAG,KAAK,CAAC;aACvB;YAED,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC7D,eAAe,GAAG,KAAK,CAAC;aACzB;YAED,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;gBACvD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC/D,SAAS;gBACT,aAAa;gBACb,eAAe;gBACf,UAAU;aACX,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,IAAY,EAAE,UAAkB;QAClD,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAEtE,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;YAC7B,8DAA8D;YAC9D,MAAM,YAAY,GAChB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAChE,MAAM,SAAS,GACb,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,MAAM;gBACnC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;gBACxB,CAAC,CAAC,YAAY,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CACzB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAC5D,CAAC;YAEF,IAAI,MAAM,KAAK,CAAC,EAAE;gBAChB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC/B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;aACvE;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;aACpD;YAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC;SACrB;QAED,IAAI,QAAQ,CAAC;QACb,OAAO,IAAA,eAAO,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,SAAS;iBAClB,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;iBAC1D,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;gBACrB,QAAQ,GAAG,YAAY,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,IAAY,EAAE,SAAiB;QAC5C,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,SAAS;aAClB,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;aAC1C,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAxTD,sBAwTC"}
|
package/lib/utils.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
********************************************************************************/
|
|
18
|
-
|
|
18
|
+
type Defer<T> = {
|
|
19
19
|
promise: Promise<T>;
|
|
20
20
|
resolve: (arg0: T) => void;
|
|
21
21
|
reject: (arg0: any) => void;
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,KAAK,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/utils.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
exports
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.decodeVarint = exports.asyncWhile = exports.doIf = exports.foreach = exports.eachSeries = exports.splitPath = exports.defer = void 0;
|
|
4
4
|
function defer() {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
let resolve, reject;
|
|
6
|
+
const promise = new Promise(function (success, failure) {
|
|
7
7
|
resolve = success;
|
|
8
8
|
reject = failure;
|
|
9
9
|
});
|
|
10
10
|
if (!resolve || !reject)
|
|
11
11
|
throw "defer() error"; // this never happens and is just to make flow happy
|
|
12
12
|
return {
|
|
13
|
-
promise
|
|
14
|
-
resolve
|
|
15
|
-
reject
|
|
13
|
+
promise,
|
|
14
|
+
resolve,
|
|
15
|
+
reject,
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
exports.defer = defer;
|
|
19
19
|
// TODO use bip32-path library
|
|
20
20
|
function splitPath(path) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
components.forEach(
|
|
24
|
-
|
|
21
|
+
const result = [];
|
|
22
|
+
const components = path.split("/");
|
|
23
|
+
components.forEach((element) => {
|
|
24
|
+
let number = parseInt(element, 10);
|
|
25
25
|
if (isNaN(number)) {
|
|
26
26
|
return; // FIXME shouldn't it throws instead?
|
|
27
27
|
}
|
|
@@ -35,7 +35,7 @@ function splitPath(path) {
|
|
|
35
35
|
exports.splitPath = splitPath;
|
|
36
36
|
// TODO use async await
|
|
37
37
|
function eachSeries(arr, fun) {
|
|
38
|
-
return arr.reduce(
|
|
38
|
+
return arr.reduce((p, e) => p.then(() => fun(e)), Promise.resolve());
|
|
39
39
|
}
|
|
40
40
|
exports.eachSeries = eachSeries;
|
|
41
41
|
function foreach(arr, callback) {
|
|
@@ -49,11 +49,11 @@ function foreach(arr, callback) {
|
|
|
49
49
|
return iterate(index + 1, array, result);
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
|
-
return Promise.resolve().then(
|
|
52
|
+
return Promise.resolve().then(() => iterate(0, arr, []));
|
|
53
53
|
}
|
|
54
54
|
exports.foreach = foreach;
|
|
55
55
|
function doIf(condition, callback) {
|
|
56
|
-
return Promise.resolve().then(
|
|
56
|
+
return Promise.resolve().then(() => {
|
|
57
57
|
if (condition) {
|
|
58
58
|
return callback();
|
|
59
59
|
}
|
|
@@ -66,7 +66,7 @@ function asyncWhile(predicate, callback) {
|
|
|
66
66
|
return result;
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
return callback().then(
|
|
69
|
+
return callback().then((res) => {
|
|
70
70
|
result.push(res);
|
|
71
71
|
return iterate(result);
|
|
72
72
|
});
|
|
@@ -76,19 +76,19 @@ function asyncWhile(predicate, callback) {
|
|
|
76
76
|
}
|
|
77
77
|
exports.asyncWhile = asyncWhile;
|
|
78
78
|
function decodeVarint(stream, index) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
let result = 0;
|
|
80
|
+
let shift = 0;
|
|
81
|
+
let pos = index;
|
|
82
82
|
// eslint-disable-next-line no-constant-condition
|
|
83
83
|
while (shift < 64) {
|
|
84
|
-
|
|
84
|
+
const b = stream[pos];
|
|
85
85
|
result |= (b & 0x7f) << shift;
|
|
86
86
|
pos += 1;
|
|
87
87
|
if (!(b & 0x80)) {
|
|
88
88
|
result &= 0xffffffff;
|
|
89
89
|
return {
|
|
90
90
|
value: result,
|
|
91
|
-
pos
|
|
91
|
+
pos,
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
94
|
shift += 7;
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAqBA,SAAgB,KAAK;IACnB,IAAI,OAAO,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib-es/Trx.js
CHANGED
|
@@ -16,22 +16,22 @@
|
|
|
16
16
|
********************************************************************************/
|
|
17
17
|
// FIXME drop:
|
|
18
18
|
import { splitPath, foreach, decodeVarint } from "./utils";
|
|
19
|
-
|
|
19
|
+
const remapTransactionRelatedErrors = (e) => {
|
|
20
20
|
if (e && e.statusCode === 0x6a80) {
|
|
21
21
|
// TODO:
|
|
22
22
|
}
|
|
23
23
|
return e;
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
const PATH_SIZE = 4;
|
|
26
|
+
const PATHS_LENGTH_SIZE = 1;
|
|
27
|
+
const CLA = 0xe0;
|
|
28
|
+
const ADDRESS = 0x02;
|
|
29
|
+
const SIGN = 0x04;
|
|
30
|
+
const SIGN_HASH = 0x05;
|
|
31
|
+
const SIGN_MESSAGE = 0x08;
|
|
32
|
+
const ECDH_SECRET = 0x0a;
|
|
33
|
+
const VERSION = 0x06;
|
|
34
|
+
const CHUNK_SIZE = 250;
|
|
35
35
|
/**
|
|
36
36
|
* Tron API
|
|
37
37
|
*
|
|
@@ -39,9 +39,8 @@ var CHUNK_SIZE = 250;
|
|
|
39
39
|
* import Trx from "@ledgerhq/hw-app-trx";
|
|
40
40
|
* const trx = new Trx(transport)
|
|
41
41
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (scrambleKey === void 0) { scrambleKey = "TRX"; }
|
|
42
|
+
export default class Trx {
|
|
43
|
+
constructor(transport, scrambleKey = "TRX") {
|
|
45
44
|
this.transport = transport;
|
|
46
45
|
transport.decorateAppAPIMethods(this, [
|
|
47
46
|
"getAddress",
|
|
@@ -60,33 +59,33 @@ var Trx = /** @class */ (function () {
|
|
|
60
59
|
* @example
|
|
61
60
|
* const address = await tron.getAddress("44'/195'/0'/0/0").then(o => o.address)
|
|
62
61
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
getAddress(path, boolDisplay) {
|
|
63
|
+
const paths = splitPath(path);
|
|
64
|
+
const buffer = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
66
65
|
buffer[0] = paths.length;
|
|
67
|
-
paths.forEach(
|
|
66
|
+
paths.forEach((element, index) => {
|
|
68
67
|
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
69
68
|
});
|
|
70
69
|
return this.transport
|
|
71
70
|
.send(CLA, ADDRESS, boolDisplay ? 0x01 : 0x00, 0x00, buffer)
|
|
72
|
-
.then(
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
.then((response) => {
|
|
72
|
+
const publicKeyLength = response[0];
|
|
73
|
+
const addressLength = response[1 + publicKeyLength];
|
|
75
74
|
return {
|
|
76
75
|
publicKey: response.slice(1, 1 + publicKeyLength).toString("hex"),
|
|
77
76
|
address: response
|
|
78
77
|
.slice(1 + publicKeyLength + 1, 1 + publicKeyLength + 1 + addressLength)
|
|
79
|
-
.toString("ascii")
|
|
78
|
+
.toString("ascii"),
|
|
80
79
|
};
|
|
81
80
|
});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
}
|
|
82
|
+
getNextLength(tx) {
|
|
83
|
+
const field = decodeVarint(tx, 0);
|
|
84
|
+
const data = decodeVarint(tx, field.pos);
|
|
86
85
|
if ((field.value & 0x07) === 0)
|
|
87
86
|
return data.pos;
|
|
88
87
|
return data.value + data.pos;
|
|
89
|
-
}
|
|
88
|
+
}
|
|
90
89
|
/**
|
|
91
90
|
* sign a Tron transaction with a given BIP 32 path and Token Names
|
|
92
91
|
*
|
|
@@ -99,20 +98,19 @@ var Trx = /** @class */ (function () {
|
|
|
99
98
|
* @example
|
|
100
99
|
* const signature = await tron.signTransaction("44'/195'/0'/0/0", "0a02f5942208704dda506d59dceb40f0f4978f802e5a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a1541978dbd103cfe59c35e753d09dd44ae1ae64621c7121541e2ae49db6a70b9b4757d2137a43b69b24a445780188ef8b5ba0470cbb5948f802e", [], 105);
|
|
101
100
|
*/
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
var data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
101
|
+
signTransaction(path, rawTxHex, tokenSignatures) {
|
|
102
|
+
const paths = splitPath(path);
|
|
103
|
+
let rawTx = Buffer.from(rawTxHex, "hex");
|
|
104
|
+
const toSend = [];
|
|
105
|
+
let data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
108
106
|
// write path for first chuck only
|
|
109
107
|
data[0] = paths.length;
|
|
110
|
-
paths.forEach(
|
|
108
|
+
paths.forEach((element, index) => {
|
|
111
109
|
data.writeUInt32BE(element, 1 + 4 * index);
|
|
112
110
|
});
|
|
113
111
|
while (rawTx.length > 0) {
|
|
114
112
|
// get next message field
|
|
115
|
-
|
|
113
|
+
const newpos = this.getNextLength(rawTx);
|
|
116
114
|
if (newpos > CHUNK_SIZE)
|
|
117
115
|
throw new Error("Too many bytes to encode.");
|
|
118
116
|
if (data.length + newpos > CHUNK_SIZE) {
|
|
@@ -125,12 +123,12 @@ var Trx = /** @class */ (function () {
|
|
|
125
123
|
rawTx = rawTx.slice(newpos, rawTx.length);
|
|
126
124
|
}
|
|
127
125
|
toSend.push(data);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
const startBytes = [];
|
|
127
|
+
let response;
|
|
128
|
+
const tokenPos = toSend.length;
|
|
131
129
|
if (tokenSignatures !== undefined) {
|
|
132
|
-
for (
|
|
133
|
-
|
|
130
|
+
for (let i = 0; i < tokenSignatures.length; i += 1) {
|
|
131
|
+
const buffer = Buffer.from(tokenSignatures[i], "hex");
|
|
134
132
|
toSend.push(buffer);
|
|
135
133
|
}
|
|
136
134
|
}
|
|
@@ -140,7 +138,7 @@ var Trx = /** @class */ (function () {
|
|
|
140
138
|
}
|
|
141
139
|
else {
|
|
142
140
|
startBytes.push(0x00);
|
|
143
|
-
for (
|
|
141
|
+
for (let i = 1; i < toSend.length - 1; i += 1) {
|
|
144
142
|
if (i >= tokenPos) {
|
|
145
143
|
startBytes.push(0xa0 | 0x00 | (i - tokenPos)); // eslint-disable-line no-bitwise
|
|
146
144
|
}
|
|
@@ -155,18 +153,18 @@ var Trx = /** @class */ (function () {
|
|
|
155
153
|
startBytes.push(0x90);
|
|
156
154
|
}
|
|
157
155
|
}
|
|
158
|
-
return foreach(toSend,
|
|
159
|
-
return
|
|
156
|
+
return foreach(toSend, (data, i) => {
|
|
157
|
+
return this.transport
|
|
160
158
|
.send(CLA, SIGN, startBytes[i], 0x00, data)
|
|
161
|
-
.then(
|
|
159
|
+
.then((apduResponse) => {
|
|
162
160
|
response = apduResponse;
|
|
163
161
|
});
|
|
164
|
-
}).then(
|
|
162
|
+
}).then(() => {
|
|
165
163
|
return response.slice(0, 65).toString("hex");
|
|
166
|
-
},
|
|
164
|
+
}, (e) => {
|
|
167
165
|
throw remapTransactionRelatedErrors(e);
|
|
168
166
|
});
|
|
169
|
-
}
|
|
167
|
+
}
|
|
170
168
|
/**
|
|
171
169
|
* sign a Tron transaction hash with a given BIP 32 path
|
|
172
170
|
*
|
|
@@ -176,20 +174,20 @@ var Trx = /** @class */ (function () {
|
|
|
176
174
|
* @example
|
|
177
175
|
* const signature = await tron.signTransactionHash("44'/195'/0'/0/0", "25b18a55f86afb10e7aca38d0073d04c80397c6636069193953fdefaea0b8369");
|
|
178
176
|
*/
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
177
|
+
signTransactionHash(path, rawTxHashHex) {
|
|
178
|
+
const paths = splitPath(path);
|
|
179
|
+
let data = Buffer.alloc(PATHS_LENGTH_SIZE + paths.length * PATH_SIZE);
|
|
182
180
|
data[0] = paths.length;
|
|
183
|
-
paths.forEach(
|
|
181
|
+
paths.forEach((element, index) => {
|
|
184
182
|
data.writeUInt32BE(element, 1 + 4 * index);
|
|
185
183
|
});
|
|
186
184
|
data = Buffer.concat([data, Buffer.from(rawTxHashHex, "hex")]);
|
|
187
185
|
return this.transport
|
|
188
186
|
.send(CLA, SIGN_HASH, 0x00, 0x00, data)
|
|
189
|
-
.then(
|
|
187
|
+
.then((response) => {
|
|
190
188
|
return response.slice(0, 65).toString("hex");
|
|
191
189
|
});
|
|
192
|
-
}
|
|
190
|
+
}
|
|
193
191
|
/**
|
|
194
192
|
* get the version of the Tron app installed on the hardware device
|
|
195
193
|
*
|
|
@@ -205,16 +203,16 @@ var Trx = /** @class */ (function () {
|
|
|
205
203
|
* "signByHash": false
|
|
206
204
|
* }
|
|
207
205
|
*/
|
|
208
|
-
|
|
209
|
-
return this.transport.send(CLA, VERSION, 0x00, 0x00).then(
|
|
206
|
+
getAppConfiguration() {
|
|
207
|
+
return this.transport.send(CLA, VERSION, 0x00, 0x00).then((response) => {
|
|
210
208
|
// eslint-disable-next-line no-bitwise
|
|
211
|
-
|
|
209
|
+
const signByHash = (response[0] & (1 << 3)) > 0;
|
|
212
210
|
// eslint-disable-next-line no-bitwise
|
|
213
|
-
|
|
211
|
+
let truncateAddress = (response[0] & (1 << 2)) > 0;
|
|
214
212
|
// eslint-disable-next-line no-bitwise
|
|
215
|
-
|
|
213
|
+
let allowContract = (response[0] & (1 << 1)) > 0;
|
|
216
214
|
// eslint-disable-next-line no-bitwise
|
|
217
|
-
|
|
215
|
+
let allowData = (response[0] & (1 << 0)) > 0;
|
|
218
216
|
if (response[1] === 0 && response[2] === 1 && response[3] < 2) {
|
|
219
217
|
allowData = true;
|
|
220
218
|
allowContract = false;
|
|
@@ -222,17 +220,17 @@ var Trx = /** @class */ (function () {
|
|
|
222
220
|
if (response[1] === 0 && response[2] === 1 && response[3] < 5) {
|
|
223
221
|
truncateAddress = false;
|
|
224
222
|
}
|
|
225
|
-
|
|
226
|
-
version:
|
|
223
|
+
const result = {
|
|
224
|
+
version: `${response[1]}.${response[2]}.${response[3]}`,
|
|
227
225
|
versionN: response[1] * 10000 + response[2] * 100 + response[3],
|
|
228
|
-
allowData
|
|
229
|
-
allowContract
|
|
230
|
-
truncateAddress
|
|
231
|
-
signByHash
|
|
226
|
+
allowData,
|
|
227
|
+
allowContract,
|
|
228
|
+
truncateAddress,
|
|
229
|
+
signByHash,
|
|
232
230
|
};
|
|
233
231
|
return result;
|
|
234
232
|
});
|
|
235
|
-
}
|
|
233
|
+
}
|
|
236
234
|
/**
|
|
237
235
|
* sign a Tron Message with a given BIP 32 path
|
|
238
236
|
*
|
|
@@ -242,25 +240,24 @@ var Trx = /** @class */ (function () {
|
|
|
242
240
|
* @example
|
|
243
241
|
* const signature = await tron.signPersonalMessage("44'/195'/0'/0/0", "43727970746f436861696e2d54726f6e5352204c6564676572205472616e73616374696f6e73205465737473");
|
|
244
242
|
*/
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
var _loop_1 = function () {
|
|
243
|
+
signPersonalMessage(path, messageHex) {
|
|
244
|
+
const paths = splitPath(path);
|
|
245
|
+
const message = Buffer.from(messageHex, "hex");
|
|
246
|
+
let offset = 0;
|
|
247
|
+
const toSend = [];
|
|
248
|
+
const size = message.length.toString(16);
|
|
249
|
+
const sizePack = "00000000".substr(size.length) + size;
|
|
250
|
+
const packed = Buffer.concat([Buffer.from(sizePack, "hex"), message]);
|
|
251
|
+
while (offset < packed.length) {
|
|
255
252
|
// Use small buffer to be compatible with old and new protocol
|
|
256
|
-
|
|
257
|
-
|
|
253
|
+
const maxChunkSize = offset === 0 ? CHUNK_SIZE - 1 - paths.length * 4 : CHUNK_SIZE;
|
|
254
|
+
const chunkSize = offset + maxChunkSize > packed.length
|
|
258
255
|
? packed.length - offset
|
|
259
256
|
: maxChunkSize;
|
|
260
|
-
|
|
257
|
+
const buffer = Buffer.alloc(offset === 0 ? 1 + paths.length * 4 + chunkSize : chunkSize);
|
|
261
258
|
if (offset === 0) {
|
|
262
259
|
buffer[0] = paths.length;
|
|
263
|
-
paths.forEach(
|
|
260
|
+
paths.forEach((element, index) => {
|
|
264
261
|
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
265
262
|
});
|
|
266
263
|
packed.copy(buffer, 1 + 4 * paths.length, offset, offset + chunkSize);
|
|
@@ -270,21 +267,18 @@ var Trx = /** @class */ (function () {
|
|
|
270
267
|
}
|
|
271
268
|
toSend.push(buffer);
|
|
272
269
|
offset += chunkSize;
|
|
273
|
-
};
|
|
274
|
-
while (offset < packed.length) {
|
|
275
|
-
_loop_1();
|
|
276
270
|
}
|
|
277
|
-
|
|
278
|
-
return foreach(toSend,
|
|
279
|
-
return
|
|
271
|
+
let response;
|
|
272
|
+
return foreach(toSend, (data, i) => {
|
|
273
|
+
return this.transport
|
|
280
274
|
.send(CLA, SIGN_MESSAGE, i === 0 ? 0x00 : 0x80, 0x00, data)
|
|
281
|
-
.then(
|
|
275
|
+
.then((apduResponse) => {
|
|
282
276
|
response = apduResponse;
|
|
283
277
|
});
|
|
284
|
-
}).then(
|
|
278
|
+
}).then(() => {
|
|
285
279
|
return response.slice(0, 65).toString("hex");
|
|
286
280
|
});
|
|
287
|
-
}
|
|
281
|
+
}
|
|
288
282
|
/**
|
|
289
283
|
* get Tron address for a given BIP 32 path.
|
|
290
284
|
* @param path a path in BIP 32 format
|
|
@@ -293,20 +287,18 @@ var Trx = /** @class */ (function () {
|
|
|
293
287
|
* @example
|
|
294
288
|
* const signature = await tron.getECDHPairKey("44'/195'/0'/0/0", "04ff21f8e64d3a3c0198edfbb7afdc79be959432e92e2f8a1984bb436a414b8edcec0345aad0c1bf7da04fd036dd7f9f617e30669224283d950fab9dd84831dc83");
|
|
295
289
|
*/
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
290
|
+
getECDHPairKey(path, publicKey) {
|
|
291
|
+
const paths = splitPath(path);
|
|
292
|
+
const data = Buffer.from(publicKey, "hex");
|
|
293
|
+
const buffer = Buffer.alloc(1 + paths.length * 4 + data.length);
|
|
300
294
|
buffer[0] = paths.length;
|
|
301
|
-
paths.forEach(
|
|
295
|
+
paths.forEach((element, index) => {
|
|
302
296
|
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
303
297
|
});
|
|
304
298
|
data.copy(buffer, 1 + 4 * paths.length, 0, data.length);
|
|
305
299
|
return this.transport
|
|
306
300
|
.send(CLA, ECDH_SECRET, 0x00, 0x01, buffer)
|
|
307
|
-
.then(
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
}());
|
|
311
|
-
export default Trx;
|
|
301
|
+
.then((response) => response.slice(0, 65).toString("hex"));
|
|
302
|
+
}
|
|
303
|
+
}
|
|
312
304
|
//# sourceMappingURL=Trx.js.map
|
package/lib-es/Trx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Trx.js","sourceRoot":"","sources":["../src/Trx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI3D,
|
|
1
|
+
{"version":3,"file":"Trx.js","sourceRoot":"","sources":["../src/Trx.ts"],"names":[],"mappings":"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"}
|
package/lib-es/utils.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
********************************************************************************/
|
|
18
|
-
|
|
18
|
+
type Defer<T> = {
|
|
19
19
|
promise: Promise<T>;
|
|
20
20
|
resolve: (arg0: T) => void;
|
|
21
21
|
reject: (arg0: any) => void;
|
package/lib-es/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,KAAK,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
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
export function defer() {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
let resolve, reject;
|
|
3
|
+
const promise = new Promise(function (success, failure) {
|
|
4
4
|
resolve = success;
|
|
5
5
|
reject = failure;
|
|
6
6
|
});
|
|
7
7
|
if (!resolve || !reject)
|
|
8
8
|
throw "defer() error"; // this never happens and is just to make flow happy
|
|
9
9
|
return {
|
|
10
|
-
promise
|
|
11
|
-
resolve
|
|
12
|
-
reject
|
|
10
|
+
promise,
|
|
11
|
+
resolve,
|
|
12
|
+
reject,
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
// TODO use bip32-path library
|
|
16
16
|
export function splitPath(path) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
components.forEach(
|
|
20
|
-
|
|
17
|
+
const result = [];
|
|
18
|
+
const components = path.split("/");
|
|
19
|
+
components.forEach((element) => {
|
|
20
|
+
let number = parseInt(element, 10);
|
|
21
21
|
if (isNaN(number)) {
|
|
22
22
|
return; // FIXME shouldn't it throws instead?
|
|
23
23
|
}
|
|
@@ -30,7 +30,7 @@ export function splitPath(path) {
|
|
|
30
30
|
}
|
|
31
31
|
// TODO use async await
|
|
32
32
|
export function eachSeries(arr, fun) {
|
|
33
|
-
return arr.reduce(
|
|
33
|
+
return arr.reduce((p, e) => p.then(() => fun(e)), Promise.resolve());
|
|
34
34
|
}
|
|
35
35
|
export function foreach(arr, callback) {
|
|
36
36
|
function iterate(index, array, result) {
|
|
@@ -43,10 +43,10 @@ export function foreach(arr, callback) {
|
|
|
43
43
|
return iterate(index + 1, array, result);
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
return Promise.resolve().then(
|
|
46
|
+
return Promise.resolve().then(() => iterate(0, arr, []));
|
|
47
47
|
}
|
|
48
48
|
export function doIf(condition, callback) {
|
|
49
|
-
return Promise.resolve().then(
|
|
49
|
+
return Promise.resolve().then(() => {
|
|
50
50
|
if (condition) {
|
|
51
51
|
return callback();
|
|
52
52
|
}
|
|
@@ -58,7 +58,7 @@ export function asyncWhile(predicate, callback) {
|
|
|
58
58
|
return result;
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
|
-
return callback().then(
|
|
61
|
+
return callback().then((res) => {
|
|
62
62
|
result.push(res);
|
|
63
63
|
return iterate(result);
|
|
64
64
|
});
|
|
@@ -67,19 +67,19 @@ export function asyncWhile(predicate, callback) {
|
|
|
67
67
|
return Promise.resolve([]).then(iterate);
|
|
68
68
|
}
|
|
69
69
|
export function decodeVarint(stream, index) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
let result = 0;
|
|
71
|
+
let shift = 0;
|
|
72
|
+
let pos = index;
|
|
73
73
|
// eslint-disable-next-line no-constant-condition
|
|
74
74
|
while (shift < 64) {
|
|
75
|
-
|
|
75
|
+
const b = stream[pos];
|
|
76
76
|
result |= (b & 0x7f) << shift;
|
|
77
77
|
pos += 1;
|
|
78
78
|
if (!(b & 0x80)) {
|
|
79
79
|
result &= 0xffffffff;
|
|
80
80
|
return {
|
|
81
81
|
value: result,
|
|
82
|
-
pos
|
|
82
|
+
pos,
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
shift += 7;
|
package/lib-es/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,KAAK;IACnB,IAAI,OAAO,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-app-trx",
|
|
3
|
-
"version": "6.27.
|
|
3
|
+
"version": "6.27.14-nightly.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet Tron Application API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -27,20 +27,19 @@
|
|
|
27
27
|
"types": "lib/Trx.d.ts",
|
|
28
28
|
"license": "Apache-2.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@ledgerhq/errors": "^6.12.
|
|
31
|
-
"@ledgerhq/hw-transport": "^6.28.
|
|
30
|
+
"@ledgerhq/errors": "^6.12.5-nightly.0",
|
|
31
|
+
"@ledgerhq/hw-transport": "^6.28.3-nightly.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/jest": "^29.5.0",
|
|
35
35
|
"@types/node": "^18.15.3",
|
|
36
36
|
"documentation": "13.2.4",
|
|
37
37
|
"jest": "^28.1.1",
|
|
38
|
-
"rimraf": "^4.1
|
|
38
|
+
"rimraf": "^4.4.1",
|
|
39
39
|
"source-map-support": "^0.5.21",
|
|
40
40
|
"ts-jest": "^28.0.5",
|
|
41
41
|
"ts-node": "^10.4.0",
|
|
42
|
-
"
|
|
43
|
-
"@ledgerhq/hw-transport-mocker": "^6.27.13"
|
|
42
|
+
"@ledgerhq/hw-transport-mocker": "^6.27.14-nightly.0"
|
|
44
43
|
},
|
|
45
44
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
|
46
45
|
"scripts": {
|