Let's create the ultimate Grin Wallet experience! (Grin++ UX/UI)

Receiver-Sender-Receiver flow

Invoice transactions are built much the same way, but with a different order where the receiver initiates the transaction by asking for a certain amount of coins.

  1. A slatepack address is provided by the sender (optional).
  2. Receiver creates an invoice, requesting to be paid the specified amount. In practice he starts building the transaction slate and writes a pre-determined amount into it.
  3. Sender decrypts the slate to confirm the amount he is about to pay, and adds his own data and signature.
  4. Receiver finalizes the transaction building process and posts it to the chain.

You can see this flow in action here: Possible interactive transaction flow

Receiver

The first step is to create an invoice, which again, it is an unsigned transaction agreement too since the sender must agree on the amount to send.

Now, the receiver can share the invoice with the payer or sender. From here, the receiver can either cancel the invoice or continue to collect the payment.

To collect the payment the receiver just need to import the agreement signed by the sender and sign it.

If everything goes well, the payment is collected by the receiver.

Sender

For the sender, things are more easy, the sender just need to accept, add signature and send back the transaction agreement.

RSR flowchart

A simple RSR flow would look like this.

5 Likes