commit 20b631639ff2531a8717ce4df8fd09e80d0654fa
parent cb16a9242731f731002829e419e6498d1751ca67
Author: Florian Dold <florian@dold.me>
Date: Wed, 23 Aug 2023 10:49:05 +0200
dd48: tos
Diffstat:
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/design-documents/048-wallet-exchange-lifecycle.rst b/design-documents/048-wallet-exchange-lifecycle.rst
@@ -83,13 +83,26 @@ Management Requests
until the user actually uses the exchange.
* ``getExchangeResources``: List resources (number of coins, reserves, ...) associated
with the exchange.
-* ``deleteExchange({purge: boolean})``: Removes an exchange.
+* ``deleteExchange({exchangeUrl: string, purge: boolean})``: Removes an exchange.
Unless ``purge: true`` is specified, only an exchange without any associated
resources can be deleted.
+* ``getExchangeTos({exchangeUrl: string, acceptLanguage?: string[], acceptFormat?: string[]}) => { language: string, mime: string, content: string, altLanguages: string[] }``
FIXME: Purging should probably delete *all* resources associated with the exchange.
But does it also remove the associated transactions?
+ToS Management
+--------------
+
+The wallet only stores the last accepted ToS ETag and the ETag last offered by
+the exchange. The ToS contents are not stored by the wallet database (and thus
+not included in backups). However, the wallet implementation may cache the
+``/terms`` response on the level of the HTTP client.
+
+In future iterations, the UI might specify the prefered language and content type
+for ``/terms``, so that the wallet can already download the full response (not just ``HEAD``).
+
+
Definition of Done
==================