@onekeyfe/hd-transport 1.2.0-alpha.2 → 1.2.0-alpha.20

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 +351 -0
  4. package/__tests__/protocol-v2-usb-transport-base.test.js +296 -0
  5. package/__tests__/protocol-v2.test.js +384 -108
  6. package/dist/constants.d.ts +5 -3
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/index.d.ts +920 -369
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +587 -251
  11. package/dist/protocols/index.d.ts +11 -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 +3 -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 +36 -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 +18 -3
  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 +534 -225
  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 +25 -39
  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 +38 -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 +162 -0
  49. package/src/protocols/v2/sequence-cursor.ts +10 -0
  50. package/src/protocols/v2/session.ts +132 -178
  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 +636 -265
  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,26 @@ 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 getAckSequence(data) {
489
+ if (!isAckFrame(data)) {
490
+ return undefined;
491
+ }
492
+ return data[6];
493
+ }
494
+ function decodeFrame(data) {
495
+ const frameLen = validateFrame(data);
484
496
  const seq = data[6];
485
497
  const payloadData = data.slice(7, frameLen - 1);
486
498
  if (payloadData.length < 2) {
@@ -488,19 +500,6 @@ function decodeFrame(data, debugOptions) {
488
500
  }
489
501
  const messageTypeId = payloadData[0] + payloadData[1] * 256;
490
502
  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
503
  return { messageTypeId, pbPayload, seq };
505
504
  }
506
505
 
@@ -583,12 +582,14 @@ var protocolV2Codec = /*#__PURE__*/Object.freeze({
583
582
  CRC8_INIT: CRC8_INIT,
584
583
  PACKET_SIZE: PACKET_SIZE,
585
584
  PROTO_DATA_TYPE_PACKET: PROTO_DATA_TYPE_PACKET,
585
+ PROTO_DATA_TYPE_ACK: PROTO_DATA_TYPE_ACK,
586
586
  CRC8_TABLE: CRC8_TABLE,
587
587
  crc8: crc8,
588
- logProtocolV2Debug: logProtocolV2Debug,
589
588
  nextProtoSeq: nextProtoSeq,
590
589
  encodeFrame: encodeFrame,
591
590
  encodeProtobufFrame: encodeProtobufFrame,
591
+ isAckFrame: isAckFrame,
592
+ getAckSequence: getAckSequence,
592
593
  decodeFrame: decodeFrame,
593
594
  concatUint8Arrays: concatUint8Arrays,
594
595
  ProtocolV2FrameAssembler: ProtocolV2FrameAssembler
@@ -605,6 +606,7 @@ const resolveProtocolV2EncodeSchema = (name, schemas) => {
605
606
  }
606
607
  };
607
608
  const PROTOCOL_V2_LEGACY_DECODE_ALLOWLIST = new Set([
609
+ 'Failure',
608
610
  'ButtonRequest',
609
611
  'EntropyRequest',
610
612
  'PinMatrixRequest',
@@ -638,46 +640,33 @@ const ProtocolV1 = {
638
640
  decodeMessage: decodeMessage,
639
641
  };
640
642
  const ProtocolV2 = {
643
+ isAckFrame,
644
+ getAckSequence,
645
+ inspectFrame(schemas, frame) {
646
+ const { messageTypeId, pbPayload, seq } = decodeFrame(frame);
647
+ const { messageName } = createProtocolV2MessageFromType(messageTypeId, schemas);
648
+ return {
649
+ messageName,
650
+ messageTypeId,
651
+ pbPayload,
652
+ seq,
653
+ type: messageName,
654
+ };
655
+ },
641
656
  encodeFrame(schemas, name, data, options = {}) {
642
- var _a, _b, _c, _d, _e, _f, _g;
643
657
  const encodeMessages = resolveProtocolV2EncodeSchema(name, schemas);
644
658
  const { Message, messageTypeId } = createMessageFromName(encodeMessages, name);
645
659
  const pbBuffer = encode(Message, data);
646
660
  pbBuffer.reset();
647
661
  const rawPbBuffer = pbBuffer.toBuffer();
648
662
  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);
663
+ return encodeProtobufFrame(messageTypeId, pbBytes, options.packetSrc, options.router, options.seq);
663
664
  },
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);
665
+ decodeFrame(schemas, frame) {
666
+ const { messageTypeId, pbPayload, seq, messageName } = this.inspectFrame(schemas, frame);
667
+ const { Message } = createProtocolV2MessageFromType(messageTypeId, schemas);
672
668
  const rxByteBuffer = ByteBuffer__default["default"].wrap(Buffer.from(pbPayload));
673
669
  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
- });
681
670
  return {
682
671
  message,
683
672
  messageName,
@@ -700,6 +689,16 @@ var index$1 = /*#__PURE__*/Object.freeze({
700
689
  decodeMessage: decodeMessage
701
690
  });
702
691
 
692
+ class ProtocolV2SequenceCursor {
693
+ constructor() {
694
+ this.current = 0;
695
+ }
696
+ next() {
697
+ this.current = nextProtoSeq(this.current);
698
+ return this.current;
699
+ }
700
+ }
701
+
703
702
  const ERROR = 'Wrong result type.';
704
703
  function info(res) {
705
704
  if (typeof res !== 'object' || res == null) {
@@ -816,11 +815,6 @@ function bytesToHex(bytes) {
816
815
  .map(b => b.toString(16).padStart(2, '0'))
817
816
  .join('');
818
817
  }
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
818
  const HIGH_VOLUME_PROTOCOL_V2_CALLS = new Set([
825
819
  ...LogBlockCommand,
826
820
  'FilesystemFileRead',
@@ -830,80 +824,6 @@ const HIGH_VOLUME_PROTOCOL_V2_CALLS = new Set([
830
824
  function shouldReduceProtocolV2Debug(name) {
831
825
  return HIGH_VOLUME_PROTOCOL_V2_CALLS.has(name);
832
826
  }
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
827
  const COMMON_TERMINAL_RESPONSE_TYPES = new Set([
908
828
  'Failure',
909
829
  'ButtonRequest',
@@ -952,11 +872,13 @@ function withProtocolTimeout(promise, timeoutMs, createTimeoutError, onTimeout)
952
872
  });
953
873
  }
954
874
  const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 30000;
875
+ const PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS = 5000;
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,62 +887,68 @@ 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, writeTimeoutMs = PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS, deliveryTimeoutMs = PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS, } = 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 withProtocolTimeout(writeFrame(frame, callContext), writeTimeoutMs, () => new Error(`Protocol V2 write timeout after ${writeTimeoutMs}ms for ${name}`));
987
910
  const cancellation = { cancelled: false };
911
+ let resolveDelivery = () => undefined;
912
+ let deliveryConfirmed = false;
913
+ const deliveryPromise = new Promise(resolve => {
914
+ resolveDelivery = () => {
915
+ if (deliveryConfirmed)
916
+ return;
917
+ deliveryConfirmed = true;
918
+ resolve();
919
+ };
920
+ });
988
921
  const readResponse = () => __awaiter(this, void 0, void 0, function* () {
989
- var _c, _d, _e, _f, _g, _h, _j, _k;
922
+ var _a, _b, _c, _d;
990
923
  while (!cancellation.cancelled) {
991
- const rxFrame = yield readFrame();
924
+ const rxFrame = yield readFrame(callContext);
992
925
  if (cancellation.cancelled) {
993
926
  break;
994
927
  }
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));
928
+ const ackSequence = ProtocolV2.getAckSequence(rxFrame);
929
+ if (ackSequence !== undefined) {
930
+ if (ackSequence === protoSeq) {
931
+ resolveDelivery();
932
+ }
1009
933
  }
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}`);
934
+ else {
935
+ resolveDelivery();
936
+ const decoded = ProtocolV2.decodeFrame(schemas, rxFrame);
937
+ const response = call(decoded);
938
+ if ((_a = callOptions.intermediateTypes) === null || _a === void 0 ? void 0 : _a.includes(response.type)) {
939
+ (_b = callOptions.onIntermediateResponse) === null || _b === void 0 ? void 0 : _b.call(callOptions, response);
940
+ }
941
+ else if (isExpectedTerminalResponse(response, callOptions.expectedTypes)) {
942
+ return response;
943
+ }
944
+ else if (!shouldReduceDebug) {
945
+ (_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}`);
946
+ }
1019
947
  }
1020
948
  }
1021
949
  throw new Error(`Protocol V2 read loop cancelled after timeout for ${name}`);
1022
950
  });
1023
- return withProtocolTimeout(readResponse(), callOptions.timeoutMs, () => {
951
+ const responsePromise = withProtocolTimeout(readResponse(), callOptions.timeoutMs, () => {
1024
952
  var _a;
1025
953
  return createTimeoutError
1026
954
  ? createTimeoutError(name, (_a = callOptions.timeoutMs) !== null && _a !== void 0 ? _a : 0)
@@ -1028,6 +956,26 @@ class ProtocolV2Session {
1028
956
  }, () => {
1029
957
  cancellation.cancelled = true;
1030
958
  });
959
+ const deliverySignal = Promise.race([deliveryPromise, responsePromise.then(() => undefined)]);
960
+ const deliveryWatchdog = withProtocolTimeout(deliverySignal, deliveryTimeoutMs, () => new Error(`Protocol V2 delivery timeout after ${deliveryTimeoutMs}ms for ${name}`), () => {
961
+ cancellation.cancelled = true;
962
+ });
963
+ try {
964
+ const firstResult = yield Promise.race([
965
+ deliveryWatchdog.then(() => ({ kind: 'delivered' })),
966
+ responsePromise.then(response => ({ kind: 'response', response })),
967
+ ]);
968
+ if (firstResult.kind === 'response') {
969
+ return firstResult.response;
970
+ }
971
+ return yield responsePromise;
972
+ }
973
+ catch (error) {
974
+ cancellation.cancelled = true;
975
+ deliveryWatchdog.catch(() => undefined);
976
+ responsePromise.catch(() => undefined);
977
+ throw error;
978
+ }
1031
979
  });
1032
980
  }
1033
981
  }
@@ -1052,6 +1000,248 @@ function probeProtocolV2({ call, timeoutMs, logger, logPrefix = 'ProtocolV2', on
1052
1000
  });
1053
1001
  }
1054
1002
 
1003
+ class ProtocolV2LinkManager {
1004
+ constructor(options) {
1005
+ this.links = new Map();
1006
+ this.sequences = new Map();
1007
+ this.callQueues = new Map();
1008
+ this.options = options;
1009
+ }
1010
+ call(key, createAdapter, name, data, options) {
1011
+ var _a;
1012
+ const run = () => this.executeCall(key, createAdapter, name, data, options);
1013
+ const previous = (_a = this.callQueues.get(key)) !== null && _a !== void 0 ? _a : Promise.resolve();
1014
+ const result = previous.then(run, run);
1015
+ const queue = result.catch(() => undefined);
1016
+ this.callQueues.set(key, queue);
1017
+ result
1018
+ .then(() => this.clearSettledCallQueue(key, queue), () => this.clearSettledCallQueue(key, queue))
1019
+ .catch(() => undefined);
1020
+ return result;
1021
+ }
1022
+ invalidateLink(key, reason) {
1023
+ var _a, _b;
1024
+ return __awaiter(this, void 0, void 0, function* () {
1025
+ const link = this.links.get(key);
1026
+ if (!link)
1027
+ return;
1028
+ this.links.delete(key);
1029
+ link.state.invalidatedReason = reason;
1030
+ yield link.adapter.reset(reason);
1031
+ yield ((_b = (_a = this.options).onLinkInvalidated) === null || _b === void 0 ? void 0 : _b.call(_a, key, reason));
1032
+ });
1033
+ }
1034
+ invalidateAllLinks(reason) {
1035
+ return __awaiter(this, void 0, void 0, function* () {
1036
+ yield Promise.all(Array.from(this.links.keys(), key => this.invalidateLink(key, reason)));
1037
+ });
1038
+ }
1039
+ dispose(reason) {
1040
+ return __awaiter(this, void 0, void 0, function* () {
1041
+ yield this.invalidateAllLinks(reason);
1042
+ this.sequences.clear();
1043
+ this.callQueues.clear();
1044
+ });
1045
+ }
1046
+ getOrCreateLink(key, createAdapter) {
1047
+ const existing = this.links.get(key);
1048
+ if (existing)
1049
+ return existing;
1050
+ const adapter = createAdapter();
1051
+ const state = {};
1052
+ const assertLinkActive = () => {
1053
+ if (state.invalidatedReason) {
1054
+ throw new Error(state.invalidatedReason);
1055
+ }
1056
+ };
1057
+ let sequenceCursor = this.sequences.get(key);
1058
+ if (!sequenceCursor) {
1059
+ sequenceCursor = new ProtocolV2SequenceCursor();
1060
+ this.sequences.set(key, sequenceCursor);
1061
+ }
1062
+ const session = new ProtocolV2Session({
1063
+ schemas: this.options.getSchemas(),
1064
+ router: adapter.router,
1065
+ maxFrameBytes: adapter.maxFrameBytes,
1066
+ generation: adapter.generation,
1067
+ sequenceCursor,
1068
+ prepareCall: (context) => __awaiter(this, void 0, void 0, function* () {
1069
+ assertLinkActive();
1070
+ yield adapter.prepareCall(context);
1071
+ assertLinkActive();
1072
+ }),
1073
+ writeFrame: (frame, context) => __awaiter(this, void 0, void 0, function* () {
1074
+ assertLinkActive();
1075
+ yield adapter.writeFrame(frame, context);
1076
+ assertLinkActive();
1077
+ }),
1078
+ readFrame: (context) => __awaiter(this, void 0, void 0, function* () {
1079
+ assertLinkActive();
1080
+ const frame = yield adapter.readFrame(context);
1081
+ assertLinkActive();
1082
+ return frame;
1083
+ }),
1084
+ logger: adapter.logger,
1085
+ logPrefix: adapter.logPrefix,
1086
+ createTimeoutError: adapter.createTimeoutError,
1087
+ writeTimeoutMs: adapter.writeTimeoutMs,
1088
+ });
1089
+ const link = { adapter, session, state };
1090
+ this.links.set(key, link);
1091
+ return link;
1092
+ }
1093
+ executeCall(key, createAdapter, name, data, options) {
1094
+ return __awaiter(this, void 0, void 0, function* () {
1095
+ try {
1096
+ return yield this.getOrCreateLink(key, createAdapter).session.call(name, data, options);
1097
+ }
1098
+ catch (error) {
1099
+ if (this.options.classifyError(error) === 'link-fatal') {
1100
+ const errorMessage = getErrorMessage(error) || 'unknown error';
1101
+ yield this.invalidateLink(key, `Protocol V2 link-fatal error: ${errorMessage}`);
1102
+ }
1103
+ throw error;
1104
+ }
1105
+ });
1106
+ }
1107
+ clearSettledCallQueue(key, queue) {
1108
+ if (this.callQueues.get(key) === queue) {
1109
+ this.callQueues.delete(key);
1110
+ }
1111
+ }
1112
+ }
1113
+
1114
+ class ProtocolV2UsbTransportBase {
1115
+ constructor(options) {
1116
+ this.protocolV2UsbAssemblers = new Map();
1117
+ this.protocolV2UsbGenerations = new Map();
1118
+ this.protocolV2UsbCancellations = new Map();
1119
+ this.protocolV2UsbOptions = options;
1120
+ this.protocolV2UsbLinks = new ProtocolV2LinkManager({
1121
+ getSchemas: () => this.getProtocolV2UsbSchemas(),
1122
+ classifyError: () => 'link-fatal',
1123
+ onLinkInvalidated: (key, reason) => __awaiter(this, void 0, void 0, function* () {
1124
+ var _a;
1125
+ (_a = this.protocolV2UsbAssemblers.get(key)) === null || _a === void 0 ? void 0 : _a.reset();
1126
+ yield this.resetProtocolV2UsbNativeLink(key, reason);
1127
+ yield this.onProtocolV2UsbLinkInvalidated(key, reason);
1128
+ }),
1129
+ });
1130
+ }
1131
+ onProtocolV2UsbLinkInvalidated(_key, _reason) {
1132
+ }
1133
+ rotateProtocolV2UsbGeneration(key, reason) {
1134
+ var _a;
1135
+ return __awaiter(this, void 0, void 0, function* () {
1136
+ yield this.protocolV2UsbLinks.invalidateLink(key, reason);
1137
+ const generation = ((_a = this.protocolV2UsbGenerations.get(key)) !== null && _a !== void 0 ? _a : 0) + 1;
1138
+ this.protocolV2UsbGenerations.set(key, generation);
1139
+ this.protocolV2UsbCancellations.set(key, this.createProtocolV2UsbCancellation(generation));
1140
+ this.protocolV2UsbAssemblers.set(key, new ProtocolV2FrameAssembler(this.protocolV2UsbOptions.maxFrameBytes));
1141
+ return generation;
1142
+ });
1143
+ }
1144
+ callProtocolV2Usb(key, name, data, options) {
1145
+ return this.protocolV2UsbLinks.call(key, () => this.createProtocolV2UsbAdapter(key), name, data, options);
1146
+ }
1147
+ invalidateProtocolV2UsbLink(key, reason) {
1148
+ return this.protocolV2UsbLinks.invalidateLink(key, reason);
1149
+ }
1150
+ invalidateAllProtocolV2UsbLinks(reason) {
1151
+ return this.protocolV2UsbLinks.invalidateAllLinks(reason);
1152
+ }
1153
+ disposeProtocolV2UsbLinks(reason) {
1154
+ return __awaiter(this, void 0, void 0, function* () {
1155
+ yield this.protocolV2UsbLinks.dispose(reason);
1156
+ this.protocolV2UsbAssemblers.clear();
1157
+ this.protocolV2UsbGenerations.clear();
1158
+ this.protocolV2UsbCancellations.clear();
1159
+ });
1160
+ }
1161
+ createProtocolV2UsbAdapter(key) {
1162
+ const generation = this.protocolV2UsbGenerations.get(key);
1163
+ if (generation === undefined) {
1164
+ throw new Error('Protocol V2 USB generation has not been initialized');
1165
+ }
1166
+ const cancellation = this.protocolV2UsbCancellations.get(key);
1167
+ if (!cancellation || cancellation.generation !== generation) {
1168
+ throw new Error('Protocol V2 USB cancellation state has not been initialized');
1169
+ }
1170
+ const assertCurrentGeneration = () => {
1171
+ if (cancellation.reason) {
1172
+ throw new Error(cancellation.reason);
1173
+ }
1174
+ if (this.protocolV2UsbGenerations.get(key) !== generation) {
1175
+ throw new Error('Protocol V2 USB connection generation changed');
1176
+ }
1177
+ };
1178
+ return {
1179
+ router: this.protocolV2UsbOptions.router,
1180
+ maxFrameBytes: this.protocolV2UsbOptions.maxFrameBytes,
1181
+ generation,
1182
+ prepareCall: () => {
1183
+ assertCurrentGeneration();
1184
+ this.getProtocolV2UsbAssembler(key).reset();
1185
+ },
1186
+ writeFrame: (frame, context) => __awaiter(this, void 0, void 0, function* () {
1187
+ assertCurrentGeneration();
1188
+ yield this.writeProtocolV2UsbPacket(key, frame, context);
1189
+ assertCurrentGeneration();
1190
+ }),
1191
+ readFrame: (context) => __awaiter(this, void 0, void 0, function* () {
1192
+ assertCurrentGeneration();
1193
+ const assembler = this.getProtocolV2UsbAssembler(key);
1194
+ let frame = assembler.push(new Uint8Array(0));
1195
+ while (!frame) {
1196
+ const packetRead = this.readProtocolV2UsbPacket(key, context).then(packet => ({
1197
+ packet,
1198
+ }));
1199
+ const cancelled = cancellation.promise.then(reason => ({ reason }));
1200
+ const result = yield Promise.race([packetRead, cancelled]);
1201
+ if ('reason' in result) {
1202
+ throw new Error(result.reason);
1203
+ }
1204
+ assertCurrentGeneration();
1205
+ frame = assembler.push(result.packet);
1206
+ }
1207
+ assertCurrentGeneration();
1208
+ return frame;
1209
+ }),
1210
+ reset: (reason) => {
1211
+ var _a;
1212
+ cancellation.cancel(reason);
1213
+ (_a = this.protocolV2UsbAssemblers.get(key)) === null || _a === void 0 ? void 0 : _a.reset();
1214
+ },
1215
+ logger: this.getProtocolV2UsbLogger(),
1216
+ logPrefix: this.protocolV2UsbOptions.logPrefix,
1217
+ createTimeoutError: (messageName, timeoutMs) => this.createProtocolV2UsbTimeoutError(messageName, timeoutMs),
1218
+ };
1219
+ }
1220
+ getProtocolV2UsbAssembler(key) {
1221
+ const assembler = this.protocolV2UsbAssemblers.get(key);
1222
+ if (!assembler) {
1223
+ throw new Error('Protocol V2 USB assembler has not been initialized');
1224
+ }
1225
+ return assembler;
1226
+ }
1227
+ createProtocolV2UsbCancellation(generation) {
1228
+ let resolveCancellation = () => undefined;
1229
+ const cancellation = {
1230
+ generation,
1231
+ promise: new Promise(resolve => {
1232
+ resolveCancellation = resolve;
1233
+ }),
1234
+ cancel: reason => {
1235
+ if (cancellation.reason)
1236
+ return;
1237
+ cancellation.reason = reason;
1238
+ resolveCancellation(reason);
1239
+ },
1240
+ };
1241
+ return cancellation;
1242
+ }
1243
+ }
1244
+
1055
1245
  exports.AptosTransactionType = void 0;
1056
1246
  (function (AptosTransactionType) {
1057
1247
  AptosTransactionType[AptosTransactionType["STANDARD"] = 0] = "STANDARD";
@@ -1227,6 +1417,9 @@ exports.FailureType = void 0;
1227
1417
  FailureType[FailureType["Failure_WipeCodeMismatch"] = 13] = "Failure_WipeCodeMismatch";
1228
1418
  FailureType[FailureType["Failure_InvalidSession"] = 14] = "Failure_InvalidSession";
1229
1419
  FailureType[FailureType["Failure_FirmwareError"] = 99] = "Failure_FirmwareError";
1420
+ FailureType[FailureType["Failure_InvalidMessage"] = 1] = "Failure_InvalidMessage";
1421
+ FailureType[FailureType["Failure_UndefinedError"] = 2] = "Failure_UndefinedError";
1422
+ FailureType[FailureType["Failure_UsageError"] = 3] = "Failure_UsageError";
1230
1423
  })(exports.FailureType || (exports.FailureType = {}));
1231
1424
  exports.Enum_ButtonRequestType = void 0;
1232
1425
  (function (Enum_ButtonRequestType) {
@@ -1295,6 +1488,24 @@ exports.EthereumDataType = void 0;
1295
1488
  EthereumDataType[EthereumDataType["ARRAY"] = 7] = "ARRAY";
1296
1489
  EthereumDataType[EthereumDataType["STRUCT"] = 8] = "STRUCT";
1297
1490
  })(exports.EthereumDataType || (exports.EthereumDataType = {}));
1491
+ exports.Enum_KaspaInputScriptType = void 0;
1492
+ (function (Enum_KaspaInputScriptType) {
1493
+ Enum_KaspaInputScriptType[Enum_KaspaInputScriptType["KASPA_SPEND_P2PK_SCHNORR"] = 0] = "KASPA_SPEND_P2PK_SCHNORR";
1494
+ Enum_KaspaInputScriptType[Enum_KaspaInputScriptType["KASPA_SPEND_P2PK_ECDSA"] = 1] = "KASPA_SPEND_P2PK_ECDSA";
1495
+ })(exports.Enum_KaspaInputScriptType || (exports.Enum_KaspaInputScriptType = {}));
1496
+ exports.Enum_KaspaOutputScriptType = void 0;
1497
+ (function (Enum_KaspaOutputScriptType) {
1498
+ Enum_KaspaOutputScriptType[Enum_KaspaOutputScriptType["KASPA_PAYTOADDRESS"] = 0] = "KASPA_PAYTOADDRESS";
1499
+ Enum_KaspaOutputScriptType[Enum_KaspaOutputScriptType["KASPA_PAYTOCHANGE"] = 1] = "KASPA_PAYTOCHANGE";
1500
+ })(exports.Enum_KaspaOutputScriptType || (exports.Enum_KaspaOutputScriptType = {}));
1501
+ exports.Enum_KaspaRequestType = void 0;
1502
+ (function (Enum_KaspaRequestType) {
1503
+ Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_INPUT"] = 0] = "KASPA_TX_INPUT";
1504
+ Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_OUTPUT"] = 1] = "KASPA_TX_OUTPUT";
1505
+ Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_PAYLOAD"] = 2] = "KASPA_TX_PAYLOAD";
1506
+ Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_FINISHED"] = 3] = "KASPA_TX_FINISHED";
1507
+ Enum_KaspaRequestType[Enum_KaspaRequestType["KASPA_TX_PREV_META"] = 4] = "KASPA_TX_PREV_META";
1508
+ })(exports.Enum_KaspaRequestType || (exports.Enum_KaspaRequestType = {}));
1298
1509
  exports.Enum_BackupType = void 0;
1299
1510
  (function (Enum_BackupType) {
1300
1511
  Enum_BackupType[Enum_BackupType["Bip39"] = 0] = "Bip39";
@@ -1488,6 +1699,11 @@ exports.CommandFlags = void 0;
1488
1699
  CommandFlags[CommandFlags["Default"] = 0] = "Default";
1489
1700
  CommandFlags[CommandFlags["Factory_Only"] = 1] = "Factory_Only";
1490
1701
  })(exports.CommandFlags || (exports.CommandFlags = {}));
1702
+ exports.WallpaperTarget = void 0;
1703
+ (function (WallpaperTarget) {
1704
+ WallpaperTarget[WallpaperTarget["Home"] = 0] = "Home";
1705
+ WallpaperTarget[WallpaperTarget["Lock"] = 1] = "Lock";
1706
+ })(exports.WallpaperTarget || (exports.WallpaperTarget = {}));
1491
1707
  exports.MoneroNetworkType = void 0;
1492
1708
  (function (MoneroNetworkType) {
1493
1709
  MoneroNetworkType[MoneroNetworkType["MAINNET"] = 0] = "MAINNET";
@@ -1495,23 +1711,82 @@ exports.MoneroNetworkType = void 0;
1495
1711
  MoneroNetworkType[MoneroNetworkType["STAGENET"] = 2] = "STAGENET";
1496
1712
  MoneroNetworkType[MoneroNetworkType["FAKECHAIN"] = 3] = "FAKECHAIN";
1497
1713
  })(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 = {}));
1714
+ exports.ViewTipType = void 0;
1715
+ (function (ViewTipType) {
1716
+ ViewTipType[ViewTipType["Default"] = 0] = "Default";
1717
+ ViewTipType[ViewTipType["Highlight"] = 1] = "Highlight";
1718
+ ViewTipType[ViewTipType["Recommend"] = 2] = "Recommend";
1719
+ ViewTipType[ViewTipType["Warning"] = 3] = "Warning";
1720
+ ViewTipType[ViewTipType["Danger"] = 4] = "Danger";
1721
+ })(exports.ViewTipType || (exports.ViewTipType = {}));
1722
+ exports.ViewSignLayout = void 0;
1723
+ (function (ViewSignLayout) {
1724
+ ViewSignLayout[ViewSignLayout["LayoutDefault"] = 0] = "LayoutDefault";
1725
+ ViewSignLayout[ViewSignLayout["LayoutSafeTxCreate"] = 1] = "LayoutSafeTxCreate";
1726
+ ViewSignLayout[ViewSignLayout["LayoutFinalConfirm"] = 2] = "LayoutFinalConfirm";
1727
+ ViewSignLayout[ViewSignLayout["Layout7702"] = 3] = "Layout7702";
1728
+ ViewSignLayout[ViewSignLayout["LayoutFlat"] = 4] = "LayoutFlat";
1729
+ ViewSignLayout[ViewSignLayout["LayoutEthApprove"] = 5] = "LayoutEthApprove";
1730
+ })(exports.ViewSignLayout || (exports.ViewSignLayout = {}));
1731
+ exports.DeviceErrorCode = void 0;
1732
+ (function (DeviceErrorCode) {
1733
+ DeviceErrorCode[DeviceErrorCode["DeviceError_None"] = 0] = "DeviceError_None";
1734
+ DeviceErrorCode[DeviceErrorCode["DeviceError_Busy"] = 1] = "DeviceError_Busy";
1735
+ DeviceErrorCode[DeviceErrorCode["DeviceError_NotInitialized"] = 2] = "DeviceError_NotInitialized";
1736
+ DeviceErrorCode[DeviceErrorCode["DeviceError_ActionCancelled"] = 3] = "DeviceError_ActionCancelled";
1737
+ DeviceErrorCode[DeviceErrorCode["DeviceError_PinAlreadyUsed"] = 4] = "DeviceError_PinAlreadyUsed";
1738
+ DeviceErrorCode[DeviceErrorCode["DeviceError_PersistFailed"] = 5] = "DeviceError_PersistFailed";
1739
+ DeviceErrorCode[DeviceErrorCode["DeviceError_SeError"] = 6] = "DeviceError_SeError";
1740
+ DeviceErrorCode[DeviceErrorCode["DeviceError_InvalidLanguage"] = 7] = "DeviceError_InvalidLanguage";
1741
+ DeviceErrorCode[DeviceErrorCode["DeviceError_WallpaperNotUsable"] = 8] = "DeviceError_WallpaperNotUsable";
1742
+ DeviceErrorCode[DeviceErrorCode["DeviceError_DeviceLocked"] = 9] = "DeviceError_DeviceLocked";
1743
+ })(exports.DeviceErrorCode || (exports.DeviceErrorCode = {}));
1509
1744
  exports.DeviceRebootType = void 0;
1510
1745
  (function (DeviceRebootType) {
1511
1746
  DeviceRebootType[DeviceRebootType["Normal"] = 0] = "Normal";
1512
1747
  DeviceRebootType[DeviceRebootType["Romloader"] = 1] = "Romloader";
1513
1748
  DeviceRebootType[DeviceRebootType["Bootloader"] = 2] = "Bootloader";
1514
1749
  })(exports.DeviceRebootType || (exports.DeviceRebootType = {}));
1750
+ exports.DeviceSettingsPage = void 0;
1751
+ (function (DeviceSettingsPage) {
1752
+ DeviceSettingsPage[DeviceSettingsPage["DeviceReset"] = 0] = "DeviceReset";
1753
+ DeviceSettingsPage[DeviceSettingsPage["DevicePinChange"] = 1] = "DevicePinChange";
1754
+ DeviceSettingsPage[DeviceSettingsPage["DevicePassphrase"] = 2] = "DevicePassphrase";
1755
+ DeviceSettingsPage[DeviceSettingsPage["DeviceAirgap"] = 3] = "DeviceAirgap";
1756
+ })(exports.DeviceSettingsPage || (exports.DeviceSettingsPage = {}));
1757
+ exports.DeviceFirmwareTargetType = void 0;
1758
+ (function (DeviceFirmwareTargetType) {
1759
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_INVALID"] = 0] = "FW_MGMT_TARGET_INVALID";
1760
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_CRATE"] = 1] = "FW_MGMT_TARGET_CRATE";
1761
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_ROMLOADER"] = 2] = "FW_MGMT_TARGET_ROMLOADER";
1762
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_BOOTLOADER"] = 3] = "FW_MGMT_TARGET_BOOTLOADER";
1763
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_APPLICATION_P1"] = 4] = "FW_MGMT_TARGET_APPLICATION_P1";
1764
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_APPLICATION_P2"] = 5] = "FW_MGMT_TARGET_APPLICATION_P2";
1765
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_COPROCESSOR"] = 6] = "FW_MGMT_TARGET_COPROCESSOR";
1766
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE01"] = 7] = "FW_MGMT_TARGET_SE01";
1767
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE02"] = 8] = "FW_MGMT_TARGET_SE02";
1768
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE03"] = 9] = "FW_MGMT_TARGET_SE03";
1769
+ DeviceFirmwareTargetType[DeviceFirmwareTargetType["FW_MGMT_TARGET_SE04"] = 10] = "FW_MGMT_TARGET_SE04";
1770
+ })(exports.DeviceFirmwareTargetType || (exports.DeviceFirmwareTargetType = {}));
1771
+ exports.DeviceFirmwareUpdateTaskStatus = void 0;
1772
+ (function (DeviceFirmwareUpdateTaskStatus) {
1773
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_PENDING"] = 0] = "FW_MGMT_UPDATER_TASK_STATUS_PENDING";
1774
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_IN_PROGRESS"] = 1] = "FW_MGMT_UPDATER_TASK_STATUS_IN_PROGRESS";
1775
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FINISHED"] = 2] = "FW_MGMT_UPDATER_TASK_STATUS_FINISHED";
1776
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_NOT_FOUND"] = 3] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_NOT_FOUND";
1777
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_READ"] = 4] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_READ";
1778
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_WRITE"] = 5] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_FILE_WRITE";
1779
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_VERIFY"] = 6] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_VERIFY";
1780
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_INSTALL"] = 7] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_INSTALL";
1781
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_ABORT"] = 8] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_ABORT";
1782
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_BUSY"] = 9] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_BUSY";
1783
+ DeviceFirmwareUpdateTaskStatus[DeviceFirmwareUpdateTaskStatus["FW_MGMT_UPDATER_TASK_STATUS_FAILED_ENTRY_OUT_OF_BOUNDS"] = 10] = "FW_MGMT_UPDATER_TASK_STATUS_FAILED_ENTRY_OUT_OF_BOUNDS";
1784
+ })(exports.DeviceFirmwareUpdateTaskStatus || (exports.DeviceFirmwareUpdateTaskStatus = {}));
1785
+ exports.DeviceFactoryAck = void 0;
1786
+ (function (DeviceFactoryAck) {
1787
+ DeviceFactoryAck[DeviceFactoryAck["FACTORY_ACK_SUCCESS"] = 0] = "FACTORY_ACK_SUCCESS";
1788
+ DeviceFactoryAck[DeviceFactoryAck["FACTORY_ACK_FAIL"] = 1] = "FACTORY_ACK_FAIL";
1789
+ })(exports.DeviceFactoryAck || (exports.DeviceFactoryAck = {}));
1515
1790
  exports.DeviceType = void 0;
1516
1791
  (function (DeviceType) {
1517
1792
  DeviceType[DeviceType["CLASSIC1"] = 0] = "CLASSIC1";
@@ -1520,54 +1795,93 @@ exports.DeviceType = void 0;
1520
1795
  DeviceType[DeviceType["TOUCH"] = 3] = "TOUCH";
1521
1796
  DeviceType[DeviceType["PRO"] = 5] = "PRO";
1522
1797
  DeviceType[DeviceType["CLASSIC1S_PURE"] = 6] = "CLASSIC1S_PURE";
1798
+ DeviceType[DeviceType["PRO2"] = 7] = "PRO2";
1799
+ DeviceType[DeviceType["NEO"] = 8] = "NEO";
1523
1800
  })(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 = {}));
1801
+ exports.DeviceSeType = void 0;
1802
+ (function (DeviceSeType) {
1803
+ DeviceSeType[DeviceSeType["THD89"] = 0] = "THD89";
1804
+ DeviceSeType[DeviceSeType["SE608A"] = 1] = "SE608A";
1805
+ })(exports.DeviceSeType || (exports.DeviceSeType = {}));
1806
+ exports.DeviceSEState = void 0;
1807
+ (function (DeviceSEState) {
1808
+ DeviceSEState[DeviceSEState["BOOT"] = 0] = "BOOT";
1809
+ DeviceSEState[DeviceSEState["APP_FACTORY"] = 51] = "APP_FACTORY";
1810
+ DeviceSEState[DeviceSEState["APP"] = 85] = "APP";
1811
+ })(exports.DeviceSEState || (exports.DeviceSEState = {}));
1812
+ exports.DeviceSessionAskPin_FailureSubCodes = void 0;
1813
+ (function (DeviceSessionAskPin_FailureSubCodes) {
1814
+ DeviceSessionAskPin_FailureSubCodes[DeviceSessionAskPin_FailureSubCodes["UserCancel"] = 1] = "UserCancel";
1815
+ })(exports.DeviceSessionAskPin_FailureSubCodes || (exports.DeviceSessionAskPin_FailureSubCodes = {}));
1816
+ exports.DevOnboardingStep = void 0;
1817
+ (function (DevOnboardingStep) {
1818
+ DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_UNKNOWN"] = 0] = "DEV_ONBOARDING_STEP_UNKNOWN";
1819
+ DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_CHECKING"] = 1] = "DEV_ONBOARDING_STEP_CHECKING";
1820
+ DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_PERSONALIZATION"] = 2] = "DEV_ONBOARDING_STEP_PERSONALIZATION";
1821
+ DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_PIN"] = 3] = "DEV_ONBOARDING_STEP_PIN";
1822
+ DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_SETUP"] = 4] = "DEV_ONBOARDING_STEP_SETUP";
1823
+ DevOnboardingStep[DevOnboardingStep["DEV_ONBOARDING_STEP_DONE"] = 5] = "DEV_ONBOARDING_STEP_DONE";
1824
+ })(exports.DevOnboardingStep || (exports.DevOnboardingStep = {}));
1825
+ exports.DevOnboardingPhase = void 0;
1826
+ (function (DevOnboardingPhase) {
1827
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_UNKNOWN"] = 0] = "DEV_ONBOARDING_PHASE_UNKNOWN";
1828
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SAFETY_CHECK"] = 1] = "DEV_ONBOARDING_PHASE_SAFETY_CHECK";
1829
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_PIN_SETUP"] = 2] = "DEV_ONBOARDING_PHASE_PIN_SETUP";
1830
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_FINGERPRINT_SETUP"] = 3] = "DEV_ONBOARDING_PHASE_FINGERPRINT_SETUP";
1831
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SETUP_CHOICE"] = 4] = "DEV_ONBOARDING_PHASE_SETUP_CHOICE";
1832
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_WALLET_CREATE_START"] = 5] = "DEV_ONBOARDING_PHASE_WALLET_CREATE_START";
1833
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_VIEW"] = 6] = "DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_VIEW";
1834
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_CONFIRM"] = 7] = "DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_CONFIRM";
1835
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RESTORE_METHOD_CHOICE"] = 8] = "DEV_ONBOARDING_PHASE_RESTORE_METHOD_CHOICE";
1836
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_RESTORE"] = 9] = "DEV_ONBOARDING_PHASE_RECOVERY_PHRASE_RESTORE";
1837
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SEEDCARD_RESTORE"] = 10] = "DEV_ONBOARDING_PHASE_SEEDCARD_RESTORE";
1838
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_WALLET_READY"] = 11] = "DEV_ONBOARDING_PHASE_WALLET_READY";
1839
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP_PROMPT"] = 12] = "DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP_PROMPT";
1840
+ DevOnboardingPhase[DevOnboardingPhase["DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP"] = 13] = "DEV_ONBOARDING_PHASE_SEEDCARD_BACKUP";
1841
+ })(exports.DevOnboardingPhase || (exports.DevOnboardingPhase = {}));
1842
+ exports.DevOnboardingSetupKind = void 0;
1843
+ (function (DevOnboardingSetupKind) {
1844
+ DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_UNKNOWN"] = 0] = "DEV_ONBOARDING_SETUP_KIND_UNKNOWN";
1845
+ DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_CHOICE"] = 1] = "DEV_ONBOARDING_SETUP_KIND_CHOICE";
1846
+ DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_CREATE"] = 2] = "DEV_ONBOARDING_SETUP_KIND_CREATE";
1847
+ DevOnboardingSetupKind[DevOnboardingSetupKind["DEV_ONBOARDING_SETUP_KIND_RESTORE"] = 3] = "DEV_ONBOARDING_SETUP_KIND_RESTORE";
1848
+ })(exports.DevOnboardingSetupKind || (exports.DevOnboardingSetupKind = {}));
1849
+ exports.DevOnboardingSetupMethod = void 0;
1850
+ (function (DevOnboardingSetupMethod) {
1851
+ DevOnboardingSetupMethod[DevOnboardingSetupMethod["DEV_ONBOARDING_SETUP_METHOD_UNKNOWN"] = 0] = "DEV_ONBOARDING_SETUP_METHOD_UNKNOWN";
1852
+ DevOnboardingSetupMethod[DevOnboardingSetupMethod["DEV_ONBOARDING_SETUP_METHOD_RECOVERY_PHRASE"] = 1] = "DEV_ONBOARDING_SETUP_METHOD_RECOVERY_PHRASE";
1853
+ DevOnboardingSetupMethod[DevOnboardingSetupMethod["DEV_ONBOARDING_SETUP_METHOD_SEEDCARD"] = 2] = "DEV_ONBOARDING_SETUP_METHOD_SEEDCARD";
1854
+ })(exports.DevOnboardingSetupMethod || (exports.DevOnboardingSetupMethod = {}));
1855
+ exports.ProtocolV2FailureType = void 0;
1856
+ (function (ProtocolV2FailureType) {
1857
+ ProtocolV2FailureType[ProtocolV2FailureType["Failure_InvalidMessage"] = 1] = "Failure_InvalidMessage";
1858
+ ProtocolV2FailureType[ProtocolV2FailureType["Failure_UndefinedError"] = 2] = "Failure_UndefinedError";
1859
+ ProtocolV2FailureType[ProtocolV2FailureType["Failure_UsageError"] = 3] = "Failure_UsageError";
1860
+ ProtocolV2FailureType[ProtocolV2FailureType["Failure_DataError"] = 4] = "Failure_DataError";
1861
+ ProtocolV2FailureType[ProtocolV2FailureType["Failure_ProcessError"] = 5] = "Failure_ProcessError";
1862
+ })(exports.ProtocolV2FailureType || (exports.ProtocolV2FailureType = {}));
1863
+ exports.Enum_ProtocolV2Capability = void 0;
1864
+ (function (Enum_ProtocolV2Capability) {
1865
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Bitcoin"] = 1] = "Capability_Bitcoin";
1866
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Bitcoin_like"] = 2] = "Capability_Bitcoin_like";
1867
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Binance"] = 3] = "Capability_Binance";
1868
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Cardano"] = 4] = "Capability_Cardano";
1869
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Crypto"] = 5] = "Capability_Crypto";
1870
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_EOS"] = 6] = "Capability_EOS";
1871
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Ethereum"] = 7] = "Capability_Ethereum";
1872
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Lisk"] = 8] = "Capability_Lisk";
1873
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Monero"] = 9] = "Capability_Monero";
1874
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_NEM"] = 10] = "Capability_NEM";
1875
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Ripple"] = 11] = "Capability_Ripple";
1876
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Stellar"] = 12] = "Capability_Stellar";
1877
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Tezos"] = 13] = "Capability_Tezos";
1878
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_U2F"] = 14] = "Capability_U2F";
1879
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_Shamir"] = 15] = "Capability_Shamir";
1880
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_ShamirGroups"] = 16] = "Capability_ShamirGroups";
1881
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_PassphraseEntry"] = 17] = "Capability_PassphraseEntry";
1882
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_AttachToPin"] = 18] = "Capability_AttachToPin";
1883
+ Enum_ProtocolV2Capability[Enum_ProtocolV2Capability["Capability_EthereumTypedData"] = 1000] = "Capability_EthereumTypedData";
1884
+ })(exports.Enum_ProtocolV2Capability || (exports.Enum_ProtocolV2Capability = {}));
1571
1885
 
1572
1886
  var messages = /*#__PURE__*/Object.freeze({
1573
1887
  __proto__: null,
@@ -1600,6 +1914,9 @@ var messages = /*#__PURE__*/Object.freeze({
1600
1914
  get EthereumGnosisSafeTxOperation () { return exports.EthereumGnosisSafeTxOperation; },
1601
1915
  get EthereumDataTypeOneKey () { return exports.EthereumDataTypeOneKey; },
1602
1916
  get EthereumDataType () { return exports.EthereumDataType; },
1917
+ get Enum_KaspaInputScriptType () { return exports.Enum_KaspaInputScriptType; },
1918
+ get Enum_KaspaOutputScriptType () { return exports.Enum_KaspaOutputScriptType; },
1919
+ get Enum_KaspaRequestType () { return exports.Enum_KaspaRequestType; },
1603
1920
  get Enum_BackupType () { return exports.Enum_BackupType; },
1604
1921
  get Enum_SafetyCheckLevel () { return exports.Enum_SafetyCheckLevel; },
1605
1922
  get OneKeyDeviceType () { return exports.OneKeyDeviceType; },
@@ -1631,16 +1948,26 @@ var messages = /*#__PURE__*/Object.freeze({
1631
1948
  get TronResourceCode () { return exports.TronResourceCode; },
1632
1949
  get TronMessageType () { return exports.TronMessageType; },
1633
1950
  get CommandFlags () { return exports.CommandFlags; },
1951
+ get WallpaperTarget () { return exports.WallpaperTarget; },
1634
1952
  get MoneroNetworkType () { return exports.MoneroNetworkType; },
1635
- get TxDetailsDisplayType () { return exports.TxDetailsDisplayType; },
1636
- get DevRebootType () { return exports.DevRebootType; },
1953
+ get ViewTipType () { return exports.ViewTipType; },
1954
+ get ViewSignLayout () { return exports.ViewSignLayout; },
1955
+ get DeviceErrorCode () { return exports.DeviceErrorCode; },
1637
1956
  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; },
1957
+ get DeviceSettingsPage () { return exports.DeviceSettingsPage; },
1642
1958
  get DeviceFirmwareTargetType () { return exports.DeviceFirmwareTargetType; },
1643
- get OnboardingStep () { return exports.OnboardingStep; }
1959
+ get DeviceFirmwareUpdateTaskStatus () { return exports.DeviceFirmwareUpdateTaskStatus; },
1960
+ get DeviceFactoryAck () { return exports.DeviceFactoryAck; },
1961
+ get DeviceType () { return exports.DeviceType; },
1962
+ get DeviceSeType () { return exports.DeviceSeType; },
1963
+ get DeviceSEState () { return exports.DeviceSEState; },
1964
+ get DeviceSessionAskPin_FailureSubCodes () { return exports.DeviceSessionAskPin_FailureSubCodes; },
1965
+ get DevOnboardingStep () { return exports.DevOnboardingStep; },
1966
+ get DevOnboardingPhase () { return exports.DevOnboardingPhase; },
1967
+ get DevOnboardingSetupKind () { return exports.DevOnboardingSetupKind; },
1968
+ get DevOnboardingSetupMethod () { return exports.DevOnboardingSetupMethod; },
1969
+ get ProtocolV2FailureType () { return exports.ProtocolV2FailureType; },
1970
+ get Enum_ProtocolV2Capability () { return exports.Enum_ProtocolV2Capability; }
1644
1971
  });
1645
1972
 
1646
1973
  protobuf__namespace.util.Long = Long__default["default"];
@@ -1653,7 +1980,10 @@ var index = {
1653
1980
  ProtocolV2,
1654
1981
  PROTOCOL_V2_SYS_MESSAGE_THRESHOLD,
1655
1982
  ProtocolV2FrameAssembler,
1983
+ ProtocolV2LinkManager,
1984
+ ProtocolV2SequenceCursor,
1656
1985
  ProtocolV2Session,
1986
+ ProtocolV2UsbTransportBase,
1657
1987
  bytesToHex,
1658
1988
  concatUint8Arrays,
1659
1989
  createMessageFromName,
@@ -1675,9 +2005,12 @@ exports.PROTOCOL_V1_MESSAGE_HEADER_SIZE = PROTOCOL_V1_MESSAGE_HEADER_SIZE;
1675
2005
  exports.PROTOCOL_V1_REPORT_ID = PROTOCOL_V1_REPORT_ID;
1676
2006
  exports.PROTOCOL_V1_USB_PACKET_SIZE = PROTOCOL_V1_USB_PACKET_SIZE;
1677
2007
  exports.PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = PROTOCOL_V2_BLE_FILE_CHUNK_SIZE;
2008
+ exports.PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE;
2009
+ exports.PROTOCOL_V2_BLE_FRAME_MAX_BYTES = PROTOCOL_V2_BLE_FRAME_MAX_BYTES;
1678
2010
  exports.PROTOCOL_V2_CHANNEL_BLE_UART = PROTOCOL_V2_CHANNEL_BLE_UART;
1679
2011
  exports.PROTOCOL_V2_CHANNEL_SOCKET = PROTOCOL_V2_CHANNEL_SOCKET;
1680
2012
  exports.PROTOCOL_V2_CHANNEL_USB = PROTOCOL_V2_CHANNEL_USB;
2013
+ exports.PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS = PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS;
1681
2014
  exports.PROTOCOL_V2_FILE_CHUNK_SIZE = PROTOCOL_V2_FILE_CHUNK_SIZE;
1682
2015
  exports.PROTOCOL_V2_FRAME_MAX_BYTES = PROTOCOL_V2_FRAME_MAX_BYTES;
1683
2016
  exports.PROTOCOL_V2_PACKET_SRC_COMMAND = PROTOCOL_V2_PACKET_SRC_COMMAND;
@@ -1687,7 +2020,10 @@ exports.PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = PROTOCOL_V2_WRITE_WATCHDOG_TIMEO
1687
2020
  exports.ProtocolV1 = ProtocolV1;
1688
2021
  exports.ProtocolV2 = ProtocolV2;
1689
2022
  exports.ProtocolV2FrameAssembler = ProtocolV2FrameAssembler;
2023
+ exports.ProtocolV2LinkManager = ProtocolV2LinkManager;
2024
+ exports.ProtocolV2SequenceCursor = ProtocolV2SequenceCursor;
1690
2025
  exports.ProtocolV2Session = ProtocolV2Session;
2026
+ exports.ProtocolV2UsbTransportBase = ProtocolV2UsbTransportBase;
1691
2027
  exports.bytesToHex = bytesToHex;
1692
2028
  exports.concatUint8Arrays = concatUint8Arrays;
1693
2029
  exports["default"] = index;