Skip to content
5 changes: 2 additions & 3 deletions zips/zip-0227.rst
Original file line number Diff line number Diff line change
Expand Up @@ -471,16 +471,15 @@ If the transaction contains an issuance bundle:
- The issuance authorization signature, $\mathsf{issueAuthSig}$, MUST be a valid $\mathsf{IssueAuthSig}$ signature over $\mathsf{SigHash}$, i.e. $\mathsf{IssueAuthSig}.\!\mathsf{Validate}(\mathsf{ik}, \mathsf{SigHash}, \mathsf{issueAuthSig}) = 1$.
- For every issuance action description ($\mathsf{IssueAction}_\mathsf{i},\ 1 \leq i \leq \mathtt{nIssueActions}$) in the issuance bundle:

- Every Issue Note in ``IssueAction`` MUST be a valid encoding of the $\mathsf{Note^{Issue}}$ type, and MUST encode the same $\mathsf{AssetBase}$.
- This $\mathsf{AssetBase}$ MUST satisfy the derivation from the issuer identifier and asset description described in the `Specification: Asset Identifier, Asset Digest, and Asset Base`_ section.
- An Issue Note of the $\mathsf{Note^{Issue}}$ type MUST be created for each ``IssueNote`` in the ``vNotes`` field of the ``IssueAction``, where the $\mathsf{AssetBase}$ MUST be computed from the ``assetDescHash`` field of the ``IssueAction`` and the ``issuer`` field of the issuance bundle, as described in the `Specification: Asset Identifier, Asset Digest, and Asset Base`_ section.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This need rewording:

  • The MUST consensus rule re: encoding needs to still be present, but about ensuring the validity of the field encodings in IssueNote (maybe renamed to IssueNoteDescription).
  • Then have a line like "Let the issue note $\mathsf{Note^{Issue}}$ be constructed from the fields of IssueNote and the derived $\mathsf{AssetBase}$ from the parent IssueAction.

- It MUST be the case that $\mathsf{issued\_assets}_{\mathsf{OUT}}(\mathsf{AssetBase}).\mathsf{final} \neq 1$.
- If $\mathsf{issued\_assets}_{\mathsf{OUT}}(\mathsf{AssetBase}).\mathsf{note_{ref}} = \bot$, then let $\mathsf{new\_note_{ref}}$ be the first Issue Note in the Issuance Action.

- The recipient address $(\mathsf{d}, \mathsf{pk}_{\mathsf{d}})$ of $\mathsf{new\_note_{ref}}$ MUST be the default diversified payment address derived from the all-zero Orchard spending key, as described in the `Reference Notes`_ section.
- The value of $\mathsf{new\_note_{ref}}$ MUST be $0$.
- The node MUST update $\mathsf{issued\_assets}_{\mathsf{OUT}}(\mathsf{AssetBase}).\mathsf{note_{ref}} = \mathsf{new\_note_{ref}}$.

- For every issue note description, $\mathsf{note}_j$ for $1 \leq j \leq \mathtt{nNotes}$ in ``IssueAction``:
- For every Issue Note, $\mathsf{note}_j$ for $1 \leq j \leq \mathtt{nNotes}$ in ``IssueAction``:

- The $\text{ρ}$ field of the issue note MUST have been computed as described in the `Computation of ρ`_ section.
- It MUST be the case that $\mathsf{issued\_assets}_{\mathsf{OUT}}.\mathsf{balance} + \mathsf{v}_j \leq \mathsf{MAX\_ISSUE}$, where $\mathsf{v}_j$ is the value of $\mathsf{note}_j$. The node then MUST update $\mathsf{issued\_assets}_{\mathsf{OUT}}.\mathsf{balance} = \mathsf{issued\_assets}_{\mathsf{OUT}}.\mathsf{balance} + \mathsf{v}_j$.
Expand Down
10 changes: 5 additions & 5 deletions zips/zip-0230.rst
Original file line number Diff line number Diff line change
Expand Up @@ -155,14 +155,14 @@ Transaction Format
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| **ZSA Issuance Bundle Fields** |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``nIssueActions`` |``compactSize`` |The number of issuance actions in the bundle. |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``vIssueActions`` |``IssueAction[nIssueActions]`` |A sequence of issuance action descriptions. |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``issuerLength`` |``compactSize`` |The length of the issuer identifier. |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``issuer`` |``byte[issuerLength]`` |The issuer identifier as defined in [#zip-0227-issuer-identifier]_. |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``nIssueActions`` |``compactSize`` |The number of issuance actions in the bundle. |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``vIssueActions`` |``IssueAction[nIssueActions]`` |A sequence of issuance action descriptions. |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``issueAuthSig`` |``IssueAuthSignature`` |The signature of the transaction SIGHASH, signed by the issuer, |
| | | |validated as in Issuance Authorization Signature Scheme |
| | | |[#zip-0227-issuance-auth-sig]_. |
Expand Down Expand Up @@ -436,7 +436,7 @@ An issuance action, ``IssueAction``, is the instance of issuing a specific Custo
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| varies |``nNotes`` |``compactSize`` |The number of notes in the Issuance Action. |
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| 147 × ``nNotes`` |``vNotes`` |``IssueNote[nNotes]`` |A sequence of note descriptions within the Issuance Action. |
| 115 × ``nNotes`` |``vNotes`` |``IssueNote[nNotes]`` |A sequence of note descriptions within the Issuance Action. |
Comment thread
vivek-arte marked this conversation as resolved.
Outdated
+-----------------------------+------------------------------+------------------------------------------------+---------------------------------------------------------------------+
| 1 |``flagsIssuance`` |``byte`` |An 8-bit value representing a set of flags. Ordered from LSB to MSB: |
| | | | |
Expand Down
8 changes: 4 additions & 4 deletions zips/zip-0246.rst
Original file line number Diff line number Diff line change
Expand Up @@ -359,8 +359,8 @@ T.5: issuance_digest
````````````````````
A BLAKE2b-256 hash of the following values ::

T.5a: issue_actions_digest (32-byte hash output)
T.5b: issuerIdentifier (field encoding bytes)
T.5a: issuerIdentifier (field encoding bytes)
T.5b: issue_actions_digest (32-byte hash output)
Comment thread
vivek-arte marked this conversation as resolved.
Outdated

The personalization field of this hash is set to::

Expand All @@ -376,8 +376,8 @@ T.5a: issue_actions_digest
''''''''''''''''''''''''''
A BLAKE2b-256 hash of Issue Action information for all Issuance Actions belonging to the transaction. For each Action, the following elements are included in the hash::

T.5a.i : notes_digest (32-byte hash output)
T.5a.ii : assetDescHash (field encoding bytes)
T.5a.i : assetDescHash (field encoding bytes)
T.5a.ii : notes_digest (32-byte hash output)
Comment thread
vivek-arte marked this conversation as resolved.
Outdated
T.5a.iii: flagsIssuance (1 byte)

The personalization field of this hash is set to::
Expand Down