@onekeyfe/hd-transport 1.1.27-patch.1 → 1.2.0-alpha.0
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/README.md +2 -4
- package/__tests__/build-receive.test.js +6 -8
- package/__tests__/decode-features.test.js +3 -2
- package/__tests__/messages.test.js +8 -0
- package/__tests__/protocol-v2.test.js +754 -0
- package/dist/constants.d.ts +14 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +934 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +827 -84
- package/dist/protocols/index.d.ts +45 -0
- package/dist/protocols/index.d.ts.map +1 -0
- package/dist/protocols/v1/decode.d.ts +11 -0
- package/dist/protocols/v1/decode.d.ts.map +1 -0
- package/dist/protocols/v1/encode.d.ts +11 -0
- package/dist/protocols/v1/encode.d.ts.map +1 -0
- package/dist/protocols/v1/index.d.ts +5 -0
- package/dist/protocols/v1/index.d.ts.map +1 -0
- package/dist/protocols/v1/packets.d.ts +7 -0
- package/dist/protocols/v1/packets.d.ts.map +1 -0
- package/dist/{serialization → protocols/v1}/receive.d.ts +1 -1
- package/dist/protocols/v1/receive.d.ts.map +1 -0
- package/dist/protocols/v2/constants.d.ts +7 -0
- package/dist/protocols/v2/constants.d.ts.map +1 -0
- package/dist/protocols/v2/crc8.d.ts +3 -0
- package/dist/protocols/v2/crc8.d.ts.map +1 -0
- package/dist/protocols/v2/debug.d.ts +13 -0
- package/dist/protocols/v2/debug.d.ts.map +1 -0
- package/dist/protocols/v2/decode.d.ts +8 -0
- package/dist/protocols/v2/decode.d.ts.map +1 -0
- package/dist/protocols/v2/encode.d.ts +5 -0
- package/dist/protocols/v2/encode.d.ts.map +1 -0
- package/dist/protocols/v2/frame-assembler.d.ts +12 -0
- package/dist/protocols/v2/frame-assembler.d.ts.map +1 -0
- package/dist/protocols/v2/index.d.ts +7 -0
- package/dist/protocols/v2/index.d.ts.map +1 -0
- package/dist/protocols/v2/session.d.ts +50 -0
- package/dist/protocols/v2/session.d.ts.map +1 -0
- package/dist/serialization/index.d.ts +6 -3
- package/dist/serialization/index.d.ts.map +1 -1
- package/dist/serialization/protobuf/decode.d.ts.map +1 -1
- package/dist/serialization/protobuf/messages.d.ts +1 -1
- package/dist/serialization/protobuf/messages.d.ts.map +1 -1
- package/dist/types/messages.d.ts +461 -11
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/transport.d.ts +14 -2
- package/dist/types/transport.d.ts.map +1 -1
- package/dist/utils/logBlockCommand.d.ts.map +1 -1
- package/messages-protocol-v2.json +13369 -0
- package/package.json +3 -3
- package/scripts/protobuf-build.sh +314 -20
- package/scripts/protobuf-patches/TxInputType.js +1 -0
- package/scripts/protobuf-patches/index.js +2 -0
- package/scripts/protobuf-types.js +224 -18
- package/src/constants.ts +42 -6
- package/src/index.ts +39 -11
- package/src/protocols/index.ts +144 -0
- package/src/{serialization/protocol → protocols/v1}/decode.ts +4 -4
- package/src/{serialization/protocol → protocols/v1}/encode.ts +18 -13
- package/src/protocols/v1/index.ts +4 -0
- package/src/protocols/v1/packets.ts +53 -0
- package/src/{serialization → protocols/v1}/receive.ts +5 -5
- package/src/protocols/v2/constants.ts +6 -0
- package/src/protocols/v2/crc8.ts +34 -0
- package/src/protocols/v2/debug.ts +26 -0
- package/src/protocols/v2/decode.ts +92 -0
- package/src/protocols/v2/encode.ts +116 -0
- package/src/protocols/v2/frame-assembler.ts +98 -0
- package/src/protocols/v2/index.ts +6 -0
- package/src/protocols/v2/session.ts +429 -0
- package/src/serialization/index.ts +6 -5
- package/src/serialization/protobuf/decode.ts +7 -0
- package/src/serialization/protobuf/messages.ts +8 -4
- package/src/types/messages.ts +606 -13
- package/src/types/transport.ts +26 -2
- package/src/utils/logBlockCommand.ts +9 -1
- package/dist/serialization/protocol/decode.d.ts +0 -11
- package/dist/serialization/protocol/decode.d.ts.map +0 -1
- package/dist/serialization/protocol/encode.d.ts +0 -11
- package/dist/serialization/protocol/encode.d.ts.map +0 -1
- package/dist/serialization/protocol/index.d.ts +0 -3
- package/dist/serialization/protocol/index.d.ts.map +0 -1
- package/dist/serialization/receive.d.ts.map +0 -1
- package/dist/serialization/send.d.ts +0 -7
- package/dist/serialization/send.d.ts.map +0 -1
- package/src/serialization/protocol/index.ts +0 -2
- package/src/serialization/send.ts +0 -58
package/README.md
CHANGED
|
@@ -18,11 +18,9 @@ In order to be able to use new features of onekey-firmware you need to update pr
|
|
|
18
18
|
|
|
19
19
|
1. `git submodule update --init --recursive` to initialize git submodules.
|
|
20
20
|
1. `yarn update-submodules` to update firmware submodule
|
|
21
|
-
1. `yarn update
|
|
21
|
+
1. `yarn update-protobuf` to generate new `./messages.json`, `./messages-protocol-v2.json` and `./src/types/messages.ts`
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
yarn update-submodules to update firmware submodule
|
|
25
|
-
yarn update:protobuf to generate new ./messages.json and ./src/types/messages.ts
|
|
23
|
+
The same task can be run from the repository root with `yarn update-protobuf`. The Protocol V2 schema requires the `firmware-pro2` submodule checked out on branch `dev_romloader_split`.
|
|
26
24
|
|
|
27
25
|
## Docs
|
|
28
26
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
const { parseConfigure } = require('../src/serialization/protobuf/messages');
|
|
2
|
-
const {
|
|
3
|
-
const { receiveOne } = require('../src/serialization/receive');
|
|
4
|
-
const { buildEncodeBuffers } = require('../src/serialization/send');
|
|
2
|
+
const { ProtocolV1 } = require('../src/protocols');
|
|
5
3
|
|
|
6
4
|
const messages = {
|
|
7
5
|
StellarPaymentOp: {
|
|
@@ -96,17 +94,17 @@ const parsedMessages = parseConfigure({
|
|
|
96
94
|
describe('encoding json -> protobuf -> json', () => {
|
|
97
95
|
fixtures.forEach(f => {
|
|
98
96
|
describe(f.name, () => {
|
|
99
|
-
test('
|
|
97
|
+
test('encodeEnvelope - decodeMessage', () => {
|
|
100
98
|
// encoded message
|
|
101
|
-
const encodedMessage =
|
|
99
|
+
const encodedMessage = ProtocolV1.encodeEnvelope(parsedMessages, f.name, f.in);
|
|
102
100
|
// then decode message and check, whether decoded message matches original json
|
|
103
|
-
const decodedMessage =
|
|
101
|
+
const decodedMessage = ProtocolV1.decodeMessage(parsedMessages, encodedMessage);
|
|
104
102
|
expect(decodedMessage.type).toEqual(f.name);
|
|
105
103
|
expect(decodedMessage.message).toEqual(f.in);
|
|
106
104
|
});
|
|
107
105
|
|
|
108
|
-
test('
|
|
109
|
-
const result =
|
|
106
|
+
test('encodeMessageChunks - receiveAndParse', () => {
|
|
107
|
+
const result = ProtocolV1.encodeMessageChunks(parsedMessages, f.name, f.in);
|
|
110
108
|
result.forEach(r => {
|
|
111
109
|
expect(r.byteLength).toBeLessThanOrEqual(63);
|
|
112
110
|
});
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
/* eslint-disable import/order */
|
|
1
2
|
const ProtoBuf = require('protobufjs/light');
|
|
2
3
|
const ByteBuffer = require('bytebuffer');
|
|
3
4
|
|
|
4
5
|
const { decode } = require('../src/serialization/protobuf/decode');
|
|
5
|
-
const {
|
|
6
|
+
const { decodeEnvelope } = require('../src/protocols/v1/decode');
|
|
6
7
|
|
|
7
8
|
// Reuse the messages.json already committed alongside @onekeyfe/hd-core
|
|
8
9
|
// (runtime data for DataManager). hd-transport's own messages.json is
|
|
@@ -61,7 +62,7 @@ describe('Fix messages decode', () => {
|
|
|
61
62
|
test('decode', () => {
|
|
62
63
|
// deserialize
|
|
63
64
|
const encoded = ByteBuffer.fromHex(f.encodeMessage);
|
|
64
|
-
const { buffer } =
|
|
65
|
+
const { buffer } = decodeEnvelope(encoded);
|
|
65
66
|
const decoded = decode(Message, buffer);
|
|
66
67
|
|
|
67
68
|
// filter null values
|
|
@@ -83,4 +83,12 @@ describe('messages', () => {
|
|
|
83
83
|
|
|
84
84
|
expect(() => createMessageFromName(messages, name)).not.toThrow();
|
|
85
85
|
});
|
|
86
|
+
|
|
87
|
+
test('createMessageFromName throws when message type id is missing', () => {
|
|
88
|
+
const messages = parseConfigure(json);
|
|
89
|
+
|
|
90
|
+
expect(() => createMessageFromName(messages, 'TxAckInputWrapper')).toThrow(
|
|
91
|
+
'MessageType for "TxAckInputWrapper" is not defined in protobuf schema'
|
|
92
|
+
);
|
|
93
|
+
});
|
|
86
94
|
});
|