@onekeyfe/hd-transport 1.2.0-alpha.7 → 1.2.0-alpha.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/__tests__/messages.test.js +220 -0
  2. package/__tests__/protocol-v2-ble-frame-writer.test.js +119 -0
  3. package/__tests__/protocol-v2-link-manager.test.js +437 -0
  4. package/__tests__/protocol-v2-usb-transport-base.test.js +330 -0
  5. package/__tests__/protocol-v2.test.js +492 -53
  6. package/__tests__/transport-log.test.js +79 -0
  7. package/dist/constants.d.ts +4 -1
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/index.d.ts +810 -198
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +836 -228
  12. package/dist/protocols/index.d.ts +14 -5
  13. package/dist/protocols/index.d.ts.map +1 -1
  14. package/dist/protocols/v2/ble-frame-writer.d.ts +15 -0
  15. package/dist/protocols/v2/ble-frame-writer.d.ts.map +1 -0
  16. package/dist/protocols/v2/constants.d.ts +1 -0
  17. package/dist/protocols/v2/constants.d.ts.map +1 -1
  18. package/dist/protocols/v2/decode.d.ts +13 -2
  19. package/dist/protocols/v2/decode.d.ts.map +1 -1
  20. package/dist/protocols/v2/encode.d.ts +2 -3
  21. package/dist/protocols/v2/encode.d.ts.map +1 -1
  22. package/dist/protocols/v2/errors.d.ts +8 -0
  23. package/dist/protocols/v2/errors.d.ts.map +1 -0
  24. package/dist/protocols/v2/frame-assembler.d.ts.map +1 -1
  25. package/dist/protocols/v2/index.d.ts +2 -1
  26. package/dist/protocols/v2/index.d.ts.map +1 -1
  27. package/dist/protocols/v2/link-manager.d.ts +39 -0
  28. package/dist/protocols/v2/link-manager.d.ts.map +1 -0
  29. package/dist/protocols/v2/sequence-cursor.d.ts +5 -0
  30. package/dist/protocols/v2/sequence-cursor.d.ts.map +1 -0
  31. package/dist/protocols/v2/session.d.ts +23 -6
  32. package/dist/protocols/v2/session.d.ts.map +1 -1
  33. package/dist/protocols/v2/usb-transport-base.d.ts +32 -0
  34. package/dist/protocols/v2/usb-transport-base.d.ts.map +1 -0
  35. package/dist/serialization/protobuf/decode.d.ts.map +1 -1
  36. package/dist/serialization/protobuf/encode.d.ts.map +1 -1
  37. package/dist/types/messages.d.ts +386 -110
  38. package/dist/types/messages.d.ts.map +1 -1
  39. package/dist/types/transport.d.ts +20 -3
  40. package/dist/types/transport.d.ts.map +1 -1
  41. package/dist/utils/transportLog.d.ts +9 -0
  42. package/dist/utils/transportLog.d.ts.map +1 -0
  43. package/messages-protocol-v2.json +1138 -441
  44. package/package.json +3 -3
  45. package/scripts/protobuf-build.sh +86 -208
  46. package/scripts/protobuf-patches/index.js +1 -0
  47. package/scripts/protobuf-types.js +19 -1
  48. package/src/constants.ts +28 -14
  49. package/src/index.ts +13 -1
  50. package/src/protocols/index.ts +39 -40
  51. package/src/protocols/v2/ble-frame-writer.ts +77 -0
  52. package/src/protocols/v2/constants.ts +1 -0
  53. package/src/protocols/v2/crc8.ts +1 -1
  54. package/src/protocols/v2/decode.ts +71 -37
  55. package/src/protocols/v2/encode.ts +2 -28
  56. package/src/protocols/v2/errors.ts +25 -0
  57. package/src/protocols/v2/frame-assembler.ts +6 -4
  58. package/src/protocols/v2/index.ts +2 -1
  59. package/src/protocols/v2/link-manager.ts +209 -0
  60. package/src/protocols/v2/sequence-cursor.ts +10 -0
  61. package/src/protocols/v2/session.ts +173 -201
  62. package/src/protocols/v2/usb-transport-base.ts +213 -0
  63. package/src/serialization/protobuf/decode.ts +4 -1
  64. package/src/serialization/protobuf/encode.ts +5 -1
  65. package/src/types/messages.ts +471 -142
  66. package/src/types/transport.ts +23 -3
  67. package/src/utils/transportLog.ts +102 -0
  68. package/dist/protocols/v2/debug.d.ts +0 -13
  69. package/dist/protocols/v2/debug.d.ts.map +0 -1
  70. package/src/protocols/v2/debug.ts +0 -26
@@ -0,0 +1,79 @@
1
+ const { createTransportCallLog, getSafeTransportLogPayload } = require('../src/utils/transportLog');
2
+
3
+ describe('transport log sanitization', () => {
4
+ test('logs non-sensitive request fields and redacts passphrases recursively', () => {
5
+ expect(
6
+ createTransportCallLog('DeviceSessionAskPassphrase', 'V2', {
7
+ passphrase: 'hidden-wallet-secret',
8
+ on_device: false,
9
+ metadata: {
10
+ retry: 1,
11
+ session_id: 'wallet-session-secret',
12
+ },
13
+ })
14
+ ).toEqual({
15
+ name: 'DeviceSessionAskPassphrase',
16
+ protocol: 'V2',
17
+ request: {
18
+ passphrase: '[REDACTED]',
19
+ on_device: false,
20
+ metadata: {
21
+ retry: 1,
22
+ session_id: '[REDACTED]',
23
+ },
24
+ },
25
+ });
26
+ });
27
+
28
+ test('logs response fields while redacting device and wallet identifiers', () => {
29
+ expect(
30
+ getSafeTransportLogPayload({
31
+ message: 'Passphrase accepted',
32
+ device_id: 'device-secret',
33
+ nested: {
34
+ btc_test_address: 'wallet-address',
35
+ unlocked: true,
36
+ },
37
+ })
38
+ ).toEqual({
39
+ message: 'Passphrase accepted',
40
+ device_id: '[REDACTED]',
41
+ nested: {
42
+ btc_test_address: '[REDACTED]',
43
+ unlocked: true,
44
+ },
45
+ });
46
+ });
47
+
48
+ test('does not log raw signing request or response payloads', () => {
49
+ expect(
50
+ getSafeTransportLogPayload(
51
+ {
52
+ transaction: 'raw-transaction',
53
+ path: "m/44'/60'/0'/0/0",
54
+ },
55
+ 'EthereumSignTx'
56
+ )
57
+ ).toBe('[REDACTED]');
58
+ expect(
59
+ getSafeTransportLogPayload(
60
+ {
61
+ signature: 'raw-signature',
62
+ },
63
+ 'EthereumSignedTx'
64
+ )
65
+ ).toBe('[REDACTED]');
66
+ });
67
+
68
+ test('replaces binary content with its byte length', () => {
69
+ expect(
70
+ getSafeTransportLogPayload({
71
+ file_name: 'resource.bin',
72
+ data: new Uint8Array(128),
73
+ })
74
+ ).toEqual({
75
+ file_name: 'resource.bin',
76
+ data: '[BINARY:128]',
77
+ });
78
+ });
79
+ });
@@ -4,12 +4,15 @@ 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
+ export declare const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
11
+ export declare const PROTOCOL_V2_BLE_FRAME_MAX_BYTES = 2048;
10
12
  export declare const PROTOCOL_V2_FILE_CHUNK_SIZE = 4000;
11
13
  export declare const PROTOCOL_V2_CHANNEL_USB = 0;
12
14
  export declare const PROTOCOL_V2_CHANNEL_BLE_UART = 1;
13
15
  export declare const PROTOCOL_V2_CHANNEL_SOCKET = 2;
14
16
  export declare const PROTOCOL_V2_PACKET_SRC_COMMAND = 0;
17
+ export declare const PROTOCOL_V2_DEFAULT_RESPONSE_TIMEOUT_MS: number;
15
18
  //# sourceMappingURL=constants.d.ts.map
@@ -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;AAGpD,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"}
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;AAGpD,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAGxD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAGpD,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"}