@onekeyfe/hd-transport 1.2.8-alpha.114 → 1.2.8-alpha.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/protocol-v2-file-write-pipeline.test.js +417 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +45 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +186 -38
- package/dist/protocols/v2/session.d.ts +4 -1
- package/dist/protocols/v2/session.d.ts.map +1 -1
- package/dist/types/transport.d.ts +5 -1
- package/dist/types/transport.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/constants.ts +10 -1
- package/src/index.ts +1 -0
- package/src/protocols/v2/session.ts +300 -63
- package/src/types/transport.ts +19 -6
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
const { ProtocolV2, ProtocolV2LinkManager } = require('../src');
|
|
3
|
+
const { parseConfigure } = require('../src/serialization/protobuf/messages');
|
|
4
|
+
const { ProtocolV2Session } = require('../src/protocols/v2/session');
|
|
5
|
+
const protocolV2 = require('../src/protocols/v2');
|
|
6
|
+
const { PROTOCOL_V2_FILE_WRITE_PIPELINE_WINDOW } = require('../src/constants');
|
|
7
|
+
|
|
8
|
+
const schemas = {
|
|
9
|
+
protocolV1: parseConfigure({
|
|
10
|
+
nested: {
|
|
11
|
+
Failure: { fields: { code: { type: 'uint32', id: 1 }, message: { type: 'string', id: 2 } } },
|
|
12
|
+
MessageType: { values: { MessageType_Failure: 3 } },
|
|
13
|
+
},
|
|
14
|
+
}),
|
|
15
|
+
protocolV2: parseConfigure({
|
|
16
|
+
nested: {
|
|
17
|
+
Failure: {
|
|
18
|
+
fields: {
|
|
19
|
+
code: { type: 'uint32', id: 1 },
|
|
20
|
+
subcode: { type: 'uint32', id: 2 },
|
|
21
|
+
message: { type: 'string', id: 3 },
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
ButtonRequest: { fields: { code: { type: 'uint32', id: 1 } } },
|
|
25
|
+
Success: { fields: { message: { type: 'string', id: 1 } } },
|
|
26
|
+
FilesystemFile: {
|
|
27
|
+
fields: {
|
|
28
|
+
path: { type: 'string', id: 1 },
|
|
29
|
+
offset: { type: 'uint32', id: 2 },
|
|
30
|
+
total_size: { type: 'uint32', id: 3 },
|
|
31
|
+
data: { type: 'bytes', id: 4 },
|
|
32
|
+
processed_byte: { type: 'uint32', id: 6 },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
FilesystemFileWrite: {
|
|
36
|
+
fields: {
|
|
37
|
+
file: { type: 'FilesystemFile', id: 1 },
|
|
38
|
+
overwrite: { type: 'bool', id: 2 },
|
|
39
|
+
append: { type: 'bool', id: 3 },
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
MessageType: {
|
|
43
|
+
values: {
|
|
44
|
+
MessageType_Success: 60207,
|
|
45
|
+
MessageType_Failure: 60208,
|
|
46
|
+
MessageType_ButtonRequest: 60209,
|
|
47
|
+
MessageType_FilesystemFile: 60803,
|
|
48
|
+
MessageType_FilesystemFileWrite: 60805,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
}),
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const PATH = 'vol0:/application_p1.bin';
|
|
56
|
+
|
|
57
|
+
const chunk = (offset, length, totalSize) => ({
|
|
58
|
+
file: { path: PATH, offset, total_size: totalSize, data: new Uint8Array(length) },
|
|
59
|
+
overwrite: offset === 0,
|
|
60
|
+
append: false,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const chunksOf = (totalSize, chunkSize) => {
|
|
64
|
+
const chunks = [];
|
|
65
|
+
for (let offset = 0; offset < totalSize; offset += chunkSize) {
|
|
66
|
+
chunks.push(chunk(offset, Math.min(chunkSize, totalSize - offset), totalSize));
|
|
67
|
+
}
|
|
68
|
+
return chunks;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const ackFrame = seq => {
|
|
72
|
+
const ack = new Uint8Array(8);
|
|
73
|
+
ack[0] = 0x5a;
|
|
74
|
+
ack[1] = 8;
|
|
75
|
+
ack[4] = 1;
|
|
76
|
+
ack[5] = 1;
|
|
77
|
+
ack[6] = seq;
|
|
78
|
+
ack[3] = protocolV2.crc8(ack, 3);
|
|
79
|
+
ack[7] = protocolV2.crc8(ack, 7);
|
|
80
|
+
return ack;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Simulates the bootloader: every written FileWrite frame is answered in order. `reply` may
|
|
85
|
+
* replace or prepend frames for a given request index.
|
|
86
|
+
*/
|
|
87
|
+
const createDevice = ({ reply } = {}) => {
|
|
88
|
+
let responseSeq = 100;
|
|
89
|
+
const queue = [];
|
|
90
|
+
const waiters = [];
|
|
91
|
+
const requests = [];
|
|
92
|
+
let maxInFlight = 0;
|
|
93
|
+
let answered = 0;
|
|
94
|
+
const push = frame => {
|
|
95
|
+
const waiter = waiters.shift();
|
|
96
|
+
if (waiter) waiter(frame);
|
|
97
|
+
else queue.push(frame);
|
|
98
|
+
};
|
|
99
|
+
const encode = (name, message) => {
|
|
100
|
+
responseSeq += 1;
|
|
101
|
+
return ProtocolV2.encodeFrame(schemas, name, message, {
|
|
102
|
+
router: 1,
|
|
103
|
+
packetSrc: 0,
|
|
104
|
+
seq: responseSeq,
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
const respond = () => {
|
|
108
|
+
const index = answered;
|
|
109
|
+
answered += 1;
|
|
110
|
+
const request = requests[index];
|
|
111
|
+
const { offset, total_size: totalSize, data } = request.message.file;
|
|
112
|
+
// Decoded protobuf bytes are hex strings.
|
|
113
|
+
const length = Number(typeof data === 'string' ? data.length / 2 : data.length);
|
|
114
|
+
const confirmation = encode('FilesystemFile', {
|
|
115
|
+
path: PATH,
|
|
116
|
+
offset,
|
|
117
|
+
total_size: totalSize,
|
|
118
|
+
processed_byte: Number(offset) + length,
|
|
119
|
+
});
|
|
120
|
+
const frames = reply ? reply({ index, request, confirmation, encode }) : [confirmation];
|
|
121
|
+
frames.forEach(push);
|
|
122
|
+
};
|
|
123
|
+
return {
|
|
124
|
+
requests,
|
|
125
|
+
get maxInFlight() {
|
|
126
|
+
return maxInFlight;
|
|
127
|
+
},
|
|
128
|
+
writeFrame: jest.fn(frame => {
|
|
129
|
+
const decoded = ProtocolV2.decodeFrame(schemas, frame);
|
|
130
|
+
requests.push({ seq: frame[6], message: decoded.message });
|
|
131
|
+
maxInFlight = Math.max(maxInFlight, requests.length - answered);
|
|
132
|
+
return Promise.resolve();
|
|
133
|
+
}),
|
|
134
|
+
inject: (name, message) => push(encode(name, message)),
|
|
135
|
+
readFrame: jest.fn(() => {
|
|
136
|
+
while (!queue.length && answered < requests.length) {
|
|
137
|
+
respond();
|
|
138
|
+
}
|
|
139
|
+
const frame = queue.shift();
|
|
140
|
+
if (frame) return Promise.resolve(frame);
|
|
141
|
+
return new Promise(resolve => {
|
|
142
|
+
waiters.push(resolve);
|
|
143
|
+
});
|
|
144
|
+
}),
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
const createSession = (device, options = {}) =>
|
|
149
|
+
new ProtocolV2Session({
|
|
150
|
+
schemas,
|
|
151
|
+
router: 1,
|
|
152
|
+
writeFrame: device.writeFrame,
|
|
153
|
+
readFrame: device.readFrame,
|
|
154
|
+
...options,
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
const runPipeline = (session, chunks, callOptions = {}) => {
|
|
158
|
+
const [first, ...rest] = chunks;
|
|
159
|
+
const next = jest.fn(() => Promise.resolve(rest.shift()));
|
|
160
|
+
const onResponse = jest.fn();
|
|
161
|
+
return {
|
|
162
|
+
next,
|
|
163
|
+
onResponse,
|
|
164
|
+
result: session.call('FilesystemFileWrite', first, {
|
|
165
|
+
...callOptions,
|
|
166
|
+
fileWritePipeline: { next, onResponse },
|
|
167
|
+
}),
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
describe('Protocol V2 file write pipeline', () => {
|
|
172
|
+
test('keeps two ordered chunks in flight and confirms each one', async () => {
|
|
173
|
+
const device = createDevice();
|
|
174
|
+
const session = createSession(device);
|
|
175
|
+
const { result, onResponse } = runPipeline(session, chunksOf(10, 2));
|
|
176
|
+
|
|
177
|
+
await expect(result).resolves.toMatchObject({
|
|
178
|
+
type: 'FilesystemFile',
|
|
179
|
+
message: { processed_byte: 10 },
|
|
180
|
+
});
|
|
181
|
+
expect(PROTOCOL_V2_FILE_WRITE_PIPELINE_WINDOW).toBe(2);
|
|
182
|
+
expect(device.maxInFlight).toBe(2);
|
|
183
|
+
expect(device.requests.map(request => request.message.file.offset)).toEqual([0, 2, 4, 6, 8]);
|
|
184
|
+
expect(onResponse.mock.calls.map(([response]) => response.message.processed_byte)).toEqual([
|
|
185
|
+
2, 4, 6, 8, 10,
|
|
186
|
+
]);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
test('sends a single-chunk file without asking for more than the source has', async () => {
|
|
190
|
+
const device = createDevice();
|
|
191
|
+
const session = createSession(device);
|
|
192
|
+
const { result, next } = runPipeline(session, chunksOf(3, 4));
|
|
193
|
+
|
|
194
|
+
await expect(result).resolves.toMatchObject({ message: { processed_byte: 3 } });
|
|
195
|
+
expect(device.requests).toHaveLength(1);
|
|
196
|
+
expect(next).toHaveBeenCalledTimes(1);
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
test('skips an ACK of an in-flight chunk', async () => {
|
|
200
|
+
const device = createDevice({
|
|
201
|
+
reply: ({ index, request, confirmation }) =>
|
|
202
|
+
index === 0 ? [ackFrame(request.seq), confirmation] : [confirmation],
|
|
203
|
+
});
|
|
204
|
+
const session = createSession(device);
|
|
205
|
+
const { result } = runPipeline(session, chunksOf(4, 2));
|
|
206
|
+
|
|
207
|
+
await expect(result).resolves.toMatchObject({ message: { processed_byte: 4 } });
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
test('drains in-flight chunks after a device Failure and returns it', async () => {
|
|
211
|
+
const device = createDevice({
|
|
212
|
+
reply: ({ index, confirmation, encode }) =>
|
|
213
|
+
index >= 1
|
|
214
|
+
? [encode('Failure', { code: 9, message: 'Write offset mismatch' })]
|
|
215
|
+
: [confirmation],
|
|
216
|
+
});
|
|
217
|
+
const session = createSession(device);
|
|
218
|
+
const { result, next, onResponse } = runPipeline(session, chunksOf(10, 2));
|
|
219
|
+
|
|
220
|
+
await expect(result).resolves.toEqual({
|
|
221
|
+
type: 'Failure',
|
|
222
|
+
message: expect.objectContaining({ message: 'Write offset mismatch' }),
|
|
223
|
+
});
|
|
224
|
+
// Chunk 0 confirmed, chunk 1 failed; chunk 2 was already in flight and is drained.
|
|
225
|
+
expect(onResponse).toHaveBeenCalledTimes(1);
|
|
226
|
+
expect(device.requests).toHaveLength(3);
|
|
227
|
+
expect(device.readFrame).toHaveBeenCalledTimes(3);
|
|
228
|
+
expect(next).toHaveBeenCalledTimes(2);
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
test('keeps the link after a device Failure', async () => {
|
|
232
|
+
const device = createDevice({
|
|
233
|
+
reply: ({ encode }) => [encode('Failure', { code: 9, message: 'Write offset mismatch' })],
|
|
234
|
+
});
|
|
235
|
+
const adapter = {
|
|
236
|
+
router: 1,
|
|
237
|
+
generation: 1,
|
|
238
|
+
prepareCall: jest.fn(),
|
|
239
|
+
writeFrame: device.writeFrame,
|
|
240
|
+
readFrame: device.readFrame,
|
|
241
|
+
reset: jest.fn(),
|
|
242
|
+
};
|
|
243
|
+
const manager = new ProtocolV2LinkManager({
|
|
244
|
+
getSchemas: () => schemas,
|
|
245
|
+
classifyError: () => 'link-fatal',
|
|
246
|
+
});
|
|
247
|
+
const [first, ...rest] = chunksOf(6, 2);
|
|
248
|
+
|
|
249
|
+
await expect(
|
|
250
|
+
manager.call('device-a', () => adapter, 'FilesystemFileWrite', first, {
|
|
251
|
+
fileWritePipeline: { next: () => Promise.resolve(rest.shift()), onResponse: jest.fn() },
|
|
252
|
+
})
|
|
253
|
+
).resolves.toMatchObject({ type: 'Failure' });
|
|
254
|
+
expect(adapter.reset).not.toHaveBeenCalled();
|
|
255
|
+
expect(adapter.prepareCall).toHaveBeenCalledTimes(1);
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
test('invalidates the link when a confirmation does not match the oldest chunk', async () => {
|
|
259
|
+
const device = createDevice({
|
|
260
|
+
reply: ({ index, confirmation, encode }) =>
|
|
261
|
+
index === 1
|
|
262
|
+
? [encode('FilesystemFile', { path: PATH, offset: 4, total_size: 6, processed_byte: 6 })]
|
|
263
|
+
: [confirmation],
|
|
264
|
+
});
|
|
265
|
+
const adapter = {
|
|
266
|
+
router: 1,
|
|
267
|
+
generation: 1,
|
|
268
|
+
prepareCall: jest.fn(),
|
|
269
|
+
writeFrame: device.writeFrame,
|
|
270
|
+
readFrame: device.readFrame,
|
|
271
|
+
reset: jest.fn(() => Promise.resolve()),
|
|
272
|
+
};
|
|
273
|
+
const manager = new ProtocolV2LinkManager({
|
|
274
|
+
getSchemas: () => schemas,
|
|
275
|
+
classifyError: () => 'link-fatal',
|
|
276
|
+
});
|
|
277
|
+
const [first, ...rest] = chunksOf(6, 2);
|
|
278
|
+
|
|
279
|
+
await expect(
|
|
280
|
+
manager.call('device-a', () => adapter, 'FilesystemFileWrite', first, {
|
|
281
|
+
fileWritePipeline: { next: () => Promise.resolve(rest.shift()), onResponse: jest.fn() },
|
|
282
|
+
})
|
|
283
|
+
).rejects.toEqual(expect.objectContaining({ name: 'ProtocolV2LinkError', code: 'frame' }));
|
|
284
|
+
expect(adapter.reset).toHaveBeenCalled();
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
test('rejects an interactive response inside the pipeline', async () => {
|
|
288
|
+
const device = createDevice({
|
|
289
|
+
reply: ({ encode }) => [encode('ButtonRequest', { code: 1 })],
|
|
290
|
+
});
|
|
291
|
+
const session = createSession(device);
|
|
292
|
+
const { result } = runPipeline(session, chunksOf(4, 2));
|
|
293
|
+
|
|
294
|
+
await expect(result).rejects.toEqual(
|
|
295
|
+
expect.objectContaining({ name: 'ProtocolV2LinkError', code: 'frame' })
|
|
296
|
+
);
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
test('rejects a source chunk that skips an offset before writing it', async () => {
|
|
300
|
+
const device = createDevice();
|
|
301
|
+
const session = createSession(device);
|
|
302
|
+
const { result } = runPipeline(session, [chunk(0, 2, 8), chunk(4, 2, 8)]);
|
|
303
|
+
|
|
304
|
+
await expect(result).rejects.toThrow('chunk out of order: expected offset 2, got 4');
|
|
305
|
+
expect(device.requests).toHaveLength(1);
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
test('drains the in-flight chunk and returns the last confirmation when the source stops', async () => {
|
|
309
|
+
const device = createDevice();
|
|
310
|
+
const session = createSession(device);
|
|
311
|
+
const { result, onResponse } = runPipeline(session, [chunk(0, 2, 6), chunk(2, 2, 6)]);
|
|
312
|
+
|
|
313
|
+
await expect(result).resolves.toMatchObject({
|
|
314
|
+
type: 'FilesystemFile',
|
|
315
|
+
message: { processed_byte: 4 },
|
|
316
|
+
});
|
|
317
|
+
expect(onResponse).toHaveBeenCalledTimes(2);
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
test('detects a chunk lost before a bootloader that appends at its own cursor', async () => {
|
|
321
|
+
let cursor = 0;
|
|
322
|
+
const device = createDevice({
|
|
323
|
+
reply: ({ index, request, encode }) => {
|
|
324
|
+
// The third frame never reaches the bootloader, which echoes the request offset but
|
|
325
|
+
// reports its own cursor in processed_byte.
|
|
326
|
+
if (index === 2) return [];
|
|
327
|
+
const { offset, total_size: totalSize, data } = request.message.file;
|
|
328
|
+
cursor += data.length / 2;
|
|
329
|
+
return [
|
|
330
|
+
encode('FilesystemFile', {
|
|
331
|
+
path: PATH,
|
|
332
|
+
offset,
|
|
333
|
+
total_size: totalSize,
|
|
334
|
+
processed_byte: cursor,
|
|
335
|
+
}),
|
|
336
|
+
];
|
|
337
|
+
},
|
|
338
|
+
});
|
|
339
|
+
const session = createSession(device);
|
|
340
|
+
const { result, onResponse } = runPipeline(session, chunksOf(10, 2));
|
|
341
|
+
|
|
342
|
+
await expect(result).rejects.toEqual(
|
|
343
|
+
expect.objectContaining({ name: 'ProtocolV2LinkError', code: 'frame' })
|
|
344
|
+
);
|
|
345
|
+
expect(onResponse.mock.calls.map(([response]) => response.message.processed_byte)).toEqual([
|
|
346
|
+
2, 4,
|
|
347
|
+
]);
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
test('does not let skipped frames extend the wait for a response', async () => {
|
|
351
|
+
const device = createDevice({ reply: () => [] });
|
|
352
|
+
const noise = setInterval(() => device.inject('Success', { message: 'unrelated' }), 10);
|
|
353
|
+
try {
|
|
354
|
+
const session = createSession(device);
|
|
355
|
+
const { result } = runPipeline(session, chunksOf(2, 2), { timeoutMs: 60 });
|
|
356
|
+
|
|
357
|
+
await expect(result).rejects.toThrow('Protocol V2 response timeout after 60ms');
|
|
358
|
+
} finally {
|
|
359
|
+
clearInterval(noise);
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
test('rejects a chunk whose frame exceeds the transport limit', async () => {
|
|
364
|
+
const device = createDevice();
|
|
365
|
+
const session = createSession(device, { maxFrameBytes: 64 });
|
|
366
|
+
const { result } = runPipeline(session, [chunk(0, 128, 128)]);
|
|
367
|
+
|
|
368
|
+
await expect(result).rejects.toThrow('Protocol V2 frame too large for transport');
|
|
369
|
+
expect(device.requests).toHaveLength(0);
|
|
370
|
+
});
|
|
371
|
+
|
|
372
|
+
test('bounds each response wait instead of the whole file', async () => {
|
|
373
|
+
const device = createDevice();
|
|
374
|
+
const read = device.readFrame.getMockImplementation();
|
|
375
|
+
device.readFrame.mockImplementation(
|
|
376
|
+
() =>
|
|
377
|
+
new Promise(resolve => {
|
|
378
|
+
setTimeout(() => resolve(read()), 40);
|
|
379
|
+
})
|
|
380
|
+
);
|
|
381
|
+
const session = createSession(device);
|
|
382
|
+
const { result } = runPipeline(session, chunksOf(8, 2), { timeoutMs: 100 });
|
|
383
|
+
|
|
384
|
+
// Four 40 ms responses outlast the 100 ms timeout, but no single wait does.
|
|
385
|
+
await expect(result).resolves.toMatchObject({ message: { processed_byte: 8 } });
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
test('times out a stalled response with the transport error', async () => {
|
|
389
|
+
const device = createDevice();
|
|
390
|
+
device.readFrame.mockImplementation(() => new Promise(() => {}));
|
|
391
|
+
const createTimeoutError = jest.fn(
|
|
392
|
+
(name, timeoutMs) => new Error(`BLE timeout ${name} ${timeoutMs}`)
|
|
393
|
+
);
|
|
394
|
+
const session = createSession(device, { createTimeoutError });
|
|
395
|
+
const { result } = runPipeline(session, chunksOf(4, 2), { timeoutMs: 50 });
|
|
396
|
+
|
|
397
|
+
await expect(result).rejects.toThrow('BLE timeout FilesystemFileWrite 50');
|
|
398
|
+
expect(device.writeFrame.mock.calls[0][1].signal.aborted).toBe(true);
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
test('stops when the caller rejects a confirmed chunk', async () => {
|
|
402
|
+
const device = createDevice();
|
|
403
|
+
const session = createSession(device);
|
|
404
|
+
const [first, ...rest] = chunksOf(10, 2);
|
|
405
|
+
const result = session.call('FilesystemFileWrite', first, {
|
|
406
|
+
fileWritePipeline: {
|
|
407
|
+
next: () => Promise.resolve(rest.shift()),
|
|
408
|
+
onResponse: () => {
|
|
409
|
+
throw new Error('cancelled');
|
|
410
|
+
},
|
|
411
|
+
},
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
await expect(result).rejects.toThrow('cancelled');
|
|
415
|
+
expect(device.requests).toHaveLength(2);
|
|
416
|
+
});
|
|
417
|
+
});
|
package/dist/constants.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare const PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = 1800;
|
|
|
10
10
|
export declare const PROTOCOL_V2_BLE_FIRMWARE_FILE_CHUNK_SIZE = 1960;
|
|
11
11
|
export declare const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
|
|
12
12
|
export declare const PROTOCOL_V2_BLE_FRAME_MAX_BYTES = 2048;
|
|
13
|
+
export declare const PROTOCOL_V2_FILE_WRITE_PIPELINE_WINDOW = 2;
|
|
13
14
|
export declare const PROTOCOL_V2_FILE_CHUNK_SIZE = 4000;
|
|
14
15
|
export declare const PROTOCOL_V2_CHANNEL_USB = 0;
|
|
15
16
|
export declare const PROTOCOL_V2_CHANNEL_BLE_UART = 1;
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,KAAO,CAAC;AAG1C,eAAO,MAAM,uBAAuB,KAAO,CAAC;AAG5C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAGjD,eAAO,MAAM,2BAA2B,QAAqC,CAAC;AAG9E,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAGrD,eAAO,MAAM,gCAAgC,QAA0C,CAAC;AAKxF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAGhD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAGvD,eAAO,MAAM,+BAA+B,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,KAAO,CAAC;AAG1C,eAAO,MAAM,uBAAuB,KAAO,CAAC;AAG5C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAGjD,eAAO,MAAM,2BAA2B,QAAqC,CAAC;AAG9E,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAGrD,eAAO,MAAM,gCAAgC,QAA0C,CAAC;AAKxF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAGhD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAGvD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAOpD,eAAO,MAAM,wCAAwC,OAAO,CAAC;AAG7D,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAGxD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAQpD,eAAO,MAAM,sCAAsC,IAAI,CAAC;AAGxD,eAAO,MAAM,2BAA2B,OAAqC,CAAC;AAM9E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAG5C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAQhD,eAAO,MAAM,uCAAuC,QAAgB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -323,12 +323,6 @@ type OneKeyDeviceInfoWithSession = OneKeyUsbDeviceInfo & {
|
|
|
323
323
|
type OneKeyMobileDeviceInfo = {
|
|
324
324
|
id: string;
|
|
325
325
|
name: string | null;
|
|
326
|
-
/**
|
|
327
|
-
* Color letter of the serial number ('A'-'Z') from the Pro2 / Neo BLE advertisement,
|
|
328
|
-
* possibly seen in an earlier scan. Set by the React Native and Electron BLE
|
|
329
|
-
* transports; absent when unknown.
|
|
330
|
-
*/
|
|
331
|
-
bleColorCode?: string;
|
|
332
326
|
};
|
|
333
327
|
type OneKeyDeviceInfoBase = {
|
|
334
328
|
commType: OneKeyDeviceCommType;
|
|
@@ -359,6 +353,18 @@ type TransportWriteMetrics = {
|
|
|
359
353
|
elapsedMs: number;
|
|
360
354
|
frameBytes: number;
|
|
361
355
|
};
|
|
356
|
+
/**
|
|
357
|
+
* Supplies the remaining chunks of one file for an ordered FilesystemFileWrite pipeline.
|
|
358
|
+
* The call's request data is the first chunk; `next` returns the following chunk in offset
|
|
359
|
+
* order, or undefined to stop. The call then resolves with the last confirmation (or the
|
|
360
|
+
* device Failure), so the caller must check `processed_byte` for completeness. Callbacks
|
|
361
|
+
* should not throw: an error escapes with chunks still in flight and invalidates the link.
|
|
362
|
+
*/
|
|
363
|
+
type ProtocolV2FileWritePipeline = {
|
|
364
|
+
next: () => Promise<Record<string, unknown> | undefined>;
|
|
365
|
+
/** Called for each chunk after the device confirms it, in offset order. */
|
|
366
|
+
onResponse: (response: MessageFromOneKey) => void;
|
|
367
|
+
};
|
|
362
368
|
type TransportCallOptions = {
|
|
363
369
|
timeoutMs?: number;
|
|
364
370
|
expectedTypes?: string[];
|
|
@@ -372,6 +378,12 @@ type TransportCallOptions = {
|
|
|
372
378
|
onResponseAfterWrite?: (response: MessageFromOneKey) => void;
|
|
373
379
|
/** Prefer acknowledged BLE characteristic writes for this call when supported. */
|
|
374
380
|
writeWithResponse?: boolean;
|
|
381
|
+
/**
|
|
382
|
+
* Protocol V2 only: keep up to PROTOCOL_V2_FILE_WRITE_PIPELINE_WINDOW ordered
|
|
383
|
+
* FilesystemFileWrite frames of one file in flight within this call. `timeoutMs`
|
|
384
|
+
* bounds each frame write and each response instead of the whole file.
|
|
385
|
+
*/
|
|
386
|
+
fileWritePipeline?: ProtocolV2FileWritePipeline;
|
|
375
387
|
};
|
|
376
388
|
type ITransportInitFn = (logger?: any, emitter?: EventEmitter, plugin?: LowlevelTransportSharedPlugin) => Promise<string>;
|
|
377
389
|
type Transport = {
|
|
@@ -6833,6 +6845,7 @@ type ProtocolV2CallOptions = {
|
|
|
6833
6845
|
returnAfterWrite?: boolean;
|
|
6834
6846
|
onResponseAfterWrite?: (response: MessageFromOneKey) => void;
|
|
6835
6847
|
writeWithResponse?: boolean;
|
|
6848
|
+
fileWritePipeline?: ProtocolV2FileWritePipeline;
|
|
6836
6849
|
};
|
|
6837
6850
|
|
|
6838
6851
|
declare function hexToBytes(hex: string): Uint8Array;
|
|
@@ -6857,6 +6870,22 @@ declare class ProtocolV2Session {
|
|
|
6857
6870
|
sendFlowControl(name: string, data: Record<string, unknown>): Promise<MessageFromOneKey>;
|
|
6858
6871
|
private serializeWrite;
|
|
6859
6872
|
private executeCall;
|
|
6873
|
+
/**
|
|
6874
|
+
* Validates one received frame for this session. Returns undefined for an ACK of one of
|
|
6875
|
+
* `ackSequences`, otherwise the decoded response.
|
|
6876
|
+
*/
|
|
6877
|
+
private parseResponseFrame;
|
|
6878
|
+
/**
|
|
6879
|
+
* Writes one file as ordered FilesystemFileWrite chunks while keeping up to
|
|
6880
|
+
* PROTOCOL_V2_FILE_WRITE_PIPELINE_WINDOW chunks in flight. Firmware still processes and
|
|
6881
|
+
* answers every chunk in order, so responses are matched to chunks by position. Upstream
|
|
6882
|
+
* bootloaders append at their own cursor without checking the request offset, so the echoed
|
|
6883
|
+
* offset is what exposes a lost chunk. A device Failure, or `next` returning undefined, stops
|
|
6884
|
+
* sending; the remaining in-flight responses are drained so the link stays usable. The call
|
|
6885
|
+
* then returns the Failure like a serial call, or the last confirmation, which the caller
|
|
6886
|
+
* checks for completeness.
|
|
6887
|
+
*/
|
|
6888
|
+
private executeFileWritePipeline;
|
|
6860
6889
|
}
|
|
6861
6890
|
declare function probeProtocolV2({ call, timeoutMs, logger, logPrefix, onBeforeProbe, onProbeFailed, shouldRethrow, }: {
|
|
6862
6891
|
call: (name: string, data: Record<string, unknown>, options?: ProtocolV2CallOptions) => Promise<MessageFromOneKey>;
|
|
@@ -6991,14 +7020,22 @@ declare const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = 4000;
|
|
|
6991
7020
|
/** Generic FilesystemFileWrite chunk size over BLE, including support for long filesystem paths. */
|
|
6992
7021
|
declare const PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = 1800;
|
|
6993
7022
|
/**
|
|
6994
|
-
* FirmwareUpdateV4 chunk size for its fixed BLE staging paths.
|
|
7023
|
+
* FirmwareUpdateV4 chunk size for its fixed BLE staging paths when writes are serial.
|
|
6995
7024
|
* The longest current path still leaves 28 bytes below the 2048-byte BLE frame limit.
|
|
7025
|
+
* Pipelined writes use PROTOCOL_V2_BLE_FILE_CHUNK_SIZE so two frames fit the UART FIFO.
|
|
6996
7026
|
*/
|
|
6997
7027
|
declare const PROTOCOL_V2_BLE_FIRMWARE_FILE_CHUNK_SIZE = 1960;
|
|
6998
7028
|
/** BLE FilesystemFileRead chunk size, limited by the Pro2 1024-byte UART TX buffer. */
|
|
6999
7029
|
declare const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
|
|
7000
7030
|
/** Pro2 BLE/UART RX FIFO must hold a complete Proto Link frame. */
|
|
7001
7031
|
declare const PROTOCOL_V2_BLE_FRAME_MAX_BYTES = 2048;
|
|
7032
|
+
/**
|
|
7033
|
+
* FilesystemFileWrite frames kept in flight by a file write pipeline. The main MCU copies a
|
|
7034
|
+
* complete frame out of its UART FIFO before handling it, but a frame waiting to be parsed and
|
|
7035
|
+
* the next one being received can both be resident: two full frames must fit (4096-byte FIFO).
|
|
7036
|
+
* With 1800-byte chunks two frames take about 3.75 KB.
|
|
7037
|
+
*/
|
|
7038
|
+
declare const PROTOCOL_V2_FILE_WRITE_PIPELINE_WINDOW = 2;
|
|
7002
7039
|
/** @deprecated Use the transport-specific WebUSB or BLE file chunk constant. */
|
|
7003
7040
|
declare const PROTOCOL_V2_FILE_CHUNK_SIZE = 4000;
|
|
7004
7041
|
/**
|
|
@@ -7109,4 +7146,4 @@ declare const _default: {
|
|
|
7109
7146
|
withProtocolTimeout: typeof withProtocolTimeout;
|
|
7110
7147
|
};
|
|
7111
7148
|
|
|
7112
|
-
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, BabylonDeriveContextHash, BabylonDerivedContextHash, 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, CanonicalBitcoinNetwork, 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, DeviceAnimationAction, DeviceAnimationControl, DeviceBackToBoot, DeviceCertificate, DeviceCertificateRead, DeviceCertificateSign, DeviceCertificateSignature, DeviceCertificateWrite, DeviceCoprocessorInfo, DeviceEraseSector, DeviceErrorCode, DeviceFactoryAck, DeviceFactoryInfo, DeviceFactoryInfoGet, DeviceFactoryInfoManufactureTime, DeviceFactoryInfoSet, DeviceFactoryPermanentLock, DeviceFactoryTest, DeviceFindMyTokenState, DeviceFindMyTokenStateGet, DeviceFindMyTokenUpdate, DeviceFirmwareImageInfo, DeviceFirmwareTarget, DeviceFirmwareTargetType, DeviceFirmwareUpdatePhase, DeviceFirmwareUpdatePhaseInfo, DeviceFirmwareUpdateRecord, DeviceFirmwareUpdateRecordFields, DeviceFirmwareUpdateRequest, DeviceFirmwareUpdateStage, DeviceFirmwareUpdateStatus, DeviceFirmwareUpdateStatusGet, DeviceFirmwareUpdateTaskStatus, DeviceHardwareInfo, DeviceInfo, DeviceInfoGet, DeviceInfoSettings, DeviceInfoTargets, DeviceInfoTypes, DeviceMainMcuInfo, DeviceMiscUsbMscControl, DeviceReboot, DeviceRebootType, DeviceSEInfo, DeviceSEState, DeviceSeType, DeviceSession, DeviceSessionAskPassphrase, DeviceSessionAskPin, DeviceSessionAskPin_FailureSubCodes, DeviceSessionErrorCode, DeviceSessionGet, DeviceSessionPinType, DeviceSessionSeedDomain, 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_CanonicalBitcoinNetwork, 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, 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, NftUpdate, Nonce, NostrDecryptMessage, NostrDecryptedMessage, NostrEncryptMessage, NostrEncryptedMessage, NostrGetPublicKey, NostrPublicKey, NostrSignEvent, NostrSignSchnorr, NostrSignedEvent, NostrSignedSchnorr, OnboardingPhase, OnboardingSetupKind, OnboardingSetupMethod, OnboardingSetupStatus, OnboardingStatus, OnboardingStatusGet, OnboardingStep, 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_FIRMWARE_FILE_CHUNK_SIZE, PROTOCOL_V2_BLE_FRAME_MAX_BYTES, PROTOCOL_V2_CHANNEL_BLE_UART, PROTOCOL_V2_CHANNEL_SOCKET, PROTOCOL_V2_CHANNEL_USB, PROTOCOL_V2_DEFAULT_RESPONSE_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, PassphraseAck, PassphraseRequest, PassphraseState, Path, PaymentRequestMemo, PinMatrixAck, PinMatrixRequest, PinMatrixRequestType, Ping, PolkadotAddress, PolkadotGetAddress, PolkadotSignTx, PolkadotSignedTx, PortfolioUpdate, PreauthorizedRequest, PrevInput, PrevOutput, PrevTx, ProtocolInfo, ProtocolInfoRequest, ProtocolType, ProtocolV1, ProtocolV2, ProtocolV2BleFrameWriterOptions, ProtocolV2CallContext, ProtocolV2CallOptions, ProtocolV2Capability, ProtocolV2DeviceInfo, ProtocolV2FailureType, ProtocolV2FrameAssembler, ProtocolV2LinkAdapter, ProtocolV2LinkDisabledError, ProtocolV2LinkError, ProtocolV2LinkErrorClassification, ProtocolV2LinkErrorCode, 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, 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, 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, TRANSPORT_EVENT, 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, TransportDeviceDisconnectEvent, TransportWriteMetrics, 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, UiAnimationCommand, UiAnimationRequest, UiAnimationType, UintType, UnLockDevice, UnLockDeviceResponse, UnlockPath, UnlockedPathRequest, UpgradeFileHeader, VerifyMessage, ViewActionCard, ViewAmount, ViewContentEntry, ViewContentPage, ViewContentPreview, ViewCustomField, ViewDetail, ViewSignLayout, ViewSignPage, ViewTip, ViewTipType, ViewVerifyPage, ViewWarningPage, Vote, WL_OperationType, WipeDevice, WordAck, WordRequest, WordRequestType, WriteSEPrivateKey, WriteSEPublicCert, ZoomRequest, bytesToHex, concatUint8Arrays, createProtocolV2LinkDisabledError, createTransportCallLog, _default as default, detectProtocolV2LinkDisabledError, experimental_field, experimental_message, facotry, getErrorMessage, getSafeTransportLogPayload, hexToBytes, isProtocolV2HighThroughputCall, isProtocolV2LinkDisabledError, isProtocolV2LinkDisabledFailure, isProtocolV2LinkError, probeProtocolV2, index as protocolV1, protocolV2Codec as protocolV2, shouldSuppressHighVolumeCallLog, withProtocolTimeout, writeProtocolV2BleFrame };
|
|
7149
|
+
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, BabylonDeriveContextHash, BabylonDerivedContextHash, 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, CanonicalBitcoinNetwork, 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, DeviceAnimationAction, DeviceAnimationControl, DeviceBackToBoot, DeviceCertificate, DeviceCertificateRead, DeviceCertificateSign, DeviceCertificateSignature, DeviceCertificateWrite, DeviceCoprocessorInfo, DeviceEraseSector, DeviceErrorCode, DeviceFactoryAck, DeviceFactoryInfo, DeviceFactoryInfoGet, DeviceFactoryInfoManufactureTime, DeviceFactoryInfoSet, DeviceFactoryPermanentLock, DeviceFactoryTest, DeviceFindMyTokenState, DeviceFindMyTokenStateGet, DeviceFindMyTokenUpdate, DeviceFirmwareImageInfo, DeviceFirmwareTarget, DeviceFirmwareTargetType, DeviceFirmwareUpdatePhase, DeviceFirmwareUpdatePhaseInfo, DeviceFirmwareUpdateRecord, DeviceFirmwareUpdateRecordFields, DeviceFirmwareUpdateRequest, DeviceFirmwareUpdateStage, DeviceFirmwareUpdateStatus, DeviceFirmwareUpdateStatusGet, DeviceFirmwareUpdateTaskStatus, DeviceHardwareInfo, DeviceInfo, DeviceInfoGet, DeviceInfoSettings, DeviceInfoTargets, DeviceInfoTypes, DeviceMainMcuInfo, DeviceMiscUsbMscControl, DeviceReboot, DeviceRebootType, DeviceSEInfo, DeviceSEState, DeviceSeType, DeviceSession, DeviceSessionAskPassphrase, DeviceSessionAskPin, DeviceSessionAskPin_FailureSubCodes, DeviceSessionErrorCode, DeviceSessionGet, DeviceSessionPinType, DeviceSessionSeedDomain, 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_CanonicalBitcoinNetwork, 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, 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, NftUpdate, Nonce, NostrDecryptMessage, NostrDecryptedMessage, NostrEncryptMessage, NostrEncryptedMessage, NostrGetPublicKey, NostrPublicKey, NostrSignEvent, NostrSignSchnorr, NostrSignedEvent, NostrSignedSchnorr, OnboardingPhase, OnboardingSetupKind, OnboardingSetupMethod, OnboardingSetupStatus, OnboardingStatus, OnboardingStatusGet, OnboardingStep, 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_FIRMWARE_FILE_CHUNK_SIZE, PROTOCOL_V2_BLE_FRAME_MAX_BYTES, PROTOCOL_V2_CHANNEL_BLE_UART, PROTOCOL_V2_CHANNEL_SOCKET, PROTOCOL_V2_CHANNEL_USB, PROTOCOL_V2_DEFAULT_RESPONSE_TIMEOUT_MS, PROTOCOL_V2_FILE_CHUNK_SIZE, PROTOCOL_V2_FILE_WRITE_PIPELINE_WINDOW, PROTOCOL_V2_FRAME_MAX_BYTES, PROTOCOL_V2_PACKET_SRC_COMMAND, PROTOCOL_V2_SYS_MESSAGE_THRESHOLD, PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE, PassphraseAck, PassphraseRequest, PassphraseState, Path, PaymentRequestMemo, PinMatrixAck, PinMatrixRequest, PinMatrixRequestType, Ping, PolkadotAddress, PolkadotGetAddress, PolkadotSignTx, PolkadotSignedTx, PortfolioUpdate, PreauthorizedRequest, PrevInput, PrevOutput, PrevTx, ProtocolInfo, ProtocolInfoRequest, ProtocolType, ProtocolV1, ProtocolV2, ProtocolV2BleFrameWriterOptions, ProtocolV2CallContext, ProtocolV2CallOptions, ProtocolV2Capability, ProtocolV2DeviceInfo, ProtocolV2FailureType, ProtocolV2FileWritePipeline, ProtocolV2FrameAssembler, ProtocolV2LinkAdapter, ProtocolV2LinkDisabledError, ProtocolV2LinkError, ProtocolV2LinkErrorClassification, ProtocolV2LinkErrorCode, 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, 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, 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, TRANSPORT_EVENT, 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, TransportDeviceDisconnectEvent, TransportWriteMetrics, 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, UiAnimationCommand, UiAnimationRequest, UiAnimationType, UintType, UnLockDevice, UnLockDeviceResponse, UnlockPath, UnlockedPathRequest, UpgradeFileHeader, VerifyMessage, ViewActionCard, ViewAmount, ViewContentEntry, ViewContentPage, ViewContentPreview, ViewCustomField, ViewDetail, ViewSignLayout, ViewSignPage, ViewTip, ViewTipType, ViewVerifyPage, ViewWarningPage, Vote, WL_OperationType, WipeDevice, WordAck, WordRequest, WordRequestType, WriteSEPrivateKey, WriteSEPublicCert, ZoomRequest, bytesToHex, concatUint8Arrays, createProtocolV2LinkDisabledError, createTransportCallLog, _default as default, detectProtocolV2LinkDisabledError, experimental_field, experimental_message, facotry, getErrorMessage, getSafeTransportLogPayload, hexToBytes, isProtocolV2HighThroughputCall, isProtocolV2LinkDisabledError, isProtocolV2LinkDisabledFailure, isProtocolV2LinkError, probeProtocolV2, index as protocolV1, protocolV2Codec as protocolV2, shouldSuppressHighVolumeCallLog, withProtocolTimeout, writeProtocolV2BleFrame };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,qBAAqB,EACrB,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,8BAA8B,GAC/B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AAErC,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,iCAAiC,CAAC;AAChD,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,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,8BAA8B,GAC/B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AAErC,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,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElD,wBAsBE"}
|