@onekeyfe/hd-transport 1.2.0-alpha.2 → 1.2.0-alpha.21
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/README.md +1 -1
- package/__tests__/messages.test.js +122 -0
- package/__tests__/protocol-v2-link-manager.test.js +326 -0
- package/__tests__/protocol-v2-usb-transport-base.test.js +296 -0
- package/__tests__/protocol-v2.test.js +371 -107
- package/dist/constants.d.ts +5 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +912 -371
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +551 -254
- package/dist/protocols/index.d.ts +10 -5
- package/dist/protocols/index.d.ts.map +1 -1
- package/dist/protocols/v2/constants.d.ts +1 -0
- package/dist/protocols/v2/constants.d.ts.map +1 -1
- package/dist/protocols/v2/decode.d.ts +2 -2
- package/dist/protocols/v2/decode.d.ts.map +1 -1
- package/dist/protocols/v2/encode.d.ts +2 -3
- package/dist/protocols/v2/encode.d.ts.map +1 -1
- package/dist/protocols/v2/index.d.ts +0 -1
- package/dist/protocols/v2/index.d.ts.map +1 -1
- package/dist/protocols/v2/link-manager.d.ts +35 -0
- package/dist/protocols/v2/link-manager.d.ts.map +1 -0
- package/dist/protocols/v2/sequence-cursor.d.ts +5 -0
- package/dist/protocols/v2/sequence-cursor.d.ts.map +1 -0
- package/dist/protocols/v2/session.d.ts +15 -4
- package/dist/protocols/v2/session.d.ts.map +1 -1
- package/dist/protocols/v2/usb-transport-base.d.ts +31 -0
- package/dist/protocols/v2/usb-transport-base.d.ts.map +1 -0
- package/dist/serialization/protobuf/decode.d.ts.map +1 -1
- package/dist/serialization/protobuf/messages.d.ts.map +1 -1
- package/dist/types/messages.d.ts +535 -226
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/transport.d.ts +5 -3
- package/dist/types/transport.d.ts.map +1 -1
- package/messages-protocol-v2.json +825 -709
- package/package.json +3 -3
- package/scripts/protobuf-build.sh +96 -310
- package/scripts/protobuf-patches/index.js +1 -0
- package/scripts/protobuf-types.js +12 -0
- package/src/constants.ts +21 -15
- package/src/index.ts +8 -0
- package/src/protocols/index.ts +31 -40
- package/src/protocols/v2/constants.ts +1 -0
- package/src/protocols/v2/crc8.ts +1 -1
- package/src/protocols/v2/decode.ts +31 -34
- package/src/protocols/v2/encode.ts +2 -28
- package/src/protocols/v2/index.ts +0 -1
- package/src/protocols/v2/link-manager.ts +160 -0
- package/src/protocols/v2/sequence-cursor.ts +10 -0
- package/src/protocols/v2/session.ts +79 -180
- package/src/protocols/v2/usb-transport-base.ts +194 -0
- package/src/serialization/protobuf/decode.ts +4 -1
- package/src/serialization/protobuf/messages.ts +6 -1
- package/src/types/messages.ts +637 -266
- package/src/types/transport.ts +3 -3
- package/dist/protocols/v2/debug.d.ts +0 -13
- package/dist/protocols/v2/debug.d.ts.map +0 -1
- package/src/protocols/v2/debug.ts +0 -26
package/dist/index.js
CHANGED
|
@@ -140,7 +140,7 @@ function messageToJSON(Message, fields) {
|
|
|
140
140
|
res[key] = field.resolvedType.valuesById[value];
|
|
141
141
|
}
|
|
142
142
|
else if (field.resolvedType.fields) {
|
|
143
|
-
res[key] = messageToJSON(value, field.resolvedType.fields);
|
|
143
|
+
res[key] = value == null ? null : messageToJSON(value, field.resolvedType.fields);
|
|
144
144
|
}
|
|
145
145
|
else {
|
|
146
146
|
throw new Error(`case not handled: ${key}`);
|
|
@@ -249,7 +249,11 @@ const createMessageFromName = (messages, name) => {
|
|
|
249
249
|
};
|
|
250
250
|
const createMessageFromType = (messages, typeId) => {
|
|
251
251
|
const MessageType = messages.lookupEnum('MessageType');
|
|
252
|
-
const
|
|
252
|
+
const rawMessageName = MessageType.valuesById[typeId];
|
|
253
|
+
if (!rawMessageName) {
|
|
254
|
+
throw new Error(`MessageType id "${typeId}" is not defined in protobuf schema`);
|
|
255
|
+
}
|
|
256
|
+
const messageName = rawMessageName.replace('MessageType_', '');
|
|
253
257
|
const Message = messages.lookupType(messageName);
|
|
254
258
|
return {
|
|
255
259
|
Message,
|
|
@@ -263,9 +267,11 @@ const PROTOCOL_V1_CHUNK_PAYLOAD_SIZE = 63;
|
|
|
263
267
|
const PROTOCOL_V1_USB_PACKET_SIZE = PROTOCOL_V1_CHUNK_PAYLOAD_SIZE + 1;
|
|
264
268
|
const PROTOCOL_V1_MESSAGE_HEADER_SIZE = 2 + 4;
|
|
265
269
|
const PROTOCOL_V1_ENVELOPE_HEADER_SIZE = 1 + 1 + PROTOCOL_V1_MESSAGE_HEADER_SIZE;
|
|
266
|
-
const PROTOCOL_V2_FRAME_MAX_BYTES =
|
|
267
|
-
const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE =
|
|
270
|
+
const PROTOCOL_V2_FRAME_MAX_BYTES = 4200;
|
|
271
|
+
const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = 4000;
|
|
268
272
|
const PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = 1800;
|
|
273
|
+
const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
|
|
274
|
+
const PROTOCOL_V2_BLE_FRAME_MAX_BYTES = 2048;
|
|
269
275
|
const PROTOCOL_V2_FILE_CHUNK_SIZE = PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE;
|
|
270
276
|
const PROTOCOL_V2_CHANNEL_USB = 0;
|
|
271
277
|
const PROTOCOL_V2_CHANNEL_BLE_UART = 1;
|
|
@@ -377,6 +383,7 @@ const PROTO_HEAD_CRC_SIZE = 8;
|
|
|
377
383
|
const CRC8_INIT = 0x30;
|
|
378
384
|
const PACKET_SIZE = 4096;
|
|
379
385
|
const PROTO_DATA_TYPE_PACKET = 0;
|
|
386
|
+
const PROTO_DATA_TYPE_ACK = 1;
|
|
380
387
|
|
|
381
388
|
const CRC8_TABLE = new Uint8Array([
|
|
382
389
|
0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41,
|
|
@@ -404,16 +411,11 @@ function crc8(data, len) {
|
|
|
404
411
|
return crc;
|
|
405
412
|
}
|
|
406
413
|
|
|
407
|
-
function logProtocolV2Debug(options, stage, details) {
|
|
408
|
-
var _a, _b, _c;
|
|
409
|
-
(_b = (_a = options === null || options === void 0 ? void 0 : options.logger) === null || _a === void 0 ? void 0 : _a.debug) === null || _b === void 0 ? void 0 : _b.call(_a, `[${(_c = options.logPrefix) !== null && _c !== void 0 ? _c : 'ProtocolV2'}] ${stage}`, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (options.context ? { context: options.context } : {})), (options.messageName ? { messageName: options.messageName } : {})), (options.messageTypeId !== undefined ? { messageTypeId: options.messageTypeId } : {})), (options.pbPayloadLength !== undefined ? { pbPayloadLength: options.pbPayloadLength } : {})), details));
|
|
410
|
-
}
|
|
411
|
-
|
|
412
414
|
const PROTO_SEQ_DEFAULT = 1;
|
|
413
415
|
function nextProtoSeq(current) {
|
|
414
416
|
return current >= 255 ? 1 : current + 1;
|
|
415
417
|
}
|
|
416
|
-
function encodeFrame(payload, packetSrc, router,
|
|
418
|
+
function encodeFrame(payload, packetSrc, router, seq) {
|
|
417
419
|
const resolvedPacketSrc = packetSrc !== null && packetSrc !== void 0 ? packetSrc : 0;
|
|
418
420
|
const resolvedRouter = router !== null && router !== void 0 ? router : 0;
|
|
419
421
|
const resolvedSeq = seq !== null && seq !== void 0 ? seq : PROTO_SEQ_DEFAULT;
|
|
@@ -423,7 +425,7 @@ function encodeFrame(payload, packetSrc, router, debugOptions, seq) {
|
|
|
423
425
|
const payloadLen = payload ? payload.length : 0;
|
|
424
426
|
const frameLen = payloadLen + PROTO_HEAD_CRC_SIZE;
|
|
425
427
|
if (frameLen > PROTOCOL_V2_FRAME_MAX_BYTES) {
|
|
426
|
-
throw new Error(`Protocol V2 frame too large: ${frameLen}`);
|
|
428
|
+
throw new Error(`Protocol V2 frame too large: ${frameLen} > ${PROTOCOL_V2_FRAME_MAX_BYTES}`);
|
|
427
429
|
}
|
|
428
430
|
const frame = new Uint8Array(frameLen);
|
|
429
431
|
frame[0] = PROTO_HEAD_SOF;
|
|
@@ -438,27 +440,17 @@ function encodeFrame(payload, packetSrc, router, debugOptions, seq) {
|
|
|
438
440
|
frame.set(payload, 7);
|
|
439
441
|
}
|
|
440
442
|
frame[frameLen - 1] = crc8(frame, frameLen - 1);
|
|
441
|
-
logProtocolV2Debug(debugOptions, 'encode raw frame', {
|
|
442
|
-
frameLen,
|
|
443
|
-
payloadLen,
|
|
444
|
-
packetSrc: resolvedPacketSrc,
|
|
445
|
-
router: frame[4],
|
|
446
|
-
attr: frame[5],
|
|
447
|
-
seq: frame[6],
|
|
448
|
-
headerCrc: frame[3],
|
|
449
|
-
frameCrc: frame[frameLen - 1],
|
|
450
|
-
});
|
|
451
443
|
return frame;
|
|
452
444
|
}
|
|
453
|
-
function encodeProtobufFrame(messageTypeId, pbPayload, packetSrc, router,
|
|
445
|
+
function encodeProtobufFrame(messageTypeId, pbPayload, packetSrc, router, seq) {
|
|
454
446
|
const payload = new Uint8Array(2 + pbPayload.length);
|
|
455
447
|
payload[0] = messageTypeId % 256;
|
|
456
448
|
payload[1] = Math.floor(messageTypeId / 256) % 256;
|
|
457
449
|
payload.set(pbPayload, 2);
|
|
458
|
-
return encodeFrame(payload, packetSrc, router,
|
|
450
|
+
return encodeFrame(payload, packetSrc, router, seq);
|
|
459
451
|
}
|
|
460
452
|
|
|
461
|
-
function
|
|
453
|
+
function validateFrame(data) {
|
|
462
454
|
if (data.length < PROTO_HEAD_CRC_SIZE) {
|
|
463
455
|
throw new Error(`Protocol V2 frame too short: ${data.length} bytes`);
|
|
464
456
|
}
|
|
@@ -481,6 +473,20 @@ function decodeFrame(data, debugOptions) {
|
|
|
481
473
|
.toString(16)
|
|
482
474
|
.padStart(2, '0')}, got 0x${data[frameLen - 1].toString(16).padStart(2, '0')}`);
|
|
483
475
|
}
|
|
476
|
+
return frameLen;
|
|
477
|
+
}
|
|
478
|
+
function isAckFrame(data) {
|
|
479
|
+
if (data.length < 6 || (data[5] & 0x03) !== PROTO_DATA_TYPE_ACK) {
|
|
480
|
+
return false;
|
|
481
|
+
}
|
|
482
|
+
const frameLen = validateFrame(data);
|
|
483
|
+
if (frameLen !== PROTO_HEAD_CRC_SIZE) {
|
|
484
|
+
throw new Error(`Invalid Protocol V2 ACK frame length: ${frameLen}`);
|
|
485
|
+
}
|
|
486
|
+
return true;
|
|
487
|
+
}
|
|
488
|
+
function decodeFrame(data) {
|
|
489
|
+
const frameLen = validateFrame(data);
|
|
484
490
|
const seq = data[6];
|
|
485
491
|
const payloadData = data.slice(7, frameLen - 1);
|
|
486
492
|
if (payloadData.length < 2) {
|
|
@@ -488,19 +494,6 @@ function decodeFrame(data, debugOptions) {
|
|
|
488
494
|
}
|
|
489
495
|
const messageTypeId = payloadData[0] + payloadData[1] * 256;
|
|
490
496
|
const pbPayload = payloadData.slice(2);
|
|
491
|
-
logProtocolV2Debug(debugOptions, 'decode raw frame', {
|
|
492
|
-
frameLen,
|
|
493
|
-
dataLength: data.length,
|
|
494
|
-
router: data[4],
|
|
495
|
-
attr: data[5],
|
|
496
|
-
seq,
|
|
497
|
-
headerCrc: data[3],
|
|
498
|
-
expectedHeaderCrc,
|
|
499
|
-
frameCrc: data[frameLen - 1],
|
|
500
|
-
expectedFrameCrc,
|
|
501
|
-
messageTypeId,
|
|
502
|
-
pbPayloadLength: pbPayload.length,
|
|
503
|
-
});
|
|
504
497
|
return { messageTypeId, pbPayload, seq };
|
|
505
498
|
}
|
|
506
499
|
|
|
@@ -583,12 +576,13 @@ var protocolV2Codec = /*#__PURE__*/Object.freeze({
|
|
|
583
576
|
CRC8_INIT: CRC8_INIT,
|
|
584
577
|
PACKET_SIZE: PACKET_SIZE,
|
|
585
578
|
PROTO_DATA_TYPE_PACKET: PROTO_DATA_TYPE_PACKET,
|
|
579
|
+
PROTO_DATA_TYPE_ACK: PROTO_DATA_TYPE_ACK,
|
|
586
580
|
CRC8_TABLE: CRC8_TABLE,
|
|
587
581
|
crc8: crc8,
|
|
588
|
-
logProtocolV2Debug: logProtocolV2Debug,
|
|
589
582
|
nextProtoSeq: nextProtoSeq,
|
|
590
583
|
encodeFrame: encodeFrame,
|
|
591
584
|
encodeProtobufFrame: encodeProtobufFrame,
|
|
585
|
+
isAckFrame: isAckFrame,
|
|
592
586
|
decodeFrame: decodeFrame,
|
|
593
587
|
concatUint8Arrays: concatUint8Arrays,
|
|
594
588
|
ProtocolV2FrameAssembler: ProtocolV2FrameAssembler
|
|
@@ -605,6 +599,7 @@ const resolveProtocolV2EncodeSchema = (name, schemas) => {
|
|
|
605
599
|
}
|
|
606
600
|
};
|
|
607
601
|
const PROTOCOL_V2_LEGACY_DECODE_ALLOWLIST = new Set([
|
|
602
|
+
'Failure',
|
|
608
603
|
'ButtonRequest',
|
|
609
604
|
'EntropyRequest',
|
|
610
605
|
'PinMatrixRequest',
|
|
@@ -638,46 +633,42 @@ const ProtocolV1 = {
|
|
|
638
633
|
decodeMessage: decodeMessage,
|
|
639
634
|
};
|
|
640
635
|
const ProtocolV2 = {
|
|
636
|
+
isAckFrame,
|
|
637
|
+
inspectFrame(schemas, frame) {
|
|
638
|
+
const { messageTypeId, pbPayload, seq } = decodeFrame(frame);
|
|
639
|
+
const { messageName } = createProtocolV2MessageFromType(messageTypeId, schemas);
|
|
640
|
+
return {
|
|
641
|
+
messageName,
|
|
642
|
+
messageTypeId,
|
|
643
|
+
pbPayload,
|
|
644
|
+
seq,
|
|
645
|
+
type: messageName,
|
|
646
|
+
};
|
|
647
|
+
},
|
|
641
648
|
encodeFrame(schemas, name, data, options = {}) {
|
|
642
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
643
649
|
const encodeMessages = resolveProtocolV2EncodeSchema(name, schemas);
|
|
644
650
|
const { Message, messageTypeId } = createMessageFromName(encodeMessages, name);
|
|
645
651
|
const pbBuffer = encode(Message, data);
|
|
646
652
|
pbBuffer.reset();
|
|
647
653
|
const rawPbBuffer = pbBuffer.toBuffer();
|
|
648
654
|
const pbBytes = new Uint8Array(rawPbBuffer);
|
|
649
|
-
|
|
650
|
-
context: (_d = options.context) !== null && _d !== void 0 ? _d : `encode:${name}`,
|
|
651
|
-
messageName: name,
|
|
652
|
-
messageTypeId,
|
|
653
|
-
pbPayloadLength: pbBytes.length,
|
|
654
|
-
packetSrc: (_e = options.packetSrc) !== null && _e !== void 0 ? _e : 0,
|
|
655
|
-
router: (_f = options.router) !== null && _f !== void 0 ? _f : 0,
|
|
656
|
-
});
|
|
657
|
-
return encodeProtobufFrame(messageTypeId, pbBytes, options.packetSrc, options.router, {
|
|
658
|
-
logger: options.logger,
|
|
659
|
-
logPrefix: options.logPrefix,
|
|
660
|
-
context: (_g = options.context) !== null && _g !== void 0 ? _g : `encode:${name}`,
|
|
661
|
-
messageName: name,
|
|
662
|
-
}, options.seq);
|
|
655
|
+
return encodeProtobufFrame(messageTypeId, pbBytes, options.packetSrc, options.router, options.seq);
|
|
663
656
|
},
|
|
664
|
-
decodeFrame(schemas, frame
|
|
665
|
-
|
|
666
|
-
const {
|
|
667
|
-
logger: options.logger,
|
|
668
|
-
logPrefix: options.logPrefix,
|
|
669
|
-
context: (_a = options.context) !== null && _a !== void 0 ? _a : 'decode',
|
|
670
|
-
});
|
|
671
|
-
const { Message, messageName } = createProtocolV2MessageFromType(messageTypeId, schemas);
|
|
657
|
+
decodeFrame(schemas, frame) {
|
|
658
|
+
const { messageTypeId, pbPayload, seq, messageName } = this.inspectFrame(schemas, frame);
|
|
659
|
+
const { Message } = createProtocolV2MessageFromType(messageTypeId, schemas);
|
|
672
660
|
const rxByteBuffer = ByteBuffer__default["default"].wrap(Buffer.from(pbPayload));
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
661
|
+
let message;
|
|
662
|
+
try {
|
|
663
|
+
message = decode(Message, rxByteBuffer);
|
|
664
|
+
}
|
|
665
|
+
catch (cause) {
|
|
666
|
+
const error = new Error(`Protocol V2 protobuf decode failed for "${messageName}" ` +
|
|
667
|
+
`(${messageTypeId}, ${pbPayload.length}-byte payload); ` +
|
|
668
|
+
'the payload is malformed or incompatible with the active SDK schema.');
|
|
669
|
+
error.cause = cause;
|
|
670
|
+
throw error;
|
|
671
|
+
}
|
|
681
672
|
return {
|
|
682
673
|
message,
|
|
683
674
|
messageName,
|
|
@@ -700,6 +691,16 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
|
700
691
|
decodeMessage: decodeMessage
|
|
701
692
|
});
|
|
702
693
|
|
|
694
|
+
class ProtocolV2SequenceCursor {
|
|
695
|
+
constructor() {
|
|
696
|
+
this.current = 0;
|
|
697
|
+
}
|
|
698
|
+
next() {
|
|
699
|
+
this.current = nextProtoSeq(this.current);
|
|
700
|
+
return this.current;
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
|
|
703
704
|
const ERROR = 'Wrong result type.';
|
|
704
705
|
function info(res) {
|
|
705
706
|
if (typeof res !== 'object' || res == null) {
|
|
@@ -816,11 +817,6 @@ function bytesToHex(bytes) {
|
|
|
816
817
|
.map(b => b.toString(16).padStart(2, '0'))
|
|
817
818
|
.join('');
|
|
818
819
|
}
|
|
819
|
-
const PROTOCOL_V2_DEBUG_HEADER_BYTES = 7;
|
|
820
|
-
const PROTOCOL_V2_DEBUG_ARRAY_ITEMS_LIMIT = 20;
|
|
821
|
-
const PROTOCOL_V2_DEBUG_OBJECT_KEYS_LIMIT = 40;
|
|
822
|
-
const PROTOCOL_V2_DEBUG_STRING_LIMIT = 512;
|
|
823
|
-
const PROTOCOL_V2_DEBUG_DEPTH_LIMIT = 4;
|
|
824
820
|
const HIGH_VOLUME_PROTOCOL_V2_CALLS = new Set([
|
|
825
821
|
...LogBlockCommand,
|
|
826
822
|
'FilesystemFileRead',
|
|
@@ -830,80 +826,6 @@ const HIGH_VOLUME_PROTOCOL_V2_CALLS = new Set([
|
|
|
830
826
|
function shouldReduceProtocolV2Debug(name) {
|
|
831
827
|
return HIGH_VOLUME_PROTOCOL_V2_CALLS.has(name);
|
|
832
828
|
}
|
|
833
|
-
function frameHeaderDebugHex(frame) {
|
|
834
|
-
return bytesToHex(frame.slice(0, PROTOCOL_V2_DEBUG_HEADER_BYTES));
|
|
835
|
-
}
|
|
836
|
-
function getBinaryByteLength(value) {
|
|
837
|
-
if (value instanceof ArrayBuffer) {
|
|
838
|
-
return value.byteLength;
|
|
839
|
-
}
|
|
840
|
-
if (ArrayBuffer.isView(value)) {
|
|
841
|
-
return value.byteLength;
|
|
842
|
-
}
|
|
843
|
-
if (typeof Blob !== 'undefined' && value instanceof Blob) {
|
|
844
|
-
return value.size;
|
|
845
|
-
}
|
|
846
|
-
return undefined;
|
|
847
|
-
}
|
|
848
|
-
function summarizeRedactedData(value) {
|
|
849
|
-
const byteLength = getBinaryByteLength(value);
|
|
850
|
-
if (byteLength !== undefined) {
|
|
851
|
-
return `[redacted data: ${byteLength} bytes]`;
|
|
852
|
-
}
|
|
853
|
-
if (typeof value === 'string') {
|
|
854
|
-
return `[redacted data: string length=${value.length}]`;
|
|
855
|
-
}
|
|
856
|
-
if (Array.isArray(value)) {
|
|
857
|
-
return `[redacted data: array length=${value.length}]`;
|
|
858
|
-
}
|
|
859
|
-
if (value && typeof value === 'object') {
|
|
860
|
-
return `[redacted data: object keys=${Object.keys(value).length}]`;
|
|
861
|
-
}
|
|
862
|
-
return `[redacted data: ${typeof value}]`;
|
|
863
|
-
}
|
|
864
|
-
function sanitizeProtocolV2DebugPayload(value, key = '', depth = 0) {
|
|
865
|
-
if (/^(data|payload)$/i.test(key) && value !== null && value !== undefined) {
|
|
866
|
-
return summarizeRedactedData(value);
|
|
867
|
-
}
|
|
868
|
-
if (/(passphrase|pin|mnemonic|seed|private)/i.test(key)) {
|
|
869
|
-
return '[redacted sensitive value]';
|
|
870
|
-
}
|
|
871
|
-
const byteLength = getBinaryByteLength(value);
|
|
872
|
-
if (byteLength !== undefined) {
|
|
873
|
-
return `[binary: ${byteLength} bytes]`;
|
|
874
|
-
}
|
|
875
|
-
if (typeof value === 'string') {
|
|
876
|
-
return value.length > PROTOCOL_V2_DEBUG_STRING_LIMIT
|
|
877
|
-
? `${value.slice(0, PROTOCOL_V2_DEBUG_STRING_LIMIT)}... (len=${value.length})`
|
|
878
|
-
: value;
|
|
879
|
-
}
|
|
880
|
-
if (!value || typeof value !== 'object') {
|
|
881
|
-
return value;
|
|
882
|
-
}
|
|
883
|
-
if (depth >= PROTOCOL_V2_DEBUG_DEPTH_LIMIT) {
|
|
884
|
-
return Array.isArray(value)
|
|
885
|
-
? `[array length=${value.length}]`
|
|
886
|
-
: `[object keys=${Object.keys(value).length}]`;
|
|
887
|
-
}
|
|
888
|
-
if (Array.isArray(value)) {
|
|
889
|
-
const items = value
|
|
890
|
-
.slice(0, PROTOCOL_V2_DEBUG_ARRAY_ITEMS_LIMIT)
|
|
891
|
-
.map(item => sanitizeProtocolV2DebugPayload(item, key, depth + 1));
|
|
892
|
-
if (value.length > PROTOCOL_V2_DEBUG_ARRAY_ITEMS_LIMIT) {
|
|
893
|
-
items.push(`... (${value.length - PROTOCOL_V2_DEBUG_ARRAY_ITEMS_LIMIT} more)`);
|
|
894
|
-
}
|
|
895
|
-
return items;
|
|
896
|
-
}
|
|
897
|
-
const entries = Object.entries(value).slice(0, PROTOCOL_V2_DEBUG_OBJECT_KEYS_LIMIT);
|
|
898
|
-
const sanitized = {};
|
|
899
|
-
entries.forEach(([entryKey, entryValue]) => {
|
|
900
|
-
sanitized[entryKey] = sanitizeProtocolV2DebugPayload(entryValue, entryKey, depth + 1);
|
|
901
|
-
});
|
|
902
|
-
if (Object.keys(value).length > PROTOCOL_V2_DEBUG_OBJECT_KEYS_LIMIT) {
|
|
903
|
-
sanitized.__truncated__ = `${Object.keys(value).length - PROTOCOL_V2_DEBUG_OBJECT_KEYS_LIMIT} more keys`;
|
|
904
|
-
}
|
|
905
|
-
return sanitized;
|
|
906
|
-
}
|
|
907
829
|
const COMMON_TERMINAL_RESPONSE_TYPES = new Set([
|
|
908
830
|
'Failure',
|
|
909
831
|
'ButtonRequest',
|
|
@@ -951,12 +873,12 @@ function withProtocolTimeout(promise, timeoutMs, createTimeoutError, onTimeout)
|
|
|
951
873
|
}
|
|
952
874
|
});
|
|
953
875
|
}
|
|
954
|
-
const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 30000;
|
|
955
876
|
class ProtocolV2Session {
|
|
956
877
|
constructor(options) {
|
|
878
|
+
var _a;
|
|
957
879
|
this.pendingCall = Promise.resolve();
|
|
958
|
-
this.protoSeq = 0;
|
|
959
880
|
this.options = options;
|
|
881
|
+
this.sequenceCursor = (_a = options.sequenceCursor) !== null && _a !== void 0 ? _a : new ProtocolV2SequenceCursor();
|
|
960
882
|
}
|
|
961
883
|
call(name, data, callOptions = {}) {
|
|
962
884
|
const run = () => this.executeCall(name, data, callOptions);
|
|
@@ -965,57 +887,47 @@ class ProtocolV2Session {
|
|
|
965
887
|
return result;
|
|
966
888
|
}
|
|
967
889
|
executeCall(name, data, callOptions) {
|
|
968
|
-
var _a, _b;
|
|
969
890
|
return __awaiter(this, void 0, void 0, function* () {
|
|
970
|
-
const { schemas, router, packetSrc = PROTOCOL_V2_PACKET_SRC_COMMAND, writeFrame, readFrame, logger, logPrefix = 'ProtocolV2', createTimeoutError, } = this.options;
|
|
891
|
+
const { schemas, router, packetSrc = PROTOCOL_V2_PACKET_SRC_COMMAND, maxFrameBytes, prepareCall, writeFrame, readFrame, logger, logPrefix = 'ProtocolV2', createTimeoutError, generation = 0, } = this.options;
|
|
971
892
|
const shouldReduceDebug = shouldReduceProtocolV2Debug(name);
|
|
972
|
-
|
|
893
|
+
const callContext = {
|
|
894
|
+
messageName: name,
|
|
895
|
+
timeoutMs: callOptions.timeoutMs,
|
|
896
|
+
highVolume: shouldReduceDebug,
|
|
897
|
+
generation,
|
|
898
|
+
};
|
|
899
|
+
yield (prepareCall === null || prepareCall === void 0 ? void 0 : prepareCall(callContext));
|
|
900
|
+
const protoSeq = this.sequenceCursor.next();
|
|
973
901
|
const frame = ProtocolV2.encodeFrame(schemas, name, data, {
|
|
974
902
|
packetSrc,
|
|
975
903
|
router,
|
|
976
|
-
seq:
|
|
977
|
-
logger: shouldReduceDebug ? undefined : logger,
|
|
978
|
-
logPrefix,
|
|
979
|
-
context: `tx:${name}`,
|
|
904
|
+
seq: protoSeq,
|
|
980
905
|
});
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
(_a = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _a === void 0 ? void 0 : _a.call(logger, `[${logPrefix}] TX payload name=${name}`, sanitizeProtocolV2DebugPayload(data));
|
|
984
|
-
(_b = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _b === void 0 ? void 0 : _b.call(logger, `[${logPrefix}] TX frame name=${name} len=${frame.length} router=${frame[4]} attr=${frame[5]} seq=${expectedSeq} headerHex=${frameHeaderDebugHex(frame)}`);
|
|
906
|
+
if (maxFrameBytes !== undefined && frame.length > maxFrameBytes) {
|
|
907
|
+
throw new Error(`Protocol V2 frame too large for transport: ${frame.length} > ${maxFrameBytes}`);
|
|
985
908
|
}
|
|
986
|
-
yield
|
|
909
|
+
yield writeFrame(frame, callContext);
|
|
987
910
|
const cancellation = { cancelled: false };
|
|
988
911
|
const readResponse = () => __awaiter(this, void 0, void 0, function* () {
|
|
989
|
-
var
|
|
912
|
+
var _a, _b, _c, _d;
|
|
990
913
|
while (!cancellation.cancelled) {
|
|
991
|
-
const rxFrame = yield readFrame();
|
|
914
|
+
const rxFrame = yield readFrame(callContext);
|
|
992
915
|
if (cancellation.cancelled) {
|
|
993
916
|
break;
|
|
994
917
|
}
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
(_f = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _f === void 0 ? void 0 : _f.call(logger, `[${logPrefix}] RX payload type=${decoded.type} messageTypeId=${decoded.messageTypeId}`, sanitizeProtocolV2DebugPayload(decoded.message));
|
|
1009
|
-
}
|
|
1010
|
-
const response = call(decoded);
|
|
1011
|
-
if ((_g = callOptions.intermediateTypes) === null || _g === void 0 ? void 0 : _g.includes(response.type)) {
|
|
1012
|
-
(_h = callOptions.onIntermediateResponse) === null || _h === void 0 ? void 0 : _h.call(callOptions, response);
|
|
1013
|
-
}
|
|
1014
|
-
else if (isExpectedTerminalResponse(response, callOptions.expectedTypes)) {
|
|
1015
|
-
return response;
|
|
1016
|
-
}
|
|
1017
|
-
else if (!shouldReduceDebug) {
|
|
1018
|
-
(_j = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _j === void 0 ? void 0 : _j.call(logger, `[${logPrefix}] skip unexpected response for ${name}: expected=${(_k = callOptions.expectedTypes) === null || _k === void 0 ? void 0 : _k.join('|')} got=${response.type}`);
|
|
918
|
+
const isAck = ProtocolV2.isAckFrame(rxFrame);
|
|
919
|
+
if (!isAck) {
|
|
920
|
+
const decoded = ProtocolV2.decodeFrame(schemas, rxFrame);
|
|
921
|
+
const response = call(decoded);
|
|
922
|
+
if ((_a = callOptions.intermediateTypes) === null || _a === void 0 ? void 0 : _a.includes(response.type)) {
|
|
923
|
+
(_b = callOptions.onIntermediateResponse) === null || _b === void 0 ? void 0 : _b.call(callOptions, response);
|
|
924
|
+
}
|
|
925
|
+
else if (isExpectedTerminalResponse(response, callOptions.expectedTypes)) {
|
|
926
|
+
return response;
|
|
927
|
+
}
|
|
928
|
+
else if (!shouldReduceDebug) {
|
|
929
|
+
(_c = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _c === void 0 ? void 0 : _c.call(logger, `[${logPrefix}] skip unexpected response for ${name}: expected=${(_d = callOptions.expectedTypes) === null || _d === void 0 ? void 0 : _d.join('|')} got=${response.type}`);
|
|
930
|
+
}
|
|
1019
931
|
}
|
|
1020
932
|
}
|
|
1021
933
|
throw new Error(`Protocol V2 read loop cancelled after timeout for ${name}`);
|
|
@@ -1052,6 +964,247 @@ function probeProtocolV2({ call, timeoutMs, logger, logPrefix = 'ProtocolV2', on
|
|
|
1052
964
|
});
|
|
1053
965
|
}
|
|
1054
966
|
|
|
967
|
+
class ProtocolV2LinkManager {
|
|
968
|
+
constructor(options) {
|
|
969
|
+
this.links = new Map();
|
|
970
|
+
this.sequences = new Map();
|
|
971
|
+
this.callQueues = new Map();
|
|
972
|
+
this.options = options;
|
|
973
|
+
}
|
|
974
|
+
call(key, createAdapter, name, data, options) {
|
|
975
|
+
var _a;
|
|
976
|
+
const run = () => this.executeCall(key, createAdapter, name, data, options);
|
|
977
|
+
const previous = (_a = this.callQueues.get(key)) !== null && _a !== void 0 ? _a : Promise.resolve();
|
|
978
|
+
const result = previous.then(run, run);
|
|
979
|
+
const queue = result.catch(() => undefined);
|
|
980
|
+
this.callQueues.set(key, queue);
|
|
981
|
+
result
|
|
982
|
+
.then(() => this.clearSettledCallQueue(key, queue), () => this.clearSettledCallQueue(key, queue))
|
|
983
|
+
.catch(() => undefined);
|
|
984
|
+
return result;
|
|
985
|
+
}
|
|
986
|
+
invalidateLink(key, reason) {
|
|
987
|
+
var _a, _b;
|
|
988
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
989
|
+
const link = this.links.get(key);
|
|
990
|
+
if (!link)
|
|
991
|
+
return;
|
|
992
|
+
this.links.delete(key);
|
|
993
|
+
link.state.invalidatedReason = reason;
|
|
994
|
+
yield link.adapter.reset(reason);
|
|
995
|
+
yield ((_b = (_a = this.options).onLinkInvalidated) === null || _b === void 0 ? void 0 : _b.call(_a, key, reason));
|
|
996
|
+
});
|
|
997
|
+
}
|
|
998
|
+
invalidateAllLinks(reason) {
|
|
999
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1000
|
+
yield Promise.all(Array.from(this.links.keys(), key => this.invalidateLink(key, reason)));
|
|
1001
|
+
});
|
|
1002
|
+
}
|
|
1003
|
+
dispose(reason) {
|
|
1004
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1005
|
+
yield this.invalidateAllLinks(reason);
|
|
1006
|
+
this.sequences.clear();
|
|
1007
|
+
this.callQueues.clear();
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
1010
|
+
getOrCreateLink(key, createAdapter) {
|
|
1011
|
+
const existing = this.links.get(key);
|
|
1012
|
+
if (existing)
|
|
1013
|
+
return existing;
|
|
1014
|
+
const adapter = createAdapter();
|
|
1015
|
+
const state = {};
|
|
1016
|
+
const assertLinkActive = () => {
|
|
1017
|
+
if (state.invalidatedReason) {
|
|
1018
|
+
throw new Error(state.invalidatedReason);
|
|
1019
|
+
}
|
|
1020
|
+
};
|
|
1021
|
+
let sequenceCursor = this.sequences.get(key);
|
|
1022
|
+
if (!sequenceCursor) {
|
|
1023
|
+
sequenceCursor = new ProtocolV2SequenceCursor();
|
|
1024
|
+
this.sequences.set(key, sequenceCursor);
|
|
1025
|
+
}
|
|
1026
|
+
const session = new ProtocolV2Session({
|
|
1027
|
+
schemas: this.options.getSchemas(),
|
|
1028
|
+
router: adapter.router,
|
|
1029
|
+
maxFrameBytes: adapter.maxFrameBytes,
|
|
1030
|
+
generation: adapter.generation,
|
|
1031
|
+
sequenceCursor,
|
|
1032
|
+
prepareCall: (context) => __awaiter(this, void 0, void 0, function* () {
|
|
1033
|
+
assertLinkActive();
|
|
1034
|
+
yield adapter.prepareCall(context);
|
|
1035
|
+
assertLinkActive();
|
|
1036
|
+
}),
|
|
1037
|
+
writeFrame: (frame, context) => __awaiter(this, void 0, void 0, function* () {
|
|
1038
|
+
assertLinkActive();
|
|
1039
|
+
yield adapter.writeFrame(frame, context);
|
|
1040
|
+
assertLinkActive();
|
|
1041
|
+
}),
|
|
1042
|
+
readFrame: (context) => __awaiter(this, void 0, void 0, function* () {
|
|
1043
|
+
assertLinkActive();
|
|
1044
|
+
const frame = yield adapter.readFrame(context);
|
|
1045
|
+
assertLinkActive();
|
|
1046
|
+
return frame;
|
|
1047
|
+
}),
|
|
1048
|
+
logger: adapter.logger,
|
|
1049
|
+
logPrefix: adapter.logPrefix,
|
|
1050
|
+
createTimeoutError: adapter.createTimeoutError,
|
|
1051
|
+
});
|
|
1052
|
+
const link = { adapter, session, state };
|
|
1053
|
+
this.links.set(key, link);
|
|
1054
|
+
return link;
|
|
1055
|
+
}
|
|
1056
|
+
executeCall(key, createAdapter, name, data, options) {
|
|
1057
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1058
|
+
try {
|
|
1059
|
+
return yield this.getOrCreateLink(key, createAdapter).session.call(name, data, options);
|
|
1060
|
+
}
|
|
1061
|
+
catch (error) {
|
|
1062
|
+
if (this.options.classifyError(error) === 'link-fatal') {
|
|
1063
|
+
const errorMessage = getErrorMessage(error) || 'unknown error';
|
|
1064
|
+
yield this.invalidateLink(key, `Protocol V2 link-fatal error: ${errorMessage}`);
|
|
1065
|
+
}
|
|
1066
|
+
throw error;
|
|
1067
|
+
}
|
|
1068
|
+
});
|
|
1069
|
+
}
|
|
1070
|
+
clearSettledCallQueue(key, queue) {
|
|
1071
|
+
if (this.callQueues.get(key) === queue) {
|
|
1072
|
+
this.callQueues.delete(key);
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
class ProtocolV2UsbTransportBase {
|
|
1078
|
+
constructor(options) {
|
|
1079
|
+
this.protocolV2UsbAssemblers = new Map();
|
|
1080
|
+
this.protocolV2UsbGenerations = new Map();
|
|
1081
|
+
this.protocolV2UsbCancellations = new Map();
|
|
1082
|
+
this.protocolV2UsbOptions = options;
|
|
1083
|
+
this.protocolV2UsbLinks = new ProtocolV2LinkManager({
|
|
1084
|
+
getSchemas: () => this.getProtocolV2UsbSchemas(),
|
|
1085
|
+
classifyError: () => 'link-fatal',
|
|
1086
|
+
onLinkInvalidated: (key, reason) => __awaiter(this, void 0, void 0, function* () {
|
|
1087
|
+
var _a;
|
|
1088
|
+
(_a = this.protocolV2UsbAssemblers.get(key)) === null || _a === void 0 ? void 0 : _a.reset();
|
|
1089
|
+
yield this.resetProtocolV2UsbNativeLink(key, reason);
|
|
1090
|
+
yield this.onProtocolV2UsbLinkInvalidated(key, reason);
|
|
1091
|
+
}),
|
|
1092
|
+
});
|
|
1093
|
+
}
|
|
1094
|
+
onProtocolV2UsbLinkInvalidated(_key, _reason) {
|
|
1095
|
+
}
|
|
1096
|
+
rotateProtocolV2UsbGeneration(key, reason) {
|
|
1097
|
+
var _a;
|
|
1098
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1099
|
+
yield this.protocolV2UsbLinks.invalidateLink(key, reason);
|
|
1100
|
+
const generation = ((_a = this.protocolV2UsbGenerations.get(key)) !== null && _a !== void 0 ? _a : 0) + 1;
|
|
1101
|
+
this.protocolV2UsbGenerations.set(key, generation);
|
|
1102
|
+
this.protocolV2UsbCancellations.set(key, this.createProtocolV2UsbCancellation(generation));
|
|
1103
|
+
this.protocolV2UsbAssemblers.set(key, new ProtocolV2FrameAssembler(this.protocolV2UsbOptions.maxFrameBytes));
|
|
1104
|
+
return generation;
|
|
1105
|
+
});
|
|
1106
|
+
}
|
|
1107
|
+
callProtocolV2Usb(key, name, data, options) {
|
|
1108
|
+
return this.protocolV2UsbLinks.call(key, () => this.createProtocolV2UsbAdapter(key), name, data, options);
|
|
1109
|
+
}
|
|
1110
|
+
invalidateProtocolV2UsbLink(key, reason) {
|
|
1111
|
+
return this.protocolV2UsbLinks.invalidateLink(key, reason);
|
|
1112
|
+
}
|
|
1113
|
+
invalidateAllProtocolV2UsbLinks(reason) {
|
|
1114
|
+
return this.protocolV2UsbLinks.invalidateAllLinks(reason);
|
|
1115
|
+
}
|
|
1116
|
+
disposeProtocolV2UsbLinks(reason) {
|
|
1117
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1118
|
+
yield this.protocolV2UsbLinks.dispose(reason);
|
|
1119
|
+
this.protocolV2UsbAssemblers.clear();
|
|
1120
|
+
this.protocolV2UsbGenerations.clear();
|
|
1121
|
+
this.protocolV2UsbCancellations.clear();
|
|
1122
|
+
});
|
|
1123
|
+
}
|
|
1124
|
+
createProtocolV2UsbAdapter(key) {
|
|
1125
|
+
const generation = this.protocolV2UsbGenerations.get(key);
|
|
1126
|
+
if (generation === undefined) {
|
|
1127
|
+
throw new Error('Protocol V2 USB generation has not been initialized');
|
|
1128
|
+
}
|
|
1129
|
+
const cancellation = this.protocolV2UsbCancellations.get(key);
|
|
1130
|
+
if (!cancellation || cancellation.generation !== generation) {
|
|
1131
|
+
throw new Error('Protocol V2 USB cancellation state has not been initialized');
|
|
1132
|
+
}
|
|
1133
|
+
const assertCurrentGeneration = () => {
|
|
1134
|
+
if (cancellation.reason) {
|
|
1135
|
+
throw new Error(cancellation.reason);
|
|
1136
|
+
}
|
|
1137
|
+
if (this.protocolV2UsbGenerations.get(key) !== generation) {
|
|
1138
|
+
throw new Error('Protocol V2 USB connection generation changed');
|
|
1139
|
+
}
|
|
1140
|
+
};
|
|
1141
|
+
return {
|
|
1142
|
+
router: this.protocolV2UsbOptions.router,
|
|
1143
|
+
maxFrameBytes: this.protocolV2UsbOptions.maxFrameBytes,
|
|
1144
|
+
generation,
|
|
1145
|
+
prepareCall: () => {
|
|
1146
|
+
assertCurrentGeneration();
|
|
1147
|
+
this.getProtocolV2UsbAssembler(key).reset();
|
|
1148
|
+
},
|
|
1149
|
+
writeFrame: (frame, context) => __awaiter(this, void 0, void 0, function* () {
|
|
1150
|
+
assertCurrentGeneration();
|
|
1151
|
+
yield this.writeProtocolV2UsbPacket(key, frame, context);
|
|
1152
|
+
assertCurrentGeneration();
|
|
1153
|
+
}),
|
|
1154
|
+
readFrame: (context) => __awaiter(this, void 0, void 0, function* () {
|
|
1155
|
+
assertCurrentGeneration();
|
|
1156
|
+
const assembler = this.getProtocolV2UsbAssembler(key);
|
|
1157
|
+
let frame = assembler.push(new Uint8Array(0));
|
|
1158
|
+
while (!frame) {
|
|
1159
|
+
const packetRead = this.readProtocolV2UsbPacket(key, context).then(packet => ({
|
|
1160
|
+
packet,
|
|
1161
|
+
}));
|
|
1162
|
+
const cancelled = cancellation.promise.then(reason => ({ reason }));
|
|
1163
|
+
const result = yield Promise.race([packetRead, cancelled]);
|
|
1164
|
+
if ('reason' in result) {
|
|
1165
|
+
throw new Error(result.reason);
|
|
1166
|
+
}
|
|
1167
|
+
assertCurrentGeneration();
|
|
1168
|
+
frame = assembler.push(result.packet);
|
|
1169
|
+
}
|
|
1170
|
+
assertCurrentGeneration();
|
|
1171
|
+
return frame;
|
|
1172
|
+
}),
|
|
1173
|
+
reset: (reason) => {
|
|
1174
|
+
var _a;
|
|
1175
|
+
cancellation.cancel(reason);
|
|
1176
|
+
(_a = this.protocolV2UsbAssemblers.get(key)) === null || _a === void 0 ? void 0 : _a.reset();
|
|
1177
|
+
},
|
|
1178
|
+
logger: this.getProtocolV2UsbLogger(),
|
|
1179
|
+
logPrefix: this.protocolV2UsbOptions.logPrefix,
|
|
1180
|
+
createTimeoutError: (messageName, timeoutMs) => this.createProtocolV2UsbTimeoutError(messageName, timeoutMs),
|
|
1181
|
+
};
|
|
1182
|
+
}
|
|
1183
|
+
getProtocolV2UsbAssembler(key) {
|
|
1184
|
+
const assembler = this.protocolV2UsbAssemblers.get(key);
|
|
1185
|
+
if (!assembler) {
|
|
1186
|
+
throw new Error('Protocol V2 USB assembler has not been initialized');
|
|
1187
|
+
}
|
|
1188
|
+
return assembler;
|
|
1189
|
+
}
|
|
1190
|
+
createProtocolV2UsbCancellation(generation) {
|
|
1191
|
+
let resolveCancellation = () => undefined;
|
|
1192
|
+
const cancellation = {
|
|
1193
|
+
generation,
|
|
1194
|
+
promise: new Promise(resolve => {
|
|
1195
|
+
resolveCancellation = resolve;
|
|
1196
|
+
}),
|
|
1197
|
+
cancel: reason => {
|
|
1198
|
+
if (cancellation.reason)
|
|
1199
|
+
return;
|
|
1200
|
+
cancellation.reason = reason;
|
|
1201
|
+
resolveCancellation(reason);
|
|
1202
|
+
},
|
|
1203
|
+
};
|
|
1204
|
+
return cancellation;
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1055
1208
|
exports.AptosTransactionType = void 0;
|
|
1056
1209
|
(function (AptosTransactionType) {
|
|
1057
1210
|
AptosTransactionType[AptosTransactionType["STANDARD"] = 0] = "STANDARD";
|
|
@@ -1227,6 +1380,9 @@ exports.FailureType = void 0;
|
|
|
1227
1380
|
FailureType[FailureType["Failure_WipeCodeMismatch"] = 13] = "Failure_WipeCodeMismatch";
|
|
1228
1381
|
FailureType[FailureType["Failure_InvalidSession"] = 14] = "Failure_InvalidSession";
|
|
1229
1382
|
FailureType[FailureType["Failure_FirmwareError"] = 99] = "Failure_FirmwareError";
|
|
1383
|
+
FailureType[FailureType["Failure_InvalidMessage"] = 1] = "Failure_InvalidMessage";
|
|
1384
|
+
FailureType[FailureType["Failure_UndefinedError"] = 2] = "Failure_UndefinedError";
|
|
1385
|
+
FailureType[FailureType["Failure_UsageError"] = 3] = "Failure_UsageError";
|
|
1230
1386
|
})(exports.FailureType || (exports.FailureType = {}));
|
|
1231
1387
|
exports.Enum_ButtonRequestType = void 0;
|
|
1232
1388
|
(function (Enum_ButtonRequestType) {
|
|
@@ -1295,6 +1451,24 @@ exports.EthereumDataType = void 0;
|
|
|
1295
1451
|
EthereumDataType[EthereumDataType["ARRAY"] = 7] = "ARRAY";
|
|
1296
1452
|
EthereumDataType[EthereumDataType["STRUCT"] = 8] = "STRUCT";
|
|
1297
1453
|
})(exports.EthereumDataType || (exports.EthereumDataType = {}));
|
|
1454
|
+
exports.Enum_KaspaInputScriptType = void 0;
|
|
1455
|
+
(function (Enum_KaspaInputScriptType) {
|
|
1456
|
+
Enum_KaspaInputScriptType[Enum_KaspaInputScriptType["KASPA_SPEND_P2PK_SCHNORR"] = 0] = "KASPA_SPEND_P2PK_SCHNORR";
|
|
1457
|
+
Enum_KaspaInputScriptType[Enum_KaspaInputScriptType["KASPA_SPEND_P2PK_ECDSA"] = 1] = "KASPA_SPEND_P2PK_ECDSA";
|
|
1458
|
+
})(exports.Enum_KaspaInputScriptType || (exports.Enum_KaspaInputScriptType = {}));
|
|
1459
|
+
exports.Enum_KaspaOutputScriptType = void 0;
|
|
1460
|
+
(function (Enum_KaspaOutputScriptType) {
|
|
1461
|
+
Enum_KaspaOutputScriptType[Enum_KaspaOutputScriptType["KASPA_PAYTOADDRESS"] = 0] = "KASPA_PAYTOADDRESS";
|
|
1462
|
+
Enum_KaspaOutputScriptType[Enum_KaspaOutputScriptType["KASPA_PAYTOCHANGE"] = 1] = "KASPA_PAYTOCHANGE";
|
|
1463
|
+
})(exports.Enum_KaspaOutputScriptType || (exports.Enum_KaspaOutputScriptType = {}));
|
|
1464
|
+
exports.Enum_KaspaRequestType = void 0;
|
|
1465
|
+
(function (Enum_KaspaRequestType) {
|
|
1466
|
+
Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_INPUT"] = 0] = "KASPA_TX_INPUT";
|
|
1467
|
+
Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_OUTPUT"] = 1] = "KASPA_TX_OUTPUT";
|
|
1468
|
+
Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_PAYLOAD"] = 2] = "KASPA_TX_PAYLOAD";
|
|
1469
|
+
Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_FINISHED"] = 3] = "KASPA_TX_FINISHED";
|
|
1470
|
+
Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_PREV_META"] = 4] = "KASPA_TX_PREV_META";
|
|
1471
|
+
})(exports.Enum_KaspaRequestType || (exports.Enum_KaspaRequestType = {}));
|
|
1298
1472
|
exports.Enum_BackupType = void 0;
|
|
1299
1473
|
(function (Enum_BackupType) {
|
|
1300
1474
|
Enum_BackupType[Enum_BackupType["Bip39"] = 0] = "Bip39";
|
|
@@ -1488,6 +1662,11 @@ exports.CommandFlags = void 0;
|
|
|
1488
1662
|
CommandFlags[CommandFlags["Default"] = 0] = "Default";
|
|
1489
1663
|
CommandFlags[CommandFlags["Factory_Only"] = 1] = "Factory_Only";
|
|
1490
1664
|
})(exports.CommandFlags || (exports.CommandFlags = {}));
|
|
1665
|
+
exports.WallpaperTarget = void 0;
|
|
1666
|
+
(function (WallpaperTarget) {
|
|
1667
|
+
WallpaperTarget[WallpaperTarget["Home"] = 0] = "Home";
|
|
1668
|
+
WallpaperTarget[WallpaperTarget["Lock"] = 1] = "Lock";
|
|
1669
|
+
})(exports.WallpaperTarget || (exports.WallpaperTarget = {}));
|
|
1491
1670
|
exports.MoneroNetworkType = void 0;
|
|
1492
1671
|
(function (MoneroNetworkType) {
|
|
1493
1672
|
MoneroNetworkType[MoneroNetworkType["MAINNET"] = 0] = "MAINNET";
|
|
@@ -1495,23 +1674,82 @@ exports.MoneroNetworkType = void 0;
|
|
|
1495
1674
|
MoneroNetworkType[MoneroNetworkType["STAGENET"] = 2] = "STAGENET";
|
|
1496
1675
|
MoneroNetworkType[MoneroNetworkType["FAKECHAIN"] = 3] = "FAKECHAIN";
|
|
1497
1676
|
})(exports.MoneroNetworkType || (exports.MoneroNetworkType = {}));
|
|
1498
|
-
exports.
|
|
1499
|
-
(function (
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1677
|
+
exports.ViewTipType = void 0;
|
|
1678
|
+
(function (ViewTipType) {
|
|
1679
|
+
ViewTipType[ViewTipType["Default"] = 0] = "Default";
|
|
1680
|
+
ViewTipType[ViewTipType["Highlight"] = 1] = "Highlight";
|
|
1681
|
+
ViewTipType[ViewTipType["Recommend"] = 2] = "Recommend";
|
|
1682
|
+
ViewTipType[ViewTipType["Warning"] = 3] = "Warning";
|
|
1683
|
+
ViewTipType[ViewTipType["Danger"] = 4] = "Danger";
|
|
1684
|
+
})(exports.ViewTipType || (exports.ViewTipType = {}));
|
|
1685
|
+
exports.ViewSignLayout = void 0;
|
|
1686
|
+
(function (ViewSignLayout) {
|
|
1687
|
+
ViewSignLayout[ViewSignLayout["LayoutDefault"] = 0] = "LayoutDefault";
|
|
1688
|
+
ViewSignLayout[ViewSignLayout["LayoutSafeTxCreate"] = 1] = "LayoutSafeTxCreate";
|
|
1689
|
+
ViewSignLayout[ViewSignLayout["LayoutFinalConfirm"] = 2] = "LayoutFinalConfirm";
|
|
1690
|
+
ViewSignLayout[ViewSignLayout["Layout7702"] = 3] = "Layout7702";
|
|
1691
|
+
ViewSignLayout[ViewSignLayout["LayoutFlat"] = 4] = "LayoutFlat";
|
|
1692
|
+
ViewSignLayout[ViewSignLayout["LayoutEthApprove"] = 5] = "LayoutEthApprove";
|
|
1693
|
+
})(exports.ViewSignLayout || (exports.ViewSignLayout = {}));
|
|
1694
|
+
exports.DeviceErrorCode = void 0;
|
|
1695
|
+
(function (DeviceErrorCode) {
|
|
1696
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_None"] = 0] = "DeviceError_None";
|
|
1697
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_Busy"] = 1] = "DeviceError_Busy";
|
|
1698
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_NotInitialized"] = 2] = "DeviceError_NotInitialized";
|
|
1699
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_ActionCancelled"] = 3] = "DeviceError_ActionCancelled";
|
|
1700
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_PinAlreadyUsed"] = 4] = "DeviceError_PinAlreadyUsed";
|
|
1701
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_PersistFailed"] = 5] = "DeviceError_PersistFailed";
|
|
1702
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_SeError"] = 6] = "DeviceError_SeError";
|
|
1703
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_InvalidLanguage"] = 7] = "DeviceError_InvalidLanguage";
|
|
1704
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_WallpaperNotUsable"] = 8] = "DeviceError_WallpaperNotUsable";
|
|
1705
|
+
DeviceErrorCode[DeviceErrorCode["DeviceError_DeviceLocked"] = 9] = "DeviceError_DeviceLocked";
|
|
1706
|
+
})(exports.DeviceErrorCode || (exports.DeviceErrorCode = {}));
|
|
1509
1707
|
exports.DeviceRebootType = void 0;
|
|
1510
1708
|
(function (DeviceRebootType) {
|
|
1511
1709
|
DeviceRebootType[DeviceRebootType["Normal"] = 0] = "Normal";
|
|
1512
1710
|
DeviceRebootType[DeviceRebootType["Romloader"] = 1] = "Romloader";
|
|
1513
1711
|
DeviceRebootType[DeviceRebootType["Bootloader"] = 2] = "Bootloader";
|
|
1514
1712
|
})(exports.DeviceRebootType || (exports.DeviceRebootType = {}));
|
|
1713
|
+
exports.DeviceSettingsPage = void 0;
|
|
1714
|
+
(function (DeviceSettingsPage) {
|
|
1715
|
+
DeviceSettingsPage[DeviceSettingsPage["DeviceReset"] = 0] = "DeviceReset";
|
|
1716
|
+
DeviceSettingsPage[DeviceSettingsPage["DevicePinChange"] = 1] = "DevicePinChange";
|
|
1717
|
+
DeviceSettingsPage[DeviceSettingsPage["DevicePassphrase"] = 2] = "DevicePassphrase";
|
|
1718
|
+
DeviceSettingsPage[DeviceSettingsPage["DeviceAirgap"] = 3] = "DeviceAirgap";
|
|
1719
|
+
})(exports.DeviceSettingsPage || (exports.DeviceSettingsPage = {}));
|
|
1720
|
+
exports.DeviceFirmwareTargetType = void 0;
|
|
1721
|
+
(function (DeviceFirmwareTargetType) {
|
|
1722
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_INVALID"] = 0] = "FW_MGMT_TARGET_INVALID";
|
|
1723
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_CRATE"] = 1] = "FW_MGMT_TARGET_CRATE";
|
|
1724
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_ROMLOADER"] = 2] = "FW_MGMT_TARGET_ROMLOADER";
|
|
1725
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_BOOTLOADER"] = 3] = "FW_MGMT_TARGET_BOOTLOADER";
|
|
1726
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_APPLICATION_P1"] = 4] = "FW_MGMT_TARGET_APPLICATION_P1";
|
|
1727
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_APPLICATION_P2"] = 5] = "FW_MGMT_TARGET_APPLICATION_P2";
|
|
1728
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_COPROCESSOR"] = 6] = "FW_MGMT_TARGET_COPROCESSOR";
|
|
1729
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE01"] = 7] = "FW_MGMT_TARGET_SE01";
|
|
1730
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE02"] = 8] = "FW_MGMT_TARGET_SE02";
|
|
1731
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE03"] = 9] = "FW_MGMT_TARGET_SE03";
|
|
1732
|
+
DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE04"] = 10] = "FW_MGMT_TARGET_SE04";
|
|
1733
|
+
})(exports.DeviceFirmwareTargetType || (exports.DeviceFirmwareTargetType = {}));
|
|
1734
|
+
exports.DeviceFirmwareUpdateTaskStatus = void 0;
|
|
1735
|
+
(function (DeviceFirmwareUpdateTaskStatus) {
|
|
1736
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_PENDING"] = 0] = "FW_MGMT_UPDATER_TASK_STATUS_PENDING";
|
|
1737
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_IN_PROGRESS"] = 1] = "FW_MGMT_UPDATER_TASK_STATUS_IN_PROGRESS";
|
|
1738
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FINISHED"] = 2] = "FW_MGMT_UPDATER_TASK_STATUS_FINISHED";
|
|
1739
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_NOT_FOUND"] = 3] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_NOT_FOUND";
|
|
1740
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_READ"] = 4] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_READ";
|
|
1741
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_WRITE"] = 5] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_WRITE";
|
|
1742
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_VERIFY"] = 6] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_VERIFY";
|
|
1743
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_INSTALL"] = 7] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_INSTALL";
|
|
1744
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_ABORT"] = 8] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_ABORT";
|
|
1745
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_BUSY"] = 9] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_BUSY";
|
|
1746
|
+
DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_ENTRY_OUT_OF_BOUNDS"] = 10] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_ENTRY_OUT_OF_BOUNDS";
|
|
1747
|
+
})(exports.DeviceFirmwareUpdateTaskStatus || (exports.DeviceFirmwareUpdateTaskStatus = {}));
|
|
1748
|
+
exports.DeviceFactoryAck = void 0;
|
|
1749
|
+
(function (DeviceFactoryAck) {
|
|
1750
|
+
DeviceFactoryAck[DeviceFactoryAck["FACTORY_ACK_SUCCESS"] = 0] = "FACTORY_ACK_SUCCESS";
|
|
1751
|
+
DeviceFactoryAck[DeviceFactoryAck["FACTORY_ACK_FAIL"] = 1] = "FACTORY_ACK_FAIL";
|
|
1752
|
+
})(exports.DeviceFactoryAck || (exports.DeviceFactoryAck = {}));
|
|
1515
1753
|
exports.DeviceType = void 0;
|
|
1516
1754
|
(function (DeviceType) {
|
|
1517
1755
|
DeviceType[DeviceType["CLASSIC1"] = 0] = "CLASSIC1";
|
|
@@ -1520,54 +1758,93 @@ exports.DeviceType = void 0;
|
|
|
1520
1758
|
DeviceType[DeviceType["TOUCH"] = 3] = "TOUCH";
|
|
1521
1759
|
DeviceType[DeviceType["PRO"] = 5] = "PRO";
|
|
1522
1760
|
DeviceType[DeviceType["CLASSIC1S_PURE"] = 6] = "CLASSIC1S_PURE";
|
|
1761
|
+
DeviceType[DeviceType["PRO2"] = 7] = "PRO2";
|
|
1762
|
+
DeviceType[DeviceType["NEO"] = 8] = "NEO";
|
|
1523
1763
|
})(exports.DeviceType || (exports.DeviceType = {}));
|
|
1524
|
-
exports.
|
|
1525
|
-
(function (
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
})(exports.
|
|
1529
|
-
exports.
|
|
1530
|
-
(function (
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
})(exports.
|
|
1535
|
-
exports.
|
|
1536
|
-
(function (
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
(
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1764
|
+
exports.DeviceSeType = void 0;
|
|
1765
|
+
(function (DeviceSeType) {
|
|
1766
|
+
DeviceSeType[DeviceSeType["THD89"] = 0] = "THD89";
|
|
1767
|
+
DeviceSeType[DeviceSeType["SE608A"] = 1] = "SE608A";
|
|
1768
|
+
})(exports.DeviceSeType || (exports.DeviceSeType = {}));
|
|
1769
|
+
exports.DeviceSEState = void 0;
|
|
1770
|
+
(function (DeviceSEState) {
|
|
1771
|
+
DeviceSEState[DeviceSEState["BOOT"] = 0] = "BOOT";
|
|
1772
|
+
DeviceSEState[DeviceSEState["APP_FACTORY"] = 51] = "APP_FACTORY";
|
|
1773
|
+
DeviceSEState[DeviceSEState["APP"] = 85] = "APP";
|
|
1774
|
+
})(exports.DeviceSEState || (exports.DeviceSEState = {}));
|
|
1775
|
+
exports.DeviceSessionAskPin_FailureSubCodes = void 0;
|
|
1776
|
+
(function (DeviceSessionAskPin_FailureSubCodes) {
|
|
1777
|
+
DeviceSessionAskPin_FailureSubCodes[DeviceSessionAskPin_FailureSubCodes["UserCancel"] = 1] = "UserCancel";
|
|
1778
|
+
})(exports.DeviceSessionAskPin_FailureSubCodes || (exports.DeviceSessionAskPin_FailureSubCodes = {}));
|
|
1779
|
+
exports.DevOnboardingStep = void 0;
|
|
1780
|
+
(function (DevOnboardingStep) {
|
|
1781
|
+
DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_UNKNOWN"] = 0] = "DEV_ONBOARDING_STEP_UNKNOWN";
|
|
1782
|
+
DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_CHECKING"] = 1] = "DEV_ONBOARDING_STEP_CHECKING";
|
|
1783
|
+
DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_PERSONALIZATION"] = 2] = "DEV_ONBOARDING_STEP_PERSONALIZATION";
|
|
1784
|
+
DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_PIN"] = 3] = "DEV_ONBOARDING_STEP_PIN";
|
|
1785
|
+
DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_SETUP"] = 4] = "DEV_ONBOARDING_STEP_SETUP";
|
|
1786
|
+
DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_DONE"] = 5] = "DEV_ONBOARDING_STEP_DONE";
|
|
1787
|
+
})(exports.DevOnboardingStep || (exports.DevOnboardingStep = {}));
|
|
1788
|
+
exports.DevOnboardingPhase = void 0;
|
|
1789
|
+
(function (DevOnboardingPhase) {
|
|
1790
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_UNKNOWN"] = 0] = "DEV_ONBOARDING_PHASE_UNKNOWN";
|
|
1791
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SAFETY_CHECK"] = 1] = "DEV_ONBOARDING_PHASE_SAFETY_CHECK";
|
|
1792
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_PIN_SETUP"] = 2] = "DEV_ONBOARDING_PHASE_PIN_SETUP";
|
|
1793
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_FINGERPRINT_SETUP"] = 3] = "DEV_ONBOARDING_PHASE_FINGERPRINT_SETUP";
|
|
1794
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SETUP_CHOICE"] = 4] = "DEV_ONBOARDING_PHASE_SETUP_CHOICE";
|
|
1795
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_WALLET_CREATE_START"] = 5] = "DEV_ONBOARDING_PHASE_WALLET_CREATE_START";
|
|
1796
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_VIEW"] = 6] = "DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_VIEW";
|
|
1797
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_CONFIRM"] = 7] = "DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_CONFIRM";
|
|
1798
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RESTORE_METHOD_CHOICE"] = 8] = "DEV_ONBOARDING_PHASE_RESTORE_METHOD_CHOICE";
|
|
1799
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_RESTORE"] = 9] = "DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_RESTORE";
|
|
1800
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SEEDCARD_RESTORE"] = 10] = "DEV_ONBOARDING_PHASE_SEEDCARD_RESTORE";
|
|
1801
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_WALLET_READY"] = 11] = "DEV_ONBOARDING_PHASE_WALLET_READY";
|
|
1802
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP_PROMPT"] = 12] = "DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP_PROMPT";
|
|
1803
|
+
DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP"] = 13] = "DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP";
|
|
1804
|
+
})(exports.DevOnboardingPhase || (exports.DevOnboardingPhase = {}));
|
|
1805
|
+
exports.DevOnboardingSetupKind = void 0;
|
|
1806
|
+
(function (DevOnboardingSetupKind) {
|
|
1807
|
+
DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_UNKNOWN"] = 0] = "DEV_ONBOARDING_SETUP_KIND_UNKNOWN";
|
|
1808
|
+
DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_CHOICE"] = 1] = "DEV_ONBOARDING_SETUP_KIND_CHOICE";
|
|
1809
|
+
DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_CREATE"] = 2] = "DEV_ONBOARDING_SETUP_KIND_CREATE";
|
|
1810
|
+
DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_RESTORE"] = 3] = "DEV_ONBOARDING_SETUP_KIND_RESTORE";
|
|
1811
|
+
})(exports.DevOnboardingSetupKind || (exports.DevOnboardingSetupKind = {}));
|
|
1812
|
+
exports.DevOnboardingSetupMethod = void 0;
|
|
1813
|
+
(function (DevOnboardingSetupMethod) {
|
|
1814
|
+
DevOnboardingSetupMethod[DevOnboardingSetupMethod["DEV_ONBOARDING_SETUP_METHOD_UNKNOWN"] = 0] = "DEV_ONBOARDING_SETUP_METHOD_UNKNOWN";
|
|
1815
|
+
DevOnboardingSetupMethod[DevOnboardingSetupMethod["DEV_ONBOARDING_SETUP_METHOD_RECOVERY_PHRASE"] = 1] = "DEV_ONBOARDING_SETUP_METHOD_RECOVERY_PHRASE";
|
|
1816
|
+
DevOnboardingSetupMethod[DevOnboardingSetupMethod["DEV_ONBOARDING_SETUP_METHOD_SEEDCARD"] = 2] = "DEV_ONBOARDING_SETUP_METHOD_SEEDCARD";
|
|
1817
|
+
})(exports.DevOnboardingSetupMethod || (exports.DevOnboardingSetupMethod = {}));
|
|
1818
|
+
exports.ProtocolV2FailureType = void 0;
|
|
1819
|
+
(function (ProtocolV2FailureType) {
|
|
1820
|
+
ProtocolV2FailureType[ProtocolV2FailureType["Failure_InvalidMessage"] = 1] = "Failure_InvalidMessage";
|
|
1821
|
+
ProtocolV2FailureType[ProtocolV2FailureType["Failure_UndefinedError"] = 2] = "Failure_UndefinedError";
|
|
1822
|
+
ProtocolV2FailureType[ProtocolV2FailureType["Failure_UsageError"] = 3] = "Failure_UsageError";
|
|
1823
|
+
ProtocolV2FailureType[ProtocolV2FailureType["Failure_DataError"] = 4] = "Failure_DataError";
|
|
1824
|
+
ProtocolV2FailureType[ProtocolV2FailureType["Failure_ProcessError"] = 5] = "Failure_ProcessError";
|
|
1825
|
+
})(exports.ProtocolV2FailureType || (exports.ProtocolV2FailureType = {}));
|
|
1826
|
+
exports.Enum_ProtocolV2Capability = void 0;
|
|
1827
|
+
(function (Enum_ProtocolV2Capability) {
|
|
1828
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Bitcoin"] = 1] = "Capability_Bitcoin";
|
|
1829
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Bitcoin_like"] = 2] = "Capability_Bitcoin_like";
|
|
1830
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Binance"] = 3] = "Capability_Binance";
|
|
1831
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Cardano"] = 4] = "Capability_Cardano";
|
|
1832
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Crypto"] = 5] = "Capability_Crypto";
|
|
1833
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_EOS"] = 6] = "Capability_EOS";
|
|
1834
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Ethereum"] = 7] = "Capability_Ethereum";
|
|
1835
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Lisk"] = 8] = "Capability_Lisk";
|
|
1836
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Monero"] = 9] = "Capability_Monero";
|
|
1837
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_NEM"] = 10] = "Capability_NEM";
|
|
1838
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Ripple"] = 11] = "Capability_Ripple";
|
|
1839
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Stellar"] = 12] = "Capability_Stellar";
|
|
1840
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Tezos"] = 13] = "Capability_Tezos";
|
|
1841
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_U2F"] = 14] = "Capability_U2F";
|
|
1842
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Shamir"] = 15] = "Capability_Shamir";
|
|
1843
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_ShamirGroups"] = 16] = "Capability_ShamirGroups";
|
|
1844
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_PassphraseEntry"] = 17] = "Capability_PassphraseEntry";
|
|
1845
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_AttachToPin"] = 18] = "Capability_AttachToPin";
|
|
1846
|
+
Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_EthereumTypedData"] = 1000] = "Capability_EthereumTypedData";
|
|
1847
|
+
})(exports.Enum_ProtocolV2Capability || (exports.Enum_ProtocolV2Capability = {}));
|
|
1571
1848
|
|
|
1572
1849
|
var messages = /*#__PURE__*/Object.freeze({
|
|
1573
1850
|
__proto__: null,
|
|
@@ -1600,6 +1877,9 @@ var messages = /*#__PURE__*/Object.freeze({
|
|
|
1600
1877
|
get EthereumGnosisSafeTxOperation () { return exports.EthereumGnosisSafeTxOperation; },
|
|
1601
1878
|
get EthereumDataTypeOneKey () { return exports.EthereumDataTypeOneKey; },
|
|
1602
1879
|
get EthereumDataType () { return exports.EthereumDataType; },
|
|
1880
|
+
get Enum_KaspaInputScriptType () { return exports.Enum_KaspaInputScriptType; },
|
|
1881
|
+
get Enum_KaspaOutputScriptType () { return exports.Enum_KaspaOutputScriptType; },
|
|
1882
|
+
get Enum_KaspaRequestType () { return exports.Enum_KaspaRequestType; },
|
|
1603
1883
|
get Enum_BackupType () { return exports.Enum_BackupType; },
|
|
1604
1884
|
get Enum_SafetyCheckLevel () { return exports.Enum_SafetyCheckLevel; },
|
|
1605
1885
|
get OneKeyDeviceType () { return exports.OneKeyDeviceType; },
|
|
@@ -1631,16 +1911,26 @@ var messages = /*#__PURE__*/Object.freeze({
|
|
|
1631
1911
|
get TronResourceCode () { return exports.TronResourceCode; },
|
|
1632
1912
|
get TronMessageType () { return exports.TronMessageType; },
|
|
1633
1913
|
get CommandFlags () { return exports.CommandFlags; },
|
|
1914
|
+
get WallpaperTarget () { return exports.WallpaperTarget; },
|
|
1634
1915
|
get MoneroNetworkType () { return exports.MoneroNetworkType; },
|
|
1635
|
-
get
|
|
1636
|
-
get
|
|
1916
|
+
get ViewTipType () { return exports.ViewTipType; },
|
|
1917
|
+
get ViewSignLayout () { return exports.ViewSignLayout; },
|
|
1918
|
+
get DeviceErrorCode () { return exports.DeviceErrorCode; },
|
|
1637
1919
|
get DeviceRebootType () { return exports.DeviceRebootType; },
|
|
1638
|
-
get
|
|
1639
|
-
get DevSeType () { return exports.DevSeType; },
|
|
1640
|
-
get DevSEState () { return exports.DevSEState; },
|
|
1641
|
-
get DevFirmwareTargetType () { return exports.DevFirmwareTargetType; },
|
|
1920
|
+
get DeviceSettingsPage () { return exports.DeviceSettingsPage; },
|
|
1642
1921
|
get DeviceFirmwareTargetType () { return exports.DeviceFirmwareTargetType; },
|
|
1643
|
-
get
|
|
1922
|
+
get DeviceFirmwareUpdateTaskStatus () { return exports.DeviceFirmwareUpdateTaskStatus; },
|
|
1923
|
+
get DeviceFactoryAck () { return exports.DeviceFactoryAck; },
|
|
1924
|
+
get DeviceType () { return exports.DeviceType; },
|
|
1925
|
+
get DeviceSeType () { return exports.DeviceSeType; },
|
|
1926
|
+
get DeviceSEState () { return exports.DeviceSEState; },
|
|
1927
|
+
get DeviceSessionAskPin_FailureSubCodes () { return exports.DeviceSessionAskPin_FailureSubCodes; },
|
|
1928
|
+
get DevOnboardingStep () { return exports.DevOnboardingStep; },
|
|
1929
|
+
get DevOnboardingPhase () { return exports.DevOnboardingPhase; },
|
|
1930
|
+
get DevOnboardingSetupKind () { return exports.DevOnboardingSetupKind; },
|
|
1931
|
+
get DevOnboardingSetupMethod () { return exports.DevOnboardingSetupMethod; },
|
|
1932
|
+
get ProtocolV2FailureType () { return exports.ProtocolV2FailureType; },
|
|
1933
|
+
get Enum_ProtocolV2Capability () { return exports.Enum_ProtocolV2Capability; }
|
|
1644
1934
|
});
|
|
1645
1935
|
|
|
1646
1936
|
protobuf__namespace.util.Long = Long__default["default"];
|
|
@@ -1653,7 +1943,10 @@ var index = {
|
|
|
1653
1943
|
ProtocolV2,
|
|
1654
1944
|
PROTOCOL_V2_SYS_MESSAGE_THRESHOLD,
|
|
1655
1945
|
ProtocolV2FrameAssembler,
|
|
1946
|
+
ProtocolV2LinkManager,
|
|
1947
|
+
ProtocolV2SequenceCursor,
|
|
1656
1948
|
ProtocolV2Session,
|
|
1949
|
+
ProtocolV2UsbTransportBase,
|
|
1657
1950
|
bytesToHex,
|
|
1658
1951
|
concatUint8Arrays,
|
|
1659
1952
|
createMessageFromName,
|
|
@@ -1675,6 +1968,8 @@ exports.PROTOCOL_V1_MESSAGE_HEADER_SIZE = PROTOCOL_V1_MESSAGE_HEADER_SIZE;
|
|
|
1675
1968
|
exports.PROTOCOL_V1_REPORT_ID = PROTOCOL_V1_REPORT_ID;
|
|
1676
1969
|
exports.PROTOCOL_V1_USB_PACKET_SIZE = PROTOCOL_V1_USB_PACKET_SIZE;
|
|
1677
1970
|
exports.PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = PROTOCOL_V2_BLE_FILE_CHUNK_SIZE;
|
|
1971
|
+
exports.PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE;
|
|
1972
|
+
exports.PROTOCOL_V2_BLE_FRAME_MAX_BYTES = PROTOCOL_V2_BLE_FRAME_MAX_BYTES;
|
|
1678
1973
|
exports.PROTOCOL_V2_CHANNEL_BLE_UART = PROTOCOL_V2_CHANNEL_BLE_UART;
|
|
1679
1974
|
exports.PROTOCOL_V2_CHANNEL_SOCKET = PROTOCOL_V2_CHANNEL_SOCKET;
|
|
1680
1975
|
exports.PROTOCOL_V2_CHANNEL_USB = PROTOCOL_V2_CHANNEL_USB;
|
|
@@ -1683,11 +1978,13 @@ exports.PROTOCOL_V2_FRAME_MAX_BYTES = PROTOCOL_V2_FRAME_MAX_BYTES;
|
|
|
1683
1978
|
exports.PROTOCOL_V2_PACKET_SRC_COMMAND = PROTOCOL_V2_PACKET_SRC_COMMAND;
|
|
1684
1979
|
exports.PROTOCOL_V2_SYS_MESSAGE_THRESHOLD = PROTOCOL_V2_SYS_MESSAGE_THRESHOLD;
|
|
1685
1980
|
exports.PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE;
|
|
1686
|
-
exports.PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS;
|
|
1687
1981
|
exports.ProtocolV1 = ProtocolV1;
|
|
1688
1982
|
exports.ProtocolV2 = ProtocolV2;
|
|
1689
1983
|
exports.ProtocolV2FrameAssembler = ProtocolV2FrameAssembler;
|
|
1984
|
+
exports.ProtocolV2LinkManager = ProtocolV2LinkManager;
|
|
1985
|
+
exports.ProtocolV2SequenceCursor = ProtocolV2SequenceCursor;
|
|
1690
1986
|
exports.ProtocolV2Session = ProtocolV2Session;
|
|
1987
|
+
exports.ProtocolV2UsbTransportBase = ProtocolV2UsbTransportBase;
|
|
1691
1988
|
exports.bytesToHex = bytesToHex;
|
|
1692
1989
|
exports.concatUint8Arrays = concatUint8Arrays;
|
|
1693
1990
|
exports["default"] = index;
|