@onekeyfe/hd-transport 1.2.0-alpha.19 → 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.
@@ -101,21 +101,18 @@ describe('messages', () => {
101
101
  expect(v2Messages.nested.MessageType.values).toMatchObject({
102
102
  MessageType_DeviceStatusGet: 60602,
103
103
  MessageType_DeviceStatus: 60603,
104
- MessageType_DeviceSessionOpen: 60606,
104
+ MessageType_DeviceSessionGet: 60606,
105
105
  MessageType_DeviceSession: 60607,
106
106
  MessageType_DeviceSessionAskPin: 60608,
107
107
  });
108
108
  expect(v2Messages.nested.DeviceStatusGet).toEqual({ fields: {} });
109
- expect(v2Messages.nested.DeviceSessionResume.fields.session_id).toMatchObject({
109
+ expect(v2Messages.nested.DeviceSessionGet.fields.session_id).toMatchObject({
110
110
  id: 1,
111
111
  type: 'bytes',
112
112
  });
113
- expect(v2Messages.nested.DeviceWalletSelect.oneofs.access.oneof).toEqual([
114
- 'host_passphrase',
115
- 'passphrase_on_device',
116
- 'attach_pin_on_device',
117
- ]);
118
- expect(v2Messages.nested.DeviceSessionOpen.oneofs.mode.oneof).toEqual(['resume', 'select']);
113
+ expect(v2Messages.nested).not.toHaveProperty('DeviceSessionOpen');
114
+ expect(v2Messages.nested).not.toHaveProperty('DeviceSessionResume');
115
+ expect(v2Messages.nested).not.toHaveProperty('DeviceWalletSelect');
119
116
  expect(v2Messages.nested).not.toHaveProperty('DeviceWalletType');
120
117
  expect(v2Messages.nested).not.toHaveProperty('DeviceHiddenWalletSelect');
121
118
  expect(v2Messages.nested.DeviceSession.fields).toMatchObject({
@@ -129,7 +126,9 @@ describe('messages', () => {
129
126
  expect(v2Messages.nested.MessageType.values).not.toHaveProperty(
130
127
  'MessageType_DeviceSessionPinResult'
131
128
  );
132
- expect(v2Messages.nested.MessageType.values).not.toHaveProperty('MessageType_DeviceSessionGet');
129
+ expect(v2Messages.nested.MessageType.values).not.toHaveProperty(
130
+ 'MessageType_DeviceSessionOpen'
131
+ );
133
132
  });
134
133
 
135
134
  test('Protocol V2 onboarding status matches the current firmware-pro2 schema', () => {
@@ -158,6 +158,31 @@ describe('ProtocolV2LinkManager', () => {
158
158
  expect(sentSeqs).toEqual([1, 2]);
159
159
  });
160
160
 
161
+ test('times out a stalled write and resets the link before releasing the call queue', async () => {
162
+ const adapter = {
163
+ router: 1,
164
+ generation: 1,
165
+ prepareCall: jest.fn(),
166
+ writeFrame: jest.fn(() => new Promise(() => {})),
167
+ readFrame: jest.fn(),
168
+ reset: jest.fn(() => Promise.resolve()),
169
+ writeTimeoutMs: 10,
170
+ };
171
+ const manager = new ProtocolV2LinkManager({
172
+ getSchemas: () => schemas,
173
+ classifyError: error =>
174
+ String(error).includes('write timeout') ? 'link-fatal' : 'recoverable',
175
+ });
176
+
177
+ await expect(
178
+ manager.call('device-a', () => adapter, 'Ping', { message: 'pending' })
179
+ ).rejects.toThrow('Protocol V2 write timeout after 10ms for Ping');
180
+
181
+ expect(adapter.reset).toHaveBeenCalledWith(expect.stringContaining('write timeout'));
182
+ expect(adapter.readFrame).not.toHaveBeenCalled();
183
+ expect(manager.callQueues.size).toBe(0);
184
+ });
185
+
161
186
  test('invalidates every active link while retaining per-device cursors', async () => {
162
187
  const sentSeqs = [];
163
188
  const { adapters, createAdapter } = createAdapterFactory(sentSeqs);
@@ -8,6 +8,7 @@ const {
8
8
  probeProtocolV2,
9
9
  } = require('../src/protocols/v2/session');
10
10
  const protocolV2 = require('../src/protocols/v2');
11
+ const { PROTOCOL_V2_FRAME_MAX_BYTES } = require('../src/constants');
11
12
 
12
13
  const protocolV1Messages = parseConfigure({
13
14
  nested: {
@@ -284,6 +285,20 @@ describe('Protocol V2 framing and session', () => {
284
285
  expect(() => assembler.push(oversized)).toThrow('Protocol V2 frame too large');
285
286
  });
286
287
 
288
+ test('enforces the firmware 4200-byte Protocol V2 frame boundary', () => {
289
+ const boundaryFrame = ProtocolV2.encodeFrame(schemas, 'Ping', {
290
+ message: 'x'.repeat(4187),
291
+ });
292
+
293
+ expect(PROTOCOL_V2_FRAME_MAX_BYTES).toBe(4200);
294
+ expect(boundaryFrame).toHaveLength(PROTOCOL_V2_FRAME_MAX_BYTES);
295
+ expect(() =>
296
+ ProtocolV2.encodeFrame(schemas, 'Ping', {
297
+ message: 'x'.repeat(4188),
298
+ })
299
+ ).toThrow('Protocol V2 frame too large: 4201 > 4200');
300
+ });
301
+
287
302
  test('keeps bytes after the first complete frame for the next read', () => {
288
303
  const first = ProtocolV2.encodeFrame(schemas, 'ProtocolInfo', {
289
304
  version: 1,
@@ -412,6 +427,59 @@ describe('Protocol V2 framing and session', () => {
412
427
  expect(readFrame).toHaveBeenCalledTimes(2);
413
428
  });
414
429
 
430
+ test('session ignores an ACK whose sequence does not match the request', async () => {
431
+ const mismatchedAck = new Uint8Array(8);
432
+ mismatchedAck[0] = 0x5a;
433
+ mismatchedAck[1] = 8;
434
+ mismatchedAck[4] = 1;
435
+ mismatchedAck[5] = 1;
436
+ mismatchedAck[6] = 2;
437
+ mismatchedAck[3] = protocolV2.crc8(mismatchedAck, 3);
438
+ mismatchedAck[7] = protocolV2.crc8(mismatchedAck, 7);
439
+ const readFrame = jest
440
+ .fn()
441
+ .mockResolvedValueOnce(mismatchedAck)
442
+ .mockImplementation(() => new Promise(() => {}));
443
+ const session = new ProtocolV2Session({
444
+ schemas,
445
+ router: 1,
446
+ deliveryTimeoutMs: 10,
447
+ writeFrame: () => Promise.resolve(),
448
+ readFrame,
449
+ });
450
+
451
+ await expect(session.call('Ping', { message: 'hello' })).rejects.toThrow(
452
+ 'Protocol V2 delivery timeout after 10ms for Ping'
453
+ );
454
+ expect(readFrame).toHaveBeenCalledTimes(2);
455
+ });
456
+
457
+ test('session keeps waiting for a response after a matching delivery ACK', async () => {
458
+ const ack = new Uint8Array(8);
459
+ ack[0] = 0x5a;
460
+ ack[1] = 8;
461
+ ack[4] = 1;
462
+ ack[5] = 1;
463
+ ack[6] = 1;
464
+ ack[3] = protocolV2.crc8(ack, 3);
465
+ ack[7] = protocolV2.crc8(ack, 7);
466
+ const readFrame = jest
467
+ .fn()
468
+ .mockResolvedValueOnce(ack)
469
+ .mockImplementation(() => new Promise(() => {}));
470
+ const session = new ProtocolV2Session({
471
+ schemas,
472
+ router: 1,
473
+ deliveryTimeoutMs: 10,
474
+ writeFrame: () => Promise.resolve(),
475
+ readFrame,
476
+ });
477
+
478
+ await expect(session.call('Ping', { message: 'hello' }, { timeoutMs: 25 })).rejects.toThrow(
479
+ 'Protocol V2 response timeout after 25ms for Ping'
480
+ );
481
+ });
482
+
415
483
  test('session rejects BLE frames above its configured frame limit before writing', async () => {
416
484
  const writeFrame = jest.fn().mockResolvedValue(undefined);
417
485
  const response = ProtocolV2.encodeFrame(schemas, 'Success', {
@@ -4,7 +4,7 @@ export declare const PROTOCOL_V1_CHUNK_PAYLOAD_SIZE = 63;
4
4
  export declare const PROTOCOL_V1_USB_PACKET_SIZE: number;
5
5
  export declare const PROTOCOL_V1_MESSAGE_HEADER_SIZE: number;
6
6
  export declare const PROTOCOL_V1_ENVELOPE_HEADER_SIZE: number;
7
- export declare const PROTOCOL_V2_FRAME_MAX_BYTES = 4608;
7
+ export declare const PROTOCOL_V2_FRAME_MAX_BYTES = 4200;
8
8
  export declare const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = 4000;
9
9
  export declare const PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = 1800;
10
10
  export declare const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
package/dist/index.d.ts CHANGED
@@ -63,18 +63,59 @@ declare const PROTO_DATA_TYPE_PACKET = 0;
63
63
  declare const PROTO_DATA_TYPE_ACK = 1;
64
64
 
65
65
  declare const CRC8_TABLE: Uint8Array;
66
+ /**
67
+ * Compute CRC-8 over the first len bytes using the firmware-compatible initial value.
68
+ */
66
69
  declare function crc8(data: Uint8Array, len: number): number;
67
70
 
71
+ /**
72
+ * Advance a Protocol V2 sequence counter: 1-255, wraps around skipping 0.
73
+ */
68
74
  declare function nextProtoSeq(current: number): number;
75
+ /**
76
+ * Build a raw Protocol V2 frame (0x5A framing).
77
+ *
78
+ * Frame layout (PROTO_HEAD_CRC_SIZE = 8 overhead bytes):
79
+ * [0] SOF = 0x5A
80
+ * [1] frameLen low byte
81
+ * [2] frameLen high byte
82
+ * [3] CRC8 of bytes 0-2 (pre-header CRC)
83
+ * [4] router
84
+ * [5] attr = ((packetSrc & 0x0F) << 2) | dataType
85
+ * [6] seq (1-255, wraps skipping 0)
86
+ * [7..N-2] payload
87
+ * [N-1] CRC8 of bytes 0 to N-2 (frame CRC)
88
+ */
69
89
  declare function encodeFrame(payload: Uint8Array | null, packetSrc?: number, router?: number, seq?: number): Uint8Array;
90
+ /**
91
+ * Build a Protocol V2 frame carrying a protobuf message.
92
+ *
93
+ * Payload layout:
94
+ * [0-1] messageTypeId as little-endian uint16
95
+ * [2..] protobuf-encoded message bytes
96
+ */
70
97
  declare function encodeProtobufFrame(messageTypeId: number, pbPayload: Uint8Array, packetSrc?: number, router?: number, seq?: number): Uint8Array;
71
98
 
72
99
  interface ProtoV2Frame {
100
+ /** Little-endian message type ID */
73
101
  messageTypeId: number;
102
+ /** Raw protobuf-encoded payload (bytes after the 2-byte messageTypeId) */
74
103
  pbPayload: Uint8Array;
104
+ /** Sequence number from the frame header */
75
105
  seq: number;
76
106
  }
77
107
  declare function isAckFrame(data: Uint8Array): boolean;
108
+ declare function getAckSequence(data: Uint8Array): number | undefined;
109
+ /**
110
+ * Parse and validate a Protocol V2 response frame.
111
+ *
112
+ * Validates:
113
+ * - SOF byte (0x5A)
114
+ * - Header CRC (bytes 0-2)
115
+ * - Frame CRC (full frame except last byte)
116
+ *
117
+ * Returns the decoded messageTypeId, raw protobuf payload, and sequence number.
118
+ */
78
119
  declare function decodeFrame(data: Uint8Array): ProtoV2Frame;
79
120
 
80
121
  declare function concatUint8Arrays(arrays: Uint8Array[]): Uint8Array;
@@ -84,6 +125,11 @@ declare class ProtocolV2FrameAssembler {
84
125
  constructor(maxFrameBytes?: number);
85
126
  reset(): void;
86
127
  push(chunk: Uint8Array): Uint8Array | undefined;
128
+ /**
129
+ * Append a chunk (optional) and extract every complete frame currently
130
+ * buffered. Same validation/throw semantics as push(); push() stays
131
+ * backward compatible for callers that drain one frame at a time.
132
+ */
87
133
  drain(chunk?: Uint8Array): Uint8Array[];
88
134
  private append;
89
135
  private extractFrame;
@@ -103,6 +149,7 @@ declare const protocolV2Codec_encodeFrame: typeof encodeFrame;
103
149
  declare const protocolV2Codec_encodeProtobufFrame: typeof encodeProtobufFrame;
104
150
  type protocolV2Codec_ProtoV2Frame = ProtoV2Frame;
105
151
  declare const protocolV2Codec_isAckFrame: typeof isAckFrame;
152
+ declare const protocolV2Codec_getAckSequence: typeof getAckSequence;
106
153
  declare const protocolV2Codec_decodeFrame: typeof decodeFrame;
107
154
  declare const protocolV2Codec_concatUint8Arrays: typeof concatUint8Arrays;
108
155
  type protocolV2Codec_ProtocolV2FrameAssembler = ProtocolV2FrameAssembler;
@@ -123,6 +170,7 @@ declare namespace protocolV2Codec {
123
170
  protocolV2Codec_encodeProtobufFrame as encodeProtobufFrame,
124
171
  protocolV2Codec_ProtoV2Frame as ProtoV2Frame,
125
172
  protocolV2Codec_isAckFrame as isAckFrame,
173
+ protocolV2Codec_getAckSequence as getAckSequence,
126
174
  protocolV2Codec_decodeFrame as decodeFrame,
127
175
  protocolV2Codec_concatUint8Arrays as concatUint8Arrays,
128
176
  protocolV2Codec_ProtocolV2FrameAssembler as ProtocolV2FrameAssembler,
@@ -137,6 +185,7 @@ type ProtocolV2Schemas$1 = {
137
185
  type ProtocolV2FrameOptions = {
138
186
  packetSrc?: number;
139
187
  router?: number;
188
+ /** Sequence number (1-255). Managed per-session by ProtocolV2Session. */
140
189
  seq?: number;
141
190
  };
142
191
  declare const ProtocolV1: {
@@ -152,6 +201,7 @@ declare const ProtocolV1: {
152
201
  };
153
202
  declare const ProtocolV2: {
154
203
  isAckFrame: typeof isAckFrame;
204
+ getAckSequence: typeof getAckSequence;
155
205
  inspectFrame(schemas: ProtocolV2Schemas$1, frame: Uint8Array): {
156
206
  messageName: string;
157
207
  messageTypeId: number;
@@ -225,7 +275,7 @@ type Transport = {
225
275
  getProtocolType: (path: string) => ProtocolType | undefined;
226
276
  promptDeviceAccess?: () => Promise<USBDevice | BluetoothDevice | null>;
227
277
  init: ITransportInitFn;
228
- stop(): void;
278
+ stop(): void | Promise<void>;
229
279
  configured: boolean;
230
280
  version: string;
231
281
  name: string;
@@ -3827,13 +3877,10 @@ type DeviceReboot = {
3827
3877
  reboot_type: DeviceRebootType;
3828
3878
  };
3829
3879
  type DeviceSettings = {
3830
- label?: string;
3831
3880
  bt_enable?: boolean;
3832
3881
  language?: string;
3833
3882
  wallpaper_path?: string;
3834
3883
  brightness?: number;
3835
- autolock_delay_ms?: number;
3836
- autoshutdown_delay_ms?: number;
3837
3884
  animation_enable?: boolean;
3838
3885
  tap_to_wake?: boolean;
3839
3886
  haptic_feedback?: boolean;
@@ -3843,6 +3890,9 @@ type DeviceSettings = {
3843
3890
  random_keypad?: boolean;
3844
3891
  passphrase_enable?: boolean;
3845
3892
  fido_enabled?: boolean;
3893
+ autolock_delay_ms?: number;
3894
+ autoshutdown_delay_ms?: number;
3895
+ label?: string;
3846
3896
  };
3847
3897
  type DeviceSettingsGet = {};
3848
3898
  type DeviceSettingsSet = {
@@ -4031,22 +4081,8 @@ type ProtocolV2DeviceInfo = {
4031
4081
  se4?: DeviceSEInfo;
4032
4082
  status?: DeviceStatus;
4033
4083
  };
4034
- type DeviceSessionResume = {
4035
- session_id: string;
4036
- };
4037
- type DeviceHostPassphrase = {
4038
- passphrase: string;
4039
- };
4040
- type DevicePassphraseOnDevice = {};
4041
- type DeviceAttachPinOnDevice = {};
4042
- type DeviceWalletSelect = {
4043
- host_passphrase?: DeviceHostPassphrase;
4044
- passphrase_on_device?: DevicePassphraseOnDevice;
4045
- attach_pin_on_device?: DeviceAttachPinOnDevice;
4046
- };
4047
- type DeviceSessionOpen = {
4048
- resume?: DeviceSessionResume;
4049
- select?: DeviceWalletSelect;
4084
+ type DeviceSessionGet = {
4085
+ session_id?: string;
4050
4086
  };
4051
4087
  type DeviceSession = {
4052
4088
  session_id?: string;
@@ -4827,12 +4863,7 @@ type MessageType = {
4827
4863
  DeviceInfoTargets: DeviceInfoTargets;
4828
4864
  DeviceInfoTypes: DeviceInfoTypes;
4829
4865
  DeviceInfoGet: DeviceInfoGet;
4830
- DeviceSessionResume: DeviceSessionResume;
4831
- DeviceHostPassphrase: DeviceHostPassphrase;
4832
- DevicePassphraseOnDevice: DevicePassphraseOnDevice;
4833
- DeviceAttachPinOnDevice: DeviceAttachPinOnDevice;
4834
- DeviceWalletSelect: DeviceWalletSelect;
4835
- DeviceSessionOpen: DeviceSessionOpen;
4866
+ DeviceSessionGet: DeviceSessionGet;
4836
4867
  DeviceSession: DeviceSession;
4837
4868
  DeviceSessionAskPin: DeviceSessionAskPin;
4838
4869
  DeviceStatus: DeviceStatus;
@@ -5661,12 +5692,7 @@ type messages_DeviceInfoTargets = DeviceInfoTargets;
5661
5692
  type messages_DeviceInfoTypes = DeviceInfoTypes;
5662
5693
  type messages_DeviceInfoGet = DeviceInfoGet;
5663
5694
  type messages_ProtocolV2DeviceInfo = ProtocolV2DeviceInfo;
5664
- type messages_DeviceSessionResume = DeviceSessionResume;
5665
- type messages_DeviceHostPassphrase = DeviceHostPassphrase;
5666
- type messages_DevicePassphraseOnDevice = DevicePassphraseOnDevice;
5667
- type messages_DeviceAttachPinOnDevice = DeviceAttachPinOnDevice;
5668
- type messages_DeviceWalletSelect = DeviceWalletSelect;
5669
- type messages_DeviceSessionOpen = DeviceSessionOpen;
5695
+ type messages_DeviceSessionGet = DeviceSessionGet;
5670
5696
  type messages_DeviceSession = DeviceSession;
5671
5697
  type messages_DeviceSessionAskPin = DeviceSessionAskPin;
5672
5698
  type messages_DeviceSessionAskPin_FailureSubCodes = DeviceSessionAskPin_FailureSubCodes;
@@ -6427,12 +6453,7 @@ declare namespace messages {
6427
6453
  messages_DeviceInfoTypes as DeviceInfoTypes,
6428
6454
  messages_DeviceInfoGet as DeviceInfoGet,
6429
6455
  messages_ProtocolV2DeviceInfo as ProtocolV2DeviceInfo,
6430
- messages_DeviceSessionResume as DeviceSessionResume,
6431
- messages_DeviceHostPassphrase as DeviceHostPassphrase,
6432
- messages_DevicePassphraseOnDevice as DevicePassphraseOnDevice,
6433
- messages_DeviceAttachPinOnDevice as DeviceAttachPinOnDevice,
6434
- messages_DeviceWalletSelect as DeviceWalletSelect,
6435
- messages_DeviceSessionOpen as DeviceSessionOpen,
6456
+ messages_DeviceSessionGet as DeviceSessionGet,
6436
6457
  messages_DeviceSession as DeviceSession,
6437
6458
  messages_DeviceSessionAskPin as DeviceSessionAskPin,
6438
6459
  messages_DeviceSessionAskPin_FailureSubCodes as DeviceSessionAskPin_FailureSubCodes,
@@ -6501,6 +6522,8 @@ type ProtocolV2SessionOptions = {
6501
6522
  createTimeoutError?: (name: string, timeoutMs: number) => Error;
6502
6523
  sequenceCursor?: ProtocolV2SequenceCursor;
6503
6524
  generation?: number;
6525
+ writeTimeoutMs?: number;
6526
+ deliveryTimeoutMs?: number;
6504
6527
  };
6505
6528
  type ProtocolV2CallOptions = {
6506
6529
  timeoutMs?: number;
@@ -6513,7 +6536,8 @@ declare function hexToBytes(hex: string): Uint8Array;
6513
6536
  declare function bytesToHex(bytes: Uint8Array): string;
6514
6537
  declare function getErrorMessage(error: unknown): string;
6515
6538
  declare function withProtocolTimeout<T>(promise: Promise<T>, timeoutMs: number | undefined, createTimeoutError: () => Error, onTimeout?: () => void): Promise<T>;
6516
- declare const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 0;
6539
+ declare const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 30000;
6540
+ declare const PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS = 5000;
6517
6541
  declare class ProtocolV2Session {
6518
6542
  private readonly options;
6519
6543
  private readonly sequenceCursor;
@@ -6543,6 +6567,7 @@ interface ProtocolV2LinkAdapter {
6543
6567
  logger?: ProtocolV2SessionOptions['logger'];
6544
6568
  logPrefix?: string;
6545
6569
  createTimeoutError?: ProtocolV2SessionOptions['createTimeoutError'];
6570
+ writeTimeoutMs?: number;
6546
6571
  }
6547
6572
  type ProtocolV2LinkManagerOptions<Key> = {
6548
6573
  getSchemas: () => ProtocolV2Schemas;
@@ -6619,21 +6644,38 @@ declare namespace check {
6619
6644
 
6620
6645
  declare const LogBlockCommand: Set<string>;
6621
6646
 
6647
+ /** Protocol V1 USB report marker, ASCII `?`. */
6622
6648
  declare const PROTOCOL_V1_REPORT_ID = 63;
6649
+ /** Protocol V1 envelope marker, ASCII `#`. */
6623
6650
  declare const PROTOCOL_V1_HEADER_BYTE = 35;
6651
+ /** Protocol V1 payload bytes per chunk after the report marker. */
6624
6652
  declare const PROTOCOL_V1_CHUNK_PAYLOAD_SIZE = 63;
6653
+ /** Protocol V1 USB packet length: report marker plus chunk payload. */
6625
6654
  declare const PROTOCOL_V1_USB_PACKET_SIZE: number;
6655
+ /** Protocol V1 message metadata: two-byte type plus four-byte payload length. */
6626
6656
  declare const PROTOCOL_V1_MESSAGE_HEADER_SIZE: number;
6657
+ /** Protocol V1 envelope metadata: `##`, message type, and payload length. */
6627
6658
  declare const PROTOCOL_V1_ENVELOPE_HEADER_SIZE: number;
6628
- declare const PROTOCOL_V2_FRAME_MAX_BYTES = 4608;
6659
+ /** Firmware Proto Link runtime limit for a complete V2 frame, including header and CRC. */
6660
+ declare const PROTOCOL_V2_FRAME_MAX_BYTES = 4200;
6661
+ /** FilesystemFileWrite chunk size over WebUSB. */
6629
6662
  declare const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = 4000;
6663
+ /** FilesystemFileWrite chunk size over BLE. */
6630
6664
  declare const PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = 1800;
6665
+ /** BLE FilesystemFileRead chunk size, limited by the Pro2 1024-byte UART TX buffer. */
6631
6666
  declare const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
6667
+ /** Pro2 BLE/UART RX FIFO must hold a complete Proto Link frame. */
6632
6668
  declare const PROTOCOL_V2_BLE_FRAME_MAX_BYTES = 2048;
6669
+ /** @deprecated Use the transport-specific WebUSB or BLE file chunk constant. */
6633
6670
  declare const PROTOCOL_V2_FILE_CHUNK_SIZE = 4000;
6671
+ /**
6672
+ * Protocol V2 routing channel. USB reaches the main MCU directly, while BLE routes
6673
+ * through the BLE coprocessor UART bridge.
6674
+ */
6634
6675
  declare const PROTOCOL_V2_CHANNEL_USB = 0;
6635
6676
  declare const PROTOCOL_V2_CHANNEL_BLE_UART = 1;
6636
6677
  declare const PROTOCOL_V2_CHANNEL_SOCKET = 2;
6678
+ /** packet_src for protobuf commands; firmware routes zero to the protobuf dispatcher. */
6637
6679
  declare const PROTOCOL_V2_PACKET_SRC_COMMAND = 0;
6638
6680
 
6639
6681
  declare const _default: {
@@ -6653,6 +6695,7 @@ declare const _default: {
6653
6695
  };
6654
6696
  ProtocolV2: {
6655
6697
  isAckFrame: typeof isAckFrame;
6698
+ getAckSequence: typeof getAckSequence;
6656
6699
  inspectFrame(schemas: {
6657
6700
  protocolV1: protobuf.Root;
6658
6701
  protocolV2: protobuf.Root;
@@ -6711,4 +6754,4 @@ declare const _default: {
6711
6754
  withProtocolTimeout: typeof withProtocolTimeout;
6712
6755
  };
6713
6756
 
6714
- export { AcquireInput, Address, AlephiumAddress, AlephiumBytecodeAck, AlephiumBytecodeRequest, AlephiumGetAddress, AlephiumMessageSignature, AlephiumSignMessage, AlephiumSignTx, AlephiumSignedTx, AlephiumTxAck, AlephiumTxRequest, AlgorandAddress, AlgorandGetAddress, AlgorandSignTx, AlgorandSignedTx, AmountUnit, ApplyFlags, ApplySettings, AptosAddress, AptosGetAddress, AptosMessagePayload, AptosMessageSignature, AptosSignMessage, AptosSignSIWAMessage, AptosSignTx, AptosSignedTx, AptosTransactionType, AuthorizeCoinJoin, BIP32Address, BackupDevice, BackupType, BatchGetPublickeys, BenfenAddress, BenfenGetAddress, BenfenMessageSignature, BenfenSignMessage, BenfenSignTx, BenfenSignedTx, BenfenTxAck, BenfenTxRequest, BinanceAddress, BinanceCancelMsg, BinanceCoin, BinanceGetAddress, BinanceGetPublicKey, BinanceInputOutput, BinanceOrderMsg, BinanceOrderSide, BinanceOrderType, BinancePublicKey, BinanceSignTx, BinanceSignedTx, BinanceTimeInForce, BinanceTransferMsg, BinanceTxRequest, BixinBackupAck, BixinBackupDevice, BixinBackupDeviceAck, BixinBackupRequest, BixinLoadDevice, BixinMessageSE, BixinOutMessageSE, BixinPinInputOnDevice, BixinRestoreAck, BixinRestoreRequest, BixinSeedOperate, BixinVerifyDeviceAck, BixinVerifyDeviceRequest, BixinWhiteListAck, BixinWhiteListRequest, BlurRequest, ButtonAck, ButtonRequest, ButtonRequestType, Cancel, CancelAuthorization, Capability, CardanoAddress, CardanoAddressParametersType, CardanoAddressType, CardanoAssetGroup, CardanoBlockchainPointerType, CardanoCVoteRegistrationDelegation, CardanoCVoteRegistrationFormat, CardanoCVoteRegistrationParametersType, CardanoCertificateType, CardanoDRep, CardanoDRepType, CardanoDerivationType, CardanoGetAddress, CardanoGetNativeScriptHash, CardanoGetPublicKey, CardanoMessageSignature, CardanoNativeScript, CardanoNativeScriptHash, CardanoNativeScriptHashDisplayFormat, CardanoNativeScriptType, CardanoPoolMetadataType, CardanoPoolOwner, CardanoPoolParametersType, CardanoPoolRelayParameters, CardanoPoolRelayType, CardanoPublicKey, CardanoSignMessage, CardanoSignTxFinished, CardanoSignTxInit, CardanoToken, CardanoTxAuxiliaryData, CardanoTxAuxiliaryDataSupplement, CardanoTxAuxiliaryDataSupplementType, CardanoTxBodyHash, CardanoTxCertificate, CardanoTxCollateralInput, CardanoTxHostAck, CardanoTxInlineDatumChunk, CardanoTxInput, CardanoTxItemAck, CardanoTxMint, CardanoTxOutput, CardanoTxOutputSerializationFormat, CardanoTxReferenceInput, CardanoTxReferenceScriptChunk, CardanoTxRequiredSigner, CardanoTxSigningMode, CardanoTxWithdrawal, CardanoTxWitnessRequest, CardanoTxWitnessResponse, CardanoTxWitnessType, ChangeOutputScriptType, ChangePin, ChangeWipeCode, CipherKeyValue, CipheredKeyValue, CoinJoinRequest, CoinPurchaseMemo, CommandFlags, ConfluxAddress, ConfluxGetAddress, ConfluxMessageSignature, ConfluxSignMessage, ConfluxSignMessageCIP23, ConfluxSignTx, ConfluxTxAck, ConfluxTxRequest, CosmosAddress, CosmosGetAddress, CosmosSignTx, CosmosSignedTx, DecredStakingSpendType, Deprecated_PassphraseStateAck, Deprecated_PassphraseStateRequest, DevGetOnboardingStatus, DevOnboardingPhase, DevOnboardingSetupKind, DevOnboardingSetupMethod, DevOnboardingSetupStatus, DevOnboardingStatus, DevOnboardingStep, DeviceAttachPinOnDevice, DeviceBackToBoot, DeviceCertificate, DeviceCertificateRead, DeviceCertificateSign, DeviceCertificateSignature, DeviceCertificateWrite, DeviceCoprocessorInfo, DeviceEraseSector, DeviceErrorCode, DeviceFactoryAck, DeviceFactoryInfo, DeviceFactoryInfoGet, DeviceFactoryInfoManufactureTime, DeviceFactoryInfoSet, DeviceFactoryPermanentLock, DeviceFactoryTest, DeviceFirmwareImageInfo, DeviceFirmwareTarget, DeviceFirmwareTargetType, DeviceFirmwareUpdateRecord, DeviceFirmwareUpdateRecordFields, DeviceFirmwareUpdateRequest, DeviceFirmwareUpdateStatus, DeviceFirmwareUpdateStatusGet, DeviceFirmwareUpdateTaskStatus, DeviceHardwareInfo, DeviceHostPassphrase, DeviceInfo, DeviceInfoGet, DeviceInfoSettings, DeviceInfoTargets, DeviceInfoTypes, DeviceMainMcuInfo, DevicePassphraseOnDevice, DeviceReboot, DeviceRebootType, DeviceSEInfo, DeviceSEState, DeviceSeType, DeviceSession, DeviceSessionAskPin, DeviceSessionAskPin_FailureSubCodes, DeviceSessionOpen, DeviceSessionResume, DeviceSettings, DeviceSettingsGet, DeviceSettingsPage, DeviceSettingsPageShow, DeviceSettingsSet, DeviceStatus, DeviceStatusGet, DeviceType, DeviceWalletSelect, DnxAddress, DnxComputedKeyImage, DnxGetAddress, DnxInputAck, DnxInputRequest, DnxRTSigsRequest, DnxSignTx, DnxSignedTx, DnxTxKey, DoPreauthorized, ECDHSessionKey, EcdsaPublicKeys, EmmcDir, EmmcDirList, EmmcDirMake, EmmcDirRemove, EmmcFile, EmmcFileDelete, EmmcFileRead, EmmcFileWrite, EmmcFixPermission, EmmcPath, EmmcPathInfo, EndSession, Entropy, EntropyAck, EntropyRequest, Enum_BackupType, Enum_ButtonRequestType, Enum_Capability, Enum_InputScriptType, Enum_KaspaInputScriptType, Enum_KaspaOutputScriptType, Enum_KaspaRequestType, Enum_OutputScriptType, Enum_PinMatrixRequestType, Enum_ProtocolV2Capability, Enum_RequestType, Enum_SafetyCheckLevel, Enum_WordRequestType, EosActionBuyRam, EosActionBuyRamBytes, EosActionCommon, EosActionDelegate, EosActionDeleteAuth, EosActionLinkAuth, EosActionNewAccount, EosActionRefund, EosActionSellRam, EosActionTransfer, EosActionUndelegate, EosActionUnknown, EosActionUnlinkAuth, EosActionUpdateAuth, EosActionVoteProducer, EosAsset, EosAuthorization, EosAuthorizationAccount, EosAuthorizationKey, EosAuthorizationWait, EosGetPublicKey, EosPermissionLevel, EosPublicKey, EosSignTx, EosSignedTx, EosTxActionAck, EosTxActionRequest, EosTxHeader, EthereumAccessList, EthereumAccessListOneKey, EthereumAddress, EthereumAddressOneKey, EthereumAuthorizationOneKey, EthereumAuthorizationSignature, EthereumDataType, EthereumDataTypeOneKey, EthereumDefinitionType, EthereumDefinitions, EthereumFieldType, EthereumFieldTypeOneKey, EthereumGetAddress, EthereumGetAddressOneKey, EthereumGetPublicKey, EthereumGetPublicKeyOneKey, EthereumGnosisSafeTxAck, EthereumGnosisSafeTxOperation, EthereumGnosisSafeTxRequest, EthereumMessageSignature, EthereumMessageSignatureOneKey, EthereumNetworkInfo, EthereumPublicKey, EthereumPublicKeyOneKey, EthereumSignMessage, EthereumSignMessageEIP712, EthereumSignMessageOneKey, EthereumSignTx, EthereumSignTxEIP1559, EthereumSignTxEIP1559OneKey, EthereumSignTxEIP7702OneKey, EthereumSignTxOneKey, EthereumSignTypedData, EthereumSignTypedDataOneKey, EthereumSignTypedDataQR, EthereumSignTypedHash, EthereumSignTypedHashOneKey, EthereumStructMember, EthereumStructMemberOneKey, EthereumTokenInfo, EthereumTxAck, EthereumTxAckOneKey, EthereumTxRequest, EthereumTxRequestOneKey, EthereumTypedDataSignature, EthereumTypedDataSignatureOneKey, EthereumTypedDataStructAck, EthereumTypedDataStructAckOneKey, EthereumTypedDataStructRequest, EthereumTypedDataStructRequestOneKey, EthereumTypedDataValueAck, EthereumTypedDataValueAckOneKey, EthereumTypedDataValueRequest, EthereumTypedDataValueRequestOneKey, EthereumVerifyMessage, EthereumVerifyMessageOneKey, ExportType, Failure, FailureType, Features, FileInfo, FileInfoList, FilecoinAddress, FilecoinGetAddress, FilecoinSignTx, FilecoinSignedTx, FilesystemDir, FilesystemDirList, FilesystemDirMake, FilesystemDirRemove, FilesystemFile, FilesystemFileDelete, FilesystemFileRead, FilesystemFileWrite, FilesystemFormat, FilesystemPathInfo, FilesystemPathInfoQuery, FilesystemPermissionFix, FirmwareErase, FirmwareErase_ex, FirmwareHash, FirmwareRequest, FirmwareUpdateEmmc, FirmwareUpload, GetAddress, GetDeviceInfo, GetECDHSessionKey, GetEntropy, GetFeatures, GetFirmwareHash, GetNextU2FCounter, GetNonce, GetOwnershipId, GetOwnershipProof, GetPassphraseState, GetPublicKey, GetPublicKeyMultiple, GetWallpaper, HDNodePathType, HDNodeType, IdentityType, Initialize, InputScriptType, InternalInputScriptType, InternalMyAddressRequest, KaspaAddress, KaspaGetAddress, KaspaInputScriptType, KaspaOutpoint, KaspaOutputScriptType, KaspaRequestType, KaspaSignTx, KaspaSignedTx, KaspaTxAckInput, KaspaTxAckOutput, KaspaTxAckPayloadChunk, KaspaTxAckPrevInput, KaspaTxAckPrevMeta, KaspaTxAckPrevOutput, KaspaTxInputAck, KaspaTxInputRequest, KaspaTxRequest, KaspaTxRequestSignature, ListResDir, LnurlAuth, LnurlAuthResp, LockDevice, LogBlockCommand, LowLevelDevice, LowlevelTransportSharedPlugin, MessageFromOneKey, MessageKey, MessageResponse, MessageResponseMap, MessageSignature, MessageType, messages as Messages, MoneroAccountPublicAddress, MoneroAddress, MoneroExportedKeyImage, MoneroGetAddress, MoneroGetTxKeyAck, MoneroGetTxKeyRequest, MoneroGetWatchKey, MoneroKeyImageExportInitAck, MoneroKeyImageExportInitRequest, MoneroKeyImageSyncFinalAck, MoneroKeyImageSyncFinalRequest, MoneroKeyImageSyncStepAck, MoneroKeyImageSyncStepRequest, MoneroLiveRefreshFinalAck, MoneroLiveRefreshFinalRequest, MoneroLiveRefreshStartAck, MoneroLiveRefreshStartRequest, MoneroLiveRefreshStepAck, MoneroLiveRefreshStepRequest, MoneroMultisigKLRki, MoneroNetworkType, MoneroOutputEntry, MoneroRctKeyPublic, MoneroRingCtSig, MoneroSubAddressIndicesList, MoneroTransactionAllInputsSetAck, MoneroTransactionAllInputsSetRequest, MoneroTransactionAllOutSetAck, MoneroTransactionAllOutSetRequest, MoneroTransactionData, MoneroTransactionDestinationEntry, MoneroTransactionFinalAck, MoneroTransactionFinalRequest, MoneroTransactionInitAck, MoneroTransactionInitRequest, MoneroTransactionInputViniAck, MoneroTransactionInputViniRequest, MoneroTransactionInputsPermutationAck, MoneroTransactionInputsPermutationRequest, MoneroTransactionRsigData, MoneroTransactionSetInputAck, MoneroTransactionSetInputRequest, MoneroTransactionSetOutputAck, MoneroTransactionSetOutputRequest, MoneroTransactionSignInputAck, MoneroTransactionSignInputRequest, MoneroTransactionSourceEntry, MoneroTransferDetails, MoneroWatchKey, MultisigRedeemScriptType, NEMAddress, NEMAggregateModification, NEMCosignatoryModification, NEMDecryptMessage, NEMDecryptedMessage, NEMGetAddress, NEMImportanceTransfer, NEMImportanceTransferMode, NEMModificationType, NEMMosaic, NEMMosaicCreation, NEMMosaicDefinition, NEMMosaicLevy, NEMMosaicSupplyChange, NEMProvisionNamespace, NEMSignTx, NEMSignedTx, NEMSupplyChangeType, NEMTransactionCommon, NEMTransfer, NFTWriteData, NFTWriteInfo, NearAddress, NearGetAddress, NearSignTx, NearSignedTx, NeoAddress, NeoGetAddress, NeoSignTx, NeoSignedTx, NervosAddress, NervosGetAddress, NervosSignTx, NervosSignedTx, NervosTxAck, NervosTxRequest, NexaAddress, NexaGetAddress, NexaSignTx, NexaSignedTx, NexaTxInputAck, NexaTxInputRequest, NextU2FCounter, Nonce, NostrDecryptMessage, NostrDecryptedMessage, NostrEncryptMessage, NostrEncryptedMessage, NostrGetPublicKey, NostrPublicKey, NostrSignEvent, NostrSignSchnorr, NostrSignedEvent, NostrSignedSchnorr, OneKeyDeviceCommType, OneKeyDeviceInfo, OneKeyDeviceInfoBase, OneKeyDeviceInfoWithSession, OneKeyDeviceType, OneKeyMobileDeviceInfo, OneKeySEState, OneKeySeType, OnekeyFeatures, OnekeyGetFeatures, OutputScriptType, OwnershipId, OwnershipProof, PROTOCOL_V1_CHUNK_PAYLOAD_SIZE, PROTOCOL_V1_ENVELOPE_HEADER_SIZE, PROTOCOL_V1_HEADER_BYTE, PROTOCOL_V1_MESSAGE_HEADER_SIZE, PROTOCOL_V1_REPORT_ID, PROTOCOL_V1_USB_PACKET_SIZE, PROTOCOL_V2_BLE_FILE_CHUNK_SIZE, PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE, PROTOCOL_V2_BLE_FRAME_MAX_BYTES, PROTOCOL_V2_CHANNEL_BLE_UART, PROTOCOL_V2_CHANNEL_SOCKET, PROTOCOL_V2_CHANNEL_USB, PROTOCOL_V2_FILE_CHUNK_SIZE, PROTOCOL_V2_FRAME_MAX_BYTES, PROTOCOL_V2_PACKET_SRC_COMMAND, PROTOCOL_V2_SYS_MESSAGE_THRESHOLD, PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE, PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS, PassphraseAck, PassphraseRequest, PassphraseState, Path, PaymentRequestMemo, PinMatrixAck, PinMatrixRequest, PinMatrixRequestType, Ping, PolkadotAddress, PolkadotGetAddress, PolkadotSignTx, PolkadotSignedTx, PortfolioUpdate, PreauthorizedRequest, PrevInput, PrevOutput, PrevTx, ProtocolInfo, ProtocolInfoRequest, ProtocolType, ProtocolV1, ProtocolV2, ProtocolV2CallContext, ProtocolV2CallOptions, ProtocolV2Capability, ProtocolV2DeviceInfo, ProtocolV2FailureType, ProtocolV2FrameAssembler, ProtocolV2LinkAdapter, ProtocolV2LinkErrorClassification, ProtocolV2LinkManager, ProtocolV2LinkManagerOptions, ProtocolV2Schemas, ProtocolV2SequenceCursor, ProtocolV2Session, ProtocolV2SessionOptions, ProtocolV2UsbTransportBase, ProtocolV2UsbTransportBaseOptions, PublicKey, PublicKeyMultiple, ReadSEPublicCert, ReadSEPublicKey, Reboot, RebootToBoardloader, RebootToBootloader, RebootType, RecoveryDevice, RecoveryDeviceType, RefundMemo, RequestType, ResetDevice, ResourceAck, ResourceRequest, ResourceType, ResourceUpdate, ResourceUpload, RippleAddress, RippleGetAddress, RipplePayment, RippleSignTx, RippleSignedTx, SEMessageSignature, SEPublicCert, SEPublicKey, SESignMessage, SafetyCheckLevel, ScdoAddress, ScdoGetAddress, ScdoSignMessage, ScdoSignTx, ScdoSignedMessage, ScdoSignedTx, ScdoTxAck, SdProtect, SdProtectOperationType, SeedRequestType, SelfTest, SetBusy, SetU2FCounter, SetWallpaper, SignIdentity, SignMessage, SignPsbt, SignTx, SignedIdentity, SignedPsbt, SolanaAddress, SolanaGetAddress, SolanaMessageSignature, SolanaOffChainMessageFormat, SolanaOffChainMessageVersion, SolanaSignOffChainMessage, SolanaSignTx, SolanaSignUnsafeMessage, SolanaSignedTx, SolanaTxATADetails, SolanaTxExtraInfo, SpiFlashData, SpiFlashRead, SpiFlashWrite, StarcoinAddress, StarcoinGetAddress, StarcoinGetPublicKey, StarcoinMessageSignature, StarcoinPublicKey, StarcoinSignMessage, StarcoinSignTx, StarcoinSignedTx, StarcoinVerifyMessage, StartSession, StellarAccountMergeOp, StellarAddress, StellarAllowTrustOp, StellarAsset, StellarAssetType, StellarBumpSequenceOp, StellarChangeTrustOp, StellarCreateAccountOp, StellarCreatePassiveSellOfferOp, StellarGetAddress, StellarInvokeHostFunctionOp, StellarManageBuyOfferOp, StellarManageDataOp, StellarManageSellOfferOp, StellarMemoType, StellarPathPaymentStrictReceiveOp, StellarPathPaymentStrictSendOp, StellarPaymentOp, StellarRequestType, StellarSetOptionsOp, StellarSignTx, StellarSignedTx, StellarSignerType, StellarSorobanDataAck, StellarSorobanDataRequest, StellarTxOpRequest, Success, SuiAddress, SuiGetAddress, SuiMessageSignature, SuiSignMessage, SuiSignTx, SuiSignedTx, SuiTxAck, SuiTxRequest, TextMemo, TezosAddress, TezosBallotOp, TezosBallotType, TezosContractID, TezosContractType, TezosDelegationOp, TezosGetAddress, TezosGetPublicKey, TezosManagerTransfer, TezosOriginationOp, TezosParametersManager, TezosProposalOp, TezosPublicKey, TezosRevealOp, TezosSignTx, TezosSignedTx, TezosTransactionOp, TonAddress, TonGetAddress, TonSignData, TonSignDataType, TonSignMessage, TonSignProof, TonSignedData, TonSignedMessage, TonSignedProof, TonTxAck, TonWalletVersion, TonWorkChain, Transport, TransportCallOptions, TronAddress, TronCancelAllUnfreezeV2Contract, TronContract, TronDelegateResourceContract, TronFreezeBalanceContract, TronFreezeBalanceV2Contract, TronGetAddress, TronMessageSignature, TronMessageType, TronResourceCode, TronSignMessage, TronSignTx, TronSignedTx, TronTransferContract, TronTriggerSmartContract, TronUnDelegateResourceContract, TronUnfreezeBalanceContract, TronUnfreezeBalanceV2Contract, TronVoteWitnessContract, TronWithdrawBalanceContract, TronWithdrawExpireUnfreezeContract, TxAck, TxAckInput, TxAckInputWrapper, TxAckOutput, TxAckOutputWrapper, TxAckPaymentRequest, TxAckPrevExtraData, TxAckPrevExtraDataWrapper, TxAckPrevInput, TxAckPrevInputWrapper, TxAckPrevMeta, TxAckPrevOutput, TxAckPrevOutputWrapper, TxAckResponse, TxInput, TxInputType, TxOutput, TxOutputBinType, TxOutputType, TxRequest, TxRequestDetailsType, TxRequestSerializedType, TypedCall, UintType, UnLockDevice, UnLockDeviceResponse, UnlockPath, UnlockedPathRequest, UpgradeFileHeader, VerifyMessage, ViewAmount, ViewDetail, ViewRawData, ViewSignLayout, ViewSignPage, ViewTip, ViewTipType, ViewVerifyPage, Vote, WL_OperationType, Wallpaper, WallpaperTarget, WipeDevice, WordAck, WordRequest, WordRequestType, WriteSEPrivateKey, WriteSEPublicCert, ZoomRequest, bytesToHex, concatUint8Arrays, _default as default, experimental_field, experimental_message, facotry, getErrorMessage, hexToBytes, probeProtocolV2, index as protocolV1, protocolV2Codec as protocolV2, withProtocolTimeout };
6757
+ export { AcquireInput, Address, AlephiumAddress, AlephiumBytecodeAck, AlephiumBytecodeRequest, AlephiumGetAddress, AlephiumMessageSignature, AlephiumSignMessage, AlephiumSignTx, AlephiumSignedTx, AlephiumTxAck, AlephiumTxRequest, AlgorandAddress, AlgorandGetAddress, AlgorandSignTx, AlgorandSignedTx, AmountUnit, ApplyFlags, ApplySettings, AptosAddress, AptosGetAddress, AptosMessagePayload, AptosMessageSignature, AptosSignMessage, AptosSignSIWAMessage, AptosSignTx, AptosSignedTx, AptosTransactionType, AuthorizeCoinJoin, BIP32Address, BackupDevice, BackupType, BatchGetPublickeys, BenfenAddress, BenfenGetAddress, BenfenMessageSignature, BenfenSignMessage, BenfenSignTx, BenfenSignedTx, BenfenTxAck, BenfenTxRequest, BinanceAddress, BinanceCancelMsg, BinanceCoin, BinanceGetAddress, BinanceGetPublicKey, BinanceInputOutput, BinanceOrderMsg, BinanceOrderSide, BinanceOrderType, BinancePublicKey, BinanceSignTx, BinanceSignedTx, BinanceTimeInForce, BinanceTransferMsg, BinanceTxRequest, BixinBackupAck, BixinBackupDevice, BixinBackupDeviceAck, BixinBackupRequest, BixinLoadDevice, BixinMessageSE, BixinOutMessageSE, BixinPinInputOnDevice, BixinRestoreAck, BixinRestoreRequest, BixinSeedOperate, BixinVerifyDeviceAck, BixinVerifyDeviceRequest, BixinWhiteListAck, BixinWhiteListRequest, BlurRequest, ButtonAck, ButtonRequest, ButtonRequestType, Cancel, CancelAuthorization, Capability, CardanoAddress, CardanoAddressParametersType, CardanoAddressType, CardanoAssetGroup, CardanoBlockchainPointerType, CardanoCVoteRegistrationDelegation, CardanoCVoteRegistrationFormat, CardanoCVoteRegistrationParametersType, CardanoCertificateType, CardanoDRep, CardanoDRepType, CardanoDerivationType, CardanoGetAddress, CardanoGetNativeScriptHash, CardanoGetPublicKey, CardanoMessageSignature, CardanoNativeScript, CardanoNativeScriptHash, CardanoNativeScriptHashDisplayFormat, CardanoNativeScriptType, CardanoPoolMetadataType, CardanoPoolOwner, CardanoPoolParametersType, CardanoPoolRelayParameters, CardanoPoolRelayType, CardanoPublicKey, CardanoSignMessage, CardanoSignTxFinished, CardanoSignTxInit, CardanoToken, CardanoTxAuxiliaryData, CardanoTxAuxiliaryDataSupplement, CardanoTxAuxiliaryDataSupplementType, CardanoTxBodyHash, CardanoTxCertificate, CardanoTxCollateralInput, CardanoTxHostAck, CardanoTxInlineDatumChunk, CardanoTxInput, CardanoTxItemAck, CardanoTxMint, CardanoTxOutput, CardanoTxOutputSerializationFormat, CardanoTxReferenceInput, CardanoTxReferenceScriptChunk, CardanoTxRequiredSigner, CardanoTxSigningMode, CardanoTxWithdrawal, CardanoTxWitnessRequest, CardanoTxWitnessResponse, CardanoTxWitnessType, ChangeOutputScriptType, ChangePin, ChangeWipeCode, CipherKeyValue, CipheredKeyValue, CoinJoinRequest, CoinPurchaseMemo, CommandFlags, ConfluxAddress, ConfluxGetAddress, ConfluxMessageSignature, ConfluxSignMessage, ConfluxSignMessageCIP23, ConfluxSignTx, ConfluxTxAck, ConfluxTxRequest, CosmosAddress, CosmosGetAddress, CosmosSignTx, CosmosSignedTx, DecredStakingSpendType, Deprecated_PassphraseStateAck, Deprecated_PassphraseStateRequest, DevGetOnboardingStatus, DevOnboardingPhase, DevOnboardingSetupKind, DevOnboardingSetupMethod, DevOnboardingSetupStatus, DevOnboardingStatus, DevOnboardingStep, DeviceBackToBoot, DeviceCertificate, DeviceCertificateRead, DeviceCertificateSign, DeviceCertificateSignature, DeviceCertificateWrite, DeviceCoprocessorInfo, DeviceEraseSector, DeviceErrorCode, DeviceFactoryAck, DeviceFactoryInfo, DeviceFactoryInfoGet, DeviceFactoryInfoManufactureTime, DeviceFactoryInfoSet, DeviceFactoryPermanentLock, DeviceFactoryTest, DeviceFirmwareImageInfo, DeviceFirmwareTarget, DeviceFirmwareTargetType, DeviceFirmwareUpdateRecord, DeviceFirmwareUpdateRecordFields, DeviceFirmwareUpdateRequest, DeviceFirmwareUpdateStatus, DeviceFirmwareUpdateStatusGet, DeviceFirmwareUpdateTaskStatus, DeviceHardwareInfo, DeviceInfo, DeviceInfoGet, DeviceInfoSettings, DeviceInfoTargets, DeviceInfoTypes, DeviceMainMcuInfo, DeviceReboot, DeviceRebootType, DeviceSEInfo, DeviceSEState, DeviceSeType, DeviceSession, DeviceSessionAskPin, DeviceSessionAskPin_FailureSubCodes, DeviceSessionGet, DeviceSettings, DeviceSettingsGet, DeviceSettingsPage, DeviceSettingsPageShow, DeviceSettingsSet, DeviceStatus, DeviceStatusGet, DeviceType, DnxAddress, DnxComputedKeyImage, DnxGetAddress, DnxInputAck, DnxInputRequest, DnxRTSigsRequest, DnxSignTx, DnxSignedTx, DnxTxKey, DoPreauthorized, ECDHSessionKey, EcdsaPublicKeys, EmmcDir, EmmcDirList, EmmcDirMake, EmmcDirRemove, EmmcFile, EmmcFileDelete, EmmcFileRead, EmmcFileWrite, EmmcFixPermission, EmmcPath, EmmcPathInfo, EndSession, Entropy, EntropyAck, EntropyRequest, Enum_BackupType, Enum_ButtonRequestType, Enum_Capability, Enum_InputScriptType, Enum_KaspaInputScriptType, Enum_KaspaOutputScriptType, Enum_KaspaRequestType, Enum_OutputScriptType, Enum_PinMatrixRequestType, Enum_ProtocolV2Capability, Enum_RequestType, Enum_SafetyCheckLevel, Enum_WordRequestType, EosActionBuyRam, EosActionBuyRamBytes, EosActionCommon, EosActionDelegate, EosActionDeleteAuth, EosActionLinkAuth, EosActionNewAccount, EosActionRefund, EosActionSellRam, EosActionTransfer, EosActionUndelegate, EosActionUnknown, EosActionUnlinkAuth, EosActionUpdateAuth, EosActionVoteProducer, EosAsset, EosAuthorization, EosAuthorizationAccount, EosAuthorizationKey, EosAuthorizationWait, EosGetPublicKey, EosPermissionLevel, EosPublicKey, EosSignTx, EosSignedTx, EosTxActionAck, EosTxActionRequest, EosTxHeader, EthereumAccessList, EthereumAccessListOneKey, EthereumAddress, EthereumAddressOneKey, EthereumAuthorizationOneKey, EthereumAuthorizationSignature, EthereumDataType, EthereumDataTypeOneKey, EthereumDefinitionType, EthereumDefinitions, EthereumFieldType, EthereumFieldTypeOneKey, EthereumGetAddress, EthereumGetAddressOneKey, EthereumGetPublicKey, EthereumGetPublicKeyOneKey, EthereumGnosisSafeTxAck, EthereumGnosisSafeTxOperation, EthereumGnosisSafeTxRequest, EthereumMessageSignature, EthereumMessageSignatureOneKey, EthereumNetworkInfo, EthereumPublicKey, EthereumPublicKeyOneKey, EthereumSignMessage, EthereumSignMessageEIP712, EthereumSignMessageOneKey, EthereumSignTx, EthereumSignTxEIP1559, EthereumSignTxEIP1559OneKey, EthereumSignTxEIP7702OneKey, EthereumSignTxOneKey, EthereumSignTypedData, EthereumSignTypedDataOneKey, EthereumSignTypedDataQR, EthereumSignTypedHash, EthereumSignTypedHashOneKey, EthereumStructMember, EthereumStructMemberOneKey, EthereumTokenInfo, EthereumTxAck, EthereumTxAckOneKey, EthereumTxRequest, EthereumTxRequestOneKey, EthereumTypedDataSignature, EthereumTypedDataSignatureOneKey, EthereumTypedDataStructAck, EthereumTypedDataStructAckOneKey, EthereumTypedDataStructRequest, EthereumTypedDataStructRequestOneKey, EthereumTypedDataValueAck, EthereumTypedDataValueAckOneKey, EthereumTypedDataValueRequest, EthereumTypedDataValueRequestOneKey, EthereumVerifyMessage, EthereumVerifyMessageOneKey, ExportType, Failure, FailureType, Features, FileInfo, FileInfoList, FilecoinAddress, FilecoinGetAddress, FilecoinSignTx, FilecoinSignedTx, FilesystemDir, FilesystemDirList, FilesystemDirMake, FilesystemDirRemove, FilesystemFile, FilesystemFileDelete, FilesystemFileRead, FilesystemFileWrite, FilesystemFormat, FilesystemPathInfo, FilesystemPathInfoQuery, FilesystemPermissionFix, FirmwareErase, FirmwareErase_ex, FirmwareHash, FirmwareRequest, FirmwareUpdateEmmc, FirmwareUpload, GetAddress, GetDeviceInfo, GetECDHSessionKey, GetEntropy, GetFeatures, GetFirmwareHash, GetNextU2FCounter, GetNonce, GetOwnershipId, GetOwnershipProof, GetPassphraseState, GetPublicKey, GetPublicKeyMultiple, GetWallpaper, HDNodePathType, HDNodeType, IdentityType, Initialize, InputScriptType, InternalInputScriptType, InternalMyAddressRequest, KaspaAddress, KaspaGetAddress, KaspaInputScriptType, KaspaOutpoint, KaspaOutputScriptType, KaspaRequestType, KaspaSignTx, KaspaSignedTx, KaspaTxAckInput, KaspaTxAckOutput, KaspaTxAckPayloadChunk, KaspaTxAckPrevInput, KaspaTxAckPrevMeta, KaspaTxAckPrevOutput, KaspaTxInputAck, KaspaTxInputRequest, KaspaTxRequest, KaspaTxRequestSignature, ListResDir, LnurlAuth, LnurlAuthResp, LockDevice, LogBlockCommand, LowLevelDevice, LowlevelTransportSharedPlugin, MessageFromOneKey, MessageKey, MessageResponse, MessageResponseMap, MessageSignature, MessageType, messages as Messages, MoneroAccountPublicAddress, MoneroAddress, MoneroExportedKeyImage, MoneroGetAddress, MoneroGetTxKeyAck, MoneroGetTxKeyRequest, MoneroGetWatchKey, MoneroKeyImageExportInitAck, MoneroKeyImageExportInitRequest, MoneroKeyImageSyncFinalAck, MoneroKeyImageSyncFinalRequest, MoneroKeyImageSyncStepAck, MoneroKeyImageSyncStepRequest, MoneroLiveRefreshFinalAck, MoneroLiveRefreshFinalRequest, MoneroLiveRefreshStartAck, MoneroLiveRefreshStartRequest, MoneroLiveRefreshStepAck, MoneroLiveRefreshStepRequest, MoneroMultisigKLRki, MoneroNetworkType, MoneroOutputEntry, MoneroRctKeyPublic, MoneroRingCtSig, MoneroSubAddressIndicesList, MoneroTransactionAllInputsSetAck, MoneroTransactionAllInputsSetRequest, MoneroTransactionAllOutSetAck, MoneroTransactionAllOutSetRequest, MoneroTransactionData, MoneroTransactionDestinationEntry, MoneroTransactionFinalAck, MoneroTransactionFinalRequest, MoneroTransactionInitAck, MoneroTransactionInitRequest, MoneroTransactionInputViniAck, MoneroTransactionInputViniRequest, MoneroTransactionInputsPermutationAck, MoneroTransactionInputsPermutationRequest, MoneroTransactionRsigData, MoneroTransactionSetInputAck, MoneroTransactionSetInputRequest, MoneroTransactionSetOutputAck, MoneroTransactionSetOutputRequest, MoneroTransactionSignInputAck, MoneroTransactionSignInputRequest, MoneroTransactionSourceEntry, MoneroTransferDetails, MoneroWatchKey, MultisigRedeemScriptType, NEMAddress, NEMAggregateModification, NEMCosignatoryModification, NEMDecryptMessage, NEMDecryptedMessage, NEMGetAddress, NEMImportanceTransfer, NEMImportanceTransferMode, NEMModificationType, NEMMosaic, NEMMosaicCreation, NEMMosaicDefinition, NEMMosaicLevy, NEMMosaicSupplyChange, NEMProvisionNamespace, NEMSignTx, NEMSignedTx, NEMSupplyChangeType, NEMTransactionCommon, NEMTransfer, NFTWriteData, NFTWriteInfo, NearAddress, NearGetAddress, NearSignTx, NearSignedTx, NeoAddress, NeoGetAddress, NeoSignTx, NeoSignedTx, NervosAddress, NervosGetAddress, NervosSignTx, NervosSignedTx, NervosTxAck, NervosTxRequest, NexaAddress, NexaGetAddress, NexaSignTx, NexaSignedTx, NexaTxInputAck, NexaTxInputRequest, NextU2FCounter, Nonce, NostrDecryptMessage, NostrDecryptedMessage, NostrEncryptMessage, NostrEncryptedMessage, NostrGetPublicKey, NostrPublicKey, NostrSignEvent, NostrSignSchnorr, NostrSignedEvent, NostrSignedSchnorr, OneKeyDeviceCommType, OneKeyDeviceInfo, OneKeyDeviceInfoBase, OneKeyDeviceInfoWithSession, OneKeyDeviceType, OneKeyMobileDeviceInfo, OneKeySEState, OneKeySeType, OnekeyFeatures, OnekeyGetFeatures, OutputScriptType, OwnershipId, OwnershipProof, PROTOCOL_V1_CHUNK_PAYLOAD_SIZE, PROTOCOL_V1_ENVELOPE_HEADER_SIZE, PROTOCOL_V1_HEADER_BYTE, PROTOCOL_V1_MESSAGE_HEADER_SIZE, PROTOCOL_V1_REPORT_ID, PROTOCOL_V1_USB_PACKET_SIZE, PROTOCOL_V2_BLE_FILE_CHUNK_SIZE, PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE, PROTOCOL_V2_BLE_FRAME_MAX_BYTES, PROTOCOL_V2_CHANNEL_BLE_UART, PROTOCOL_V2_CHANNEL_SOCKET, PROTOCOL_V2_CHANNEL_USB, PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS, PROTOCOL_V2_FILE_CHUNK_SIZE, PROTOCOL_V2_FRAME_MAX_BYTES, PROTOCOL_V2_PACKET_SRC_COMMAND, PROTOCOL_V2_SYS_MESSAGE_THRESHOLD, PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE, PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS, PassphraseAck, PassphraseRequest, PassphraseState, Path, PaymentRequestMemo, PinMatrixAck, PinMatrixRequest, PinMatrixRequestType, Ping, PolkadotAddress, PolkadotGetAddress, PolkadotSignTx, PolkadotSignedTx, PortfolioUpdate, PreauthorizedRequest, PrevInput, PrevOutput, PrevTx, ProtocolInfo, ProtocolInfoRequest, ProtocolType, ProtocolV1, ProtocolV2, ProtocolV2CallContext, ProtocolV2CallOptions, ProtocolV2Capability, ProtocolV2DeviceInfo, ProtocolV2FailureType, ProtocolV2FrameAssembler, ProtocolV2LinkAdapter, ProtocolV2LinkErrorClassification, ProtocolV2LinkManager, ProtocolV2LinkManagerOptions, ProtocolV2Schemas, ProtocolV2SequenceCursor, ProtocolV2Session, ProtocolV2SessionOptions, ProtocolV2UsbTransportBase, ProtocolV2UsbTransportBaseOptions, PublicKey, PublicKeyMultiple, ReadSEPublicCert, ReadSEPublicKey, Reboot, RebootToBoardloader, RebootToBootloader, RebootType, RecoveryDevice, RecoveryDeviceType, RefundMemo, RequestType, ResetDevice, ResourceAck, ResourceRequest, ResourceType, ResourceUpdate, ResourceUpload, RippleAddress, RippleGetAddress, RipplePayment, RippleSignTx, RippleSignedTx, SEMessageSignature, SEPublicCert, SEPublicKey, SESignMessage, SafetyCheckLevel, ScdoAddress, ScdoGetAddress, ScdoSignMessage, ScdoSignTx, ScdoSignedMessage, ScdoSignedTx, ScdoTxAck, SdProtect, SdProtectOperationType, SeedRequestType, SelfTest, SetBusy, SetU2FCounter, SetWallpaper, SignIdentity, SignMessage, SignPsbt, SignTx, SignedIdentity, SignedPsbt, SolanaAddress, SolanaGetAddress, SolanaMessageSignature, SolanaOffChainMessageFormat, SolanaOffChainMessageVersion, SolanaSignOffChainMessage, SolanaSignTx, SolanaSignUnsafeMessage, SolanaSignedTx, SolanaTxATADetails, SolanaTxExtraInfo, SpiFlashData, SpiFlashRead, SpiFlashWrite, StarcoinAddress, StarcoinGetAddress, StarcoinGetPublicKey, StarcoinMessageSignature, StarcoinPublicKey, StarcoinSignMessage, StarcoinSignTx, StarcoinSignedTx, StarcoinVerifyMessage, StartSession, StellarAccountMergeOp, StellarAddress, StellarAllowTrustOp, StellarAsset, StellarAssetType, StellarBumpSequenceOp, StellarChangeTrustOp, StellarCreateAccountOp, StellarCreatePassiveSellOfferOp, StellarGetAddress, StellarInvokeHostFunctionOp, StellarManageBuyOfferOp, StellarManageDataOp, StellarManageSellOfferOp, StellarMemoType, StellarPathPaymentStrictReceiveOp, StellarPathPaymentStrictSendOp, StellarPaymentOp, StellarRequestType, StellarSetOptionsOp, StellarSignTx, StellarSignedTx, StellarSignerType, StellarSorobanDataAck, StellarSorobanDataRequest, StellarTxOpRequest, Success, SuiAddress, SuiGetAddress, SuiMessageSignature, SuiSignMessage, SuiSignTx, SuiSignedTx, SuiTxAck, SuiTxRequest, TextMemo, TezosAddress, TezosBallotOp, TezosBallotType, TezosContractID, TezosContractType, TezosDelegationOp, TezosGetAddress, TezosGetPublicKey, TezosManagerTransfer, TezosOriginationOp, TezosParametersManager, TezosProposalOp, TezosPublicKey, TezosRevealOp, TezosSignTx, TezosSignedTx, TezosTransactionOp, TonAddress, TonGetAddress, TonSignData, TonSignDataType, TonSignMessage, TonSignProof, TonSignedData, TonSignedMessage, TonSignedProof, TonTxAck, TonWalletVersion, TonWorkChain, Transport, TransportCallOptions, TronAddress, TronCancelAllUnfreezeV2Contract, TronContract, TronDelegateResourceContract, TronFreezeBalanceContract, TronFreezeBalanceV2Contract, TronGetAddress, TronMessageSignature, TronMessageType, TronResourceCode, TronSignMessage, TronSignTx, TronSignedTx, TronTransferContract, TronTriggerSmartContract, TronUnDelegateResourceContract, TronUnfreezeBalanceContract, TronUnfreezeBalanceV2Contract, TronVoteWitnessContract, TronWithdrawBalanceContract, TronWithdrawExpireUnfreezeContract, TxAck, TxAckInput, TxAckInputWrapper, TxAckOutput, TxAckOutputWrapper, TxAckPaymentRequest, TxAckPrevExtraData, TxAckPrevExtraDataWrapper, TxAckPrevInput, TxAckPrevInputWrapper, TxAckPrevMeta, TxAckPrevOutput, TxAckPrevOutputWrapper, TxAckResponse, TxInput, TxInputType, TxOutput, TxOutputBinType, TxOutputType, TxRequest, TxRequestDetailsType, TxRequestSerializedType, TypedCall, UintType, UnLockDevice, UnLockDeviceResponse, UnlockPath, UnlockedPathRequest, UpgradeFileHeader, VerifyMessage, ViewAmount, ViewDetail, ViewRawData, ViewSignLayout, ViewSignPage, ViewTip, ViewTipType, ViewVerifyPage, Vote, WL_OperationType, Wallpaper, WallpaperTarget, WipeDevice, WordAck, WordRequest, WordRequestType, WriteSEPrivateKey, WriteSEPublicCert, ZoomRequest, bytesToHex, concatUint8Arrays, _default as default, experimental_field, experimental_message, facotry, getErrorMessage, hexToBytes, probeProtocolV2, index as protocolV1, protocolV2Codec as protocolV2, withProtocolTimeout };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAKL,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,eAAe,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAEL,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EAEV,eAAe,EACf,UAAU,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAKlD,YAAY,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElD,wBAsBE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAKL,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,eAAe,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAEL,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EAEV,eAAe,EACf,UAAU,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAKlD,YAAY,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,gBAAgB,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElD,wBAsBE"}