Nyzo techRelease notesNyzo 566: compound NTTP numbers

Nyzo 566: compound NTTP numbers

Nyzo version 566 (commit on GitHub) adds support for compound NTTP numbers to NttpDataGenerateCommand.

This version affects only the client.

NTTP-3 has 3 parts. To express support for just one part, but not the entire proposal, the cycle must approve a cycle transaction for NTTP-3/1, NTTP-3/2, or NTTP-3/3. Previously, NttpDataGenerateCommand only allowed integers to be used for NTTP numbers. This version adds support for compound NTTP numbers such as those needed for partial approval of NTTP-3.

In NttpDataGenerateCommand.validate(), a check is now performed to see if the NTTP number contains a forward slash. If it does, the two components are checked for validity. The sender-data field is 32 bytes. The git hash occupies 20 bytes, and the required characters of the NTTP prefix ("NTTP-" and ": ") occupy 7 bytes. This leaves 5 bytes for the NTTP number. A compound NTTP would not reasonably have more than 10 parts, so only one digit is used for the secondary NTTP number, leaving 3 digits for the primary NTTP number. The remaining character is consumed by the forward slash in a compond NTTP number. The character limits are enforced as numerical ranges on the primary and secondary NTTP numbers.

RN_566 code 0

Simple NTTP numbers are handled as before, but the range is now limited to ensure the number does not occupy more than 5 characters.

RN_566 code 1

In NttpDataGenerateCommand.run(), the NTTP number is no longer parsed to an integer. This parsing should be unnecessary, as the validate() method is responsible for ensuring appropriateness of inputs.

RN_566 code 2