diff --git a/zip-0321.html b/zip-0321.html index 3030e4b4..4edbc79e 100644 --- a/zip-0321.html +++ b/zip-0321.html @@ -63,6 +63,7 @@ License: MIT

Here, ALPHA, unreserved and pct-encoded are as defined in 3. "base64url" is defined as in 4 with padding omitted. (Note that this uses a different alphabet to the usual base64; the values 62 and 63 in the alphabet are encoded as - and _ respectively. Implementations MUST NOT accept the characters +, /, and = that occur only in the usual base64.)

Productions of the form 1*x indicate one or more successive instances of the production x. Productions of the form <n>*<m>x indicate at least <n> and at most <m> instances of production x.

Note that this grammar does not allow percent encoding outside the productions that use qchar, i.e. the values of label, message, reqparam, and otherparam parameters.

+

Purported ZIP 321 URIs that cannot be parsed according to the above grammar MUST NOT be accepted.

URI Semantics

A ZIP-321 URI represents a request for the construction of a transaction having one or more payments. In the case that only a single payment is being requested, the recipient address SHOULD be included in the hier-part component of the RFC 3986 URI; otherwise, multiple recipient addresses can be specified using addrparam parameters with different indices.

@@ -126,6 +127,8 @@ zcash:?amount.1=1.234&amount.1=2.345&address.1=tmEZhbWHTpdKMw5it8YDspUXS zcash:tmEZhbWHTpdKMw5it8YDspUXSMGQyFwovpU?%61mount=1 zcash:%74mEZhbWHTpdKMw5it8YDspUXSMGQyFwovpU?amount=1

Invalid; percent encoding is only allowed in qchar productions, which do not include addresses, amounts, or parameter names.

+
zcash://tmEZhbWHTpdKMw5it8YDspUXSMGQyFwovpU?amount=1
+

Invalid; the grammar does not allow //. ZIP 321 URIs are not "hierarchical URIs" in the sense defined in 3 section 1.2.3, and do not have an "authority component".

Forward compatibility

diff --git a/zip-0321.rst b/zip-0321.rst index 8b12a74f..b2c7f568 100644 --- a/zip-0321.rst +++ b/zip-0321.rst @@ -122,6 +122,10 @@ Note that this grammar does not allow percent encoding outside the productions that use ``qchar``, i.e. the values of label, message, ``reqparam``, and ``otherparam`` parameters. +Purported ZIP 321 URIs that cannot be parsed according to the above grammar +MUST NOT be accepted. + + URI Semantics ------------- @@ -269,6 +273,15 @@ Also invalid; duplicate ``amount=`` or ``amount.1=`` fields Invalid; percent encoding is only allowed in ``qchar`` productions, which do not include addresses, amounts, or parameter names. +:: + + zcash://tmEZhbWHTpdKMw5it8YDspUXSMGQyFwovpU?amount=1 + +Invalid; the grammar does not allow ``//``. ZIP 321 URIs are not +"hierarchical URIs" in the sense defined in [#RFC3986]_ section 1.2.3, +and do not have an "authority component". + + Forward compatibility ---------------------