The goal of this flow is to create a ZIP-321 compliant ZEC payment request that can be either shared through the OS's share action sheet or via shielded memo in a shielded transaction.
The Request form contains many input fields
Who is the request for
the first one is the "payor" field. This is used to indicate a recipient for this request that could be found in the address book or by scanning or pasting a known shielded address.
This screen should read the general clipboard looking for valid shielded recipients either in UAs or Sapling addresses and show a "address in buffer" notice when a recipient is found.
Note: There is another Request Creation scenario where the user wants to request ZEC and not send it through a shielded memo. In this case the this textfield does not provide any useful information
How much is being requested
this is the second input. a numeric field that accepts inputs expressed either in ZEC or in fiat interchangeable.
The user can opt the expression of that value by actioning a ZEC to Fiat control to the right of the textfield. When the user opts of a Mean of exchange to express that value, any value that was input into the textfield must be switched automatically to the corresponding conversion value.
Message
This is a textview that can contain freeform text. There are a couple of things to consider here. The first one is that the Memo field has a limit of 512 UTF-8 characters. The second one is that ZIP-321 specifies two fields to include text information: Memo and Label (see "query keys" https://zips.z.cash/zip-0321)
label
Label for an address (e.g. name of receiver). If a label is present at a paramindex, a client rendering a payment for inspection by the user SHOULD display this label (if possible) as well as the associated address. If the label is displayed, it MUST be identifiable as distinct from the address.
address
Zcash address string (shielded or transparent)
memo
Contents for the Zcash shielded memo field, encoded as base64url without = padding. The decoded memo contents MUST NOT exceed 512 bytes, and if shorter, will be filled with trailing zeros to 512 bytes. Parsers MUST consider the entire URI invalid if the address associated with the same paramindex is not a valid shielded address.
message
Message that clients can display for the purpose of presenting descriptive information about the payment at the associated paramindex to the user.
@geffenz is the "message" textfield in the UI referring to the Message field or the memo field?
Sent-to check button
The last element of the form is a checkbox that allows the user to send the payment request to the referred shielded receiver (UA w/ shielded receiver or Sapling Address)
This UI component appears when the user has input some receiver where this ZEC payment request can be sent to. <---- @geffenz could you validate this?
There are many questions here:
How can the user tell the UI that there's no known address to send the ZEC request to?
When there's an address is the share action sheet shown anyway in a later step?
what does the "sent-to" mean?
The request ZEC flow consists of two steps
https://xd.adobe.com/view/5eb728b7-cb5e-46d0-ac4d-5f3369faa82f-0be4/
The goal of this flow is to create a ZIP-321 compliant ZEC payment request that can be either shared through the OS's share action sheet or via shielded memo in a shielded transaction.
The Request form contains many input fields
Who is the request for the first one is the "payor" field. This is used to indicate a recipient for this request that could be found in the address book or by scanning or pasting a known shielded address.
This screen should read the general clipboard looking for valid shielded recipients either in UAs or Sapling addresses and show a "address in buffer" notice when a recipient is found.
Note: There is another Request Creation scenario where the user wants to request ZEC and not send it through a shielded memo. In this case the this textfield does not provide any useful information
How much is being requested
this is the second input. a numeric field that accepts inputs expressed either in ZEC or in fiat interchangeable. The user can opt the expression of that value by actioning a ZEC to Fiat control to the right of the textfield. When the user opts of a Mean of exchange to express that value, any value that was input into the textfield must be switched automatically to the corresponding conversion value.
Message This is a textview that can contain freeform text. There are a couple of things to consider here. The first one is that the Memo field has a limit of 512 UTF-8 characters. The second one is that ZIP-321 specifies two fields to include text information: Memo and Label (see "query keys" https://zips.z.cash/zip-0321)
@geffenz is the "message" textfield in the UI referring to the Message field or the memo field?
Sent-to check button The last element of the form is a checkbox that allows the user to send the payment request to the referred shielded receiver (UA w/ shielded receiver or Sapling Address)
This UI component appears when the user has input some receiver where this ZEC payment request can be sent to. <---- @geffenz could you validate this?
There are many questions here: How can the user tell the UI that there's no known address to send the ZEC request to? When there's an address is the share action sheet shown anyway in a later step? what does the "sent-to" mean?