6464It contains no signature since the signed TRANSACTION_INFO struct already has a hash of all the FIELD
6565structs, which attests of the authenticity, order and completeness of all FIELD structs.
6666
67- | Name | Tag | Payload type | Description | Optional | Source / value |
68- | ------------| ------| --------------| ----------------------------| ----------| ------------------------------------------------------------|
69- | VERSION | 0x00 | uint8 | struct version | | constant: ` 0x0 ` |
70- | NAME | 0x01 | char[ ] | field display name (ASCII) | | ` $.display.formats.<format id>.fields.[<field id>].label ` |
71- | PARAM_TYPE | 0x02 | uint8 | ` ParamType ` | | ` $.display.formats.<format id>.fields.[<field id>].params ` |
72- | PARAM | 0x03 | PARAM_ * | | | ` $.display.formats.<format id>.fields.[<field id>].params ` |
67+ | Name | Tag | Payload type | Description | Optional | Source / value |
68+ | ------------| ------| --------------| -------------------------------------| ----------| -------------------------------------------------------------|
69+ | VERSION | 0x00 | uint8 | struct version | | constant: ` 0x0 ` |
70+ | NAME | 0x01 | char[ ] | field display name (ASCII) | | ` $.display.formats.<format id>.fields.[<field id>].label ` |
71+ | PARAM_TYPE | 0x02 | uint8 | ` ParamType ` | | ` $.display.formats.<format id>.fields.[<field id>].params ` |
72+ | PARAM | 0x03 | PARAM_ * | | | ` $.display.formats.<format id>.fields.[<field id>].params ` |
73+ | VISIBLE | 0x04 | uint8 | ` VisibleType ` visibility condition | x | ` $.display.formats.<format id>.fields.[<field id>].visible ` |
74+ | CONSTRAINT | 0x05 | uint8[ ] | constraint value (raw bytes) | x | ` $.display.formats.<format id>.fields.[<field id>].visible ` |
75+
76+ > __ Notes__ :
77+ >
78+ > - ` VISIBLE ` defaults to ` ALWAYS ` (0x00) if not present
79+ > - ` VISIBLE ` can be present only once and should be served before any ` CONSTRAINT `
80+ > - ` CONSTRAINT ` is only present when ` VISIBLE ` is ` MUST_BE ` or ` IF_NOT_IN `
81+ > - ` CONSTRAINT ` tag can appear multiple times for multiple allowed/excluded values (OR semantics). The limit is 5 constraints.
7382
7483with ` ParamType ` enum defined as:
7584
@@ -86,6 +95,15 @@ with `ParamType` enum defined as:
8695| TRUSTED_NAME | 0x08 |
8796| CALLDATA | 0x09 |
8897| TOKEN | 0x0a |
98+ | NETWORK | 0x0b |
99+
100+ with ` VisibleType ` enum defined as:
101+
102+ | Name | Value | Description |
103+ | -----------| -------| --------------------------------------------------------------------------------------------|
104+ | ALWAYS | 0x00 | Field is always displayed (default) |
105+ | MUST_BE | 0x01 | Field not displayed but must match one of the constraint values, otherwise tx is rejected |
106+ | IF_NOT_IN | 0x02 | Field is displayed only if value is NOT in the constraint list |
89107
90108### PARAM_RAW
91109
@@ -212,6 +230,20 @@ and `TrustedNameSource` enum defined as:
212230
213231This struct can contain ` NATIVE_CURRENCY ` multiple times for multiple addresses.
214232
233+ ### PARAM_NETWORK
234+
235+ | Name | Tag | Payload type | Description | Optional | Source / value |
236+ | ---------| ------| --------------| -----------------------------| ----------| ----------------------------------------------------------|
237+ | VERSION | 0x00 | uint8 | struct version | | constant: ` 0x0 ` |
238+ | VALUE | 0x01 | VALUE | reference to chain ID value | | ` $.display.formats.<format id>.fields.[<field id>].path ` |
239+
240+ The device looks up the network name from the chain ID using:
241+
242+ 1 . Dynamic networks
243+ 2 . Built-in networks
244+
245+ If the network is not found, the device falls back to displaying the raw chain ID.
246+
215247### VALUE
216248
217249| Name | Tag | Payload type | Description | Optional | Source / value |
@@ -238,26 +270,14 @@ with `TypeFamily` enum defined as:
238270
239271and ` ContainerPath ` enum defined as:
240272
241- | Name | Value |
242- | -------| -------|
243- | FROM | 0x00 |
244- | TO | 0x01 |
245- | VALUE | 0x02 |
246-
247- The TLV payload must include exactly one of ` DATA_PATH ` , ` CONTAINER_PATH ` or ` CONSTANT ` .
248-
249- with ` TypeFamily ` enum defined as:
273+ | Name | Value |
274+ | ----------| -------|
275+ | FROM | 0x00 |
276+ | TO | 0x01 |
277+ | VALUE | 0x02 |
278+ | CHAIN_ID | 0x03 |
250279
251- | Name | Value |
252- | ---------| -------|
253- | UINT | 0x01 |
254- | INT | 0x02 |
255- | UFIXED | 0x03 |
256- | FIXED | 0x04 |
257- | ADDRESS | 0x05 |
258- | BOOL | 0x06 |
259- | BYTES | 0x07 |
260- | STRING | 0x08 |
280+ > __ Note__ : The TLV payload must include exactly one of ` DATA_PATH ` , ` CONTAINER_PATH ` or ` CONSTANT ` .
261281
262282### DATA_PATH
263283
0 commit comments