summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api-mint.rst2
-rw-r--r--dev-wallet-wx.rst94
-rw-r--r--index.rst31
-rw-r--r--wallet.rst34
4 files changed, 136 insertions, 25 deletions
diff --git a/api-mint.rst b/api-mint.rst
index b97c91a3..b9a9beeb 100644
--- a/api-mint.rst
+++ b/api-mint.rst
@@ -216,7 +216,7 @@ When transfering money to the mint such as via SEPA transfers, the mint creates
.. http:get:: /reserve/status
- Request information about a reserve, including the blinding key that is necessary to withdraw a coin.
+ Request information about a reserve.
:query reserve_pub: EdDSA reserve public key identifying the reserve.
diff --git a/dev-wallet-wx.rst b/dev-wallet-wx.rst
new file mode 100644
index 00000000..5790f801
--- /dev/null
+++ b/dev-wallet-wx.rst
@@ -0,0 +1,94 @@
+=====================
+WebExtensions Wallet
+=====================
+
+------------
+Introduction
+------------
+
+The WebExtensions Wallet (*wxwallet*) can be used to pay with GNU Taler on web
+sites from within modern web browsers. The `WebExtensions
+<https://wiki.mozilla.org/WebExtensions>`_ API interface that enables the
+development cross-browser extensions. Google Chrome / Chromium, Mozilla
+Firefox, Opera and Microsoft Edge will all offer support for WebExtensions in
+the future.
+
+Currently Chrome hast the best support for WebExtensions (since the API is a superset
+of Chrome's extension API).
+
+-----------------------
+Development Environment
+-----------------------
+
+The *wxwallet* mainly written in the `TypeScript
+<http://www.typescriptlang.org/>`_ language, which is a statically typed
+superset of JavaScript.
+
+While the *wxwallet* is mainly intended to be run from inside a browser, the
+logic is implemented in browser-independent modules that can also be called
+from other environments such as `nodejs <https://nodejs.org>`_. This is
+especially useful for automatically running unit tests.
+
+
+-----------------
+Project Structure
+-----------------
+
+.. parsed-literal::
+
+ **manifest.json** extension configuration
+ **package.json** node.js package configuration
+ **tsconfig.json** TypeScript compiler configuration
+ **lib/**
+ **vendor/** 3rd party libraries
+ **wallet/** actual application logic
+ **emscripten/** emscripten object file and glue
+ **test/**
+ **run_tests.js** nodejs entry point for tests
+ **tests/** test cases
+ **content_scripts/notify.ts** wallet<->website signaling
+ **backgrond/main.ts** backend entry point
+ **img/** static image resources
+ **style/** CSS stylesheets
+ **pages/** pages shown in browser tabs
+ **popup/** pages shown the extension popup
+
+----------
+Emscripten
+----------
+
+`Emscripten <https://kripken.github.io/emscripten-site/index.html>`_ is C/C++
+to JavaScript compiler. Emscripten is used in the *wxwallet* to access
+low-level cryptography from *libgcrypt*, and miscellaneous functionality from
+*libgnunetutil* and *libtalerwallet*.
+
+
+--------------------------------------
+Target Environments and Modularization
+--------------------------------------
+
+Modules in the wallet are declared in TypeScript with
+the ES6 module syntax. These modules are then compiled
+to `SystemJS <https://github.com/systemjs/systemjs>`_ `register` modules.
+
+SystemJS modules can be loaded from the browser as well as from nodejs.
+However they require special entry points that configure the module system,
+load modules and execute code. Examples are `backgrond/main.ts` for the
+browser and `test/run_tests.js` for nodejs.
+
+Note that special care has to be taken when loading the Emscript code,
+as it is not compatible with the SystemJS module, even in the `globals`
+compatibility mode.
+
+The TypeScript sources in the *wxwallet* are compiled down to ES5, both to
+enable running in node.js without transpilers and to avoid a `bug
+<https://github.com/Microsoft/TypeScript/issues/6426>`_ in the TypeScript
+compiler.
+
+----------------------------
+IndexedDB Query Abstractions
+----------------------------
+
+The *wxwallet* uses a fluent-style API for queries on IndexedDB.
+
+TODO: say more
diff --git a/index.rst b/index.rst
index 991da528..8ff82775 100644
--- a/index.rst
+++ b/index.rst
@@ -1,5 +1,5 @@
-Welcome to Taler's REST API documentation!
-==========================================
+GNU Taler Documentation
+=======================
We are building an anonymous, taxable payment system using modern
cryptography. Customers will use traditional money transfers to send
@@ -21,10 +21,17 @@ In this document, we describe the REST-based API of the Mint,
which is at the heart of the system.
-Contents
-========
+Operator Handbook
+-----------------
-Protocol Specification:
+.. toctree::
+ :maxdepth: 2
+
+ impl-mint
+
+
+Protocol Specification
+----------------------
.. toctree::
:maxdepth: 2
@@ -33,24 +40,22 @@ Protocol Specification:
api-merchant
banks
-Implementation:
+ wallet
-.. toctree::
- :maxdepth: 2
+ wireformats
- impl-mint
- wallet
-Supported Wire Transfer Formats:
+Developer Handbook
+------------------
.. toctree::
:maxdepth: 2
- wireformats
+ dev-wallet-wx
Indices and tables
-==================
+------------------
* :ref:`search`
diff --git a/wallet.rst b/wallet.rst
index eaf71c17..ea47ef40 100644
--- a/wallet.rst
+++ b/wallet.rst
@@ -2,13 +2,7 @@
The Wallet Reference
====================
- .. note::
-
- This documentation goes in parallel with the wallet's development, so is to be considered as `work in pregress`
- until a first operative version of the wallet will be released.
-
-
-This section explains how to set up a wallet. It is worth noting that there are two versions for
+This chapter explains how to set up a wallet. It is worth noting that there are two versions for
this componenet - one browser based and the other implemented as an `app` for mobile systems.
-------
@@ -31,16 +25,34 @@ Rationale: Joining non-canonical URLs with relative URLs (e.g. "mint.example.co
results in different and slightly unexpected behavior in some URL handling libraries.
Canonical URLs give more predictable results with standard URL joining.
+---------------
+Error Handling
+---------------
+
+---------------
+User Experience
+---------------
+
+Balance Overview
+~~~~~~~~~~~~~~~~
+
+Transactions Log
+~~~~~~~~~~~~~~~~
+
+The transaction log shows all events that lead to a change in balance, including
+withdrawal and purchases.
+
+Error Log
+~~~~~~~~~
+
+
+
--------------------
Browser based wallet
--------------------
This paragraph gives instructions on how to proceed from getting the source code to build the final `.xpi` that can be installed into the Web browser.
- .. note::
-
- In this phase of development only support for Mozilla Firefox is provided.
-
.. ^^^^^^^^^^^^^^^^^^^^^^^.
.. Getting the source code.