commit fbdab6656201010293d63c5b47775094f5f0e600
parent 6e034e739c1079b53bc004e824ea935f231552a5
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Tue, 7 Oct 2025 15:50:03 +0200
add friends list
Diffstat:
1 file changed, 29 insertions(+), 22 deletions(-)
diff --git a/design-documents/070-alias-directory-mailbox.rst b/design-documents/070-alias-directory-mailbox.rst
@@ -94,6 +94,7 @@ This initiates the Alias validation procedure (See also :ref:`Taldir API <api-t
The registration procedure may succeed or fail.
Alice may retry on failure to register the same Alias.
Alice may also register other Aliases.
+Alice may use this screen to display a QR code of her mailbox URI, see also US-4.
US-2: Send Payment Request
--------------------------
@@ -102,20 +103,17 @@ Prerequisites: Bob has installed Taler Wallet
Bob wants to request money from Alice.
He opens his Taler wallet and opens ``Taler Button->Send`` screen from the menu.
-There, *Send to Alias* can be selected.
-The *Send to Alias* screen consists of a search input and an Alias type selector.
-Bob selects the Alias type (e.g. GitHub or Email) and inputs Alice's Alias.
-This will initiate a lookup request to the :ref:`Taldir API <api-taldir>`.
-If no results were found, Bob cannot use this feature.
-If found, Bob will be able to proceed to create a payment request.
A screen that allows to create a payment request is shown to Bob.
-Once Bob has entered all necessary details, a payment request (:ref:`DD 13 <dd-13>`) is sent to Alice's Mailbox URI through the :ref:`Mailbox API <api-mailbox>`.
+Once Bob has entered all necessary details, a payment request (:ref:`DD 13 <dd-13>`) is
+created and the screen with QR code is shown.
+This screen now also allows to send the request to a friend by using the friend list.
+The *Request from Friend* screen brings up the friends list to select a friend.
+Bob may also import a friend here ad-hoc, see US-4.
+Bob selects the friend and the request is sent to Alice's Mailbox URI through the :ref:`Mailbox API <api-mailbox>`.
This request may fail, for example if Alice's Mailbox is full.
**Note**: Sending messages via Mailbox API may incur fees.
- **Note**: It makes sense to use something like HPKE to encrypt the payment request
- to Alice's Wallet Public Key. In general, the Payment Request payload is undefined. We require (probably) a unique request ID in order to properly handle resending payment requests in UC-4.
US-3: Receive Payment Request
-----------------------------
@@ -139,16 +137,24 @@ of payment requests.
Alice creates a P2P payment based on the metadata in the payment request.
She may also decline to pay.
-US-4: Resend Payment Request
-----------------------------
+US-4: Friend List
+-----------------
+
+Prerequisites: Alice has installed Taler Wallet
- **Note**: This US is possibly invalid / not required.
+Alice opens ``Settings->Friends``.
+The list of friends is empty in the beggining.
+There is a button to *Add a friend* which opens a UI.
+The UI consists of a search input and an Alias type selector.
+Alice selects the Alias type (e.g. GitHub or Email) and inputs a friends Alias.
+This will initiate a lookup request to the :ref:`Taldir API <api-taldir>`.
+If no results were found, Alice cannot import this friend.
+If found, Alice will be able to import this friend into the friend list.
-Prerequisites: Bob has sent a Payment Request to Alice
+Alternatively, the friend can also be imported using a QR code, see US-1.
-Bob opens the screen in the Wallet that displays sent payment requests.
-Bob may resend a payment request to Alice using a Button.
-This sends the request to Alice's mailbox again.
+The wallet periodically performs lookups for friends where their Taldir registrations
+have expired and refresh accordingly.
US-5: Send Money
----------------
@@ -157,14 +163,15 @@ Prerequisites: Alice has installed Taler Wallet, Alice has registered an Alias.
Bob wants to directly send money to Alice (e.g. PayPal style).
He opens his Taler wallet and opens ``Taler Button->Receive``.
+A screen that allows to create a payment offer is shown to Bob.
+Once Bob has entered all necessary details, the payment offer is created according to :ref:`DD 13 <dd-13>` and the screen with the QR code is shown.
There he selects the *Receive from Alias*.
The *Receive from Alias* screen consists of a search input and an Alias type selector.
-Bob selects the Alias type (e.g. GitHub or Email) and inputs Alice's Alias.
-This will initiate a lookup request to the :ref:`Taldir API <api-taldir>`.
-If no results were found, Bob cannot use this feature.
-If found, Bob will be able to proceed to create a payment.
-A screen that allows to create a payment is shown to Bob.
-Once Bob has entered all necessary details, the payment is made according to :ref:`DD 13 <dd-13>`.
+This screen now also allows to send the request to a friend by using the friend list.
+The *Send to Friend* screen brings up the friends list to select a friend.
+Bob may also import a friend here ad-hoc, see US-4.
+Bob selects the friend and the request is sent to Alice's Mailbox URI through the :ref:`Mailbox API <api-mailbox>`.
+This request may fail, for example if Alice's Mailbox is full.
**Note**: Sending messages via Mailbox API may incur fees. So does creating a purse in the offer. This should probably be done in a single user action.