@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.
Files changed (58) hide show
  1. package/README.md +1 -1
  2. package/__tests__/messages.test.js +122 -0
  3. package/__tests__/protocol-v2-link-manager.test.js +326 -0
  4. package/__tests__/protocol-v2-usb-transport-base.test.js +296 -0
  5. package/__tests__/protocol-v2.test.js +371 -107
  6. package/dist/constants.d.ts +5 -3
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/index.d.ts +912 -371
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +551 -254
  11. package/dist/protocols/index.d.ts +10 -5
  12. package/dist/protocols/index.d.ts.map +1 -1
  13. package/dist/protocols/v2/constants.d.ts +1 -0
  14. package/dist/protocols/v2/constants.d.ts.map +1 -1
  15. package/dist/protocols/v2/decode.d.ts +2 -2
  16. package/dist/protocols/v2/decode.d.ts.map +1 -1
  17. package/dist/protocols/v2/encode.d.ts +2 -3
  18. package/dist/protocols/v2/encode.d.ts.map +1 -1
  19. package/dist/protocols/v2/index.d.ts +0 -1
  20. package/dist/protocols/v2/index.d.ts.map +1 -1
  21. package/dist/protocols/v2/link-manager.d.ts +35 -0
  22. package/dist/protocols/v2/link-manager.d.ts.map +1 -0
  23. package/dist/protocols/v2/sequence-cursor.d.ts +5 -0
  24. package/dist/protocols/v2/sequence-cursor.d.ts.map +1 -0
  25. package/dist/protocols/v2/session.d.ts +15 -4
  26. package/dist/protocols/v2/session.d.ts.map +1 -1
  27. package/dist/protocols/v2/usb-transport-base.d.ts +31 -0
  28. package/dist/protocols/v2/usb-transport-base.d.ts.map +1 -0
  29. package/dist/serialization/protobuf/decode.d.ts.map +1 -1
  30. package/dist/serialization/protobuf/messages.d.ts.map +1 -1
  31. package/dist/types/messages.d.ts +535 -226
  32. package/dist/types/messages.d.ts.map +1 -1
  33. package/dist/types/transport.d.ts +5 -3
  34. package/dist/types/transport.d.ts.map +1 -1
  35. package/messages-protocol-v2.json +825 -709
  36. package/package.json +3 -3
  37. package/scripts/protobuf-build.sh +96 -310
  38. package/scripts/protobuf-patches/index.js +1 -0
  39. package/scripts/protobuf-types.js +12 -0
  40. package/src/constants.ts +21 -15
  41. package/src/index.ts +8 -0
  42. package/src/protocols/index.ts +31 -40
  43. package/src/protocols/v2/constants.ts +1 -0
  44. package/src/protocols/v2/crc8.ts +1 -1
  45. package/src/protocols/v2/decode.ts +31 -34
  46. package/src/protocols/v2/encode.ts +2 -28
  47. package/src/protocols/v2/index.ts +0 -1
  48. package/src/protocols/v2/link-manager.ts +160 -0
  49. package/src/protocols/v2/sequence-cursor.ts +10 -0
  50. package/src/protocols/v2/session.ts +79 -180
  51. package/src/protocols/v2/usb-transport-base.ts +194 -0
  52. package/src/serialization/protobuf/decode.ts +4 -1
  53. package/src/serialization/protobuf/messages.ts +6 -1
  54. package/src/types/messages.ts +637 -266
  55. package/src/types/transport.ts +3 -3
  56. package/dist/protocols/v2/debug.d.ts +0 -13
  57. package/dist/protocols/v2/debug.d.ts.map +0 -1
  58. 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 messageName = MessageType.valuesById[typeId].replace('MessageType_', '');
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 = 4608;
267
- const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = 4096;
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, debugOptions, seq) {
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, debugOptions, seq) {
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, Object.assign(Object.assign({}, debugOptions), { messageTypeId, pbPayloadLength: pbPayload.length }), seq);
450
+ return encodeFrame(payload, packetSrc, router, seq);
459
451
  }
460
452
 
461
- function decodeFrame(data, debugOptions) {
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
- (_b = (_a = 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'}] encode protobuf`, {
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, options = {}) {
665
- var _a, _b, _c, _d, _e;
666
- const { messageTypeId, pbPayload, seq } = decodeFrame(frame, {
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
- const message = decode(Message, rxByteBuffer);
674
- (_c = (_b = options.logger) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, `[${(_d = options.logPrefix) !== null && _d !== void 0 ? _d : 'ProtocolV2'}] decode protobuf`, {
675
- context: (_e = options.context) !== null && _e !== void 0 ? _e : `decode:${messageName}`,
676
- messageName,
677
- messageTypeId,
678
- pbPayloadLength: pbPayload.length,
679
- seq,
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
- this.protoSeq = nextProtoSeq(this.protoSeq);
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: this.protoSeq,
977
- logger: shouldReduceDebug ? undefined : logger,
978
- logPrefix,
979
- context: `tx:${name}`,
904
+ seq: protoSeq,
980
905
  });
981
- const expectedSeq = frame[6];
982
- if (!shouldReduceDebug) {
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 withProtocolTimeout(writeFrame(frame), PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS, () => new Error(`Protocol V2 write timeout after ${PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS}ms for ${name}`));
909
+ yield writeFrame(frame, callContext);
987
910
  const cancellation = { cancelled: false };
988
911
  const readResponse = () => __awaiter(this, void 0, void 0, function* () {
989
- var _c, _d, _e, _f, _g, _h, _j, _k;
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
- if (!shouldReduceDebug) {
996
- (_c = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _c === void 0 ? void 0 : _c.call(logger, `[${logPrefix}] RX frame len=${rxFrame.length} router=${rxFrame[4]} attr=${rxFrame[5]} seq=${rxFrame[6]} headerHex=${frameHeaderDebugHex(rxFrame)}`);
997
- }
998
- const decoded = ProtocolV2.decodeFrame(schemas, rxFrame, {
999
- logger: shouldReduceDebug ? undefined : logger,
1000
- logPrefix,
1001
- context: `rx:${name}`,
1002
- });
1003
- if (!shouldReduceDebug && decoded.seq !== expectedSeq) {
1004
- (_d = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _d === void 0 ? void 0 : _d.call(logger, `[${logPrefix}] seq differs for ${name}: tx=${expectedSeq}, rx=${decoded.seq}`);
1005
- }
1006
- if (!shouldReduceDebug) {
1007
- (_e = logger === null || logger === void 0 ? void 0 : logger.debug) === null || _e === void 0 ? void 0 : _e.call(logger, `[${logPrefix}] TX name=${name} seq=${expectedSeq} | RX seq=${decoded.seq} messageTypeId=${decoded.messageTypeId} pbPayload=${decoded.pbPayload.length}B`);
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.TxDetailsDisplayType = void 0;
1499
- (function (TxDetailsDisplayType) {
1500
- TxDetailsDisplayType[TxDetailsDisplayType["DISPLAY_TYPE_INFO"] = 0] = "DISPLAY_TYPE_INFO";
1501
- TxDetailsDisplayType[TxDetailsDisplayType["DISPLAY_TYPE_SIGN"] = 1] = "DISPLAY_TYPE_SIGN";
1502
- })(exports.TxDetailsDisplayType || (exports.TxDetailsDisplayType = {}));
1503
- exports.DevRebootType = void 0;
1504
- (function (DevRebootType) {
1505
- DevRebootType[DevRebootType["Normal"] = 0] = "Normal";
1506
- DevRebootType[DevRebootType["Boardloader"] = 1] = "Boardloader";
1507
- DevRebootType[DevRebootType["Bootloader"] = 2] = "Bootloader";
1508
- })(exports.DevRebootType || (exports.DevRebootType = {}));
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.DevSeType = void 0;
1525
- (function (DevSeType) {
1526
- DevSeType[DevSeType["THD89"] = 0] = "THD89";
1527
- DevSeType[DevSeType["SE608A"] = 1] = "SE608A";
1528
- })(exports.DevSeType || (exports.DevSeType = {}));
1529
- exports.DevSEState = void 0;
1530
- (function (DevSEState) {
1531
- DevSEState[DevSEState["BOOT"] = 0] = "BOOT";
1532
- DevSEState[DevSEState["APP_FACTORY"] = 51] = "APP_FACTORY";
1533
- DevSEState[DevSEState["APP"] = 85] = "APP";
1534
- })(exports.DevSEState || (exports.DevSEState = {}));
1535
- exports.DevFirmwareTargetType = void 0;
1536
- (function (DevFirmwareTargetType) {
1537
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_INVALID"] = 0] = "TARGET_INVALID";
1538
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_ROMLOADER"] = 1] = "TARGET_ROMLOADER";
1539
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_BOOTLOADER"] = 2] = "TARGET_BOOTLOADER";
1540
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_APPLICATION_P1"] = 3] = "TARGET_APPLICATION_P1";
1541
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_APPLICATION_P2"] = 4] = "TARGET_APPLICATION_P2";
1542
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_COPROCESSOR"] = 5] = "TARGET_COPROCESSOR";
1543
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_SE01"] = 6] = "TARGET_SE01";
1544
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_SE02"] = 7] = "TARGET_SE02";
1545
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_SE03"] = 8] = "TARGET_SE03";
1546
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_SE04"] = 9] = "TARGET_SE04";
1547
- DevFirmwareTargetType[DevFirmwareTargetType["TARGET_RESOURCE"] = 10] = "TARGET_RESOURCE";
1548
- })(exports.DevFirmwareTargetType || (exports.DevFirmwareTargetType = {}));
1549
- exports.DeviceFirmwareTargetType = void 0;
1550
- (function (DeviceFirmwareTargetType) {
1551
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_INVALID"] = 0] = "TARGET_INVALID";
1552
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_ROMLOADER"] = 1] = "TARGET_ROMLOADER";
1553
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_BOOTLOADER"] = 2] = "TARGET_BOOTLOADER";
1554
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_APPLICATION_P1"] = 3] = "TARGET_APPLICATION_P1";
1555
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_APPLICATION_P2"] = 4] = "TARGET_APPLICATION_P2";
1556
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_COPROCESSOR"] = 5] = "TARGET_COPROCESSOR";
1557
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_SE01"] = 6] = "TARGET_SE01";
1558
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_SE02"] = 7] = "TARGET_SE02";
1559
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_SE03"] = 8] = "TARGET_SE03";
1560
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_SE04"] = 9] = "TARGET_SE04";
1561
- DeviceFirmwareTargetType[DeviceFirmwareTargetType["TARGET_RESOURCE"] = 10] = "TARGET_RESOURCE";
1562
- })(exports.DeviceFirmwareTargetType || (exports.DeviceFirmwareTargetType = {}));
1563
- exports.OnboardingStep = void 0;
1564
- (function (OnboardingStep) {
1565
- OnboardingStep[OnboardingStep["ONBOARDING_STEP_UNKNOWN"] = 0] = "ONBOARDING_STEP_UNKNOWN";
1566
- OnboardingStep[OnboardingStep["ONBOARDING_STEP_DEVICE_VERIFICATION"] = 1] = "ONBOARDING_STEP_DEVICE_VERIFICATION";
1567
- OnboardingStep[OnboardingStep["ONBOARDING_STEP_PERSONALIZATION"] = 2] = "ONBOARDING_STEP_PERSONALIZATION";
1568
- OnboardingStep[OnboardingStep["ONBOARDING_STEP_SETUP"] = 3] = "ONBOARDING_STEP_SETUP";
1569
- OnboardingStep[OnboardingStep["ONBOARDING_STEP_FIRMWARE"] = 4] = "ONBOARDING_STEP_FIRMWARE";
1570
- })(exports.OnboardingStep || (exports.OnboardingStep = {}));
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 TxDetailsDisplayType () { return exports.TxDetailsDisplayType; },
1636
- get DevRebootType () { return exports.DevRebootType; },
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 DeviceType () { return exports.DeviceType; },
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 OnboardingStep () { return exports.OnboardingStep; }
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;