summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2024-02-10 23:10:28 +0100
committerChristian Grothoff <christian@grothoff.org>2024-02-10 23:10:28 +0100
commit60ccf04bb3579c249a899c4ae88e120acda13c83 (patch)
tree1edf417a3c1328d7f2340fb8377d5a3b8e6c8d74
parentff81b14cfa6a753e6b9015a7057519c2b444c9bb (diff)
downloaddocs-60ccf04bb3579c249a899c4ae88e120acda13c83.tar.gz
docs-60ccf04bb3579c249a899c4ae88e120acda13c83.tar.bz2
docs-60ccf04bb3579c249a899c4ae88e120acda13c83.zip
bump
-rw-r--r--man/challenger-admin.128
-rw-r--r--man/challenger-config.158
-rw-r--r--man/challenger-dbinit.126
-rw-r--r--man/challenger-httpd.122
-rw-r--r--man/libeufin-nexus.196
-rw-r--r--man/libeufin-nexus.conf.54
-rw-r--r--man/libeufin-sandbox.120
-rw-r--r--man/sync-config.158
-rw-r--r--man/sync-dbinit.126
-rw-r--r--man/sync-httpd.138
-rw-r--r--man/taler-aggregator-benchmark.132
-rw-r--r--man/taler-auditor-dbinit.132
-rw-r--r--man/taler-auditor-exchange.124
-rw-r--r--man/taler-auditor-httpd.128
-rw-r--r--man/taler-auditor-offline.138
-rw-r--r--man/taler-auditor-sync.130
-rw-r--r--man/taler-auditor.138
-rw-r--r--man/taler-bank-benchmark.148
-rw-r--r--man/taler-config.158
-rw-r--r--man/taler-exchange-aggregator.134
-rw-r--r--man/taler-exchange-benchmark.148
-rw-r--r--man/taler-exchange-closer.128
-rw-r--r--man/taler-exchange-dbinit.130
-rw-r--r--man/taler-exchange-drain.124
-rw-r--r--man/taler-exchange-expire.128
-rw-r--r--man/taler-exchange-httpd.148
-rw-r--r--man/taler-exchange-kyc-aml-pep-trigger.12
-rw-r--r--man/taler-exchange-kyc-tester.154
-rw-r--r--man/taler-exchange-offline.192
-rw-r--r--man/taler-exchange-router.128
-rw-r--r--man/taler-exchange-secmod-cs.132
-rw-r--r--man/taler-exchange-secmod-eddsa.132
-rw-r--r--man/taler-exchange-secmod-rsa.132
-rw-r--r--man/taler-exchange-transfer.128
-rw-r--r--man/taler-exchange-wire-gateway-client.164
-rw-r--r--man/taler-exchange-wirewatch.138
-rw-r--r--man/taler-fakebank-run.132
-rw-r--r--man/taler-helper-auditor-aggregation.132
-rw-r--r--man/taler-helper-auditor-coins.132
-rw-r--r--man/taler-helper-auditor-deposits.132
-rw-r--r--man/taler-helper-auditor-purses.132
-rw-r--r--man/taler-helper-auditor-reserves.132
-rw-r--r--man/taler-helper-auditor-wire.134
-rw-r--r--man/taler-mdb.136
-rw-r--r--man/taler-merchant-benchmark.122
-rw-r--r--man/taler-merchant-dbinit.122
-rw-r--r--man/taler-merchant-depositcheck.134
-rw-r--r--man/taler-merchant-exchange.128
-rw-r--r--man/taler-merchant-httpd.142
-rw-r--r--man/taler-merchant-passwd.124
-rw-r--r--man/taler-merchant-webhook.126
-rw-r--r--man/taler-merchant-wirewatch.132
-rw-r--r--man/taler-terms-generator.112
-rw-r--r--man/taler-unified-setup.14
-rw-r--r--man/taler.conf.5134
-rw-r--r--texinfo/challenger.texi2
-rw-r--r--texinfo/taler-auditor.texi2
-rw-r--r--texinfo/taler-developer-manual.texi701
-rw-r--r--texinfo/taler-exchange.texi637
-rw-r--r--texinfo/taler-merchant-api-tutorial.texi86
-rw-r--r--texinfo/taler-merchant.texi736
61 files changed, 1918 insertions, 2234 deletions
diff --git a/man/challenger-admin.1 b/man/challenger-admin.1
index 85187ce8..df3ab0a7 100644
--- a/man/challenger-admin.1
+++ b/man/challenger-admin.1
@@ -33,14 +33,14 @@ challenger-admin \- manipulate list of authorized Challenger clients
.SH SYNOPSIS
.sp
\fBchallenger\-admin\fP
-[\fB\-a\fP \fICLIENT_SECRET\fP\ |\ \fB\-\-add=\fP\fICLIENT_SECRET\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-d\fP\ |\ \fB\-\-delete\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-q\fP\ |\ \fB\-\-quiet\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-a\fP \fICLIENT_SECRET\fP\ |\ \fB–add=\fP\fICLIENT_SECRET\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-d\fP\ |\ \fB–delete\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-q\fP\ |\ \fB–quiet\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
CLIENT_URL
.SH DESCRIPTION
.sp
@@ -49,23 +49,23 @@ CLIENT_URL
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-a\fP \fISECRET\fP | \fB\-\-add=\fP‌\fISECRET\fP
+\fB\-a\fP \fISECRET\fP | \fB–add=\fP‌\fISECRET\fP
Add the client with the given \fICLIENT_URL setting the client secret to *SECRET\fP\&. Prints the CLIENT_ID of the added client.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Challenger commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-d\fP | \fB\-\-delete\fP
+\fB\-d\fP | \fB–delete\fP
Delete the client with the given \fICLIENT_URL\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
\fB\-q\fP | \fB–\-quiet\fP
diff --git a/man/challenger-config.1 b/man/challenger-config.1
index 1b4b0148..a03108d8 100644
--- a/man/challenger-config.1
+++ b/man/challenger-config.1
@@ -33,69 +33,69 @@ challenger-config \- manipulate Challenger configuration files
.SH SYNOPSIS
.sp
\fBchallenger\-config\fP
-[\fB\-b\fP\ \fIbackend\fP\ |\ \fB\-\-supported\-backend=\fP\fIbackend\fP]
-[\fB\-c\fP\ \fIfilename\fP\ |\ \fB\-\-config=\fP\fIfilename\fP]
-[\fB\-f\fP\ |\ \fB\-\-filename\fP]
-[\fB\-F\fP\ |\ \fB\-\-full\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB\-\-loglevel=\fP\fIloglevel\fP]
-[\fB\-l\fP\ \fIfilename\fP\ |\ \fB\-\-logfile=\fP‌\fIfilename\fP]
-[\fB\-o\fP\ \fIoption\fP\ |\ \fB\-\-option=\fP\fIoption\fP]
-[\fB\-r\fP\ |\ \fB\-\-rewrite\fP]
-[\fB\-S\fP\ |\ \fB\-\-list\-sections\fP]
-[\fB\-s\fP\ \fIsection\fP\ |\ \fB\-\-section=\fP\fIsection\fP]
-[\fB\-V\fP\ \fIvalue\fP\ |\ \fB\-\-value=\fP\fIvalue\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-b\fP\ \fIbackend\fP\ |\ \fB–supported\-backend=\fP\fIbackend\fP]
+[\fB\-c\fP\ \fIfilename\fP\ |\ \fB–config=\fP\fIfilename\fP]
+[\fB\-f\fP\ |\ \fB–filename\fP]
+[\fB\-F\fP\ |\ \fB–full\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB–loglevel=\fP\fIloglevel\fP]
+[\fB\-l\fP\ \fIfilename\fP\ |\ \fB–logfile=\fP‌\fIfilename\fP]
+[\fB\-o\fP\ \fIoption\fP\ |\ \fB–option=\fP\fIoption\fP]
+[\fB\-r\fP\ |\ \fB–rewrite\fP]
+[\fB\-S\fP\ |\ \fB–list\-sections\fP]
+[\fB\-s\fP\ \fIsection\fP\ |\ \fB–section=\fP\fIsection\fP]
+[\fB\-V\fP\ \fIvalue\fP\ |\ \fB–value=\fP\fIvalue\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBchallenger\-config\fP can be used to read or modify Challenger configuration files.
.INDENT 0.0
.TP
-\fB\-b\fP \fIBACKEND\fP | \fB\-\-supported\-backend=\fP\fIBACKEND\fP
+\fB\-b\fP \fIBACKEND\fP | \fB–supported\-backend=\fP\fIBACKEND\fP
Tests whether the specified \fIBACKEND\fP is supported by the current installation.
-The backend must match the name of a plugin, i.e. \(dqnamestore_postgres\(dq for
-the PostgreSQL database backend of the \(dqNAMESTORE\(dq service. If \fIBACKEND\fP is
+The backend must match the name of a plugin, i.e. “namestore_postgres” for
+the PostgreSQL database backend of the “NAMESTORE” service. If \fIBACKEND\fP is
supported, challenger\-config will return a status code of 0 (success), otherwise
77 (unsupported). When this option is specified, no other options may be
specified. Specifying this option together with other options will cause
challenger\-config to return a status code of 1 (error).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration file \fIFILENAME\fP\&.
.TP
-\fB\-f\fP | \fB\-\-filename\fP
+\fB\-f\fP | \fB–filename\fP
Try to perform expansions as if the option values represent filenames (will
also be applied even if the option is not really a filename).
.TP
-\fB\-F\fP | \fB\-\-full\fP
+\fB\-F\fP | \fB–full\fP
Write the full configuration file, not just the differences to the defaults.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP\fILOGLEVEL\fP
Use \fILOGLEVEL\fP for logging.
Valid values are \fBDEBUG\fP, \fBINFO\fP, \fBWARNING\fP, and \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-o\fP \fIOPTION\fP | \fB\-\-option=\fP\fIOPTION\fP
+\fB\-o\fP \fIOPTION\fP | \fB–option=\fP\fIOPTION\fP
Which configuration option should be accessed or edited. Required to set a
value. If not given, all values of a given section will be printed in the
-format \(dqOPTION = VALUE\(dq.
+format “OPTION = VALUE”.
.TP
-\fB\-r\fP | \fB\-\-rewrite\fP
+\fB\-r\fP | \fB–rewrite\fP
Write the configuration file even if nothing changed. Will remove all comments!
.TP
-\fB\-S\fP | \fB\-\-list\-sections\fP
+\fB\-S\fP | \fB–list\-sections\fP
List available configuration sections for use with \fB\-\-section\fP\&.
.TP
-\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+\fB\-s\fP \fISECTION\fP | \fB–section=\fP\fISECTION\fP
Which configuration section should be accessed or edited.
Required option.
.TP
-\fB\-V\fP \fIVALUE\fP | \fB\-\-value=\fP\fIVALUE\fP
+\fB\-V\fP \fIVALUE\fP | \fB–value=\fP\fIVALUE\fP
Configuration value to store in the given section under the given option.
Must only be given together with \fB\-s\fP and \fB\-o\fP options.
.INDENT 7.0
@@ -105,7 +105,7 @@ Changing the configuration file with \fB\-V\fP will remove comments
and may reorder sections and remove \fB@INLINE@\fP directives.
.UNINDENT
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print GNU Taler version number.
.UNINDENT
.SH SEE ALSO
diff --git a/man/challenger-dbinit.1 b/man/challenger-dbinit.1
index 3cf64c91..951b1be4 100644
--- a/man/challenger-dbinit.1
+++ b/man/challenger-dbinit.1
@@ -33,13 +33,13 @@ challenger-dbinit \- initialize the Challenger database
.SH SYNOPSIS
.sp
\fBchallenger\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-garbagecollect\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–garbagecollect\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBchallenger\-dbinit\fP is a command\-line tool to initialize the Challenger database.
@@ -47,23 +47,23 @@ challenger-dbinit \- initialize the Challenger database
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Challenger commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-garbagecollect\fP
+\fB\-g\fP | \fB–garbagecollect\fP
Remove state data from database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Reset database. (\fBDANGEROUS\fP: All existing data is lost!)
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/challenger-httpd.1 b/man/challenger-httpd.1
index 9ad6197c..bc94da85 100644
--- a/man/challenger-httpd.1
+++ b/man/challenger-httpd.1
@@ -33,12 +33,12 @@ challenger-httpd \- provide the Challenger HTTP interface
.SH SYNOPSIS
.sp
\fBchallenger\-httpd\fP
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBchallenger\-httpd\fP is a command\-line tool to provide the Challenger HTTP interface.
@@ -46,20 +46,20 @@ challenger-httpd \- provide the Challenger HTTP interface
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force HTTP connections to be closed after each request.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Challenger commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/libeufin-nexus.1 b/man/libeufin-nexus.1
index cd080498..ecc3e9e7 100644
--- a/man/libeufin-nexus.1
+++ b/man/libeufin-nexus.1
@@ -33,9 +33,9 @@ libeufin-nexus \- service to interface to various bank access APIs
.SH SYNOPSIS
.sp
\fBlibeufin\-nexus\fP
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-\-version\fP]
-COMMAND [ARGS...]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB–version\fP]
+COMMAND [ARGS…]
.sp
Subcommands: \fBdbinit\fP, \fBebics\-setup\fP, \fBebics\-submit\fP, \fBebics\-fetch\fP, \fBconfig\fP
.SH DESCRIPTION
@@ -46,7 +46,7 @@ various bank access APIs
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
\fB–version\fP
@@ -60,28 +60,28 @@ In order to operate any EBICS communication with \fBlibeufin\-nexus\fP, it is ne
The following sections describe each command in detail.
.SS ebics\-setup
.sp
-This command creates the client keys, if they aren\(aqt found already on the disk, and sends them to the bank if they were not sent yet. In case of sending, it ejects the PDF document that contains the keys fingerprints, so that the user can send it to the bank to confirm their keys. The process continues by checking if the bank keys exist already on disk, and proceeds with downloading them in case they are not. It checks then if the bank keys were accepted by the user; if yes, the setup terminates, otherwise it interactively asks the user to mark the keys as accepted. By accepting the bank keys, the setup terminates successfully.
+This command creates the client keys, if they aren’t found already on the disk, and sends them to the bank if they were not sent yet. In case of sending, it ejects the PDF document that contains the keys fingerprints, so that the user can send it to the bank to confirm their keys. The process continues by checking if the bank keys exist already on disk, and proceeds with downloading them in case they are not. It checks then if the bank keys were accepted by the user; if yes, the setup terminates, otherwise it interactively asks the user to mark the keys as accepted. By accepting the bank keys, the setup terminates successfully.
.sp
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
.TP
-\fB\-\-force\-keys\-resubmission\fP
+\fB–force\-keys\-resubmission\fP
Resubmits the client keys. If no keys were found, it creates and submits them.
.TP
-\fB\-\-auto\-accept\-keys\fP
+\fB–auto\-accept\-keys\fP
Accepts the bank keys without interactively asking the user.
.TP
-\fB\-\-generate\-registration\-pdf\fP
-Generates the PDF with the client keys fingerprints, if the keys have the submitted state. That\(aqs useful in case the PDF went lost after the first submission and the user needs a new PDF.
+\fB–generate\-registration\-pdf\fP
+Generates the PDF with the client keys fingerprints, if the keys have the submitted state. That’s useful in case the PDF went lost after the first submission and the user needs a new PDF.
.UNINDENT
.SS dbinit
.sp
@@ -90,16 +90,16 @@ This subcommand defines the database schema for Nexus. It is mandatory to run t
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
If present, deletes any database table (WARNING: potential data loss)
.UNINDENT
.SS ebics\-submit
@@ -109,17 +109,17 @@ This subcommand submits any initiated payment that was not already sent to the b
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
Uploaded documents will be stored \fIbefore\fP being submitted to the bank. This directory would contain several directories, each named after the \fBYYYY\-MM\-DD/submit\fP format. The pain.001 file would then be named in the following schema: \fB$microseconds_pain.001.xml\fP\&.
.TP
-\fB\-\-transient\fP
+\fB–transient\fP
This flag, enabled by default, causes the command to check the database and submit only once, and then return.
.UNINDENT
.SS ebics\-fetch
@@ -137,48 +137,48 @@ The files type can be given as an argument to select what will be fetched. If no
.UNINDENT
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
.TP
-\fB\-\-debug\-ebics\fP \fISAVEDIR\fP
+\fB–debug\-ebics\fP \fISAVEDIR\fP
Log EBICS content at SAVEDIR.
Downloaded documents will be stored \fIbefore\fP being ingested in the database. This directory would contain several directories, each named after the \fBYYYY\-MM\-DD/fetch\fP format. The stored files would then be named after the following schema: \fB$microseconds_$filename\fP\&. Exception to this naming scheme are the HAC responses, since they do not get any filename assigned by the ZIP archive (they are sent unzipped). Their naming scheme is: \fB$microseconds_HAC_response.pain.002.xml\fP\&.
.TP
-\fB\-\-transient\fP
+\fB–transient\fP
This flag, enabled by default, causes the command to perform one download and return.
.TP
-\fB\-\-pinned\-start\fP
-Only supported in \-\-transient mode, this option lets specify the earliest timestamp of the downloaded documents. The latest timestamp is always the current time.
+\fB–pinned\-start\fP
+Only supported in –transient mode, this option lets specify the earliest timestamp of the downloaded documents. The latest timestamp is always the current time.
.UNINDENT
.SS initiate\-payment
.sp
This subcommand initiates an outgoing payment. The pending payment is stored in the database and will be performed the next time \fBebics\-submit\fP run.
.sp
-It takes one argument, the creditor IBAN payto URI, which must contain a \(aqreceiver\-name\(aq and may contain an \(aqamount\(aq and a \(aqmessage\(aq if they have not been defined using CLI options.
+It takes one argument, the creditor IBAN payto URI, which must contain a ‘receiver\-name’ and may contain an ‘amount’ and a ‘message’ if they have not been defined using CLI options.
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
.TP
-\fB\-\-amount\fP \fIAMOUNT\fP
-The amount to transfer, payto \(aqamount\(aq parameter takes the precedence
+\fB–amount\fP \fIAMOUNT\fP
+The amount to transfer, payto ‘amount’ parameter takes the precedence
.TP
-\fB\-\-subject\fP \fITEXT\fP
-The payment subject, payto \(aqmessage\(aq parameter takes the precedence
+\fB–subject\fP \fITEXT\fP
+The payment subject, payto ‘message’ parameter takes the precedence
.TP
-\fB\-\-request\-uid\fP \fITEXT\fP
+\fB–request\-uid\fP \fITEXT\fP
The payment request UID, will be randomly generated if missing.
.UNINDENT
.SS config
@@ -186,7 +186,7 @@ The payment request UID, will be randomly generated if missing.
This command inspect or change the configuration.
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.UNINDENT
.sp
@@ -198,16 +198,16 @@ This command lookup config value.
It takes two arguments, the section name and the option name
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
.TP
-\fB\-f\fP | \fB\-\-filename\fP
+\fB\-f\fP | \fB–filename\fP
Interpret value as path with dollar\-expansion.
.UNINDENT
.SS config dump
@@ -215,29 +215,29 @@ Interpret value as path with dollar\-expansion.
This command dump the configuration.
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
.UNINDENT
.SS config pathsub
.sp
This command substitute variables in a path.
.sp
-It takes one argument, a path expresion.
+It takes one argument, a path expression.
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+\fB\-c\fP | \fB–config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
-\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+\fB\-L\fP | \fB–log\fP \fILOGLEVEL\fP
Configure logging to use LOGLEVEL.
.UNINDENT
.SH SEE ALSO
diff --git a/man/libeufin-nexus.conf.5 b/man/libeufin-nexus.conf.5
index 88dc406d..f9f09a53 100644
--- a/man/libeufin-nexus.conf.5
+++ b/man/libeufin-nexus.conf.5
@@ -49,7 +49,7 @@ escape characters in such strings; all characters between the double quotes
(including other double quotes) are taken verbatim.
.sp
Durations must be expressed with a number followed by the time unit. The following
-time units are supported: \(aqs\(aq (seconds), \(aqm\(aq (minutes), \(aqh\(aq (hours). For example,
+time units are supported: ‘s’ (seconds), ‘m’ (minutes), ‘h’ (hours). For example,
the value \fI5m\fP denotes a duration of \fIfive minutes\fP\&.
.sp
Values that represent filenames can begin with a \fB/bin/sh\fP\-like variable
@@ -150,7 +150,7 @@ URL of the EBICS server
.B BANK_DIALECT
Name of the following combination: EBICS version and ISO20022 recommendations
that Nexus would honor in the communication with the bank. Currently only the
-\(aqpostfinance\(aq value is supported.
+‘postfinance’ value is supported.
.TP
.B HOST_ID
EBICS specific: name of the EBICS host
diff --git a/man/libeufin-sandbox.1 b/man/libeufin-sandbox.1
index 0a159d76..35c2d8b8 100644
--- a/man/libeufin-sandbox.1
+++ b/man/libeufin-sandbox.1
@@ -33,9 +33,9 @@ libeufin-sandbox \- simulate core banking system with EBICS access to bank accou
.SH SYNOPSIS
.sp
\fBlibeufin\-sandbox\fP
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-\-version\fP]
-COMMAND [ARGS...]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB–version\fP]
+COMMAND [ARGS…]
.sp
Commands: serve, reset\-tables, config, make\-transaction, camt053tick
default\-exchange
@@ -49,12 +49,12 @@ requests either over the network or via a Unix domain socket.
Related program \fBlibeufin\-cli\fP is the preferred front end
for that mode of operation.
There is also a mode where \fBlibeufin\-sandbox\fP accepts commands directly,
-useful for configuring one or more \(dqdemobank\(dq (simulated bank) instances.
+useful for configuring one or more “demobank” (simulated bank) instances.
.sp
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
\fB–version\fP
@@ -88,10 +88,10 @@ Option \fB\-\-captcha\-url $URL\fP specifies where the wallet user is going
to be redirected to confirm the withdrawal operation. This $URL should
point to the bank frontend. More precisely to the UI that let the user
finish a withdrawal operation that needs to be confirmed. Example of
-this value may be \(dq\fI\%https://bank.domain/#/operation\fP/{wopid}\(dq where
-\(dq\fI\%https://bank.domain\fP\(dq returns the demobank SPA and the demobank view under
-the route \(dq/operation/{wopid}\(dq will show the status of the operation id {wopid}.
-Note that \(dq{wopid}\(dq is literally in the \-\-captcha\-url config and replaced at
+this value may be “\fI\%https://bank.domain/#/operation\fP/{wopid}” where
+“\fI\%https://bank.domain\fP” returns the demobank SPA and the demobank view under
+the route “/operation/{wopid}” will show the status of the operation id {wopid}.
+Note that “{wopid}” is literally in the –captcha\-url config and replaced at
runtime by the sandbox server.
Option \fB\-\-bank\-debt\-limit N\fP (default: 1000000) specifies that
the bank debt limit should be N (units of currency).
@@ -141,7 +141,7 @@ This sets the default exchange for demobank \fBbank01\fP\&.
It is an error if the demobank does not exist.
.SS make\-transaction
.sp
-This is a \(dqlegacy\(dq command, useful in a previous iteration of LibEuFin
+This is a “legacy” command, useful in a previous iteration of LibEuFin
and for internal testing.
It creates and records a wire transfer transaction in the database.
.sp
diff --git a/man/sync-config.1 b/man/sync-config.1
index c214e3b9..891e8980 100644
--- a/man/sync-config.1
+++ b/man/sync-config.1
@@ -33,69 +33,69 @@ sync-config \- manipulate Sync configuration files
.SH SYNOPSIS
.sp
\fBsync\-config\fP
-[\fB\-b\fP\ \fIbackend\fP\ |\ \fB\-\-supported\-backend=\fP\fIbackend\fP]
-[\fB\-c\fP\ \fIfilename\fP\ |\ \fB\-\-config=\fP\fIfilename\fP]
-[\fB\-f\fP\ |\ \fB\-\-filename\fP]
-[\fB\-F\fP\ |\ \fB\-\-full\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB\-\-loglevel=\fP\fIloglevel\fP]
-[\fB\-l\fP\ \fIfilename\fP\ |\ \fB\-\-logfile=\fP‌\fIfilename\fP]
-[\fB\-o\fP\ \fIoption\fP\ |\ \fB\-\-option=\fP\fIoption\fP]
-[\fB\-r\fP\ |\ \fB\-\-rewrite\fP]
-[\fB\-S\fP\ |\ \fB\-\-list\-sections\fP]
-[\fB\-s\fP\ \fIsection\fP\ |\ \fB\-\-section=\fP\fIsection\fP]
-[\fB\-V\fP\ \fIvalue\fP\ |\ \fB\-\-value=\fP\fIvalue\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-b\fP\ \fIbackend\fP\ |\ \fB–supported\-backend=\fP\fIbackend\fP]
+[\fB\-c\fP\ \fIfilename\fP\ |\ \fB–config=\fP\fIfilename\fP]
+[\fB\-f\fP\ |\ \fB–filename\fP]
+[\fB\-F\fP\ |\ \fB–full\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB–loglevel=\fP\fIloglevel\fP]
+[\fB\-l\fP\ \fIfilename\fP\ |\ \fB–logfile=\fP‌\fIfilename\fP]
+[\fB\-o\fP\ \fIoption\fP\ |\ \fB–option=\fP\fIoption\fP]
+[\fB\-r\fP\ |\ \fB–rewrite\fP]
+[\fB\-S\fP\ |\ \fB–list\-sections\fP]
+[\fB\-s\fP\ \fIsection\fP\ |\ \fB–section=\fP\fIsection\fP]
+[\fB\-V\fP\ \fIvalue\fP\ |\ \fB–value=\fP\fIvalue\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBsync\-config\fP can be used to read or modify Sync configuration files.
.INDENT 0.0
.TP
-\fB\-b\fP \fIBACKEND\fP | \fB\-\-supported\-backend=\fP\fIBACKEND\fP
+\fB\-b\fP \fIBACKEND\fP | \fB–supported\-backend=\fP\fIBACKEND\fP
Tests whether the specified \fIBACKEND\fP is supported by the current installation.
-The backend must match the name of a plugin, i.e. \(dqnamestore_postgres\(dq for
-the PostgreSQL database backend of the \(dqNAMESTORE\(dq service. If \fIBACKEND\fP is
+The backend must match the name of a plugin, i.e. “namestore_postgres” for
+the PostgreSQL database backend of the “NAMESTORE” service. If \fIBACKEND\fP is
supported, sync\-config will return a status code of 0 (success), otherwise
77 (unsupported). When this option is specified, no other options may be
specified. Specifying this option together with other options will cause
sync\-config to return a status code of 1 (error).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration file \fIFILENAME\fP\&.
.TP
-\fB\-f\fP | \fB\-\-filename\fP
+\fB\-f\fP | \fB–filename\fP
Try to perform expansions as if the option values represent filenames (will
also be applied even if the option is not really a filename).
.TP
-\fB\-F\fP | \fB\-\-full\fP
+\fB\-F\fP | \fB–full\fP
Write the full configuration file, not just the differences to the defaults.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP\fILOGLEVEL\fP
Use \fILOGLEVEL\fP for logging.
Valid values are \fBDEBUG\fP, \fBINFO\fP, \fBWARNING\fP, and \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-o\fP \fIOPTION\fP | \fB\-\-option=\fP\fIOPTION\fP
+\fB\-o\fP \fIOPTION\fP | \fB–option=\fP\fIOPTION\fP
Which configuration option should be accessed or edited. Required to set a
value. If not given, all values of a given section will be printed in the
-format \(dqOPTION = VALUE\(dq.
+format “OPTION = VALUE”.
.TP
-\fB\-r\fP | \fB\-\-rewrite\fP
+\fB\-r\fP | \fB–rewrite\fP
Write the configuration file even if nothing changed. Will remove all comments!
.TP
-\fB\-S\fP | \fB\-\-list\-sections\fP
+\fB\-S\fP | \fB–list\-sections\fP
List available configuration sections for use with \fB\-\-section\fP\&.
.TP
-\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+\fB\-s\fP \fISECTION\fP | \fB–section=\fP\fISECTION\fP
Which configuration section should be accessed or edited.
Required option.
.TP
-\fB\-V\fP \fIVALUE\fP | \fB\-\-value=\fP\fIVALUE\fP
+\fB\-V\fP \fIVALUE\fP | \fB–value=\fP\fIVALUE\fP
Configuration value to store in the given section under the given option.
Must only be given together with \fB\-s\fP and \fB\-o\fP options.
.INDENT 7.0
@@ -105,7 +105,7 @@ Changing the configuration file with \fB\-V\fP will remove comments
and may reorder sections and remove \fB@INLINE@\fP directives.
.UNINDENT
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print GNU Taler version number.
.UNINDENT
.SH SEE ALSO
diff --git a/man/sync-dbinit.1 b/man/sync-dbinit.1
index c37fad91..7b650724 100644
--- a/man/sync-dbinit.1
+++ b/man/sync-dbinit.1
@@ -33,13 +33,13 @@ sync-dbinit \- initialize the Sync database
.SH SYNOPSIS
.sp
\fBsync\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-garbagecollect\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–garbagecollect\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBsync\-dbinit\fP is a command\-line tool to initialize the Sync database.
@@ -47,23 +47,23 @@ sync-dbinit \- initialize the Sync database
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Sync commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-garbagecollect\fP
+\fB\-g\fP | \fB–garbagecollect\fP
Remove state data from database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Reset database. (\fBDANGEROUS\fP: All existing data is lost!)
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/sync-httpd.1 b/man/sync-httpd.1
index bbdc08d3..425961cb 100644
--- a/man/sync-httpd.1
+++ b/man/sync-httpd.1
@@ -33,16 +33,16 @@ sync-httpd \- provide the Sync HTTP interface
.SH SYNOPSIS
.sp
\fBsync\-httpd\fP
-[\fB\-A\fP\ \fIUSERNAME:PASSWORD\fP\ |\ \fB\-\-auth=\fP\fIUSERNAME:PASSWORD\fP]
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-k\fP\ \fIKEYFILE\fP\ |\ \fB\-\-key=\fP\fIKEYFILE\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-p\fP\ \fIKEYFILEPASSPHRASE\fP\ |\ \fB\-\-pass=\fP\fIKEYFILEPASSPHRASE\fP]
-[\fB\-t\fP\ \fICERTTYPE\fP\ |\ \fB\-\-type=\fP\fICERTTYPE\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-A\fP\ \fIUSERNAME:PASSWORD\fP\ |\ \fB–auth=\fP\fIUSERNAME:PASSWORD\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-k\fP\ \fIKEYFILE\fP\ |\ \fB–key=\fP\fIKEYFILE\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-p\fP\ \fIKEYFILEPASSPHRASE\fP\ |\ \fB–pass=\fP\fIKEYFILEPASSPHRASE\fP]
+[\fB\-t\fP\ \fICERTTYPE\fP\ |\ \fB–type=\fP\fICERTTYPE\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBsync\-httpd\fP is a command\-line tool to provide the Sync HTTP interface.
@@ -50,32 +50,32 @@ sync-httpd \- provide the Sync HTTP interface
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-A\fP \fIUSERNAME:PASSWORD\fP | \fB\-\-auth=\fP\fIUSERNAME:PASSWORD\fP
+\fB\-A\fP \fIUSERNAME:PASSWORD\fP | \fB–auth=\fP\fIUSERNAME:PASSWORD\fP
Use the given \fIUSERNAME\fP and \fIPASSWORD\fP for client authentication.
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force HTTP connections to be closed after each request.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Sync commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-k\fP \fIKEYFILE\fP | \fB\-\-key=\fP\fIKEYFILE\fP
+\fB\-k\fP \fIKEYFILE\fP | \fB–key=\fP\fIKEYFILE\fP
Consult \fIKEYFILE\fP for the private TLS key for TLS client authentication.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
-\fB\-p\fP \fIKEYFILEPASSPHRASE\fP | \fB\-\-pass=\fP\fIKEYFILEPASSPHRASE\fP
+\fB\-p\fP \fIKEYFILEPASSPHRASE\fP | \fB–pass=\fP\fIKEYFILEPASSPHRASE\fP
Use \fIKEYFILEPASSPHRASE\fP to decrypt the TLS client private key file.
.TP
-\fB\-t\fP \fICERTTYPE\fP | \fB\-\-type=\fP\fICERTTYPE\fP
+\fB\-t\fP \fICERTTYPE\fP | \fB–type=\fP\fICERTTYPE\fP
Use \fICERTTYPE\fP as the type of the TLS client certificate.
If unspecified, defaults to PEM.
.TP
diff --git a/man/taler-aggregator-benchmark.1 b/man/taler-aggregator-benchmark.1
index bf207dd1..2bc29d88 100644
--- a/man/taler-aggregator-benchmark.1
+++ b/man/taler-aggregator-benchmark.1
@@ -33,14 +33,14 @@ taler-aggregator-benchmark \- generate database to measure aggregator performanc
.SH SYNOPSIS
.sp
\fBtaler\-aggregator\-benchmark\fP
-[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP]
-[\fB\-d\fP\ \fIDN\fP\ |\ \fB\-\-deposits=\fP\fIDN\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIDM\fP\ |\ \fB\-\-merchants=\fP‌\fIDM\fP]
-[\fB\-r\fP\ \fIRATE\fP\ |\ \fB\-\-refunds=\fP\fIRATE\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB–config=\fP‌\fICONFIG_FILENAME\fP]
+[\fB\-d\fP\ \fIDN\fP\ |\ \fB–deposits=\fP\fIDN\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log\-level=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIDM\fP\ |\ \fB–merchants=\fP‌\fIDM\fP]
+[\fB\-r\fP\ \fIRATE\fP\ |\ \fB–refunds=\fP\fIRATE\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-aggregator\-benchmark\fP is a command\-line tool to fill an exchange
@@ -51,30 +51,30 @@ starting multiple \fBtaler\-exchange\-aggregator\fP processes) and instead only
prepares the database with synthetic work.
.INDENT 0.0
.TP
-\fB\-c\fP \fICONFIG_FILENAME\fP | \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP
+\fB\-c\fP \fICONFIG_FILENAME\fP | \fB–config=\fP‌\fICONFIG_FILENAME\fP
(Mandatory) Use CONFIG_FILENAME as the name for the configuration file.
.TP
-\fB\-d\fP \fIDN\fP | \fB\-\-deposits=\fP‌\fIDN\fP
+\fB\-d\fP \fIDN\fP | \fB–deposits=\fP‌\fIDN\fP
How many deposits should be instantiated \fIper merchant\fP\&.
Defaults to 1.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log\-level=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIDM\fP | \fB\-\-merchants=\fP‌\fIDM\fP
+\fB\-m\fP \fIDM\fP | \fB–merchants=\fP‌\fIDM\fP
How many different merchants should we create. Defaults to 1.
.TP
-\fB\-r\fP \fIRATE\fP | \fB\-\-refunds=\fP\fIRATE\fP
+\fB\-r\fP \fIRATE\fP | \fB–refunds=\fP\fIRATE\fP
Probability of a deposit having a refund (as an integer between 0\-100).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-auditor-dbinit.1 b/man/taler-auditor-dbinit.1
index c451393d..f2364e20 100644
--- a/man/taler-auditor-dbinit.1
+++ b/man/taler-auditor-dbinit.1
@@ -33,14 +33,14 @@ taler-auditor-dbinit \- setup auditor database
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-gc\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-R\fP\ |\ \fB\-\-reset\fP]
-[\fB\-r\fP\ |\ \fB\-\-restart\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–gc\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-R\fP\ |\ \fB–reset\fP]
+[\fB\-r\fP\ |\ \fB–restart\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-dbinit\fP is a command\-line tool to initialize the Taler
@@ -50,32 +50,32 @@ Taler exchange to operate.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-gc\fP
+\fB\-g\fP | \fB–gc\fP
Garbage collect database. Deletes all unnecessary data in the
database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-R\fP | \fB\-\-reset\fP
+\fB\-R\fP | \fB–reset\fP
Drop tables. Dangerous, will delete all existing data in the database.
.TP
-\fB\-r\fP | \fB\-\-restart\fP
+\fB\-r\fP | \fB–restart\fP
Restart all auditors from the beginning. Useful for
testing.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-auditor-exchange.1 b/man/taler-auditor-exchange.1
index d72a370f..0e5084b1 100644
--- a/man/taler-auditor-exchange.1
+++ b/man/taler-auditor-exchange.1
@@ -33,12 +33,12 @@ taler-auditor-exchange \- add or remove exchange from auditor’s list
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-exchange\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-m\fP\ \fIMASTERKEY\fP\ |\ \fB\-\-exchange\-key=\fP‌\fIMASTERKEY\fP]
-[\fB\-r\fP\ |\ \fB\-\-remove\fP]
-[\fB\-u\fP\ \fIEXCHANGE_URL\fP\ |\ \fB\-\-auditor\-url=\fP‌\fIEXCHANGE_URL\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-m\fP\ \fIMASTERKEY\fP\ |\ \fB–exchange\-key=\fP‌\fIMASTERKEY\fP]
+[\fB\-r\fP\ |\ \fB–remove\fP]
+[\fB\-u\fP\ \fIEXCHANGE_URL\fP\ |\ \fB–auditor\-url=\fP‌\fIEXCHANGE_URL\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-exchange\fP is a command\-line tool to be used by an
@@ -49,27 +49,27 @@ taler\-auditor or taler\-wire\-auditor. Afterwards the exchange will be
visible via the /exchanges API of the taler\-auditor\-httpd.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-m\fP \fIMASTERKEY\fP | \fB\-\-exchange\-key=\fP‌\fIMASTERKEY\fP
+\fB\-m\fP \fIMASTERKEY\fP | \fB–exchange\-key=\fP‌\fIMASTERKEY\fP
Public key of the exchange in Crockford base32 encoding, for example
as generated by \fBtaler\-auditor\-offline setup\fP\&.
.TP
-\fB\-r\fP | \fB\-\-remove\fP
+\fB\-r\fP | \fB–remove\fP
Instead of adding the exchange, remove it. Note that this will drop
ALL data associated with that exchange, including existing auditing
information. So use with extreme care!
.TP
-\fB\-u\fP \fIEXCHANGE_URL\fP | \fB\-\-auditor\-url=\fP‌\fIEXCHANGE_URL\fP
+\fB\-u\fP \fIEXCHANGE_URL\fP | \fB–auditor\-url=\fP‌\fIEXCHANGE_URL\fP
URL of the exchange. The exchange’s HTTP API must be available at
this address.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH DIAGNOSTICS
diff --git a/man/taler-auditor-httpd.1 b/man/taler-auditor-httpd.1
index f0e99e24..194bf2e2 100644
--- a/man/taler-auditor-httpd.1
+++ b/man/taler-auditor-httpd.1
@@ -33,13 +33,13 @@ taler-auditor-httpd \- HTTP server providing a RESTful API to access a Taler aud
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-httpd\fP
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB\-\-timeout\fP\fISECONDS\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB–timeout\fP\fISECONDS\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-httpd\fP is a command\-line tool to run the Taler auditor
@@ -48,30 +48,30 @@ before running this command.
.SH OPTIONS
.INDENT 0.0
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request
(useful in combination with \-f to avoid having to wait for nc to
time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration and other resources for the auditor to
operate from FILENAME.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-t\fP \fISECONDS\fP | \fB\-\-timeout=\fP\fISECONDS\fP
+\fB\-t\fP \fISECONDS\fP | \fB–timeout=\fP\fISECONDS\fP
Specifies the number of \fISECONDS\fP after which the HTTPD should close
(idle) HTTP connections.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SIGNALS
diff --git a/man/taler-auditor-offline.1 b/man/taler-auditor-offline.1
index 00612940..dd3822ab 100644
--- a/man/taler-auditor-offline.1
+++ b/man/taler-auditor-offline.1
@@ -33,12 +33,12 @@ taler-auditor-offline \- Taler auditor certifies that it audits a Taler exchange
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-offline\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[subcommand ...]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[subcommand …]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-offline\fP is a command\-line tool to be used by an auditor to
@@ -47,7 +47,7 @@ signature, the auditor affirms that he will verify that the exchange is
properly accounting for coins of those denominations. The tool takes a list
of subcommands as arguments which are then processed sequentially.
.sp
-The tool includes two subcommands to interact \fIonline\fP with the exchange\(aqs
+The tool includes two subcommands to interact \fIonline\fP with the exchange’s
REST APIs. The \fBdownload\fP subcommand downloads current public keys from the
running exchange. Note that this only includes keys that the exchange
operator has previously validated using the \fBtaler\-exchange\-offline\fP tool.
@@ -55,10 +55,10 @@ The resulting data serves as input to the \fBsign\fP and \fBshow\fP subcommands.
.sp
The \fBupload\fP subcommand uploads the signatures created with the private key to
the exchange. It handles the output of all subcommands (except \fBdownload\fP).
-The \fBdownload\fP and \fBupload\fP subcommands must naturally be run \(dqonline\(dq and do not
-require access to the auditor\(aqs private key, which should be kept offline.
+The \fBdownload\fP and \fBupload\fP subcommands must naturally be run “online” and do not
+require access to the auditor’s private key, which should be kept offline.
.sp
-All other subcommands are intended to be run \(dqoffline\(dq. However, especially
+All other subcommands are intended to be run “offline”. However, especially
when testing, it is of course possible to run the subcommands online as well.
Generally, subcommands read inputs (beyond command\-line arguments)
from \fBstdin\fP\&. However, they may also consume outputs of previous
@@ -68,28 +68,28 @@ and if not consumed the final output is printed to \fBstdout\fP\&.
The general options for \fBtaler\-auditor\-offline\fP are:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH CONFIGURATION
.sp
The exchange and the \fBtaler\-auditor\-httpd\fP must both be provided with
-the auditor\(aqs public key, such that they can validate messages signed
-by the auditor. To obtain the auditor\(aqs public key, use:
+the auditor’s public key, such that they can validate messages signed
+by the auditor. To obtain the auditor’s public key, use:
.INDENT 0.0
.INDENT 3.5
.sp
@@ -102,13 +102,13 @@ $ taler\-auditor\-offline setup
.UNINDENT
.sp
Note that if the private key file already exists, the above will simply output
-the existing key. Passing additional arguments after setup (including \(dq\-\(dq)
+the existing key. Passing additional arguments after setup (including “\-“)
will cause the output to be encapsulated in JSON.
.sp
Relevant configuration options for \fBtaler\-auditor\-offline\fP are:
.INDENT 0.0
.IP \(bu 2
-\fB[auditor/AUDITOR_PRIV_FILE]\fP \-\-\- where to store the private key
+\fB[auditor/AUDITOR_PRIV_FILE]\fP — where to store the private key
.UNINDENT
.SH SUBCOMMANDS
.SS setup
diff --git a/man/taler-auditor-sync.1 b/man/taler-auditor-sync.1
index 273560e5..1b58870e 100644
--- a/man/taler-auditor-sync.1
+++ b/man/taler-auditor-sync.1
@@ -33,17 +33,17 @@ taler-auditor-sync \- tool to safely synchronize auditor database
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-sync\fP
-[\fB\-s\fP\ \fIFILENAME\fP\ |\ \fB\-\-source\-configuration=\fP‌\fIFILENAME\fP]
-[\fB\-d\fP\ \fIFILENAME\fP\ |\ \fB\-\-destination\-configuration=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-b\fP\ \fISIZE\fP\ |\ \fB\-\-batch=\fP‌\fISIZE\fP]
-[\fB\-t\fP\ |\ \fB\-\-terminate\-when\-synchronized\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-s\fP\ \fIFILENAME\fP\ |\ \fB–source\-configuration=\fP‌\fIFILENAME\fP]
+[\fB\-d\fP\ \fIFILENAME\fP\ |\ \fB–destination\-configuration=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-b\fP\ \fISIZE\fP\ |\ \fB–batch=\fP‌\fISIZE\fP]
+[\fB\-t\fP\ |\ \fB–terminate\-when\-synchronized\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-sync\fP is a command\-line tool to synchronize the
-Taler auditor\(aqs database in a safe way from a Taler exchange
+Taler auditor’s database in a safe way from a Taler exchange
database. If the exchange database violates the assumed database
invariants (as expressed by database constraints) or attempts to
DELETE or UPDATE tables (at least those that the auditor relies
@@ -53,31 +53,31 @@ and instead halt with an error.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-s\fP \fIFILENAME\fP | \fB\-\-source\-configuration=\fP‌\fIFILENAME\fP
+\fB\-s\fP \fIFILENAME\fP | \fB–source\-configuration=\fP‌\fIFILENAME\fP
Use the configuration in \fIFILENAME\fP to access the original (source) exchange
database to copy records from.
.TP
-\fB\-d\fP \fIFILENAME\fP | \fB\-\-destination\-configuration=\fP‌\fIFILENAME\fP
+\fB\-d\fP \fIFILENAME\fP | \fB–destination\-configuration=\fP‌\fIFILENAME\fP
Use the configuration in \fIFILENAME\fP to access the target (destination) exchange
database to copy records to.
.TP
-\fB\-t\fP | \fB\-\-terminate\-when\-synchronized\fP
+\fB\-t\fP | \fB–terminate\-when\-synchronized\fP
The program should exit once the two databases are in sync, instead of continuously
copying more records when the source database is updated.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-b\fP \fISIZE\fP | \fB\-\-batch=\fP‌\fISIZE\fP
+\fB\-b\fP \fISIZE\fP | \fB–batch=\fP‌\fISIZE\fP
Target number of records to copy in one transaction. Once the databases are
in sync, the batch size is used to determine how long the process sleeps before
trying to again synchronize the two databases. Not useful if \fB\-t\fP is used.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-auditor.1 b/man/taler-auditor.1
index 6dec2cd0..84d38d2a 100644
--- a/man/taler-auditor.1
+++ b/man/taler-auditor.1
@@ -33,15 +33,15 @@ taler-auditor \- audit exchange
.SH SYNOPSIS
.sp
\fBtaler\-auditor\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-i**_|_\fP\-\-internal**]
-[\fB\-I**_|_\fP\-\-ignore\-not\-found**]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIMASTER_KEY\fP\ |\ \fB\-\-exchange\-key=\fP‌\fIMASTER_KEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-i**_|_\fP–internal**]
+[\fB\-I**_|_\fP–ignore\-not\-found**]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIMASTER_KEY\fP\ |\ \fB–exchange\-key=\fP‌\fIMASTER_KEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\fP is a command\-line tool to be used by an auditor to
@@ -55,40 +55,40 @@ incoming and outgoing wire transfers that the bank claims to have
matches the exchange’s database. Its options are as follows.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Run additional checks that can only performed on the exchange\-internal
-database and not the \(dqsafe\(dq replicated database at the auditor.
+database and not the “safe” replicated database at the auditor.
.TP
-\fB\-I\fP | \fB\-\-ignore\-not\-found\fP
+\fB\-I\fP | \fB–ignore\-not\-found\fP
Do not fail if the bank says that the exchange bank account does not (yet) exist.
Keep trying.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP‌\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP‌\fIKEY\fP
Public master key of the exchange in Crockford base32 encoding, for
example as generated by \fBtaler\-auditor\-offline setup\fP\&. If this option is missing,
taler\-auditor will use the MASTER_PUBLIC_KEY value from the
“exchange” section of the configuration.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-bank-benchmark.1 b/man/taler-bank-benchmark.1
index 421911a2..b66caef5 100644
--- a/man/taler-bank-benchmark.1
+++ b/man/taler-bank-benchmark.1
@@ -33,62 +33,62 @@ taler-bank-benchmark \- measure bank performance
.SH SYNOPSIS
.sp
\fBtaler\-bank\-benchmark\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-f\fP\ |\ \fB\-\-fakebank\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB\-\-worker\-parallelism=\fP\fINPROCS\fP]
-[\fB\-r\fP\ \fINRESERVES\fP\ |\ \fB\-\-reserves=\fP\fINRESERVES\fP]
-[\fB\-u\fP\ \fISECTION\fP\ |\ \fB\-\-exchange\-account\-section=\fP\fISECTION\fP]
-[\fB\-V\fP\ |\ \fB\-\-verbose\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-w**_*NPROC*\ |\ **\-\-wirewatch=\fP\fINPROC\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-f\fP\ |\ \fB–fakebank\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB–worker\-parallelism=\fP\fINPROCS\fP]
+[\fB\-r\fP\ \fINRESERVES\fP\ |\ \fB–reserves=\fP\fINRESERVES\fP]
+[\fB\-u\fP\ \fISECTION\fP\ |\ \fB–exchange\-account\-section=\fP\fISECTION\fP]
+[\fB\-V\fP\ |\ \fB–verbose\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-w**_*NPROC*\ |\ **–wirewatch=\fP\fINPROC\fP]
.SH DESCRIPTION
.sp
-\fBtaler\-bank\-benchmark\fP is a command\-line tool to benchmark only the \(dqbank\(dq
+\fBtaler\-bank\-benchmark\fP is a command\-line tool to benchmark only the “bank”
and the \fBtaler\-exchange\-wirewatch\fP tool.
.sp
The options for \fBtaler\-bank\-benchmark\fP are:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-f\fP | \fB\-\-fakebank\fP
+\fB\-f\fP | \fB–fakebank\fP
Expect to be run against a fakebank (instead of against libeufin)
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIMODE\fP | \fB\-\-mode=\fP\fIMODE\fP
+\fB\-m\fP \fIMODE\fP | \fB–mode=\fP\fIMODE\fP
Run as \fBbank\fP, \fBclient\fP or \fBboth\fP\&.
If unspecified, \fIMODE\fP defaults to \fBboth\fP\&.
.TP
-\fB\-p\fP \fINPROCS\fP | \fB\-\-worker\-parallelism=\fP\fINPROCS\fP
+\fB\-p\fP \fINPROCS\fP | \fB–worker\-parallelism=\fP\fINPROCS\fP
Run with \fINPROCS\fP client processes.
.TP
-\fB\-r\fP \fINRESERVES\fP | \fB\-\-reserves=\fP\fINRESERVES\fP
+\fB\-r\fP \fINRESERVES\fP | \fB–reserves=\fP\fINRESERVES\fP
Create \fINRESERVES\fP reserves per client.
.TP
-\fB\-u\fP \fISECTION\fP | \fB\-\-exchange\-account\-section=\fP\fISECTION\fP
+\fB\-u\fP \fISECTION\fP | \fB–exchange\-account\-section=\fP\fISECTION\fP
Use \fISECTION\fP as the name of the configuration section which specifies the exchange bank account.
.TP
-\fB\-V\fP | \fB\-\-verbose\fP
+\fB\-V\fP | \fB–verbose\fP
Display more output than usual.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-w\fP \fINPROC\fP | \fB\-\-wirewatch=\fP\fINPROC\fP
+\fB\-w\fP \fINPROC\fP | \fB–wirewatch=\fP\fINPROC\fP
Run \fINPROC\fP processes of the \fBtaler\-exchange\-wirewatch\fP tool.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-config.1 b/man/taler-config.1
index 84d4cfc9..b95b6f6f 100644
--- a/man/taler-config.1
+++ b/man/taler-config.1
@@ -33,69 +33,69 @@ taler-config \- Taler configuration inspection and editing
.SH SYNOPSIS
.sp
\fBtaler\-config\fP
-[\fB\-b\fP\ \fIbackend\fP\ |\ \fB\-\-supported\-backend=\fP\fIbackend\fP]
-[\fB\-c\fP\ \fIfilename\fP\ |\ \fB\-\-config=\fP\fIfilename\fP]
-[\fB\-f\fP\ |\ \fB\-\-filename\fP]
-[\fB\-F\fP\ |\ \fB\-\-full\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB\-\-loglevel=\fP\fIloglevel\fP]
-[\fB\-l\fP\ \fIfilename\fP\ |\ \fB\-\-logfile=\fP‌\fIfilename\fP]
-[\fB\-o\fP\ \fIoption\fP\ |\ \fB\-\-option=\fP\fIoption\fP]
-[\fB\-r\fP\ |\ \fB\-\-rewrite\fP]
-[\fB\-S\fP\ |\ \fB\-\-list\-sections\fP]
-[\fB\-s\fP\ \fIsection\fP\ |\ \fB\-\-section=\fP\fIsection\fP]
-[\fB\-V\fP\ \fIvalue\fP\ |\ \fB\-\-value=\fP\fIvalue\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-b\fP\ \fIbackend\fP\ |\ \fB–supported\-backend=\fP\fIbackend\fP]
+[\fB\-c\fP\ \fIfilename\fP\ |\ \fB–config=\fP\fIfilename\fP]
+[\fB\-f\fP\ |\ \fB–filename\fP]
+[\fB\-F\fP\ |\ \fB–full\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB–loglevel=\fP\fIloglevel\fP]
+[\fB\-l\fP\ \fIfilename\fP\ |\ \fB–logfile=\fP‌\fIfilename\fP]
+[\fB\-o\fP\ \fIoption\fP\ |\ \fB–option=\fP\fIoption\fP]
+[\fB\-r\fP\ |\ \fB–rewrite\fP]
+[\fB\-S\fP\ |\ \fB–list\-sections\fP]
+[\fB\-s\fP\ \fIsection\fP\ |\ \fB–section=\fP\fIsection\fP]
+[\fB\-V\fP\ \fIvalue\fP\ |\ \fB–value=\fP\fIvalue\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-config\fP can be used to read or modify GNU Taler configuration files.
.INDENT 0.0
.TP
-\fB\-b\fP \fIBACKEND\fP | \fB\-\-supported\-backend=\fP\fIBACKEND\fP
+\fB\-b\fP \fIBACKEND\fP | \fB–supported\-backend=\fP\fIBACKEND\fP
Tests whether the specified \fIBACKEND\fP is supported by the current installation.
-The backend must match the name of a plugin, i.e. \(dqnamestore_postgres\(dq for
-the PostgreSQL database backend of the \(dqNAMESTORE\(dq service. If \fIBACKEND\fP is
+The backend must match the name of a plugin, i.e. “namestore_postgres” for
+the PostgreSQL database backend of the “NAMESTORE” service. If \fIBACKEND\fP is
supported, taler\-config will return a status code of 0 (success), otherwise
77 (unsupported). When this option is specified, no other options may be
specified. Specifying this option together with other options will cause
taler\-config to return a status code of 1 (error).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration file \fIFILENAME\fP\&.
.TP
-\fB\-f\fP | \fB\-\-filename\fP
+\fB\-f\fP | \fB–filename\fP
Try to perform expansions as if the option values represent filenames (will
also be applied even if the option is not really a filename).
.TP
-\fB\-F\fP | \fB\-\-full\fP
+\fB\-F\fP | \fB–full\fP
Write the full configuration file, not just the differences to the defaults.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP\fILOGLEVEL\fP
Use \fILOGLEVEL\fP for logging.
Valid values are \fBDEBUG\fP, \fBINFO\fP, \fBWARNING\fP, and \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-o\fP \fIOPTION\fP | \fB\-\-option=\fP\fIOPTION\fP
+\fB\-o\fP \fIOPTION\fP | \fB–option=\fP\fIOPTION\fP
Which configuration option should be accessed or edited. Required to set a
value. If not given, all values of a given section will be printed in the
-format \(dqOPTION = VALUE\(dq.
+format “OPTION = VALUE”.
.TP
-\fB\-r\fP | \fB\-\-rewrite\fP
+\fB\-r\fP | \fB–rewrite\fP
Write the configuration file even if nothing changed. Will remove all comments!
.TP
-\fB\-S\fP | \fB\-\-list\-sections\fP
+\fB\-S\fP | \fB–list\-sections\fP
List available configuration sections for use with \fB\-\-section\fP\&.
.TP
-\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+\fB\-s\fP \fISECTION\fP | \fB–section=\fP\fISECTION\fP
Which configuration section should be accessed or edited.
Required option.
.TP
-\fB\-V\fP \fIVALUE\fP | \fB\-\-value=\fP\fIVALUE\fP
+\fB\-V\fP \fIVALUE\fP | \fB–value=\fP\fIVALUE\fP
Configuration value to store in the given section under the given option.
Must only be given together with \fB\-s\fP and \fB\-o\fP options.
.INDENT 7.0
@@ -106,7 +106,7 @@ and may reorder sections and remove \fB@INLINE@\fP directives.
Using \fB\-V\fP is thus dangerous! Use with extreme caution!
.UNINDENT
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print GNU Taler version number.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-aggregator.1 b/man/taler-exchange-aggregator.1
index 305a63b1..4649cd2e 100644
--- a/man/taler-exchange-aggregator.1
+++ b/man/taler-exchange-aggregator.1
@@ -33,14 +33,14 @@ taler-exchange-aggregator \- aggregate deposits into wire transfers
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-aggregator\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-y**_|_\fP\-\-kyc\-off**]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-y**_|_\fP–kyc\-off**]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-aggregator\fP is a command\-line tool to run aggregate deposits
@@ -49,35 +49,35 @@ done by \fBtaler\-exchange\-transfer\fP\&.
.sp
The AGGREGATOR_SHARD_SIZE option can be used to allow multiple aggregator processes to run in parallel and share the load. This is only recommended if a single aggregator is insufficient for the workload.
.sp
-The aggregator uses a special table to lock shards it is working on. If an aggregator process dies (say due to a power failure), these shard locks may prevent the aggregator from resuming normally. In this case, you must run \(dqtaler\-exchange\-dbinit \-s\(dq to release the shard locks before restarting the aggregator.
+The aggregator uses a special table to lock shards it is working on. If an aggregator process dies (say due to a power failure), these shard locks may prevent the aggregator from resuming normally. In this case, you must run “taler\-exchange\-dbinit \-s” to release the shard locks before restarting the aggregator.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-y\fP | \fB\-\-kyc\-off\fP
+\fB\-y\fP | \fB–kyc\-off\fP
Run without KYC checks. Talk with your regulator before using this option.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-benchmark.1 b/man/taler-exchange-benchmark.1
index 30caf763..ed9966be 100644
--- a/man/taler-exchange-benchmark.1
+++ b/man/taler-exchange-benchmark.1
@@ -33,18 +33,18 @@ taler-exchange-benchmark \- measure exchange performance
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-benchmark\fP
-[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP]
-[\fB\-F\fP\ |\ \fB\-\-reserves\-first\fP]
-[\fB\-f\fP\ |\ \fB\-\-fakebank\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-n\fP\ \fIHOWMANY_COINS\fP\ |\ \fB\-\-coins\-number=\fP‌\fIHOWMANY_COINS\fP]
-[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB\-\-parallelism=\fP\fINPROCS\fP]
-[\fB\-R\fP\ \fIRATE\fP\ |\ \fB\-\-refresh\-rate=\fP\fIRATE\fP]
-[\fB\-r\fP\ \fIN\fP\ |\ \fB\-\-reserves=\fP\fIN\fP]
-[\fB\-u\fP\ \fISECTION\fP\ |\ \fB\-\-exchange\-account\-section=\fP\fISECTION\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB–config=\fP‌\fICONFIG_FILENAME\fP]
+[\fB\-F\fP\ |\ \fB–reserves\-first\fP]
+[\fB\-f\fP\ |\ \fB–fakebank\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log\-level=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-n\fP\ \fIHOWMANY_COINS\fP\ |\ \fB–coins\-number=\fP‌\fIHOWMANY_COINS\fP]
+[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB–parallelism=\fP\fINPROCS\fP]
+[\fB\-R\fP\ \fIRATE\fP\ |\ \fB–refresh\-rate=\fP\fIRATE\fP]
+[\fB\-r\fP\ \fIN\fP\ |\ \fB–reserves=\fP\fIN\fP]
+[\fB\-u\fP\ \fISECTION\fP\ |\ \fB–exchange\-account\-section=\fP\fISECTION\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-benchmark\fP is a command\-line tool to measure the time
@@ -52,44 +52,44 @@ spent to serve withdrawals/deposits/refreshes. Before running the benchmark,
the GNU Taler services must already be running at the configured addresses.
.INDENT 0.0
.TP
-\fB\-c\fP \fICONFIG_FILENAME\fP | \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP
+\fB\-c\fP \fICONFIG_FILENAME\fP | \fB–config=\fP‌\fICONFIG_FILENAME\fP
(Mandatory) Use CONFIG_FILENAME.
.TP
-\fB\-F\fP | \fB\-\-reserves\-first\fP
+\fB\-F\fP | \fB–reserves\-first\fP
Create all reserves first, before starting normal operations.
.TP
-\fB\-f\fP | \fB\-\-fakebank\fP
+\fB\-f\fP | \fB–fakebank\fP
Expect to interact with a fakebank instead of libeufin.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log\-level=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-n\fP \fIHOWMANY_COINS\fP | \fB\-\-coins\-number=\fP‌\fIHOWMANY_COINS\fP
+\fB\-n\fP \fIHOWMANY_COINS\fP | \fB–coins\-number=\fP‌\fIHOWMANY_COINS\fP
Defaults to 1. Specifies how many coins this benchmark should
withdraw and spend. After being spent, each coin will be refreshed
with a probability RATE (see option \fB\-\-refresh\-rate\fP).
.TP
-\fB\-p\fP \fINPROCS\fP | \fB\-\-parallelism=\fP\fINPROCS\fP
+\fB\-p\fP \fINPROCS\fP | \fB–parallelism=\fP\fINPROCS\fP
Run with \fINPROCS\fP client processes.
.TP
-\fB\-R\fP \fIRATE\fP | \fB\-\-refresh\-rate=\fP\fIRATE\fP
+\fB\-R\fP \fIRATE\fP | \fB–refresh\-rate=\fP\fIRATE\fP
Defaults to 10. Probability of refresh per coin (0\-100).
.TP
-\fB\-r\fP \fIN\fP | \fB\-\-reserves=\fP\fIN\fP
+\fB\-r\fP \fIN\fP | \fB–reserves=\fP\fIN\fP
Create \fIN\fP reserves per client.
.TP
-\fB\-u\fP \fISECTION\fP | \fB\-\-exchange\-account\-section=\fP\fISECTION\fP
+\fB\-u\fP \fISECTION\fP | \fB–exchange\-account\-section=\fP\fISECTION\fP
Which configuration section should be used for the bank account
of the exchange.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-closer.1 b/man/taler-exchange-closer.1
index 50c6beac..969ca07c 100644
--- a/man/taler-exchange-closer.1
+++ b/man/taler-exchange-closer.1
@@ -33,13 +33,13 @@ taler-exchange-closer \- close idle reserves
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-closer\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-closer\fP is a command\-line tool to run close
@@ -47,29 +47,29 @@ reserves that have been idle for too long, causing transfers
to the originating bank account to be scheduled.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-dbinit.1 b/man/taler-exchange-dbinit.1
index 1bceadf1..a5a2ec8a 100644
--- a/man/taler-exchange-dbinit.1
+++ b/man/taler-exchange-dbinit.1
@@ -33,14 +33,14 @@ taler-exchange-dbinit \- initialize Taler exchange database
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-gc\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-s\fP\ |\ \fB\-\-shardunlock\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–gc\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-s\fP\ |\ \fB–shardunlock\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-dbinit\fP is a command\-line tool to initialize the Taler
@@ -50,29 +50,29 @@ Taler exchange to operate.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-gc\fP
+\fB\-g\fP | \fB–gc\fP
Garbage collect database. Deletes all unnecessary data in the
database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Drop tables. Dangerous, will delete all existing data in the database
before creating the tables.
.TP
-\fB\-s\fP | \fB\-\-shardunlock\fP
+\fB\-s\fP | \fB–shardunlock\fP
Clears the (revolving) shards table. Needed to clear locks that may be held after a crash (of taler\-exchange\-aggregator or the operating system, say due to power outage) or if the AGGREGATOR_SHARD_SIZE option is changed in the configuration file.
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/taler-exchange-drain.1 b/man/taler-exchange-drain.1
index eee35843..073409ce 100644
--- a/man/taler-exchange-drain.1
+++ b/man/taler-exchange-drain.1
@@ -33,34 +33,34 @@ taler-exchange-drain \- drain profits from exchange
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-drain\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
-\fBtaler\-exchange\-drain\fP is used to trigger a wire transfer from the exchange\(aqs escrow account to a normal (non\-escrowed) bank account of the exchange. The entire drain process is necessary to ensure that the auditor is aware of the
+\fBtaler\-exchange\-drain\fP is used to trigger a wire transfer from the exchange’s escrow account to a normal (non\-escrowed) bank account of the exchange. The entire drain process is necessary to ensure that the auditor is aware of the
balance changes arising from an exchange making profits from fees.
.sp
-To use it, you must first create an upload a \(aqdrain\(aq command using \fBtaler\-exchange\-offline\fP\&. Afterwards this command should be run to actually queue the drain. The actual drain will then be executed by \fBtaler\-exchange\-transfer\fP\&.
+To use it, you must first create an upload a ‘drain’ command using \fBtaler\-exchange\-offline\fP\&. Afterwards this command should be run to actually queue the drain. The actual drain will then be executed by \fBtaler\-exchange\-transfer\fP\&.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-expire.1 b/man/taler-exchange-expire.1
index af39678e..35ca93ac 100644
--- a/man/taler-exchange-expire.1
+++ b/man/taler-exchange-expire.1
@@ -33,13 +33,13 @@ taler-exchange-expire \- refund expired purses
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-expire\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-expire\fP is a command\-line tool to run refund
@@ -48,29 +48,29 @@ This allows the wallet to recover the funds deposited into the
purse using a refresh operation.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-httpd.1 b/man/taler-exchange-httpd.1
index d8395774..655c0264 100644
--- a/man/taler-exchange-httpd.1
+++ b/man/taler-exchange-httpd.1
@@ -33,18 +33,18 @@ taler-exchange-httpd \- run Taler exchange (with RESTful API)
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-httpd\fP
-[\fB\-a\fP\ |\ \fB\-\-allow\-timetravel\fP]
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-f\fP\ \fIFILENAME\fP\ |\ \fB\-\-file\-input=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-n\fP\ \fIN\fP\ |\ \fB\-\-num\-threads=\fP\fIN\fP]
-[\fB\-r**|\fP\-\-allow\-reuse\-address**]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB\-\-timeout=\fP‌\fISECONDS\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-a\fP\ |\ \fB–allow\-timetravel\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-f\fP\ \fIFILENAME\fP\ |\ \fB–file\-input=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-n\fP\ \fIN\fP\ |\ \fB–num\-threads=\fP\fIN\fP]
+[\fB\-r**|\fP–allow\-reuse\-address**]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB–timeout=\fP‌\fISECONDS\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-httpd\fP is a command\-line tool to run the Taler
@@ -54,24 +54,24 @@ must exist before running this command.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-a\fP | \fB\-\-allow\-timetravel\fP
+\fB\-a\fP | \fB–allow\-timetravel\fP
Allow clients to request /keys for arbitrary timestamps.
This should only be enabled for testing and development,
as clients could abuse this in denial of service attacks,
as it makes the /keys response generation much more expensive.
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request (useful in
combination with \fB\-f\fP to avoid having to wait for
netcat (nc) to time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from FILENAME.
.TP
-\fB\-f\fP \fIFILENAME\fP | \fB\-\-file\-input=\fP‌\fIFILENAME\fP
+\fB\-f\fP \fIFILENAME\fP | \fB–file\-input=\fP‌\fIFILENAME\fP
This option is only available if the exchange was compiled with the
-configure option \-\-enable\-developer\-mode. It is used for generating
+configure option –enable\-developer\-mode. It is used for generating
test cases against the exchange using AFL. When this option is
present, the HTTP server will
.INDENT 7.0
@@ -89,31 +89,31 @@ input from an HTTP client and then immediately exit. This is useful
to test taler\-exchange\-httpd against many different possible inputs
in a controlled way.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-allow\-reuse\-address\fP
+\fB\-r\fP | \fB–allow\-reuse\-address\fP
Allow the exchange to re\-use the listen port even if another service
is already using it. Useful if multiple processes are used to increase
processing capacity.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fISECONDS\fP | \fB\-\-timeout=\fP‌\fISECONDS\fP
+\fB\-t\fP \fISECONDS\fP | \fB–timeout=\fP‌\fISECONDS\fP
Specifies the number of SECONDS after which the HTTPD should close
(idle) HTTP connections.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SIGNALS
diff --git a/man/taler-exchange-kyc-aml-pep-trigger.1 b/man/taler-exchange-kyc-aml-pep-trigger.1
index 93fb57d5..b628349d 100644
--- a/man/taler-exchange-kyc-aml-pep-trigger.1
+++ b/man/taler-exchange-kyc-aml-pep-trigger.1
@@ -35,7 +35,7 @@ taler-exchange-kyc-aml-pep-trigger \- Taler KYC_AML_TRIGGER example
\fBtaler\-exchange\-kyc\-aml\-pep\-trigger\fP
.SH DESCRIPTION
.sp
-\fBtaler\-exchange\-kyc\-aml\-pep\-trigger\fP is a trivial shell script to illustrate how to trigger an AML process when the KYC process sets the \(dqPEP\(dq flag in the attribute data.
+\fBtaler\-exchange\-kyc\-aml\-pep\-trigger\fP is a trivial shell script to illustrate how to trigger an AML process when the KYC process sets the “PEP” flag in the attribute data.
.sp
The script is mostly an example (or starting point) for
writing programs for the KYC_AML_TRIGGER option of the
diff --git a/man/taler-exchange-kyc-tester.1 b/man/taler-exchange-kyc-tester.1
index 0c20ccfa..40dbd2bb 100644
--- a/man/taler-exchange-kyc-tester.1
+++ b/man/taler-exchange-kyc-tester.1
@@ -33,18 +33,18 @@ taler-exchange-kyc-tester \- test KYC service integration
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-kyc\-tester\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-i\fP\ \fISECTION_NAME\fP\ |\ \fB\-\-initiate=\fP‌\fISECTION_NAME\fP]
-[\fB\-u\fP\ \fIID\fP\ |\ \fB\-\-user=\fP‌\fIID\fP]
-[\fB\-U\fP\ \fIID\fP\ |\ \fB\-\-legitimization=\fP‌\fIID\fP]
-[\fB\-P\fP\ |\ \fB\-\-print\-payto\-hash\fP]
-[\fB\-p\fP\ \fIHASH\fP\ |\ \fB\-\-payto\-hash=\fP‌\fIHASH\fP]
-[\fB\-r\fP\ \fINUMBER\fP\ |\ \fB\-\-rowid=\fP‌\fINUMBER\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-w\fP\ |\ \fB\-\-run\-webservice\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-i\fP\ \fISECTION_NAME\fP\ |\ \fB–initiate=\fP‌\fISECTION_NAME\fP]
+[\fB\-u\fP\ \fIID\fP\ |\ \fB–user=\fP‌\fIID\fP]
+[\fB\-U\fP\ \fIID\fP\ |\ \fB–legitimization=\fP‌\fIID\fP]
+[\fB\-P\fP\ |\ \fB–print\-payto\-hash\fP]
+[\fB\-p\fP\ \fIHASH\fP\ |\ \fB–payto\-hash=\fP‌\fIHASH\fP]
+[\fB\-r\fP\ \fINUMBER\fP\ |\ \fB–rowid=\fP‌\fINUMBER\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-w\fP\ |\ \fB–run\-webservice\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-kyc\-tester\fP is used to test the interaction between a Taler exchange and a KYC service. The tool can be used to manually trigger the various steps of a KYC process and to observe the interaction with the respective KYC service. It is supposted to help test the configuration of the integration, and \fInot\fP required at all during production.
@@ -53,48 +53,48 @@ To use it, you must first provide a configuration file with at least one KYC ser
.sp
Begin with a first invocation of taler\-exchange\-kyc\-tester using the options \fB\-i\fP for an individual or business and use \fB\-R\fP to specify a list of checks required from the process. The output will be an URL to visit with the browser, as well as \fB\-p\fP, \fB\-u\fP, \fB\-U\fP options to use in future invocations of the tool.
.sp
-Next, run taler\-exchange\-kyc\-tester again, but this time using \fB\-w\fP (to run the Webserver) and using the \fB\-u\fP and \fB\-U\fP options output by the previous call, as well as the \fB\-p\fP option with the payto hash. Then visit the Web site from the link output by the previous invocation and \(dqpass\(dq (or \(dqfail\(dq) the KYC check.
+Next, run taler\-exchange\-kyc\-tester again, but this time using \fB\-w\fP (to run the Webserver) and using the \fB\-u\fP and \fB\-U\fP options output by the previous call, as well as the \fB\-p\fP option with the payto hash. Then visit the Web site from the link output by the previous invocation and “pass” (or “fail”) the KYC check.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-i\fP \fIUSERTYPE\fP | \fB\-\-initiate=\fP‌\fIUSERTYPE\fP
-Specifies the type of user for which we are starting a fresh KYC process. USERTYPE must be either \(dqindividual\(dq or \(dqbusiness\(dq.
+\fB\-i\fP \fIUSERTYPE\fP | \fB–initiate=\fP‌\fIUSERTYPE\fP
+Specifies the type of user for which we are starting a fresh KYC process. USERTYPE must be either “individual” or “business”.
.TP
-\fB\-u\fP \fIID\fP | \fB\-\-user=\fP‌\fIID\fP
+\fB\-u\fP \fIID\fP | \fB–user=\fP‌\fIID\fP
Run the process with ID for the user identifier at the KYC provider. Not useful in conjunction with \fB\-i\fP and \fB\-R\fP as that option will override whatever value is provided here.
.TP
-\fB\-U\fP \fIID\fP | \fB\-\-legitimization=\fP‌\fIID\fP
+\fB\-U\fP \fIID\fP | \fB–legitimization=\fP‌\fIID\fP
Run the process with ID for the legitimization process identifier at the KYC provider. Not useful in conjunction with \fB\-R\fP / \fB\-i\fP as that option will override whatever value is provided here.
.TP
-\fB\-p\fP \fIHASH\fP | \fB\-\-payto\-hash=\fP‌\fIHASH\fP
+\fB\-p\fP \fIHASH\fP | \fB–payto\-hash=\fP‌\fIHASH\fP
Run the process with HASH as the hash of the payto://\-URI that identifies the account or wallet triggering the KYC requirement. If not given, a fresh random value is used. Rarely useful.
.TP
-\fB\-P\fP | \fB\-\-print\-payto\-hash\fP
+\fB\-P\fP | \fB–print\-payto\-hash\fP
Print the HASH of the payto://\-URI used for the KYC simulation this time. Useful if the hash is needed for a subsequent use in conjunction with \fB\-p\fP\&.
.TP
-\fB\-r\fP \fINUMBER\fP | \fB\-\-rowid=\fP‌\fINUMBER\fP
+\fB\-r\fP \fINUMBER\fP | \fB–rowid=\fP‌\fINUMBER\fP
Run the process with NUMBER as the database row for the legitimization operation. Rarely useful, except maybe for debugging. Defaults to 42.
.TP
-\fB\-R\fP \fICHECKS\fP | \fB\-\-requirements=\fP‌\fICHECKS\fP
+\fB\-R\fP \fICHECKS\fP | \fB–requirements=\fP‌\fICHECKS\fP
Start a fresh KYC process for the given list of CHECKS. CHECKS must be a space\-separated list of checks that must be in the configuration under \fIPROVIDED_CHECKS\fP for some of the providers. The exchange will determine which provider to use for KYC based on the CHECKS given. The tool will output the HTTP URL where the user has to begin the KYC process to the command\-line. This is usually the first thing to do when using this tool. Outputs the KYC\-logic specific user and legitimization IDs, or NULL if not used by the KYC\-logic at the initiation stage. You may want to use the \fB\-P\fP option to also obtain the Payto\-Hash for use with \fBp\fP later.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-w\fP | \fB\-\-run\-webservice\fP
+\fB\-w\fP | \fB–run\-webservice\fP
Run a simulated Taler exchange HTTP service on the configured port with the \fB/kyc\-proof/\fP and \fB/kyc\-webhook/\fP endpoints.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-offline.1 b/man/taler-exchange-offline.1
index 6e3ddb22..09272da6 100644
--- a/man/taler-exchange-offline.1
+++ b/man/taler-exchange-offline.1
@@ -33,21 +33,21 @@ taler-exchange-offline \- operations using the offline key of a Taler exchange
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-offline\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[subcommand ...]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[subcommand …]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-offline\fP is a command\-line tool to interact with the Taler
-exchange\(aqs master private key. Most operations of this tool require access to
+exchange’s master private key. Most operations of this tool require access to
the exchange’s long\-term offline signing key and should be run in a secure
(offline) environment under strict controls. The tool takes a list of
subcommands as arguments which are then processed sequentially.
.sp
-The tool includes two subcommands to interact \fIonline\fP with the exchange\(aqs
+The tool includes two subcommands to interact \fIonline\fP with the exchange’s
REST APIs. To determine how to talk to the exchange, these two subcommands
rely on the \fBBASE_URL\fP configuration option from the \fB[exchange]\fP section
of the configuration file. The \fBdownload\fP subcommand downloads the future
@@ -55,10 +55,10 @@ public keys from the running exchange. The resulting data serves as input to
the \fBsign\fP and \fBshow\fP subcommands. The \fBupload\fP subcommand uploads the
signatures created with the private master key to the exchange. It handles
the output of all subcommands (except \fBdownload\fP). The \fBdownload\fP and
-\fBupload\fP subcommands must naturally be run \(dqonline\(dq and do not require
+\fBupload\fP subcommands must naturally be run “online” and do not require
access to the offline key.
.sp
-All other subcommands are intended to be run \(dqoffline\(dq. However, especially
+All other subcommands are intended to be run “offline”. However, especially
when testing, it is of course possible to run the subcommands online as well.
Generally, subcommands read inputs (beyond command\-line arguments)
from \fBstdin\fP\&. However, they may also consume outputs of previous
@@ -68,21 +68,21 @@ and if not consumed the final output is printed to \fBstdout\fP\&.
The general options for \fBtaler\-exchange\-offline\fP are:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH CONFIGURATION
@@ -102,17 +102,17 @@ $ taler\-exchange\-offline setup
.UNINDENT
.sp
Note that if the private key file already exists, the above will simply output
-the existing key. Passing additional arguments after setup (including \(dq\-\(dq)
+the existing key. Passing additional arguments after setup (including “\-“)
will cause the output to be encapsulated in JSON.
.sp
Relevant configuration options for \fBtaler\-exchange\-offline\fP are:
.INDENT 0.0
.IP \(bu 2
-\fB[exchange/BASE_URL]\fP \-\-\- how to reach the exchange (for download/upload)
+\fB[exchange/BASE_URL]\fP — how to reach the exchange (for download/upload)
.IP \(bu 2
-\fB[exchange\-offline/MASTER_PRIV_FILE]\fP \-\-\- where to store the private keys
+\fB[exchange\-offline/MASTER_PRIV_FILE]\fP — where to store the private keys
.IP \(bu 2
-\fB[exchange\-offline/SECM_TOFU_FILE]\fP \-\-\- where to store TOFU data
+\fB[exchange\-offline/SECM_TOFU_FILE]\fP — where to store TOFU data
.UNINDENT
.SH SUBCOMMANDS
.SS setup
@@ -164,7 +164,7 @@ configuration of extensions, in a format suitable for the \fBupload\fP
subcommand.
.sp
Note that an extension on the exchange will only become activated at runtime
-\fIafter\fP the extension\(aqs configurations has been signed by the offline tool with
+\fIafter\fP the extension’s configurations has been signed by the offline tool with
the signing key and the signed configuration been uploaded to the exchange.
.SS drain
.sp
@@ -208,23 +208,23 @@ in a format suitable for the \fBupload\fP subcommand.
.sp
This subcommand
informs an exchange that an auditor is to be activated. Afterwards, the
-exchange will accept inputs from that auditor\(aqs \fBtaler\-auditor\-offline\fP
+exchange will accept inputs from that auditor’s \fBtaler\-auditor\-offline\fP
tool. Note that the auditor also must add the exchange to the list of
exchanges that it audits via \fBtaler\-auditor\-exchange\fP\&. Furthermore, the
-exchange\(aqs database will need to be provided to the auditor. This subcommand
+exchange’s database will need to be provided to the auditor. This subcommand
only informs the exchange about the auditor, but does not perform those
additional mandatory steps for a working auditor.
.sp
-The auditor\(aqs public key must be given in the usual base32\-encoding as the
+The auditor’s public key must be given in the usual base32\-encoding as the
first argument.
.sp
-The auditor\(aqs REST API base URL must be given as the second argument. The tool
-performs a minimal sanity check, namely that the URL begins with \(dqhttp\(dq
-(this also allows \(dqhttps\(dq), but as it runs offline does not perform any further
+The auditor’s REST API base URL must be given as the second argument. The tool
+performs a minimal sanity check, namely that the URL begins with “http”
+(this also allows “https”), but as it runs offline does not perform any further
validation!
.sp
The third argument must be a human\-readable name for the auditor. This may
-be shown to users and should identify the auditor\(aqs business entity. If
+be shown to users and should identify the auditor’s business entity. If
the name includes spaces, the argument should be quoted.
.sp
The subcommand takes no inputs from \fBstdin\fP or other subcommands.
@@ -235,10 +235,10 @@ in a format suitable for the \fBupload\fP subcommand.
.sp
This subcommand
informs an exchange that an auditor is to be deactivated. Afterwards, the
-exchange will refuse inputs from that auditor\(aqs \fBtaler\-auditor\-offline\fP
+exchange will refuse inputs from that auditor’s \fBtaler\-auditor\-offline\fP
tool.
.sp
-The auditor\(aqs public key must be given in the usual base32\-encoding as the
+The auditor’s public key must be given in the usual base32\-encoding as the
first argument.
.sp
The subcommand takes no inputs from \fBstdin\fP or other subcommands.
@@ -256,7 +256,7 @@ account information advertised could theoretically differ from that which
these tool actually use, for example if the public bank account is only a
front for the actual internal business accounts.
.sp
-The \fBpayto://\fP URI (RFC 8905) of the exchange\(aqs bank account must be given
+The \fBpayto://\fP URI (RFC 8905) of the exchange’s bank account must be given
as the first argument to the subcommand.
.sp
Afterwards, optional arguments can be given:
@@ -294,7 +294,7 @@ The following types of credit\- and debit\-restrictions are supported:
\fBdeny\fP: A $TYPE of \fBdeny\fP means that this bank account cannot be used
for the given operation. \fBdeny\fP takes no further arguments.
.IP \(bu 2
-\fBregex\fP $EXPR $HINT $JSON: A $TYPE of \fBregex\fP means that the partner\(aqs
+\fBregex\fP $EXPR $HINT $JSON: A $TYPE of \fBregex\fP means that the partner’s
bank account \fBpayto\fP\-URI representation must follow a certain regular
expression given in $EXPR where the syntax follows posix\-egrep, but
without support for character classes, GNU extensions, back\-references or
@@ -317,7 +317,7 @@ This subcommand
informs an exchange that it should stop advertising a bank account as
belonging to the exchange on its \fB/keys\fP endpoint.
.sp
-The \fBpayto://\fP URI (RFC 8905) of the exchange\(aqs (former) bank account must be
+The \fBpayto://\fP URI (RFC 8905) of the exchange’s (former) bank account must be
given as the first argument to the subcommand.
.sp
The subcommand takes no inputs from \fBstdin\fP or other subcommands.
@@ -371,11 +371,11 @@ Partner exchange base URL.
.IP 2. 3
Partner exchange master public key.
.IP 3. 3
-Calendar year for which the fee applies, \(aqnow\(aq for the current year.
+Calendar year for which the fee applies, ‘now’ for the current year.
.IP 4. 3
-Wad frequency, in minutes (for example, \(aq30\(aq).
+Wad frequency, in minutes (for example, ‘30’).
.IP 5. 3
-Wad fee (for example, \(aqKUDOS:0.1\(aq).
+Wad fee (for example, ‘KUDOS:0.1’).
.UNINDENT
.UNINDENT
.UNINDENT
@@ -388,7 +388,7 @@ The arguments provided must include:
.INDENT 3.5
.INDENT 0.0
.IP 1. 3
-Calendar year for which the fee applies, \(aqnow\(aq for the current year.
+Calendar year for which the fee applies, ‘now’ for the current year.
.IP 2. 3
KYC timeout. How long does the exchange keep a reserve open that is waiting for the KYC.
.IP 3. 3
@@ -410,8 +410,8 @@ History fee charged when inquiring about non\-recent account history.
.UNINDENT
.SS aml\-enable
.sp
-Enable AML officer\(aqs account, granting them access to AML data and,
-if \(aqrw\(aq is given, the power to make AML decisions.
+Enable AML officer’s account, granting them access to AML data and,
+if ‘rw’ is given, the power to make AML decisions.
.sp
The arguments provided must include:
.INDENT 0.0
@@ -422,13 +422,13 @@ AML staff member public key (in base32 encoding)
.IP 2. 3
AML staff member legal name
.IP 3. 3
-\(aqro\(aq or \(aqrw\(aq to set access to read\-only or read\-write
+‘ro’ or ‘rw’ to set access to read\-only or read\-write
.UNINDENT
.UNINDENT
.UNINDENT
.SS aml\-disable
.sp
-Disable AML officer\(aqs account. Also updates the legal name.
+Disable AML officer’s account. Also updates the legal name.
.sp
The arguments provided must include:
.INDENT 0.0
@@ -459,7 +459,7 @@ Wad fee to charge.
.IP 4. 3
Wad transfer frequency.
.IP 5. 3
-Year for which the above options are to be configured, \(aqnow\(aq for the current year.
+Year for which the above options are to be configured, ‘now’ for the current year.
.UNINDENT
.UNINDENT
.UNINDENT
@@ -522,7 +522,7 @@ $ taler\-exchange\-offline upload < sigs.json
.SS Download, sign and upload, all in one (online)
.sp
Note that doing this is only recommended in non\-production deployments,
-as this requires putting the \(dqoffline\(dq key onto a system that is actually
+as this requires putting the “offline” key onto a system that is actually
online!
.INDENT 0.0
.INDENT 3.5
@@ -658,7 +658,7 @@ $ taler\-exchange\-offline \e
.UNINDENT
.UNINDENT
.sp
-The outputs (\(dqrevoke.json\(dq, \(dqmix.json\(dq) must be uploaded using the \fBupload\fP
+The outputs (“revoke.json”, “mix.json”) must be uploaded using the \fBupload\fP
subcommand to the exchange to actually revoke the keys.
.SH SECURITY CONSIDERATIONS
.sp
@@ -667,8 +667,8 @@ system with \fImonotonic time\fP\&. The time does not have to precisely match th
of the exchange, but it must be monotonic across tool invocations. The clock
of the offline system is used in the enable/disable signatures to communicate
an order of the events to the exchange. This prevents someone from replaying
-an older \(dqenable\(dq (or \(dqdisable\(dq) message after a more recent \(dqdisable\(dq (or
-\(dqenable\(dq) message has been provided to the exchange. Thus, there is no need
+an older “enable” (or “disable”) message after a more recent “disable” (or
+“enable”) message has been provided to the exchange. Thus, there is no need
to keep the actual files exchanged with the offline tool secret.
.sp
The \fBtaler\-exchange\-offline\fP tool tries to make sure that the online signing
@@ -678,7 +678,7 @@ but \fInot\fP the security modules from providing attacker\-controlled keys to t
offline signing process.
.sp
For this, the \fBtaler\-exchange\-offline\fP signing subcommand always
-automatically learns the security module\(aqs public signing key and \fItrusts it
+automatically learns the security module’s public signing key and \fItrusts it
on first use\fP (TOFU), but stores it to disk (see the \fBSECM_TOFU_FILE\fP option
in the \fB[exchange\-offline]\fP section of the configuration). If the keys
change subsequently, the tool will refuse to sign.
diff --git a/man/taler-exchange-router.1 b/man/taler-exchange-router.1
index 49c8f8a0..af4fdb6b 100644
--- a/man/taler-exchange-router.1
+++ b/man/taler-exchange-router.1
@@ -33,13 +33,13 @@ taler-exchange-router \- route payments to partner exchanges
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-router\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-router\fP is a NOT YET IMPLEMENTED command\-line
@@ -49,29 +49,29 @@ wallets where the recipient has performed the KYC at a different
exchange than the sender. This is currently not supported.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-secmod-cs.1 b/man/taler-exchange-secmod-cs.1
index 266f2324..991c7a67 100644
--- a/man/taler-exchange-secmod-cs.1
+++ b/man/taler-exchange-secmod-cs.1
@@ -33,14 +33,14 @@ taler-exchange-secmod-cs \- handle private CS key operations for a Taler exchang
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-secmod\-cs\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fIN\fP\ |\ ,**\-\-parallelism=**\fIN\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB\-\-time=\fP\fITIMESTAMP\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fIN\fP\ |\ ,**–parallelism=**\fIN\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB–time=\fP\fITIMESTAMP\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-secmod\-cs\fP is a command\-line tool to
@@ -51,33 +51,33 @@ FIXME: More details.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fBp\fP \fIN\fP | \fB\-\-parallelism=\fP\fIN\fP
+\fBp\fP \fIN\fP | \fB–parallelism=\fP\fIN\fP
Run with \fIN\fP worker threads.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fITIMESTAMP\fP | \fB\-\-time=\fP\fITIMESTAMP\fP
+\fB\-t\fP \fITIMESTAMP\fP | \fB–time=\fP\fITIMESTAMP\fP
Pretend it is \fITIMESTAMP\fP for the update.
\fITIMESTAMP\fP is a human\-readable string (e.g., \fBYYYY\-MM\-DD HH:MM:SS\fP).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-secmod-eddsa.1 b/man/taler-exchange-secmod-eddsa.1
index 74b794d7..c639d04b 100644
--- a/man/taler-exchange-secmod-eddsa.1
+++ b/man/taler-exchange-secmod-eddsa.1
@@ -33,14 +33,14 @@ taler-exchange-secmod-eddsa \- handle private EDDSA key operations for a Taler e
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-secmod\-eddsa\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fIN\fP\ |\ ,**\-\-parallelism=**\fIN\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB\-\-time=\fP\fITIMESTAMP\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fIN\fP\ |\ ,**–parallelism=**\fIN\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB–time=\fP\fITIMESTAMP\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-secmod\-eddsa\fP is a command\-line tool to
@@ -51,33 +51,33 @@ FIXME: More details.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fBp\fP \fIN\fP | \fB\-\-parallelism=\fP\fIN\fP
+\fBp\fP \fIN\fP | \fB–parallelism=\fP\fIN\fP
Run with \fIN\fP worker threads.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fITIMESTAMP\fP | \fB\-\-time=\fP\fITIMESTAMP\fP
+\fB\-t\fP \fITIMESTAMP\fP | \fB–time=\fP\fITIMESTAMP\fP
Pretend it is \fITIMESTAMP\fP for the update.
\fITIMESTAMP\fP is a human\-readable string (e.g., \fBYYYY\-MM\-DD HH:MM:SS\fP).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-secmod-rsa.1 b/man/taler-exchange-secmod-rsa.1
index b90a217d..9d6d7221 100644
--- a/man/taler-exchange-secmod-rsa.1
+++ b/man/taler-exchange-secmod-rsa.1
@@ -33,14 +33,14 @@ taler-exchange-secmod-rsa \- handle private RSA key operations for a Taler excha
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-secmod\-rsa\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fIN\fP\ |\ ,**\-\-parallelism=**\fIN\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB\-\-time=\fP\fITIMESTAMP\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fIN\fP\ |\ ,**–parallelism=**\fIN\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB–time=\fP\fITIMESTAMP\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-secmod\-rsa\fP is a command\-line tool to
@@ -51,33 +51,33 @@ FIXME: More details.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fBp\fP \fIN\fP | \fB\-\-parallelism=\fP\fIN\fP
+\fBp\fP \fIN\fP | \fB–parallelism=\fP\fIN\fP
Run with \fIN\fP worker threads.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fITIMESTAMP\fP | \fB\-\-time=\fP\fITIMESTAMP\fP
+\fB\-t\fP \fITIMESTAMP\fP | \fB–time=\fP\fITIMESTAMP\fP
Pretend it is \fITIMESTAMP\fP for the update.
\fITIMESTAMP\fP is a human\-readable string (e.g., \fBYYYY\-MM\-DD HH:MM:SS\fP).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-transfer.1 b/man/taler-exchange-transfer.1
index 6f5b25dc..d5c37380 100644
--- a/man/taler-exchange-transfer.1
+++ b/man/taler-exchange-transfer.1
@@ -33,42 +33,42 @@ taler-exchange-transfer \- execute wire transfers
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-transfer\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-transfer\fP is a command\-line tool to actually execute scheduled wire transfers (using the bank/wire gateway).
The transfers are prepared by the \fBtaler\-exchange\-aggregator\fP and \fBtaler\-exchange\-closer\fP tools.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-wire-gateway-client.1 b/man/taler-exchange-wire-gateway-client.1
index d1a8fb30..f7e6b4be 100644
--- a/man/taler-exchange-wire-gateway-client.1
+++ b/man/taler-exchange-wire-gateway-client.1
@@ -33,22 +33,22 @@ taler-exchange-wire-gateway-client \- trigger a transfer at the bank
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-wire\-gateway\-client\fP
-[\fB\-a\fP\ \fIVALUE\fP\ |\ \fB\-\-amount=\fP‌\fIVALUE\fP]
-[\fB\-b\fP\ \fIURL\fP\ |\ \fB\-\-bank=\fP‌\fIURL\fP]
-[\fB\-C\fP\ \fIACCOUNT\fP\ |\ \fB\-\-credit=\fP‌\fIACCOUNT\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-D\fP\ \fIACCOUNT\fP\ |\ \fB\-\-debit=\fP‌\fIACCOUNT\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-i\fP\ |\ \fB\-\-credit\-history\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-o\fP\ |\ \fB\-\-debit\-history\fP]
-[\fB\-p\fP\ \fIPASSPHRASE\fP\ |\ \fB\-\-pass=\fP‌\fIPASSPHRASE\fP]
-[\fB\-S\fP\ \fISTRING\fP\ |\ \fB\-\-subject=\fP‌\fISTRING\fP]
-[\fB\-s\fP\ \fIACCOUNT\-SECTION\fP\ |\ \fB\-\-section=\fP‌\fIACCOUNT\-SECTION\fP]
-[\fB\-u\fP\ \fIUSERNAME\fP\ |\ \fB\-\-user=\fP‌\fIUSERNAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-w\fP\ \fIROW\fP\ |\ \fB\-\-since\-when=\fP‌\fIROW\fP]
+[\fB\-a\fP\ \fIVALUE\fP\ |\ \fB–amount=\fP‌\fIVALUE\fP]
+[\fB\-b\fP\ \fIURL\fP\ |\ \fB–bank=\fP‌\fIURL\fP]
+[\fB\-C\fP\ \fIACCOUNT\fP\ |\ \fB–credit=\fP‌\fIACCOUNT\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-D\fP\ \fIACCOUNT\fP\ |\ \fB–debit=\fP‌\fIACCOUNT\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-i\fP\ |\ \fB–credit\-history\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-o\fP\ |\ \fB–debit\-history\fP]
+[\fB\-p\fP\ \fIPASSPHRASE\fP\ |\ \fB–pass=\fP‌\fIPASSPHRASE\fP]
+[\fB\-S\fP\ \fISTRING\fP\ |\ \fB–subject=\fP‌\fISTRING\fP]
+[\fB\-s\fP\ \fIACCOUNT\-SECTION\fP\ |\ \fB–section=\fP‌\fIACCOUNT\-SECTION\fP]
+[\fB\-u\fP\ \fIUSERNAME\fP\ |\ \fB–user=\fP‌\fIUSERNAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-w\fP\ \fIROW\fP\ |\ \fB–since\-when=\fP‌\fIROW\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-wire\-gateway\-client\fP is a command\-line tool to trigger bank transfers or
@@ -77,58 +77,58 @@ on transaction history operations.
.SH OPTIONS
.INDENT 0.0
.TP
-\fB\-a\fP \fIVALUE\fP | \fB\-\-amount=\fP‌\fIVALUE\fP
+\fB\-a\fP \fIVALUE\fP | \fB–amount=\fP‌\fIVALUE\fP
Amount to transfer. Given in the Taler\-typical format of
CURRENCY:VALUE.FRACTION.
.TP
-\fB\-b\fP \fIURL\fP | \fB\-\-bank=\fP‌\fIURL\fP
+\fB\-b\fP \fIURL\fP | \fB–bank=\fP‌\fIURL\fP
URL at which the bank is operation. Conflicts with \fB\-s\fP\&.
.TP
-\fB\-C\fP \fIACCOUNT\fP | \fB\-\-credit=\fP‌\fIACCOUNT\fP
+\fB\-C\fP \fIACCOUNT\fP | \fB–credit=\fP‌\fIACCOUNT\fP
When doing a wire transfer from the exchange, the money should be credited to \fIACCOUNT\fP\&.
Specifies the payto:// URI of the account. Can also be used as a filter by credit
account when looking at transaction histories.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the given configuration file.
.TP
-\fB\-D\fP \fIACCOUNT\fP | \fB\-\-debit=\fP‌\fIACCOUNT\fP
+\fB\-D\fP \fIACCOUNT\fP | \fB–debit=\fP‌\fIACCOUNT\fP
When doing a wire transfer to the exchange, the \fIACCOUNT\fP is to be debited.
Specifies the payto:// URI of the account. Can also be used as a filter by debit
account when looking at transaction histories.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-credit\-history\fP
+\fB\-i\fP | \fB–credit\-history\fP
Obtain credit history of the exchange. Conflicts with \fB\-o\fP\&.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-o\fP | \fB\-\-debit\-history\fP
+\fB\-o\fP | \fB–debit\-history\fP
Obtain debit history of the exchange. Conflicts with \fB\-i\fP\&.
.TP
-\fB\-p\fP \fIPASSPHRASE\fP | \fB\-\-pass=\fP‌\fIPASSPHRASE\fP
+\fB\-p\fP \fIPASSPHRASE\fP | \fB–pass=\fP‌\fIPASSPHRASE\fP
Specifies the pass phrase for authentication. Conflicts with \fB\-s\fP\&.
.TP
-\fB\-S\fP \fISUBJECT\fP | \fB\-\-subject=\fP‌\fISUBJECT\fP
+\fB\-S\fP \fISUBJECT\fP | \fB–subject=\fP‌\fISUBJECT\fP
Use \fISUBJECT\fP for the wire transfer subject. Must be a reserve public key for credit operations and a wire transfer identifier for debit operations. If not specified, a random value will be generated instead.
.TP
-\fB\-s\fP \fIACCOUNT_SECTION\fP | \fB\-\-section=\fP‌\fIACCOUNT\-SECTION\fP
+\fB\-s\fP \fIACCOUNT_SECTION\fP | \fB–section=\fP‌\fIACCOUNT\-SECTION\fP
Obtain exchange account information from the \fIACCOUNT\-SECTION\fP of the configuration. The argument must be a \fB[exchange\-accountcredentials\-$NAME]\fP section name and thus start with the \fBexchange\-accountcredentials\-\fP prefix. Conflicts with \fB\-u\fP, \fB\-p\fP and \fB\-b\fP\&. Note that either \fB\-b\fP or \fB\-s\fP must be specified.
.TP
-\fB\-u\fP \fIUSERNAME\fP | \fB\-\-user=\fP‌\fIUSERNAME\fP
+\fB\-u\fP \fIUSERNAME\fP | \fB–user=\fP‌\fIUSERNAME\fP
Specifies the username for authentication. Optional and conflicts with \fB\-s\fP\&. If neither \fB\-u\fP nor \fB\-s\fP are used, we will attempt to talk to the bank without authentication.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-w\fP \fIROW\fP | \fB\-\-since\-when=\fP‌\fIROW\fP
+\fB\-w\fP \fIROW\fP | \fB–since\-when=\fP‌\fIROW\fP
Specifies a \fIROW\fP from which the history should be obtained. If not given, the 10 youngest transactions are returned.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-wirewatch.1 b/man/taler-exchange-wirewatch.1
index 04ef78b9..86fda4c3 100644
--- a/man/taler-exchange-wirewatch.1
+++ b/man/taler-exchange-wirewatch.1
@@ -33,15 +33,15 @@ taler-exchange-wirewatch \- watch for incoming wire transfers
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-wirewatch\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-I**_|_\fP\-\-ignore\-not\-found**]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-T\fP\ |\ \fB\-\-test\fP]
-[\fB\-t\fP\ \fIPLUGINNAME\fP\ |\ \fB\-\-type=\fP‌\fIPLUGINNAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-I**_|_\fP–ignore\-not\-found**]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-T\fP\ |\ \fB–test\fP]
+[\fB\-t\fP\ \fIPLUGINNAME\fP\ |\ \fB–type=\fP‌\fIPLUGINNAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-wirewatch\fP is a command\-line tool to import wire
@@ -50,40 +50,40 @@ transactions into the Taler exchange database.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-f\fP \fIDELAY\fP| \fB\-\-longpoll\-timeout=\fP\fIDELAY\fP
+\fB\-f\fP \fIDELAY\fP| \fB–longpoll\-timeout=\fP\fIDELAY\fP
How long do we wait for a response for bank transactions from the bank. This is both the timeout for the long polling as well as the maximum frequency at which we would query the bank. Specified with unit (e.g. 30s, 1d, 2w), if no unit is given the number is interpreted in microseconds. Default is 60s.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-I\fP | \fB\-\-ignore\-not\-found\fP
+\fB\-I\fP | \fB–ignore\-not\-found\fP
Do not fail if the bank says that the exchange bank account does not (yet) exist.
Keep trying.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Ignore our own database and start with transactions from the
beginning of time.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-fakebank-run.1 b/man/taler-fakebank-run.1
index 7f5476fb..0b4bc91a 100644
--- a/man/taler-fakebank-run.1
+++ b/man/taler-fakebank-run.1
@@ -33,47 +33,47 @@ taler-fakebank-run \- run in-memory bank service for testing and benchmarking
.SH SYNOPSIS
.sp
\fBtaler\-fakebank\-run\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-n\fP\ \fIN\fP\ |\ \fB\-\-num\-threads=\fP\fIN\fP]
-[\fB\-s\fP\ \fIAMOUNT\fP\ |\ \fB\-\-signup\-bonus=\fP\fIAMOUNT\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-n\fP\ \fIN\fP\ |\ \fB–num\-threads=\fP\fIN\fP]
+[\fB\-s\fP\ \fIAMOUNT\fP\ |\ \fB–signup\-bonus=\fP\fIAMOUNT\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
-\fBtaler\-fakebank\-run\fP is a command\-line tool to run a Taler \(dqbank\(dq API (HTTP REST service). The program is useful to provide the bank functionality for benchmarking or testing when LibEuFin is unavailable or otherwise unsuitable.
+\fBtaler\-fakebank\-run\fP is a command\-line tool to run a Taler “bank” API (HTTP REST service). The program is useful to provide the bank functionality for benchmarking or testing when LibEuFin is unavailable or otherwise unsuitable.
.sp
It should be noted that the fakebank will keep a configured number of transactions in memory. If the number of transactions exceeds the configured memory limit, the fakebank will simply discard and overwrite the old entries. At that point, any requests involving such overwritten transactions will fail. Users of the fakebank are responsible for ensuring that the transaction history kept in memory is long enough for the purpose the bank is used for. The default limit is 128k entries.
.sp
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request (useful in
combination with \fB\-f\fP to avoid having to wait for nc to time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from FILENAME.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-n\fP \fIN\fP | \fB\-\-num\-threads=\fP\fIN\fP
+\fB\-n\fP \fIN\fP | \fB–num\-threads=\fP\fIN\fP
Use \fIN\fP threads in the thread pool.
.TP
-\fB\-s\fP \fIAMOUNT\fP | \fB\-\-signup\-bonus=\fP\fIAMOUNT\fP
+\fB\-s\fP \fIAMOUNT\fP | \fB–signup\-bonus=\fP\fIAMOUNT\fP
Credit newly registered accounts with a balance of \fIAMOUNT\fP\&. Unlike other banks, this initial balance will be created out of thin air and not via a wire transfer from some bank\-internal account.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-aggregation.1 b/man/taler-helper-auditor-aggregation.1
index a57486ef..08256de3 100644
--- a/man/taler-helper-auditor-aggregation.1
+++ b/man/taler-helper-auditor-aggregation.1
@@ -33,14 +33,14 @@ taler-helper-auditor-aggregation \- audit Taler exchange aggregation activity
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-aggregation\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-aggregation\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-coins.1 b/man/taler-helper-auditor-coins.1
index f3298824..06103839 100644
--- a/man/taler-helper-auditor-coins.1
+++ b/man/taler-helper-auditor-coins.1
@@ -33,14 +33,14 @@ taler-helper-auditor-coins \- audit Taler coin processing
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-coins\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-coins\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-deposits.1 b/man/taler-helper-auditor-deposits.1
index cd5be64f..dd99f680 100644
--- a/man/taler-helper-auditor-deposits.1
+++ b/man/taler-helper-auditor-deposits.1
@@ -33,14 +33,14 @@ taler-helper-auditor-deposits \- audit Taler exchange database for deposit confi
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-deposits\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-deposits\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-purses.1 b/man/taler-helper-auditor-purses.1
index 3ae024c2..f8998ede 100644
--- a/man/taler-helper-auditor-purses.1
+++ b/man/taler-helper-auditor-purses.1
@@ -33,14 +33,14 @@ taler-helper-auditor-purses \- audit Taler exchange purse handling
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-purses\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-purses\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-reserves.1 b/man/taler-helper-auditor-reserves.1
index 3d849dc9..b0feff15 100644
--- a/man/taler-helper-auditor-reserves.1
+++ b/man/taler-helper-auditor-reserves.1
@@ -33,14 +33,14 @@ taler-helper-auditor-reserves \- audit Taler exchange reserve handling
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-reserves\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-reserves\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-wire.1 b/man/taler-helper-auditor-wire.1
index ac7011c9..f23add53 100644
--- a/man/taler-helper-auditor-wire.1
+++ b/man/taler-helper-auditor-wire.1
@@ -33,50 +33,50 @@ taler-helper-auditor-wire \- audit exchange database for consistency with the ba
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-wire\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-wire\fP is a command\-line tool to
-audit exchange database for consistency with the bank\(aqs wire transfers.
+audit exchange database for consistency with the bank’s wire transfers.
.sp
FIXME: More detail.
.sp
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-mdb.1 b/man/taler-mdb.1
index 0c00d6af..562023d5 100644
--- a/man/taler-mdb.1
+++ b/man/taler-mdb.1
@@ -33,15 +33,15 @@ taler-mdb \- operate multi drop bus (MDB) based vending machines with Taler paym
.SH SYNOPSIS
.sp
\fBtaler\-mdb\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-d\fP\ |\ \fB\-\-disable\-mdb\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-i\fP\ |\ \fB\-\-backlight\-invert\fP]
-[\fB\-L\fP _*LOGLEVEL*\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP _*FILENAME*\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-s\fP\ |\ \fB\-\-enable\-soldout\fP]
-[\fB\-t\fP\ |\ \fB\-\-disable\-tty\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-d\fP\ |\ \fB–disable\-mdb\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-i\fP\ |\ \fB–backlight\-invert\fP]
+[\fB\-L\fP _*LOGLEVEL*\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP _*FILENAME*\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-s\fP\ |\ \fB–enable\-soldout\fP]
+[\fB\-t\fP\ |\ \fB–disable\-tty\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-mdb\fP is a command\-line tool to operate a vending machine using GNU Taler for payments.
@@ -49,29 +49,29 @@ taler-mdb \- operate multi drop bus (MDB) based vending machines with Taler paym
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Sync commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-d\fP | \fB\-\-disable\-mdb\fP
+\fB\-d\fP | \fB–disable\-mdb\fP
Disable interaction with the MDB bus (for testing).
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-backlight\-invert\fP
+\fB\-i\fP | \fB–backlight\-invert\fP
Invert the bit for turning on/off the backlight.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
-\fB\-s\fP | \fB\-\-enable\-soldout\fP
-When the machine fails to dispense a product, internally set the product to \(dqsold out\(dq and refuse future orders until restarted.
+\fB\-s\fP | \fB–enable\-soldout\fP
+When the machine fails to dispense a product, internally set the product to “sold out” and refuse future orders until restarted.
.TP
-\fB\-t\fP | \fB\-\-disable\-tty\fP
+\fB\-t\fP | \fB–disable\-tty\fP
Disable interactive command\-line use.
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/taler-merchant-benchmark.1 b/man/taler-merchant-benchmark.1
index d31c6075..c336e48c 100644
--- a/man/taler-merchant-benchmark.1
+++ b/man/taler-merchant-benchmark.1
@@ -46,7 +46,7 @@ default instance) and aggregated by the exchange. Takes the following
option:
.INDENT 7.0
.TP
-\fB\-p\fP \fIPN\fP | \fB\-\-payments\-number=\fP\fIPN\fP
+\fB\-p\fP \fIPN\fP | \fB–payments\-number=\fP\fIPN\fP
Perform PN many payments, defaults to 1.
.UNINDENT
.TP
@@ -56,11 +56,11 @@ leaving payments unaggregated, or using a non\-default merchant
instance. Takes the following options:
.INDENT 7.0
.TP
-\fB\-t\fP \fITC\fP | \fB\-\-two\-coins=\fP\fITC\fP
+\fB\-t\fP \fITC\fP | \fB–two\-coins=\fP\fITC\fP
Perform TC many payments that use two coins (normally, all the
payments use only one coin). TC defaults to 1.
.TP
-\fB\-u\fP \fIUN\fP | \fB\-\-unaggregated\-number=\fP\fIUN\fP
+\fB\-u\fP \fIUN\fP | \fB–unaggregated\-number=\fP\fIUN\fP
Generate UN payments that will be left unaggregated. Note that
subsequent invocations of the generator may pick those
unaggregated payments and actually aggregated them.
@@ -69,27 +69,27 @@ unaggregated payments and actually aggregated them.
.SH COMMON OPTIONS
.INDENT 0.0
.TP
-\fB\-a\fP \fIAPIKEY\fP | \fB\-\-apikey=\fP\fIAPIKEY\fP
-HTTP \(aqAuthorization\(aq header to send to the merchant.
+\fB\-a\fP \fIAPIKEY\fP | \fB–apikey=\fP\fIAPIKEY\fP
+HTTP ‘Authorization’ header to send to the merchant.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration and other resources for the merchant to
operate from FILENAME.
.TP
-\fB\-u\fP \fISECTION\fP | \fB\-\-exchange\-account\-section=\fP\fISECTION\fP
+\fB\-u\fP \fISECTION\fP | \fB–exchange\-account\-section=\fP\fISECTION\fP
Configuration \fISECTION\fP specifying the exchange account to use.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-merchant-dbinit.1 b/man/taler-merchant-dbinit.1
index cd67b374..e1fc6f16 100644
--- a/man/taler-merchant-dbinit.1
+++ b/man/taler-merchant-dbinit.1
@@ -33,12 +33,12 @@ taler-merchant-dbinit \- initialize Taler merchant database
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-dbinit\fP is a command\-line tool to initialize the Taler
@@ -48,21 +48,21 @@ Taler merchant to operate.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Drop tables. Dangerous, will delete all existing data in the database
before creating the tables.
.TP
diff --git a/man/taler-merchant-depositcheck.1 b/man/taler-merchant-depositcheck.1
index 8f409285..acb7c47b 100644
--- a/man/taler-merchant-depositcheck.1
+++ b/man/taler-merchant-depositcheck.1
@@ -33,14 +33,14 @@ taler-merchant-depositcheck \- check status of deposits with exchange
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-depositcheck\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-e\fP \fIBASE_URL\fP\ |\ \fB\-\-exchange=\fP\fIBASE_URL\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-e\fP \fIBASE_URL\fP\ |\ \fB–exchange=\fP\fIBASE_URL\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-depositcheck\fP is a command\-line tool to inquire with exchanges about whether they completed
@@ -51,34 +51,34 @@ a wire transfer.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-e\fP \fIBASE_URL\fP | \fB\-\-exchange=\fP‌\fIBASE_URL\fP
-Base URL of the exchange to monitor. If not given, a worker process will be spawned for each exchange in the configuration (\(dqmerchant\-exchange\-\(dq sections).
+\fB\-e\fP \fIBASE_URL\fP | \fB–exchange=\fP‌\fIBASE_URL\fP
+Base URL of the exchange to monitor. If not given, a worker process will be spawned for each exchange in the configuration (“merchant\-exchange\-” sections).
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+\fB\-s\fP \fISECTION\fP | \fB–section=\fP\fISECTION\fP
Configuration section to use. Default is taler\-merchant\-depositcheck. Needed
if different processes are used to watch multiple bank accounts (for the
same instance or different instances).
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode. Only runs until the current list of bank
transactions are all imported.
.TP
diff --git a/man/taler-merchant-exchange.1 b/man/taler-merchant-exchange.1
index dc423ac6..0a51e05b 100644
--- a/man/taler-merchant-exchange.1
+++ b/man/taler-merchant-exchange.1
@@ -33,17 +33,17 @@ taler-merchant-exchange \- ask exchange which deposits were aggregated for a par
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-exchange\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-exchange\fP is a background job that reconciles
-wire transfers that credit the merchant\(aqs bank account with
+wire transfers that credit the merchant’s bank account with
the respective contracts that have been paid by asking the
exchange to provide a list of all deposits that were aggregated
into a wire transfer.
@@ -54,26 +54,26 @@ validate that the exchange paid the merchant correctly.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode. Only runs until the current list of bank
transactions have all been checked.
.TP
diff --git a/man/taler-merchant-httpd.1 b/man/taler-merchant-httpd.1
index 65e23703..fe78b2f8 100644
--- a/man/taler-merchant-httpd.1
+++ b/man/taler-merchant-httpd.1
@@ -33,14 +33,14 @@ taler-merchant-httpd \- run Taler merchant backend (with RESTful API)
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-httpd\fP
-[\fB\-a**_|_\fP\-\-auth**]
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-a**_|_\fP–auth**]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-httpd\fP is a command\-line tool to run the Taler merchant
@@ -49,44 +49,44 @@ before running this command.
.SH OPTIONS
.INDENT 0.0
.TP
-\fB\-a\fP \fITOKEN\fP | \fB\-\-auth=\fP\fITOKEN\fP
-Use TOKEN for initial access control to the merchant backend. TOKEN must start with the \(dqsecret\-token:\(dq prefix, as per RFC 8959. The value
+\fB\-a\fP \fITOKEN\fP | \fB–auth=\fP\fITOKEN\fP
+Use TOKEN for initial access control to the merchant backend. TOKEN must start with the “secret\-token:” prefix, as per RFC 8959. The value
given in TOKEN must appear in backoffice requests to the default instance
-of the merchant, i.e. \(dqAuthorization: Bearer TOKEN\(dq to obtain
+of the merchant, i.e. “Authorization: Bearer TOKEN” to obtain
access to the merchant backend. Note that setting a passphrase for the
default instance by any means will block future access via TOKEN. This
is basically a way to reset the passphrase protecting access. TOKEN
-should be a \(dqpchar\(dq as per RFC 8959, but this is NOT checked. Note that
-TOKEN will only grant access to the \(aqdefault\(aq instance, not other instances.
+should be a “pchar” as per RFC 8959, but this is NOT checked. Note that
+TOKEN will only grant access to the ‘default’ instance, not other instances.
Instead of using the command\-line, which exposes TOKEN to users on the
system, you may want to consider setting the
TALER_MERCHANT_TOKEN environment variable instead.
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request
(useful in combination with \-f to avoid having to wait for nc to
time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration and other resources for the merchant to
operate from FILENAME.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SIGNALS
@@ -100,7 +100,7 @@ cleanly.
.INDENT 0.0
.TP
.B TALER_MERCHANT_TOKEN
-Like the \(dq\-a\(dq option, resets the access token for the default
+Like the “\-a” option, resets the access token for the default
instance to the given value.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-merchant-passwd.1 b/man/taler-merchant-passwd.1
index b0b975fa..1c53d124 100644
--- a/man/taler-merchant-passwd.1
+++ b/man/taler-merchant-passwd.1
@@ -33,12 +33,12 @@ taler-merchant-passwd \- change Taler merchant instance password
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-passwd\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-i**_*NAME*\ |\ **\-\-instance\fP\fINAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-i**_*NAME*\ |\ **–instance\fP\fINAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
[PASSWORD]
.SH DESCRIPTION
.sp
@@ -50,22 +50,22 @@ environment variable.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP \fINAME\fP | \fB\-\-instance\fP\fINAME\fP
+\fB\-i\fP \fINAME\fP | \fB–instance\fP\fINAME\fP
Specifies the name of the instance for which the password should be
-updated. If not given, the \(dqdefault\(dq instance is modified.
+updated. If not given, the “default” instance is modified.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/taler-merchant-webhook.1 b/man/taler-merchant-webhook.1
index 6ba1667b..193cb9ef 100644
--- a/man/taler-merchant-webhook.1
+++ b/man/taler-merchant-webhook.1
@@ -33,13 +33,13 @@ taler-merchant-webhook \- execute webhooks of the Taler merchant backend (option
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-webhook\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-webhook\fP is a command\-line tool to trigger webhooks
@@ -49,26 +49,26 @@ requests and updates the Taler merchant database accordingly.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode. Only runs until there are no more webhooks
to be executed.
.TP
diff --git a/man/taler-merchant-wirewatch.1 b/man/taler-merchant-wirewatch.1
index 9535a000..99aadae0 100644
--- a/man/taler-merchant-wirewatch.1
+++ b/man/taler-merchant-wirewatch.1
@@ -33,14 +33,14 @@ taler-merchant-wirewatch \- import credit transactions from a merchant bank acco
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-wirewatch\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ |\ \fB\-\-persist\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ |\ \fB–persist\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-wirewatch\fP is a command\-line tool to import
@@ -51,34 +51,34 @@ the exchange paid the merchant correctly.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-p\fP | \fB\-\-persist\fP
+\fB\-p\fP | \fB–persist\fP
Run in persist mode. Does not exit when the account configuration changes. Useful when not running under systemd.
.TP
-\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+\fB\-s\fP \fISECTION\fP | \fB–section=\fP\fISECTION\fP
Configuration section to use. Default is taler\-merchant\-wirewatch. Needed
if different processes are used to watch multiple bank accounts (for the
same instance or different instances).
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode. Only runs until the current list of bank
transactions are all imported.
.TP
diff --git a/man/taler-terms-generator.1 b/man/taler-terms-generator.1
index 0364b53a..bba14d63 100644
--- a/man/taler-terms-generator.1
+++ b/man/taler-terms-generator.1
@@ -46,7 +46,7 @@ taler-terms-generator \- create legal policy documents for services
.TP
\fBtaler\-terms\-generator\fP is a command\-line tool to create terms of service
and privacy policy files in various file formats and languages from a
-reStructuredText (\(dq.rst\(dq) input. It can be used to generate the responses
+reStructuredText (“.rst”) input. It can be used to generate the responses
various GNU Taler services serve under the \fB/terms\fP and \fB/pp\fP endpoints.
.TP
\fB\-a\fP \fIAUTHOR\fP
@@ -55,26 +55,26 @@ set the author information to the given AUTHOR in the meta\-data of various gene
\fB\-C\fP \fICOPYRIGHT\fP
set the copyright information to the given COPYRIGHT in the meta\-data of various generated outputs.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
\fB\-i\fP \fIINPUT\fP
Name of the input (.rst) file with the terms of service or privacy policy to convert.
.TP
\fB\-l\fP \fILANGUAGE\fP
-Add the given \fILANGUAGE\fP to the list of translations for the current \fIINPUT\fP\&. \fILANGUAGE\fP must be a two\-letter language code (like \(dqde\(dq or \(dqit\(dq). This will generate or update the respective \(dq.po\(dq files to translate the \fIINPUT\fP terms to this \fILANGUAGE\fP\&.
+Add the given \fILANGUAGE\fP to the list of translations for the current \fIINPUT\fP\&. \fILANGUAGE\fP must be a two\-letter language code (like “de” or “it”). This will generate or update the respective “.po” files to translate the \fIINPUT\fP terms to this \fILANGUAGE\fP\&.
.TP
\fB\-L\fP \fILOCALE_DIR\fP
-Specify locale/ directory where GNU gettext resources for translating the input are located. If \(dq\-l\(dq is given, this directory is where fresh or updated \(dq.po\(dq files will be placed, and otherwise this directory will be scanned for translations of the \(dq.rst\(dq input file.
+Specify locale/ directory where GNU gettext resources for translating the input are located. If “\-l” is given, this directory is where fresh or updated “.po” files will be placed, and otherwise this directory will be scanned for translations of the “.rst” input file.
.TP
\fB\-o\fP \fIOUTPUT\fP
Specifies where to write the output. This should be the directory where the service expects to find the generated resources. Unless you changed the default configuration, you probably do not have to specify this value.
.TP
\fB\-p\fP \fIPAPER\fP
-Specifies the paper format for generated PDF documents. Can be \(dqa4\(dq or \(dqletter\(dq.
+Specifies the paper format for generated PDF documents. Can be “a4” or “letter”.
.TP
\fB\-t\fP \fITITLE\fP
-Overrides the document title. By default, the title will be set to the contents of the first line of the \fIINPUT\fP \(dq.rst\(dq file.
+Overrides the document title. By default, the title will be set to the contents of the first line of the \fIINPUT\fP “.rst” file.
.UNINDENT
.SH SEE ALSO
.sp
diff --git a/man/taler-unified-setup.1 b/man/taler-unified-setup.1
index 28f95dba..a1b89790 100644
--- a/man/taler-unified-setup.1
+++ b/man/taler-unified-setup.1
@@ -68,7 +68,7 @@ Start backup/sync service
(Mandatory) Use CONFIG_FILENAME.
.TP
\fB\-d\fP \fIMETHOD\fP
-use the given wire method. Default is \(aqx\-taler\-bank\(aq.
+use the given wire method. Default is ‘x\-taler\-bank’.
.TP
\fB\-e\fP
Start exchange
@@ -79,7 +79,7 @@ Start fakebank
\fB\-g\fP
Start aggregator
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
\fB\-k\fP
diff --git a/man/taler.conf.5 b/man/taler.conf.5
index 3a1c2aac..908a9486 100644
--- a/man/taler.conf.5
+++ b/man/taler.conf.5
@@ -130,7 +130,7 @@ Name of the currency, e.g.\ “EUR” for Euro.
.TP
.B CURRENCY_ROUND_UNIT
Smallest amount in this currency that can be transferred using the
-underlying RTGS. For example: \(dqEUR:0.01\(dq or \(dqJPY:1\(dq.
+underlying RTGS. For example: “EUR:0.01” or “JPY:1”.
.UNINDENT
.sp
The “[PATHS]” section is special in that it contains paths that can be
@@ -160,7 +160,7 @@ sockets). Usually “${TMP}/taler\-system\-runtime”.
.UNINDENT
.SS CURRENCY SPECIFICATIONS
.sp
-Sections with a name of the form “[currency\-$NAME]” (where \(dq$NAME\(dq could
+Sections with a name of the form “[currency\-$NAME]” (where “$NAME” could
be any unique string) are used to specify details about how currencies
should be handled (and in particularly rendered) by the user interface.
A detailed motivation for this section can be found in DD51.
@@ -206,10 +206,10 @@ JSON map determining how to encode very large or very tiny
amounts in this currency. Maps a base10 logarithm to the
respective currency symbol. Must include at least an
entry for 0 (currency unit). For example, use
-{\(dq0\(dq:\(dq€\(dq} for Euros or \(dq{\(dq0\(dq:\(dq$\(dq} for Dollars. You could
-additionally use {\(dq0\(dq:\(dq€\(dq,\(dq3\(dq:\(dqk€\(dq} to render 3000 EUR
+{“0”:”€”} for Euros or “{“0”:”$”} for Dollars. You could
+additionally use {“0”:”€”,”3”:”k€”} to render 3000 EUR
as 3k€. For BTC a typical map would be
-{\(dq0\(dq:\(dqBTC\(dq,\(dq\-3\(dq:\(dqmBTC\(dq}, informing the UI to render small
+{“0”:”BTC”,”\-3”:”mBTC”}, informing the UI to render small
amounts in milli\-Bitcoin (mBTC).
.UNINDENT
.SS EXCHANGE OPTIONS
@@ -222,29 +222,29 @@ exchange tools.
Plugin to use for the database, e.g.\ “postgres”.
.TP
.B SERVE
-Should the HTTP server listen on a UNIX domain socket (set option to \(dqunix\(dq) or on a TCP socket (set option to \(dqtcp\(dq)?
+Should the HTTP server listen on a UNIX domain socket (set option to “unix”) or on a TCP socket (set option to “tcp”)?
.TP
.B UNIXPATH
-Path to listen on if we \(dqSERVE\(dq is set to \(dqunix\(dq.
+Path to listen on if we “SERVE” is set to “unix”.
.TP
.B UNIXPATH_MODE
-Access permission mask to use for the \(dqUNIXPATH\(dq.
+Access permission mask to use for the “UNIXPATH”.
.TP
.B PORT
Port on which the HTTP server listens, e.g.\ 8080.
.TP
.B BIND_TO
-Hostname to which the exchange HTTP server should be bound to, e.g. \(dqlocalhost\(dq.
+Hostname to which the exchange HTTP server should be bound to, e.g. “localhost”.
.TP
.B MASTER_PUBLIC_KEY
Crockford Base32\-encoded master public key, public version of the
-exchange\(aqs long\-time offline signing key. This configuration option
+exchange’s long\-time offline signing key. This configuration option
is also used by the \fBauditor\fP to determine the public key of the
exchange which it is auditing.
.TP
.B AML_THRESHOLD
Largest amount in this currency that can be transferred per month without
-an AML staff member doing a (manual) AML check. For example: \(dqUSD:1000000\(dq.
+an AML staff member doing a (manual) AML check. For example: “USD:1000000”.
.TP
.B KYC_AML_TRIGGER
Program to run on KYC attribute data to decide whether we should immediately flag an account for AML review. Program must return 0 if a manual AML review is not needed, and non\-zero to trigger an AML review. The KYC attribute data of the new user will be passed on standard\-input.
@@ -286,7 +286,7 @@ For how long should the taler\-exchange\-wirewatch sleep when it is idle
before trying to look for more work? Default is 60 seconds.
.TP
.B AGGREGATOR_SHARD_SIZE
-Which share of the range from [0,..2147483648] should be processed by one of the shards of the aggregator. Useful only for Taler exchanges with ultra high\-performance needs. When changing this value, you must stop all aggregators and run \(dqtaler\-exchange\-dbinit \-s\(dq before resuming. Default is 2147483648 (no sharding).
+Which share of the range from [0,..2147483648] should be processed by one of the shards of the aggregator. Useful only for Taler exchanges with ultra high\-performance needs. When changing this value, you must stop all aggregators and run “taler\-exchange\-dbinit \-s” before resuming. Default is 2147483648 (no sharding).
.TP
.B SIGNKEY_LEGAL_DURATION
For how long are signatures with signing keys legally valid?
@@ -300,12 +300,12 @@ How many requests should the HTTP server process at most before committing suici
.B TERMS_DIR
Directory where the terms of service of the exchange operator can be fund.
The directory must contain sub\-directories for every supported language,
-using the two\-character language code in lower case, e.g. \(dqen/\(dq or \(dqfr/\(dq.
+using the two\-character language code in lower case, e.g. “en/” or “fr/”.
Each subdirectory must then contain files with the terms of service in
various formats. The basename of the file of the current policy must be
specified under \fBTERMS_ETAG\fP\&. The extension defines the mime type.
-Supported extensions include \(dqhtml\(dq, \(dqhtm\(dq, \(dqtxt\(dq, \(dqpdf\(dq, \(dqjpg\(dq, \(dqjpeg\(dq,
-\(dqpng\(dq and \(dqgif\(dq. For example, using a \fBTERMS_ETAG\fP of \(dq0\(dq, the structure
+Supported extensions include “html”, “htm”, “txt”, “pdf”, “jpg”, “jpeg”,
+“png” and “gif”. For example, using a \fBTERMS_ETAG\fP of “0”, the structure
could be the following:
.INDENT 7.0
.IP \(bu 2
@@ -324,7 +324,7 @@ $TERMS_DIR/de/0.txt
.TP
.B TERMS_ETAG
Basename of the file(s) in the \fBTERMS_DIR\fP with the current terms of service.
-The value is also used for the \(dqEtag\(dq in the HTTP request to control
+The value is also used for the “Etag” in the HTTP request to control
caching. Whenever the terms of service change, the \fBTERMS_ETAG\fP MUST also
change, and old values MUST NOT be repeated. For example, the date or
version number of the terms of service SHOULD be used for the Etag. If
@@ -340,7 +340,7 @@ Works the same as \fBTERMS_ETAG\fP, just for the privacy policy.
.UNINDENT
.SS EXCHANGE KYC PROVIDER OPTIONS
.sp
-The following options must be in the section \(dq[kyc\-provider\-XXX]\(dq sections.
+The following options must be in the section “[kyc\-provider\-XXX]” sections.
.INDENT 0.0
.TP
.B COST
@@ -357,20 +357,20 @@ List of checks performed by this provider. Space\-separated names of checks, mus
.UNINDENT
.SS EXCHANGE KYC OAUTH2 OPTIONS
.sp
-The following options must be in the section \(dq[kyc\-provider\-XXX]\(dq sections with \(dqLOGIC = oauth2\(dq.
+The following options must be in the section “[kyc\-provider\-XXX]” sections with “LOGIC = oauth2”.
.INDENT 0.0
.TP
.B KYC_OAUTH2_VALIDITY
-Duration (e.g. \(dq12 months\(dq) of the validity of the performed KYC check. Can be \(dqforever\(dq.
+Duration (e.g. “12 months”) of the validity of the performed KYC check. Can be “forever”.
.TP
.B KYC_OAUTH2_AUTHORIZE_URL
-URL of the OAuth2 endpoint to be used for KYC checks. The authorize URL is where the exchange will redirect the client to begin the authorization process. Example: \(dq\fI\%http://localhost:8888/oauth/v2/authorize\fP\(dq. To use the plugin in combination with the Challenger service\(aqs \fB/setup\fP step, append \(dq#setup\(dq, thus \(dq\fI\%https://challenger.example.com/authorize#setup\fP\(dq. Here, \(dq#setup\(dq is not a fragment but merely a hint to the logic to determine the full authorization URL via the \fB/setup/$CLIENT_ID\fP handler.
+URL of the OAuth2 endpoint to be used for KYC checks. The authorize URL is where the exchange will redirect the client to begin the authorization process. Example: “\fI\%http://localhost:8888/oauth/v2/authorize\fP”. To use the plugin in combination with the Challenger service’s \fB/setup\fP step, append “#setup”, thus “\fI\%https://challenger.example.com/authorize#setup\fP”. Here, “#setup” is not a fragment but merely a hint to the logic to determine the full authorization URL via the \fB/setup/$CLIENT_ID\fP handler.
.TP
.B KYC_OAUTH2_TOKEN_URL
-URL of the OAuth2 endpoint to be used for KYC checks. This is where the server will ultimately send the authorization token from the client and obtain its access token (which currently must be a \(dqbearer\(dq token). Example: \(dq\fI\%http://localhost:8888/oauth/v2/token\fP\(dq (or just \(dq/token\(dq)
+URL of the OAuth2 endpoint to be used for KYC checks. This is where the server will ultimately send the authorization token from the client and obtain its access token (which currently must be a “bearer” token). Example: “\fI\%http://localhost:8888/oauth/v2/token\fP” (or just “/token”)
.TP
.B KYC_OAUTH2_INFO_URL
-URL of the OAuth2\-protected resource endpoint, where the OAuth 2.0 token can be used to download information about the user that has undergone the KYC process. The exchange will use the access token obtained from the KYC_AUTH2_AUTH_URL to show that it is authorized to obtain the details. Example: \(dq\fI\%http://localhost:8888/api/user/me\fP\(dq or \(dq\fI\%http://localhost:8888/oauth/v2/info\fP\(dq
+URL of the OAuth2\-protected resource endpoint, where the OAuth 2.0 token can be used to download information about the user that has undergone the KYC process. The exchange will use the access token obtained from the KYC_AUTH2_AUTH_URL to show that it is authorized to obtain the details. Example: “\fI\%http://localhost:8888/api/user/me\fP” or “\fI\%http://localhost:8888/oauth/v2/info\fP”
.TP
.B KYC_OAUTH2_CLIENT_ID
Client ID of the exchange when it talks to the KYC OAuth2 endpoint.
@@ -379,18 +379,18 @@ Client ID of the exchange when it talks to the KYC OAuth2 endpoint.
Client secret of the exchange to use when talking to the KYC Oauth2 endpoint.
.TP
.B KYC_OAUTH2_POST_URL
-URL to which the exchange will redirect the client\(aqs browser after successful authorization/login for the KYC process. Example: \(dq\fI\%http://example.com/thank\-you\fP\(dq
+URL to which the exchange will redirect the client’s browser after successful authorization/login for the KYC process. Example: “\fI\%http://example.com/thank\-you\fP”
.TP
.B KYC_OAUTH2_CONVERTER_HELPER
Helper to convert JSON with KYC data returned by the OAuth2.0 info endpoint into GNU Taler internal format. Specific to the OAuth 2.0 provider.
.UNINDENT
.SS EXCHANGE KYC KYCAID OPTIONS
.sp
-The following options must be in the section \(dq[kyc\-provider\-XXX]\(dq sections with \(dqLOGIC = kycaid\(dq.
+The following options must be in the section “[kyc\-provider\-XXX]” sections with “LOGIC = kycaid”.
.INDENT 0.0
.TP
.B KYC_KYCAID_VALIDITY
-Duration (e.g. \(dq12 months\(dq) of the validity of the performed KYC check. Can be \(dqforever\(dq.
+Duration (e.g. “12 months”) of the validity of the performed KYC check. Can be “forever”.
.TP
.B KYC_KYCAID_AUTH_TOKEN
Authentication token to access the KYC service.
@@ -399,15 +399,15 @@ Authentication token to access the KYC service.
ID that specifies the form to use for the KYC process.
.TP
.B KYC_KYCAID_POST_URL
-URL to which the exchange will redirect the client\(aqs browser after successful authorization/login for the KYC process.
+URL to which the exchange will redirect the client’s browser after successful authorization/login for the KYC process.
.UNINDENT
.SS EXCHANGE KYC PERSONA OPTIONS
.sp
-The following options must be in the section \(dq[kyc\-provider\-XXX]\(dq sections with \(dqLOGIC = persona\(dq.
+The following options must be in the section “[kyc\-provider\-XXX]” sections with “LOGIC = persona”.
.INDENT 0.0
.TP
.B KYC_PERSONA_VALIDITY
-Duration (e.g. \(dq12 months\(dq) of the validity of the performed KYC check. Can be \(dqforever\(dq.
+Duration (e.g. “12 months”) of the validity of the performed KYC check. Can be “forever”.
.TP
.B KYC_PERSONA_AUTH_TOKEN
Authentication token to access the KYC service.
@@ -419,17 +419,17 @@ Salt value to use for request idempotency. Optional, generated at random per pro
Subdomain to use under Persona.
.TP
.B KYC_PERSONA_CONVERTER_HELPER
-Helper to convert JSON with KYC data returned by Persona into GNU Taler internal format. Should probably always be set to \(dqtaler\-exchange\-kyc\-persona\-converter.sh\(dq.
+Helper to convert JSON with KYC data returned by Persona into GNU Taler internal format. Should probably always be set to “taler\-exchange\-kyc\-persona\-converter.sh”.
.TP
.B KYC_PERSONA_POST_URL
-URL to which the exchange will redirect the client\(aqs browser after successful authorization/login for the KYC process.
+URL to which the exchange will redirect the client’s browser after successful authorization/login for the KYC process.
.TP
.B KYC_PERSONA_TEMPLATE_ID
ID of the Persona template to use.
.UNINDENT
.SS EXCHANGE KYC PERSONA GLOBAL OPTIONS
.sp
-The following option must be in the section \(dq[kyclogic\-persona]\(dq.
+The following option must be in the section “[kyclogic\-persona]”.
.INDENT 0.0
.TP
.B WEBHOOK_AUTH_TOKEN
@@ -441,7 +441,7 @@ The functionality of the exchange can be extended by extensions. Those are
shared libraries which implement the extension\-API of the exchange and are
located under \fB$LIBDIR\fP, starting with prefix \fBlibtaler_extension_\fP\&. Each
extension can be enabled by adding a dedicated section
-\(dq[exchange\-extension\-<extensionname>]\(dq and the following option:
+“[exchange\-extension\-<extensionname>]” and the following option:
.INDENT 0.0
.TP
.B ENABLED
@@ -451,7 +451,7 @@ options might be set in the same section.
.SS EXCHANGE EXTENSION FOR AGE RESTRICTION
.sp
The extension for age restriction support can be enabled by adding a section
-\(dq[exchange\-extension\-age_restriction]\(dq with the following options:
+“[exchange\-extension\-age_restriction]” with the following options:
.INDENT 0.0
.TP
.B ENABLE
@@ -460,8 +460,8 @@ Must be set to \fBYES\fP in order to activate the extension.
.B AGE_GROUPS
A colon\-seperated string of increasing non\-negative integers, defining the
buckets of age groups supported by the exchange. Each integer marks the
-beginning of the next age group. The zero\(aqth age group implicitly starts
-with 0. For example, the string \(dq10:18\(dq would define three age groups:
+beginning of the next age group. The zero’th age group implicitly starts
+with 0. For example, the string “10:18” would define three age groups:
.INDENT 7.0
.INDENT 3.5
.INDENT 0.0
@@ -475,7 +475,7 @@ Group 2: ages 18 and above
.UNINDENT
.UNINDENT
.sp
-If not provided, the default value is \(dq8:10:12:14:16:18:21\(dq.
+If not provided, the default value is “8:10:12:14:16:18:21”.
.UNINDENT
.sp
\fBNote\fP: Age restriction is bound to specific denominations and must be
@@ -484,7 +484,7 @@ the option \fBAGE_RESTRICTED = YES\fP, see \fI\%EXCHANGE COIN OPTIONS\fP\&. Howe
age groups are defined globally for all denominations.
.SS EXCHANGE OFFLINE SIGNING OPTIONS
.sp
-The following options must be in the section \(dq[exchange\-offline]\(dq.
+The following options must be in the section “[exchange\-offline]”.
.INDENT 0.0
.TP
.B MASTER_PRIV_FILE
@@ -511,7 +511,7 @@ this option will also be ignored.
.UNINDENT
.SS EXCHANGE RSA CRYPTO HELPER OPTIONS
.sp
-The following options must be in the section \(dq[taler\-exchange\-secmod\-rsa]\(dq.
+The following options must be in the section “[taler\-exchange\-secmod\-rsa]”.
.INDENT 0.0
.TP
.B LOOKAHEAD_SIGN
@@ -538,7 +538,7 @@ Note that the \fBtaler\-exchange\-secmod\-rsa\fP also evaluates the \fB[coin_*]\
configuration sections described below.
.SS EXCHANGE CS CRYPTO HELPER OPTIONS
.sp
-The following options must be in the section \(dq[taler\-exchange\-secmod\-cs]\(dq.
+The following options must be in the section “[taler\-exchange\-secmod\-cs]”.
.INDENT 0.0
.TP
.B LOOKAHEAD_SIGN
@@ -565,7 +565,7 @@ Note that the \fBtaler\-exchange\-secmod\-cs\fP also evaluates the \fB[coin_*]\f
configuration sections described below.
.SS EXCHANGE EDDSA CRYPTO HELPER OPTIONS
.sp
-The following options must be in the section \(dq[taler\-exchange\-secmod\-eddsa]\(dq.
+The following options must be in the section “[taler\-exchange\-secmod\-eddsa]”.
.INDENT 0.0
.TP
.B LOOKAHEAD_SIGN
@@ -592,7 +592,7 @@ On which path should the security module listen for signing requests?
.UNINDENT
.SS EXCHANGE DATABASE OPTIONS
.sp
-The following options must be in the section \(dq[exchangedb]\(dq.
+The following options must be in the section “[exchangedb]”.
.INDENT 0.0
.TP
.B IDLE_RESERVE_EXPIRATION_TIME
@@ -653,7 +653,7 @@ URL of the wire gateway. Typically of the form
\fBhttps://$HOSTNAME[:$PORT]/taler\-wire\-gateway/$USERNAME/\fP
where $HOSTNAME is the hostname of the system running the bank
(such as the Taler Python bank or the Nexus) and \fB$USERNAME\fP is
-the username of the exchange\(aqs bank account (usually matching
+the username of the exchange’s bank account (usually matching
the \fBUSERNAME\fP option used for authentication). Example:
\fBhttps://bank.demo.taler.net/taler\-wire\-gateway/Exchange/\fP\&.
.TP
@@ -708,12 +708,12 @@ What fee is charged for refunds? When a coin is refunded, the deposit
fee is returned. Instead, the refund fee is charged to the customer.
.TP
.B CIPHER
-What cryptosystem should be used? Must be set to either \(dqCS\(dq or \(dqRSA\(dq.
+What cryptosystem should be used? Must be set to either “CS” or “RSA”.
The respective crypto\-helper will then generate the keys for this
denomination.
.TP
.B RSA_KEYSIZE
-What is the RSA keysize modulos (in bits)? Only used if \(dqCIPHER=RSA\(dq.
+What is the RSA keysize modulos (in bits)? Only used if “CIPHER=RSA”.
.TP
.B AGE_RESTRICTED
Setting this option to \fBYES\fP marks the denomination as age restricted
@@ -730,22 +730,22 @@ merchant backend.
Plugin to use for the database, e.g._“postgres”.
.TP
.B SERVE
-Should the HTTP server listen on a UNIX domain socket (set option to \(dqunix\(dq) or on a TCP socket (set option to \(dqtcp\(dq)?
+Should the HTTP server listen on a UNIX domain socket (set option to “unix”) or on a TCP socket (set option to “tcp”)?
.TP
.B BASE_URL
Which base URL should the merchant backend assume for itself in the protocol. Optional. If not given, the base URL will be constructed from X\-Forwarded\-Host, X\-Forwarded\-Port and X\-Forwarded\-Prefix headers that a reverse\-proxy should be setting.
.TP
.B UNIXPATH
-Path to listen on if we \(dqSERVE\(dq is set to \(dqunix\(dq.
+Path to listen on if we “SERVE” is set to “unix”.
.TP
.B UNIXPATH_MODE
-Access permission mask to use for the \(dqUNIXPATH\(dq.
+Access permission mask to use for the “UNIXPATH”.
.TP
.B PORT
Port on which the HTTP server listens, e.g.\ 8080.
.TP
.B BIND_TO
-Hostname to which the merchant HTTP server should be bound to, e.g. \(dqlocalhost\(dq.
+Hostname to which the merchant HTTP server should be bound to, e.g. “localhost”.
.TP
.B LEGAL_PRESERVATION
How long do we keep data in the database for tax audits after the
@@ -780,7 +780,7 @@ Base URL of the exchange, e.g.\ “\fI\%https://exchange.demo.taler.net/\fP”
.TP
.B MASTER_KEY
Crockford Base32 encoded master public key, public version of the
-exchange\(aqs long\-time offline signing key. Can be omitted, in that
+exchange’s long\-time offline signing key. Can be omitted, in that
case the exchange will NOT be trusted unless it is audited by
a known auditor.
Omitting \fBMASTER_KEY\fP can be useful if we do not trust the exchange
@@ -816,19 +816,19 @@ processes that do not have access to the (offline) auditor private key file.
Base URL of the auditor, e.g.\ “\fI\%https://auditor.demo.taler.net/\fP”
.TP
.B SERVE
-Should the HTTP server listen on a UNIX domain socket (set option to \(dqunix\(dq) or on a TCP socket (set option to \(dqtcp\(dq)?
+Should the HTTP server listen on a UNIX domain socket (set option to “unix”) or on a TCP socket (set option to “tcp”)?
.TP
.B UNIXPATH
-Path to listen on if we \(dqSERVE\(dq is set to \(dqunix\(dq.
+Path to listen on if we “SERVE” is set to “unix”.
.TP
.B UNIXPATH_MODE
-Access permission mask to use for the \(dqUNIXPATH\(dq.
+Access permission mask to use for the “UNIXPATH”.
.TP
.B PORT
Port on which the HTTP server listens, e.g.\ 8080.
.TP
.B BIND_TO
-Hostname to which the merchant HTTP server should be bound to, e.g. \(dqlocalhost\(dq.
+Hostname to which the merchant HTTP server should be bound to, e.g. “localhost”.
.UNINDENT
.SS AUDITOR POSTGRES BACKEND DATABASE OPTIONS
.sp
@@ -837,12 +837,12 @@ The following options must be in section “[auditordb\-postgres]” if the
.INDENT 0.0
.TP
.B CONFIG
-How to access the database, e.g.\ \(dqpostgres:///taler\(dq to use the
-\(dqtaler\(dq database. Testcases use “talercheck”.
+How to access the database, e.g.\ “postgres:///taler” to use the
+“taler” database. Testcases use “talercheck”.
.UNINDENT
.SS Bank Options
.sp
-The following options must be in section \(dq[bank]\(dq for the taler\-fakebank\-run(1) command. They are not used by the exchange or LibEuFin!
+The following options must be in section “[bank]” for the taler\-fakebank\-run(1) command. They are not used by the exchange or LibEuFin!
.INDENT 0.0
.TP
.B HTTP_PORT
@@ -866,28 +866,28 @@ Program to run while not vending, possibly useful to show advertisements on the
ESSID to advertise to wallets for use as an open WiFi to make payments (optional).
.TP
.B FULFILLMENT_MSG
-Message shown to users by their wallets upon successful payment. If \(dq${PRODUCT_DESCRIPTION}\(dq appears in the message, it will be replaced with the description of the product that was sold.
+Message shown to users by their wallets upon successful payment. If “${PRODUCT_DESCRIPTION}” appears in the message, it will be replaced with the description of the product that was sold.
.TP
.B BACKEND_BASE_URL
Base URL (possibly including instance) for the Taler merchant backend used to process payments.
.TP
.B BACKEND_AUTHORIZATION
-Full HTTP \(dqAuthorization\(dq header (usually with a Bearer token) to be send to the merchant backend for authorization of requests. Mandatory.
+Full HTTP “Authorization” header (usually with a Bearer token) to be send to the merchant backend for authorization of requests. Mandatory.
.TP
.B FRAMEBUFFER_BACKLIGHT
-Name of the file used to control brightness of the display. Optional. Defaults to \(dq/sys/class/backlight/soc:backlight/brightness\(dq if not given.
+Name of the file used to control brightness of the display. Optional. Defaults to “/sys/class/backlight/soc:backlight/brightness” if not given.
.TP
.B FRAMEBUFFER_DEVICE
-Name of the framebuffer device to use. Defaults to \(dq/dev/fb1\(dq if not given.
+Name of the framebuffer device to use. Defaults to “/dev/fb1” if not given.
.TP
.B UART_DEVICE
-Name of the UART device to use. Defaults to \(dq/dev/ttyAMA0\(dq if not given.
+Name of the UART device to use. Defaults to “/dev/ttyAMA0” if not given.
.TP
.B FAIL_COMMAND
Command to run to display a failure to the user. If not given, errors will not be properly shown.
.UNINDENT
.sp
-Each products being sold must be configured in a section where the name starts with \(dqproduct\-\(dq.
+Each products being sold must be configured in a section where the name starts with “product\-“.
In these sections, the options that must be provided are:
.INDENT 0.0
.TP
@@ -895,22 +895,22 @@ In these sections, the options that must be provided are:
Number identifying the slot in the vending machine that corresponds to this product.
.TP
.B INSTANCE
-Instance to use for the payment. Optional. If not given, the BACKEND_BASE_URL from \(dq[taler\-mdb]\(dq will be used.
+Instance to use for the payment. Optional. If not given, the BACKEND_BASE_URL from “[taler\-mdb]” will be used.
.TP
.B BACKEND_AUTHORIZATION
-Full HTTP \(dqAuthorization\(dq header (usually with a Bearer token) to be send to the merchant backend for authorization of requests. Optional, will use global BACKEND_AUTHORIZATION setting from \(dq[taler\-mdb]\(dq if missing.
+Full HTTP “Authorization” header (usually with a Bearer token) to be send to the merchant backend for authorization of requests. Optional, will use global BACKEND_AUTHORIZATION setting from “[taler\-mdb]” if missing.
.TP
.B DESCRIPTION
-Human\-readable description of the product. Use \(dqempty\(dq if the product is known to be sold out (only effective if selling out is enabled via command\-line).
+Human\-readable description of the product. Use “empty” if the product is known to be sold out (only effective if selling out is enabled via command\-line).
.TP
.B PRICE
-Actual price of the product, as a Taler amount (\(dq$CURRENCY:$VALUE.$FRACTION\(dq).
+Actual price of the product, as a Taler amount (“$CURRENCY:$VALUE.$FRACTION”).
.TP
.B KEY
Key used to select the product from the console during testing. Optional.
.TP
.B THUMBNAIL
-Name of a filename with a preview image of the product to be given to the wallet. Optional. Only \(dq.png\(dq, \(dq.jpg\(dq, \(dq.jpeg\(dq and \(dq.svg\(dq are supported at this time.
+Name of a filename with a preview image of the product to be given to the wallet. Optional. Only “.png”, “.jpg”, “.jpeg” and “.svg” are supported at this time.
.UNINDENT
.SH SEE ALSO
.sp
diff --git a/texinfo/challenger.texi b/texinfo/challenger.texi
index 7f9e6ef3..53187060 100644
--- a/texinfo/challenger.texi
+++ b/texinfo/challenger.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
diff --git a/texinfo/taler-auditor.texi b/texinfo/taler-auditor.texi
index 10e41d03..55de427d 100644
--- a/texinfo/taler-auditor.texi
+++ b/texinfo/taler-auditor.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
diff --git a/texinfo/taler-developer-manual.texi b/texinfo/taler-developer-manual.texi
index 6ee92df6..75d19865 100644
--- a/texinfo/taler-developer-manual.texi
+++ b/texinfo/taler-developer-manual.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -111,15 +111,15 @@ overview:
exchange: core payment processing logic with a REST API, plus various
helper processes for interaction with banks and cryptographic
computations. Also includes the logic for the auditor and an
-in-memory "bank" API implementation for testing.
+in-memory “bank” API implementation for testing.
@item
-libeufin: implementation of the "bank" API using the EBICS protocol
+libeufin: implementation of the “bank” API using the EBICS protocol
used by banks in the EU. Allows an exchange to interact with
European banks.
@item
-deploymerization: implementation of the "bank" API on top of
+deploymerization: implementation of the “bank” API on top of
blockchains, specifically Bitcoin and Ethereum. Allows an exchange
to interact with crypto-currencies.
@@ -178,8 +178,7 @@ sending invoices or payments to other wallets.
@item
taler-merchant-demos: various demonstration services operated at
-'demo.taler.net', including a simple shop, donation page and a
-survey with reward functionality.
+‘demo.taler.net’, including a simple shop and a donation page.
@end itemize
@end quotation
@@ -352,7 +351,7 @@ A complete list of all the existing repositories is currently found at
Before you can obtain Git write access, you must sign the copyright
agreement. As we collaborate closely with GNUnet, we use their
-copyright agreement -- with the understanding that your contributions
+copyright agreement – with the understanding that your contributions
to GNU Taler are included in the assignment. You can find the
agreement on the GNUnet site@footnote{https://gnunet.org/en/copyright.html}.
Please sign and mail it to Christian Grothoff as he currently collects
@@ -625,7 +624,7 @@ $ curl -fsSL https://get.docker.com/rootless | sh
Upgrading the @code{demo} environment should be done with care, and ideally be
coordinated on the mailing list before. It is our goal for @code{demo} to always
-run a "working version" that is compatible with various published wallets.
+run a “working version” that is compatible with various published wallets.
Please use the demo upgrade checklist to make
sure everything is working.
Nginx is already configured to reach the services as exported by
@@ -692,7 +691,6 @@ SS = serial
* Blog demo::
* Donation demo::
* Merchant SPA::
-* Survey/Rewards::
* P2P payments::
* Shutdown::
@@ -728,7 +726,7 @@ taler-wallet-cli api 'runIntegrationTestV2' '@{"exchangeBaseUrl":"https://exchan
@subsection Wallets
-We consider the following published wallets to be "production wallets":
+We consider the following published wallets to be “production wallets”:
@itemize *
@@ -936,7 +934,7 @@ that the payment is requested again, instead of showing the previous
fulfillment page.
@end itemize
-@node Merchant SPA,Survey/Rewards,Donation demo,GNU Taler Demo Upgrade Checklist
+@node Merchant SPA,P2P payments,Donation demo,GNU Taler Demo Upgrade Checklist
@anchor{taler-developer-manual merchant-spa}@anchor{1f}
@subsection Merchant SPA
@@ -978,7 +976,7 @@ fulfillment page.
add product with 1 in stock and preview image
@item
- add "advanced" order with inventory product and a 2 minute wire delay
+ add “advanced” order with inventory product and a 2 minute wire delay
@item
claim order, check available stock goes down in inventory
@@ -1017,9 +1015,6 @@ fulfillment page.
check displayed TOTP code matches TOTP app
@item
- create reserve for rewards
-
-@item
do manual wire transfer in bank to establish reserve funding
@item
@@ -1047,24 +1042,8 @@ fulfillment page.
check that orders are marked as completed
@end itemize
-@node Survey/Rewards,P2P payments,Merchant SPA,GNU Taler Demo Upgrade Checklist
-@anchor{taler-developer-manual survey-rewards}@anchor{20}
-@subsection Survey/Rewards
-
-
-
-@itemize -
-
-@item
- Visit @indicateurl{https://survey.demo.taler.net/} and receive a reward.
-
-@item
- Verify that the survey stats page (@indicateurl{https://survey.demo.taler.net/survey-stats}) is working,
-and that the survey reserve has sufficient funds.
-@end itemize
-
-@node P2P payments,Shutdown,Survey/Rewards,GNU Taler Demo Upgrade Checklist
-@anchor{taler-developer-manual p2p-payments}@anchor{21}
+@node P2P payments,Shutdown,Merchant SPA,GNU Taler Demo Upgrade Checklist
+@anchor{taler-developer-manual p2p-payments}@anchor{20}
@subsection P2P payments
@@ -1094,7 +1073,7 @@ and that the survey reserve has sufficient funds.
@end itemize
@node Shutdown,,P2P payments,GNU Taler Demo Upgrade Checklist
-@anchor{taler-developer-manual shutdown}@anchor{22}
+@anchor{taler-developer-manual shutdown}@anchor{21}
@subsection Shutdown
@@ -1130,7 +1109,7 @@ and that the survey reserve has sufficient funds.
@end itemize
@node Environments and Builders on taler net,Releases,Demo Upgrade Procedure,Top
-@anchor{taler-developer-manual environments-and-builders-on-taler-net}@anchor{23}
+@anchor{taler-developer-manual environments-and-builders-on-taler-net}@anchor{22}
@chapter Environments and Builders on taler.net
@@ -1147,7 +1126,7 @@ and that the survey reserve has sufficient funds.
@end menu
@node Buildbot implementation,Test builder,,Environments and Builders on taler net
-@anchor{taler-developer-manual buildbot-implementation}@anchor{24}
+@anchor{taler-developer-manual buildbot-implementation}@anchor{23}
@section Buildbot implementation
@@ -1165,7 +1144,7 @@ The WORKER is the config that that lives on a shell account on a localhost (tale
The WORKER running buildbot-worker receives these commands by authenticating and communicating with the buildbot server using parameters that were specified when the worker was created in that shell account with the @code{buildbot-worker} command.
@item
-The buildbot server's master.cfg file contains FACTORY declarations which specify the commands that the WORKER will run on localhost.
+The buildbot server’s master.cfg file contains FACTORY declarations which specify the commands that the WORKER will run on localhost.
@item
The FACTORY is tied to the WORKER in master.cfg by a BUILDER.
@@ -1183,7 +1162,7 @@ Best Practices:
@itemize -
@item
-When creating a new WORKER in the @code{master.cfg} file, leave a comment specifying the server and user account that this WORKER is called from. (At this time, taler.net is the only server used by this implementation, but it's still good practice.)
+When creating a new WORKER in the @code{master.cfg} file, leave a comment specifying the server and user account that this WORKER is called from. (At this time, taler.net is the only server used by this implementation, but it’s still good practice.)
@item
Create a worker from a shell account with this command: @code{buildbot-worker create-worker <workername> localhost <username> <password>}
@@ -1192,7 +1171,7 @@ Create a worker from a shell account with this command: @code{buildbot-worker cr
Then make sure there is a WORKER defined in master.cfg like: @code{worker.Worker("<username>", "<password>")}
@node Test builder,Wallet builder,Buildbot implementation,Environments and Builders on taler net
-@anchor{taler-developer-manual test-builder}@anchor{25}
+@anchor{taler-developer-manual test-builder}@anchor{24}
@section Test builder
@@ -1214,7 +1193,7 @@ the mentioned unit file can be found at @code{deployment.git/systemd-services/}
@end cartouche
@node Wallet builder,Documentation Builder,Test builder,Environments and Builders on taler net
-@anchor{taler-developer-manual wallet-builder}@anchor{26}
+@anchor{taler-developer-manual wallet-builder}@anchor{25}
@section Wallet builder
@@ -1236,7 +1215,7 @@ the mentioned unit file can be found at @code{deployment.git/systemd-services/}
@end cartouche
@node Documentation Builder,Website Builder,Wallet builder,Environments and Builders on taler net
-@anchor{taler-developer-manual documentation-builder}@anchor{27}
+@anchor{taler-developer-manual documentation-builder}@anchor{26}
@section Documentation Builder
@@ -1258,7 +1237,7 @@ $ buildbot-worker start worker/
@end example
@node Website Builder,Code coverage,Documentation Builder,Environments and Builders on taler net
-@anchor{taler-developer-manual website-builder}@anchor{28}
+@anchor{taler-developer-manual website-builder}@anchor{27}
@section Website Builder
@@ -1280,7 +1259,7 @@ $ buildbot-worker start worker/
@end example
@node Code coverage,Producing auditor reports,Website Builder,Environments and Builders on taler net
-@anchor{taler-developer-manual code-coverage}@anchor{29}
+@anchor{taler-developer-manual code-coverage}@anchor{28}
@section Code coverage
@@ -1303,11 +1282,11 @@ $ buildbot-worker start worker/
The results are then published at @code{https://lcov.taler.net/}.
@node Producing auditor reports,Database schema versioning,Code coverage,Environments and Builders on taler net
-@anchor{taler-developer-manual producing-auditor-reports}@anchor{2a}
+@anchor{taler-developer-manual producing-auditor-reports}@anchor{29}
@section Producing auditor reports
-Both 'test' and 'demo' setups get their auditor reports compiled
+Both ‘test’ and ‘demo’ setups get their auditor reports compiled
by a Buildbot worker. The following steps get the reports compiler
prepared.
@@ -1324,7 +1303,7 @@ $ buildbot-worker start worker/
@end example
@node Database schema versioning,,Producing auditor reports,Environments and Builders on taler net
-@anchor{taler-developer-manual database-schema-versioning}@anchor{2b}@anchor{taler-developer-manual databaseversioning}@anchor{5}
+@anchor{taler-developer-manual database-schema-versioning}@anchor{2a}@anchor{taler-developer-manual databaseversioning}@anchor{5}
@section Database schema versioning
@@ -1340,7 +1319,7 @@ Developers and operators MUST NOT make changes to database schema
outside of this versioning. All tables of a GNU Taler component should live in their own schema.
@node Releases,Continuous integration,Environments and Builders on taler net,Top
-@anchor{taler-developer-manual releases}@anchor{2c}
+@anchor{taler-developer-manual releases}@anchor{2b}
@chapter Releases
@@ -1357,7 +1336,7 @@ outside of this versioning. All tables of a GNU Taler component should live in
@end menu
@node GNU Taler Release Checklist,Release Process,,Releases
-@anchor{taler-developer-manual gnu-taler-release-checklist}@anchor{2d}
+@anchor{taler-developer-manual gnu-taler-release-checklist}@anchor{2c}
@section GNU Taler Release Checklist
@@ -1367,10 +1346,10 @@ For exchange:
@itemize -
@item
- no compiler warnings at "-Wall" with gcc
+ no compiler warnings at “-Wall” with gcc
@item
- no compiler warnings at "-Wall" with clang
+ no compiler warnings at “-Wall” with clang
@item
ensure Coverity static analysis passes
@@ -1379,7 +1358,7 @@ For exchange:
make check.
@item
- make dist, make check on result of 'make dist'.
+ make dist, make check on result of ‘make dist’.
@item
Change version number in configure.ac.
@@ -1394,7 +1373,7 @@ For exchange:
verify dist builds from source
@item
- upgrade 'demo.taler.net'
+ upgrade ‘demo.taler.net’
@item
run demo upgrade checklist
@@ -1403,13 +1382,13 @@ For exchange:
tag repo.
@item
- use 'deployment.git/packaging/*-docker/' to build Debian and Ubuntu packages
+ use ‘deployment.git/packaging/*-docker/’ to build Debian and Ubuntu packages
@item
- upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+ upload packages to ‘deb.taler.net’ (note: only Florian/Christian can sign)
@item
- change 'demo.taler.net' deployment to use new tag.
+ change ‘demo.taler.net’ deployment to use new tag.
@item
Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
@@ -1421,10 +1400,10 @@ For merchant (C backend):
@itemize -
@item
- no compiler warnings at "-Wall" with gcc
+ no compiler warnings at “-Wall” with gcc
@item
- no compiler warnings at "-Wall" with clang
+ no compiler warnings at “-Wall” with clang
@item
ensure Coverity static analysis passes
@@ -1433,7 +1412,7 @@ For merchant (C backend):
make check.
@item
- make dist, make check on result of 'make dist'.
+ make dist, make check on result of ‘make dist’.
@item
update SPA (prebuilt branch)
@@ -1448,7 +1427,7 @@ For merchant (C backend):
verify dist builds from source
@item
- upgrade 'demo.taler.net'
+ upgrade ‘demo.taler.net’
@item
run demo upgrade checklist
@@ -1457,13 +1436,13 @@ For merchant (C backend):
tag repo.
@item
- use 'deployment.git/packaging/*-docker/' to build Debian and Ubuntu packages
+ use ‘deployment.git/packaging/*-docker/’ to build Debian and Ubuntu packages
@item
- upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+ upload packages to ‘deb.taler.net’ (note: only Florian/Christian can sign)
@item
- change 'demo.taler.net' deployment to use new tag.
+ change ‘demo.taler.net’ deployment to use new tag.
@item
Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
@@ -1475,10 +1454,10 @@ For sync:
@itemize -
@item
- no compiler warnings at "-Wall" with gcc
+ no compiler warnings at “-Wall” with gcc
@item
- no compiler warnings at "-Wall" with clang
+ no compiler warnings at “-Wall” with clang
@item
ensure Coverity static analysis passes
@@ -1487,7 +1466,7 @@ For sync:
make check.
@item
- make dist, make check on result of 'make dist'.
+ make dist, make check on result of ‘make dist’.
@item
Change version number in configure.ac.
@@ -1499,7 +1478,7 @@ For sync:
verify dist builds from source
@item
- upgrade 'demo.taler.net'
+ upgrade ‘demo.taler.net’
@item
run demo upgrade checklist
@@ -1508,13 +1487,13 @@ For sync:
tag repo.
@item
- use 'deployment.git/packaging/*-docker/' to build Debian and Ubuntu packages
+ use ‘deployment.git/packaging/*-docker/’ to build Debian and Ubuntu packages
@item
- upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+ upload packages to ‘deb.taler.net’ (note: only Florian/Christian can sign)
@item
- change 'demo.taler.net' deployment to use new tag.
+ change ‘demo.taler.net’ deployment to use new tag.
@item
Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
@@ -1526,7 +1505,7 @@ For taler-mdb:
@itemize -
@item
- no compiler warnings at "-Wall" with gcc
+ no compiler warnings at “-Wall” with gcc
@item
ensure Coverity static analysis passes
@@ -1541,10 +1520,10 @@ For taler-mdb:
tag repo.
@item
- use 'deployment.git/packaging/*-docker/' to build Debian and Ubuntu packages
+ use ‘deployment.git/packaging/*-docker/’ to build Debian and Ubuntu packages
@item
- upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+ upload packages to ‘deb.taler.net’ (note: only Florian/Christian can sign)
@item
Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
@@ -1556,10 +1535,10 @@ For taler-twister:
@itemize -
@item
- no compiler warnings at "-Wall" with gcc
+ no compiler warnings at “-Wall” with gcc
@item
- no compiler warnings at "-Wall" with clang
+ no compiler warnings at “-Wall” with clang
@item
ensure Coverity static analysis passes
@@ -1568,7 +1547,7 @@ For taler-twister:
make check.
@item
- make dist, make check on result of 'make dist'.
+ make dist, make check on result of ‘make dist’.
@item
Change version number in configure.ac.
@@ -1580,7 +1559,7 @@ For taler-twister:
verify dist builds from source
@item
- upgrade 'demo.taler.net'
+ upgrade ‘demo.taler.net’
@item
run demo upgrade checklist
@@ -1604,7 +1583,7 @@ For libeufin:
build libeufin
@item
- upgrade 'demo.taler.net'
+ upgrade ‘demo.taler.net’
@item
run demo upgrade checklist
@@ -1619,13 +1598,13 @@ For libeufin:
tag repo.
@item
- use 'deployment.git/packaging/*-docker/' to build Debian and Ubuntu packages
+ use ‘deployment.git/packaging/*-docker/’ to build Debian and Ubuntu packages
@item
- upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+ upload packages to ‘deb.taler.net’ (note: only Florian/Christian can sign)
@item
- change 'demo.taler.net' deployment to use new tag.
+ change ‘demo.taler.net’ deployment to use new tag.
@item
Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
@@ -1637,13 +1616,13 @@ For Python merchant frontend:
@itemize -
@item
- upgrade 'demo.taler.net'
+ upgrade ‘demo.taler.net’
@item
run demo upgrade checklist
@item
- change 'demo.taler.net' deployment to use new tag.
+ change ‘demo.taler.net’ deployment to use new tag.
@end itemize
Wallet-core:
@@ -1667,13 +1646,13 @@ Wallet-core:
tag repo.
@item
- use 'deployment.git/packaging/*-docker/' to build Debian and Ubuntu packages
+ use ‘deployment.git/packaging/*-docker/’ to build Debian and Ubuntu packages
@item
- upload packages to 'deb.taler.net' (note: only Florian/Christian can sign)
+ upload packages to ‘deb.taler.net’ (note: only Florian/Christian can sign)
@item
- change 'demo.taler.net' deployment to use new tag.
+ change ‘demo.taler.net’ deployment to use new tag.
@item
Upload triplet to ftp-upload.gnu.org/incoming/ftp or /incoming/alpha
@@ -1734,7 +1713,7 @@ Release announcement:
@end itemize
@node Release Process,Tagging,GNU Taler Release Checklist,Releases
-@anchor{taler-developer-manual release-process}@anchor{2e}
+@anchor{taler-developer-manual release-process}@anchor{2d}
@section Release Process
@@ -1769,7 +1748,7 @@ wallet-core (wallet-core.git)
@end itemize
@node Tagging,Database for tests,Release Process,Releases
-@anchor{taler-developer-manual tagging}@anchor{2f}
+@anchor{taler-developer-manual tagging}@anchor{2e}
@section Tagging
@@ -1781,7 +1760,7 @@ $ git push origin v0.1.0
@end example
@node Database for tests,Exchange merchant,Tagging,Releases
-@anchor{taler-developer-manual database-for-tests}@anchor{30}
+@anchor{taler-developer-manual database-for-tests}@anchor{2f}
@section Database for tests
@@ -1798,7 +1777,7 @@ secured from unauthorized access.
@end cartouche
@node Exchange merchant,Wallet WebExtension,Database for tests,Releases
-@anchor{taler-developer-manual exchange-merchant}@anchor{31}
+@anchor{taler-developer-manual exchange-merchant}@anchor{30}
@section Exchange, merchant
@@ -1845,7 +1824,7 @@ For bootstrap, you will need to install
GNU Recutils@footnote{https://www.gnu.org/software/recutils/}.
For the exchange test cases to pass, @code{make install} must be run first.
-Without it, test cases will fail because plugins can't be located.
+Without it, test cases will fail because plugins can’t be located.
@example
$ ./bootstrap
@@ -1857,7 +1836,7 @@ $ make install check
@end example
@node Wallet WebExtension,Upload to GNU mirrors,Exchange merchant,Releases
-@anchor{taler-developer-manual wallet-webextension}@anchor{32}
+@anchor{taler-developer-manual wallet-webextension}@anchor{31}
@section Wallet WebExtension
@@ -1871,7 +1850,7 @@ $ make dist
@end example
@node Upload to GNU mirrors,Creating Debian packages,Wallet WebExtension,Releases
-@anchor{taler-developer-manual upload-to-gnu-mirrors}@anchor{33}
+@anchor{taler-developer-manual upload-to-gnu-mirrors}@anchor{32}
@section Upload to GNU mirrors
@@ -1889,7 +1868,7 @@ symlink: taler-exchange-0.1.0.tar.gz taler-exchange-latest.tar.gz
Upload the files in `binary mode' to the ftp servers.
@node Creating Debian packages,,Upload to GNU mirrors,Releases
-@anchor{taler-developer-manual creating-debian-packages}@anchor{34}
+@anchor{taler-developer-manual creating-debian-packages}@anchor{33}
@section Creating Debian packages
@@ -1928,7 +1907,7 @@ Finally, make sure to clean up @code{~/incoming/} (by deleting the
now imported @code{*.deb} files).
@node Continuous integration,Internationalization,Releases,Top
-@anchor{taler-developer-manual continuous-integration}@anchor{35}
+@anchor{taler-developer-manual continuous-integration}@anchor{34}
@chapter Continuous integration
@@ -1936,21 +1915,21 @@ CI is done with Buildbot (@indicateurl{https://buildbot.net/}), and builds are
triggered by the means of Git hooks. The results are published at
@indicateurl{https://buildbot.taler.net/} .
-In order to avoid downtimes, CI uses a "blue/green" deployment
+In order to avoid downtimes, CI uses a “blue/green” deployment
technique. In detail, there are two users building code on the system,
-the "green" and the "blue" user; and at any given time, one is running
+the “green” and the “blue” user; and at any given time, one is running
Taler services and the other one is either building the code or waiting
for that.
There is also the possibility to trigger builds manually, but this is
-only reserved to "admin" users.
+only reserved to “admin” users.
@node Internationalization,iOS Apps,Continuous integration,Top
-@anchor{taler-developer-manual internationalization}@anchor{36}
+@anchor{taler-developer-manual internationalization}@anchor{35}
@chapter Internationalization
-Internationalization (a.k.a "Translation") is handled with Weblate (@indicateurl{https://weblate.org}) via our instance at @indicateurl{https://weblate.taler.net/} .
+Internationalization (a.k.a “Translation”) is handled with Weblate (@indicateurl{https://weblate.org}) via our instance at @indicateurl{https://weblate.taler.net/} .
At this time, this system is still very new for Taler.net and this documentation may be incorrect and is certainly incomplete.
@@ -1967,14 +1946,14 @@ At this time, this system is still very new for Taler.net and this documentation
@end menu
@node Who can Register,About Privilege Levels,,Internationalization
-@anchor{taler-developer-manual who-can-register}@anchor{37}
+@anchor{taler-developer-manual who-can-register}@anchor{36}
@section Who can Register
At this time, anyone can register an account at @indicateurl{https://weblate.taler.net/} to create translations. Registered users default to the `Users' and `Viewers' privilege level.
@node About Privilege Levels,Upgrading Privileges,Who can Register,Internationalization
-@anchor{taler-developer-manual about-privilege-levels}@anchor{38}
+@anchor{taler-developer-manual about-privilege-levels}@anchor{37}
@section About Privilege Levels
@@ -1997,21 +1976,21 @@ This is the breakdown of privilege levels in Weblate:
@end itemize
@node Upgrading Privileges,How to Create a Project,About Privilege Levels,Internationalization
-@anchor{taler-developer-manual upgrading-privileges}@anchor{39}
+@anchor{taler-developer-manual upgrading-privileges}@anchor{38}
@section Upgrading Privileges
To upgrade from `Users'/`Viewers', a superuser must manually augment your privileges. At this time, superusers are Christian, Florian, and Buck.
@node How to Create a Project,How to Create a Component,Upgrading Privileges,Internationalization
-@anchor{taler-developer-manual how-to-create-a-project}@anchor{3a}
+@anchor{taler-developer-manual how-to-create-a-project}@anchor{39}
@section How to Create a Project
The `GNU Taler' project is probably the correct project for most Components and Translations falling under this guide. Please contact a superuser if you need another Project created.
@node How to Create a Component,How to Create a Translation,How to Create a Project,Internationalization
-@anchor{taler-developer-manual how-to-create-a-component}@anchor{3b}
+@anchor{taler-developer-manual how-to-create-a-component}@anchor{3a}
@section How to Create a Component
@@ -2038,7 +2017,7 @@ Under `https://weblate.taler.net/create/component/vcs/':
`Repository push URL' - This is generally @code{git+ssh://git@@git.taler.net/<reponame>`} Check with @code{git remote -v}.
@item
-`Repository browser' - This is the www URL of the Git repo's file browser. Example @code{https://git.taler.net/<repositoryname>.git/tree/@{@{filename@}@}?h=@{@{branch@}@}#n@{@{line@}@}} where @code{<repositoryname>} gets replaced but @code{@{@{filename@}@}} and other items in braces are actual variables in the string.
+`Repository browser' - This is the www URL of the Git repo’s file browser. Example @code{https://git.taler.net/<repositoryname>.git/tree/@{@{filename@}@}?h=@{@{branch@}@}#n@{@{line@}@}} where @code{<repositoryname>} gets replaced but @code{@{@{filename@}@}} and other items in braces are actual variables in the string.
@item
`Merge style' - `Rebase', in line with GNU Taler development procedures
@@ -2051,7 +2030,7 @@ Under `https://weblate.taler.net/create/component/vcs/':
@end itemize
@node How to Create a Translation,Translation Standards and Practices,How to Create a Component,Internationalization
-@anchor{taler-developer-manual how-to-create-a-translation}@anchor{3c}
+@anchor{taler-developer-manual how-to-create-a-translation}@anchor{3b}
@section How to Create a Translation
@@ -2063,34 +2042,34 @@ Under `https://weblate.taler.net/create/component/vcs/':
4 - Choose the `Component' you wish to contribute to.
-5 - Find the language you want to translate into. Click "Translate" on that line.
+5 - Find the language you want to translate into. Click “Translate” on that line.
6 - Find a phrase and translate it.
You may also wish to refer to @indicateurl{https://docs.weblate.org/} .
@node Translation Standards and Practices,GPG Signing of Translations,How to Create a Translation,Internationalization
-@anchor{taler-developer-manual translation-standards-and-practices}@anchor{3d}
+@anchor{taler-developer-manual translation-standards-and-practices}@anchor{3c}
@section Translation Standards and Practices
-By default, our Weblate instance is set to accept translations in English, French, German, Italian, Russian, Spanish, and Portuguese. If you want to contribute a translation in a different language, navigate to the `Component' you want to translate for, and click "Start new translation" to begin. If you require a privilege upgrade, please contact a superuser with your request.
+By default, our Weblate instance is set to accept translations in English, French, German, Italian, Russian, Spanish, and Portuguese. If you want to contribute a translation in a different language, navigate to the `Component' you want to translate for, and click “Start new translation” to begin. If you require a privilege upgrade, please contact a superuser with your request.
When asked, set the license to GPLv3 or later.
Set commit/push to manual only.
@node GPG Signing of Translations,,Translation Standards and Practices,Internationalization
-@anchor{taler-developer-manual gpg-signing-of-translations}@anchor{3e}
+@anchor{taler-developer-manual gpg-signing-of-translations}@anchor{3d}
@section GPG Signing of Translations
weblate.taler.net signs GPG commits with the GPG key CD33CE35801462FA5EB0B695F2664BF474BFE502, and the corresponding public key can be found at @indicateurl{https://weblate.taler.net/keys/}.
-This means that contributions made through weblate will not be signed with the individual contributor's key when they are checked into the Git repository, but with the weblate key.
+This means that contributions made through weblate will not be signed with the individual contributor’s key when they are checked into the Git repository, but with the weblate key.
@node iOS Apps,Android Apps,Internationalization,Top
-@anchor{taler-developer-manual ios-apps}@anchor{3f}
+@anchor{taler-developer-manual ios-apps}@anchor{3e}
@chapter iOS Apps
@@ -2100,7 +2079,7 @@ This means that contributions made through weblate will not be signed with the i
@end menu
@node Building Taler Wallet for iOS from source,,,iOS Apps
-@anchor{taler-developer-manual build-ios-from-source}@anchor{40}@anchor{taler-developer-manual building-taler-wallet-for-ios-from-source}@anchor{41}
+@anchor{taler-developer-manual build-ios-from-source}@anchor{3f}@anchor{taler-developer-manual building-taler-wallet-for-ios-from-source}@anchor{40}
@section Building Taler Wallet for iOS from source
@@ -2114,7 +2093,7 @@ the official Git repository@footnote{https://git.taler.net/taler-ios.git}.
@end menu
@node Compatibility,Building,,Building Taler Wallet for iOS from source
-@anchor{taler-developer-manual compatibility}@anchor{42}
+@anchor{taler-developer-manual compatibility}@anchor{41}
@subsection Compatibility
@@ -2122,7 +2101,7 @@ The minimum version of iOS supported is 15.0.
This app runs on all iPhone models at least as new as the iPhone 6S.
@node Building,,Compatibility,Building Taler Wallet for iOS from source
-@anchor{taler-developer-manual building}@anchor{43}
+@anchor{taler-developer-manual building}@anchor{42}
@subsection Building
@@ -2132,7 +2111,7 @@ and the
wallet-core repo@footnote{https://git.taler.net/wallet-core.git}.
Have all 3 local repos (wallet-core, quickjs-tart, and this one) adjacent at
-the same level (e.g. in a "GNU_Taler" folder)
+the same level (e.g. in a “GNU_Taler” folder)
Taler.xcworkspace expects the QuickJS framework sub-project to be at
@code{../quickjs-tart/QuickJS-rt.xcodeproj}.
@@ -2144,17 +2123,17 @@ $ make embedded
$ open packages/taler-wallet-embedded/dist
@end example
-then drag or move its product "taler-wallet-core-qjs.mjs"
+then drag or move its product “taler-wallet-core-qjs.mjs”
into your quickjs-tart folder right at the top level.
-Open Taler.xcworkspace, and set scheme / target to Taler_Wallet. Build&run...
+Open Taler.xcworkspace, and set scheme / target to Taler_Wallet. Build&run…
-Don't open QuickJS-rt.xcodeproj or TalerWallet.xcodeproj and build anything
+Don’t open QuickJS-rt.xcodeproj or TalerWallet.xcodeproj and build anything
there - all needed libraries and frameworks will be built automatically from
Taler.xcworkspace.
@node Android Apps,Code Coverage,iOS Apps,Top
-@anchor{taler-developer-manual android-apps}@anchor{44}
+@anchor{taler-developer-manual android-apps}@anchor{43}
@chapter Android Apps
@@ -2167,7 +2146,7 @@ Taler.xcworkspace.
@end menu
@node Android App Nightly Builds,Building apps from source,,Android Apps
-@anchor{taler-developer-manual android-app-nightly-builds}@anchor{45}
+@anchor{taler-developer-manual android-app-nightly-builds}@anchor{44}
@section Android App Nightly Builds
@@ -2192,7 +2171,7 @@ Cashier
Their git repositories are mirrored at Gitlab@footnote{https://gitlab.com/gnu-taler/taler-android}
to utilize their CI
-and F-Droid@footnote{https://f-droid.org}'s Gitlab integration
+and F-Droid@footnote{https://f-droid.org}’s Gitlab integration
to publish automatic nightly builds@footnote{https://f-droid.org/docs/Publishing_Nightly_Builds/}
for each change on the @code{master} branch.
@@ -2218,7 +2197,7 @@ Use at your own risk!
@end cartouche
@node Building apps from source,Update translations,Android App Nightly Builds,Android Apps
-@anchor{taler-developer-manual build-apps-from-source}@anchor{46}@anchor{taler-developer-manual building-apps-from-source}@anchor{47}
+@anchor{taler-developer-manual build-apps-from-source}@anchor{45}@anchor{taler-developer-manual building-apps-from-source}@anchor{46}
@section Building apps from source
@@ -2242,7 +2221,7 @@ git
unzip
@end itemize
-Then you can get the app's source code using git:
+Then you can get the app’s source code using git:
@example
# Start by cloning the Android git repository
@@ -2259,12 +2238,12 @@ The last command will return something like @code{compileSdkVersion 29}.
So visit the Android Rebuilds@footnote{http://android-rebuilds.beuc.net/} project
and look for that version of the Android SDK there.
If the SDK version is not yet available as a free rebuild,
-you can try to lower the @code{compileSdkVersion} in the app's @code{merchant-terminal/build.gradle} file.
+you can try to lower the @code{compileSdkVersion} in the app’s @code{merchant-terminal/build.gradle} file.
Note that this might break things
or require you to also lower other versions such as @code{targetSdkVersion}.
In our example, the version is @code{29} which is available,
-so download the "SDK Platform" package of "Android 10.0.0 (API 29)"
+so download the “SDK Platform” package of “Android 10.0.0 (API 29)”
and unpack it:
@example
@@ -2297,18 +2276,18 @@ build-tools;29.0.3 Android SDK Build-Tools 29.0.3
@end table
@end quotation
-you can try changing the @code{buildToolsVersion} in the app's @code{merchant-terminal/build.gradle} file
-to the latest "Android SDK build tools" version supported by the Android Rebuilds project.
+you can try changing the @code{buildToolsVersion} in the app’s @code{merchant-terminal/build.gradle} file
+to the latest “Android SDK build tools” version supported by the Android Rebuilds project.
After the build finished successfully,
you will find your APK in @code{merchant-terminal/build/outputs/apk/release/}.
@node Update translations,Release process,Building apps from source,Android Apps
-@anchor{taler-developer-manual update-translations}@anchor{48}
+@anchor{taler-developer-manual update-translations}@anchor{47}
@section Update translations
-Translations are managed with Taler's weblate instance:
+Translations are managed with Taler’s weblate instance:
@indicateurl{https://weblate.taler.net/projects/gnu-taler/}
To update translations, enter the taler-android git repository
@@ -2338,7 +2317,7 @@ Afterwards, build the entire project from source and test the UI
to ensure that no erroneous translations (missing placeholders) are breaking things.
@node Release process,,Update translations,Android Apps
-@anchor{taler-developer-manual id1}@anchor{49}
+@anchor{taler-developer-manual id1}@anchor{48}
@section Release process
@@ -2369,12 +2348,12 @@ $ git tag -s $APP-$VERSION
@end menu
@node F-Droid,Google Play,,Release process
-@anchor{taler-developer-manual id2}@anchor{4a}
+@anchor{taler-developer-manual id2}@anchor{49}
@subsection F-Droid
Nightly builds get published automatically (see above) after pushing code to the official repo.
-Actual releases get picked up by F-Droid's official repository via git tags.
+Actual releases get picked up by F-Droid’s official repository via git tags.
So ensure that all releases get tagged properly.
Some information for F-Droid official repository debugging:
@@ -2393,7 +2372,7 @@ PoS: [metadata@footnote{https://gitlab.com/fdroid/fdroiddata/-/blob/master/metad
@end itemize
@node Google Play,,F-Droid,Release process
-@anchor{taler-developer-manual google-play}@anchor{4b}
+@anchor{taler-developer-manual google-play}@anchor{4a}
@subsection Google Play
@@ -2415,7 +2394,7 @@ All uploads are going to the beta track by default.
These can be promoted to production later or immediately after upload if you feel daring.
@node Code Coverage,Coding Conventions,Android Apps,Top
-@anchor{taler-developer-manual id3}@anchor{4c}@anchor{taler-developer-manual id4}@anchor{4d}
+@anchor{taler-developer-manual id3}@anchor{4b}@anchor{taler-developer-manual id4}@anchor{4c}
@chapter Code Coverage
@@ -2425,7 +2404,7 @@ nightly (once a day) by a Buildbot worker. The coverage results are
then published at @indicateurl{https://lcov.taler.net/} .
@node Coding Conventions,Testing library,Code Coverage,Top
-@anchor{taler-developer-manual coding-conventions}@anchor{4e}
+@anchor{taler-developer-manual coding-conventions}@anchor{4d}
@chapter Coding Conventions
@@ -2442,7 +2421,7 @@ GNU Taler is developed primarily in C, Kotlin, Python, Swift and TypeScript.
@end menu
@node Components written in C,Shell Scripts,,Coding Conventions
-@anchor{taler-developer-manual components-written-in-c}@anchor{4f}
+@anchor{taler-developer-manual components-written-in-c}@anchor{4e}
@section Components written in C
@@ -2462,7 +2441,7 @@ by the GNUnet style: @indicateurl{https://docs.gnunet.org/handbook/gnunet.html#C
@end menu
@node Naming conventions,,,Components written in C
-@anchor{taler-developer-manual naming-conventions}@anchor{50}
+@anchor{taler-developer-manual naming-conventions}@anchor{4f}
@subsection Naming conventions
@@ -2476,22 +2455,22 @@ include files (very similar to GNUnet):
@itemize *
@item
-if installed, must start with "@code{taler_}" (exception: platform.h),
+if installed, must start with “@code{taler_}” (exception: platform.h),
and MUST live in src/include/
@item
-if NOT installed, must NOT start with "@code{taler_}" and
+if NOT installed, must NOT start with “@code{taler_}” and
MUST NOT live in src/include/ and
SHOULD NOT be included from outside of their own directory
@item
-end in "_lib" for "simple" libraries
+end in “_lib” for “simple” libraries
@item
-end in "_plugin" for plugins
+end in “_plugin” for plugins
@item
-end in "_service" for libraries accessing a service, i.e. the exchange
+end in “_service” for libraries accessing a service, i.e. the exchange
@end itemize
@item
@@ -2524,22 +2503,22 @@ logging
@item
tools use their full name in GNUNET_log_setup
-(i.e. 'taler-exchange-offline') and log using plain 'GNUNET_log'.
+(i.e. ‘taler-exchange-offline’) and log using plain ‘GNUNET_log’.
@item
-pure libraries (without associated service) use 'GNUNET_log_from'
-with the component set to their library name (without lib or '.so'),
-which should also be their directory name (i.e. 'util')
+pure libraries (without associated service) use ‘GNUNET_log_from’
+with the component set to their library name (without lib or ‘.so’),
+which should also be their directory name (i.e. ‘util’)
@item
-plugin libraries (without associated service) use 'GNUNET_log_from'
-with the component set to their type and plugin name (without lib or '.so'),
-which should also be their directory name (i.e. 'exchangedb-postgres')
+plugin libraries (without associated service) use ‘GNUNET_log_from’
+with the component set to their type and plugin name (without lib or ‘.so’),
+which should also be their directory name (i.e. ‘exchangedb-postgres’)
@item
-libraries with associated service) use 'GNUNET_log_from'
+libraries with associated service) use ‘GNUNET_log_from’
with the name of the service, which should also be their
-directory name (i.e. 'exchange')
+directory name (i.e. ‘exchange’)
@item
for tools with @code{-l LOGFILE}, its absence means write logs to stderr
@@ -2581,14 +2560,14 @@ structs:
@itemize *
@item
-structs that are 'packed' and do not contain pointers and are
+structs that are ‘packed’ and do not contain pointers and are
thus suitable for hashing or similar operations are distinguished
-by adding a "P" at the end of the name. (NEW) Note that this
+by adding a “P” at the end of the name. (NEW) Note that this
convention does not hold for the GNUnet-structs (yet).
@item
structs that are used with a purpose for signatures, additionally
-get an "S" at the end of the name.
+get an “S” at the end of the name.
@end itemize
@item
@@ -2608,7 +2587,7 @@ testcases
@itemize *
@item
-must be called "test_module-under-test_case-description.c"
+must be called “test_module-under-test_case-description.c”
@end itemize
@item
@@ -2618,12 +2597,12 @@ performance tests
@itemize *
@item
-must be called "perf_module-under-test_case-description.c"
+must be called “perf_module-under-test_case-description.c”
@end itemize
@end itemize
@node Shell Scripts,Kotlin,Components written in C,Coding Conventions
-@anchor{taler-developer-manual shell-scripts}@anchor{51}
+@anchor{taler-developer-manual shell-scripts}@anchor{50}
@section Shell Scripts
@@ -2650,7 +2629,7 @@ $ set -eu
@end example
@node Kotlin,Python,Shell Scripts,Coding Conventions
-@anchor{taler-developer-manual kotlin}@anchor{52}
+@anchor{taler-developer-manual kotlin}@anchor{51}
@section Kotlin
@@ -2658,7 +2637,7 @@ We so far have no specific guidelines, please follow best practices
for the language.
@node Python,Swift,Kotlin,Coding Conventions
-@anchor{taler-developer-manual python}@anchor{53}
+@anchor{taler-developer-manual python}@anchor{52}
@section Python
@@ -2670,14 +2649,14 @@ for the language.
@end menu
@node Supported Python Versions,Style,,Python
-@anchor{taler-developer-manual supported-python-versions}@anchor{54}
+@anchor{taler-developer-manual supported-python-versions}@anchor{53}
@subsection Supported Python Versions
Python code should be written and build against version 3.7 of Python.
@node Style,Python for Scripting,Supported Python Versions,Python
-@anchor{taler-developer-manual style}@anchor{55}
+@anchor{taler-developer-manual style}@anchor{54}
@subsection Style
@@ -2687,7 +2666,7 @@ A reusable yapf style file can be found in @code{build-common},
which is intended to be used as a git submodule.
@node Python for Scripting,,Style,Python
-@anchor{taler-developer-manual python-for-scripting}@anchor{56}
+@anchor{taler-developer-manual python-for-scripting}@anchor{55}
@subsection Python for Scripting
@@ -2704,26 +2683,26 @@ are useful:
@code{pathlib} for path manipulation (part of the standard library)
@item
-@code{subprocess} for "shelling out" to other programs. Prefer @code{subprocess.run}
+@code{subprocess} for “shelling out” to other programs. Prefer @code{subprocess.run}
over the older APIs.
@end itemize
@node Swift,TypeScript,Python,Coding Conventions
-@anchor{taler-developer-manual swift}@anchor{57}
+@anchor{taler-developer-manual swift}@anchor{56}
@section Swift
Please follow best practices for the language.
@node TypeScript,,Swift,Coding Conventions
-@anchor{taler-developer-manual typescript}@anchor{58}
+@anchor{taler-developer-manual typescript}@anchor{57}
@section TypeScript
Please follow best practices for the language.
@node Testing library,User-Facing Terminology,Coding Conventions,Top
-@anchor{taler-developer-manual testing-library}@anchor{59}
+@anchor{taler-developer-manual testing-library}@anchor{58}
@chapter Testing library
@@ -2796,7 +2775,7 @@ Please refer to the Twister codebase (under the @code{test} directory) in
order to see how to configure it.
@node User-Facing Terminology,Developer Glossary,Testing library,Top
-@anchor{taler-developer-manual user-facing-terminology}@anchor{5a}
+@anchor{taler-developer-manual user-facing-terminology}@anchor{59}
@chapter User-Facing Terminology
@@ -2810,7 +2789,7 @@ used in the user interface and help materials.
@end menu
@node Terms to Avoid,Terms to Use,,User-Facing Terminology
-@anchor{taler-developer-manual terms-to-avoid}@anchor{5b}
+@anchor{taler-developer-manual terms-to-avoid}@anchor{5a}
@section Terms to Avoid
@@ -2822,21 +2801,21 @@ used in the user interface and help materials.
Refreshing is the internal technical terminology for the protocol to
give change for partially spent coins
-`Use instead': "Obtaining change"
+`Use instead': “Obtaining change”
@item Charge
Charge has two opposite meanings (charge to a credit card vs. charge a battery).
This can confuse users.
-`Use instead': "Obtain", "Credit", "Debit", "Withdraw", "Top up"
+`Use instead': “Obtain”, “Credit”, “Debit”, “Withdraw”, “Top up”
@item Coin
Coins are an internal construct, the user should never be aware that their balance
is represented by coins of different denominations.
-`Use instead': "(Digital) Cash" or "(Wallet) Balance"
+`Use instead': “(Digital) Cash” or “(Wallet) Balance”
@item Consumer
@@ -2851,7 +2830,7 @@ of the signed contract terms for an order.
`Avoid'. Generally events that relate to proposal downloads
should not be shown to normal users, only developers. Instead, use
-"communication with mechant failed" if a proposed order can't be downloaded.
+“communication with mechant failed” if a proposed order can’t be downloaded.
@item Anonymous E-Cash
@@ -2859,14 +2838,14 @@ Should be generally avoided, since Taler is only anonymous for
the customer. Also some people are scared of anonymity (which as
a term is also way too absolute, as anonymity is hardly ever perfect).
-`Use instead': "Privacy-preserving", "Privacy-friendly"
+`Use instead': “Privacy-preserving”, “Privacy-friendly”
@item Payment Replay
The process of proving to the merchant that the customer is entitled
to view a digital product again, as they already paid for it.
-`Use instead': In the event history, "re-activated digital content purchase"
+`Use instead': In the event history, “re-activated digital content purchase”
could be used. (FIXME: this is still not nice.)
@item Session ID
@@ -2886,7 +2865,7 @@ with their payment. Can also be something like a donation receipt.
@end table
@node Terms to Use,,Terms to Avoid,User-Facing Terminology
-@anchor{taler-developer-manual terms-to-use}@anchor{5c}
+@anchor{taler-developer-manual terms-to-use}@anchor{5b}
@section Terms to Use
@@ -2902,16 +2881,16 @@ Regulatory entity that certifies exchanges and oversees their operation.
The entity/service that gives out digital cash in exchange for some
other means of payment.
-In some contexts, using "Issuer" could also be appropriate.
+In some contexts, using “Issuer” could also be appropriate.
When showing a balance breakdown,
-we can say "100 Eur (issued by exchange.euro.taler.net)".
-Sometimes we may also use the more generic term "Payment Service Provider"
-when the concept of an "Exchange" is still unclear to the reader.
+we can say “100 Eur (issued by exchange.euro.taler.net)”.
+Sometimes we may also use the more generic term “Payment Service Provider”
+when the concept of an “Exchange” is still unclear to the reader.
@item Refund
-A refund is given by a merchant to the customer (rather the customer's wallet)
-and "undoes" a previous payment operation.
+A refund is given by a merchant to the customer (rather the customer’s wallet)
+and “undoes” a previous payment operation.
@item Payment
@@ -2919,12 +2898,12 @@ The act of sending digital cash to a merchant to pay for an order.
@item Purchase
-Used to refer to the "result" of a payment, as in "view purchase".
-Use sparsingly, as the word doesn't fit for all payments, such as donations.
+Used to refer to the “result” of a payment, as in “view purchase”.
+Use sparsingly, as the word doesn’t fit for all payments, such as donations.
@item Contract Terms
-Partially machine-readable representation of the merchant's obligation after the
+Partially machine-readable representation of the merchant’s obligation after the
customer makes a payment.
@item Merchant
@@ -2933,12 +2912,12 @@ Party that receives a payment.
@item Wallet
-Also "Taler Wallet". Software component that manages the user's digital cash
+Also “Taler Wallet”. Software component that manages the user’s digital cash
and payments.
@end table
@node Developer Glossary,Developer Tools,User-Facing Terminology,Top
-@anchor{taler-developer-manual developer-glossary}@anchor{5d}
+@anchor{taler-developer-manual developer-glossary}@anchor{5c}
@chapter Developer Glossary
@@ -2947,168 +2926,168 @@ use when talking to end users or even system administrators.
@table @asis
-@anchor{taler-developer-manual term-absolute-time}@anchor{5e}
+@anchor{taler-developer-manual term-absolute-time}@anchor{5d}
@geindex absolute time
@item absolute time
-method of keeping time in @ref{5f,,GNUnet} where the time is represented
+method of keeping time in @ref{5e,,GNUnet} where the time is represented
as the number of microseconds since 1.1.1970 (UNIX epoch). Called
-absolute time in contrast to @ref{60,,relative time}.
-@anchor{taler-developer-manual term-aggregate}@anchor{61}
+absolute time in contrast to @ref{5f,,relative time}.
+@anchor{taler-developer-manual term-aggregate}@anchor{60}
@geindex aggregate
@item aggregate
-the @ref{62,,exchange} combines multiple payments received by the
-same @ref{63,,merchant} into one larger @ref{64,,wire transfer} to
-the respective merchant's @ref{65,,bank} account
-@anchor{taler-developer-manual term-auditor}@anchor{66}
+the @ref{61,,exchange} combines multiple payments received by the
+same @ref{62,,merchant} into one larger @ref{63,,wire transfer} to
+the respective merchant’s @ref{64,,bank} account
+@anchor{taler-developer-manual term-auditor}@anchor{65}
@geindex auditor
@item auditor
-trusted third party that verifies that the @ref{62,,exchange} is operating correctly
-@anchor{taler-developer-manual term-bank}@anchor{65}
+trusted third party that verifies that the @ref{61,,exchange} is operating correctly
+@anchor{taler-developer-manual term-bank}@anchor{64}
@geindex bank
@item bank
-traditional financial service provider who offers wire @ref{67,,transfers} between accounts
-@anchor{taler-developer-manual term-buyer}@anchor{68}
+traditional financial service provider who offers wire @ref{66,,transfers} between accounts
+@anchor{taler-developer-manual term-buyer}@anchor{67}
@geindex buyer
@item buyer
-individual in control of a Taler @ref{69,,wallet}, usually using it to
-@ref{6a,,spend} the @ref{6b,,coins} on @ref{6c,,contracts} (see also @ref{6d,,customer}).
-@anchor{taler-developer-manual term-close}@anchor{6e}
+individual in control of a Taler @ref{68,,wallet}, usually using it to
+@ref{69,,spend} the @ref{6a,,coins} on @ref{6b,,contracts} (see also @ref{6c,,customer}).
+@anchor{taler-developer-manual term-close}@anchor{6d}
@geindex close
-@item close@anchor{taler-developer-manual term-closes}@anchor{6f}
+@item close@anchor{taler-developer-manual term-closes}@anchor{6e}
@geindex closes
-@itemx closes@anchor{taler-developer-manual term-closed}@anchor{70}
+@itemx closes@anchor{taler-developer-manual term-closed}@anchor{6f}
@geindex closed
-@itemx closed@anchor{taler-developer-manual term-closing}@anchor{71}
+@itemx closed@anchor{taler-developer-manual term-closing}@anchor{70}
@geindex closing
@itemx closing
-operation an @ref{62,,exchange} performs on a @ref{72,,reserve} that has not been
-@ref{73,,drained} by @ref{74,,withdraw} operations. When closing a reserve, the
-exchange wires the remaining funds back to the customer, minus a @ref{75,,fee}
+operation an @ref{61,,exchange} performs on a @ref{71,,reserve} that has not been
+@ref{72,,drained} by @ref{73,,withdraw} operations. When closing a reserve, the
+exchange wires the remaining funds back to the customer, minus a @ref{74,,fee}
for closing
-@anchor{taler-developer-manual term-coin}@anchor{76}
+@anchor{taler-developer-manual term-coin}@anchor{75}
@geindex coin
-@item coin@anchor{taler-developer-manual term-coins}@anchor{6b}
+@item coin@anchor{taler-developer-manual term-coins}@anchor{6a}
@geindex coins
@itemx coins
-coins are individual token representing a certain amount of value, also known as the @ref{77,,denomination} of the coin
-@anchor{taler-developer-manual term-commitment}@anchor{78}
+coins are individual token representing a certain amount of value, also known as the @ref{76,,denomination} of the coin
+@anchor{taler-developer-manual term-commitment}@anchor{77}
@geindex commitment
-@item commitment@anchor{taler-developer-manual term-refresh-commitment}@anchor{79}
+@item commitment@anchor{taler-developer-manual term-refresh-commitment}@anchor{78}
@geindex refresh commitment
@itemx refresh commitment
-data that the wallet commits to during the @ref{7a,,melt} stage of the
-@ref{7b,,refresh} protocol where it
-has to prove to the @ref{62,,exchange} that it is deriving the @ref{7c,,fresh}
+data that the wallet commits to during the @ref{79,,melt} stage of the
+@ref{7a,,refresh} protocol where it
+has to prove to the @ref{61,,exchange} that it is deriving the @ref{7b,,fresh}
coins as specified by the Taler protocol. The commitment is verified
-probabilistically (see: @ref{7d,,kappa}) during the @ref{7e,,reveal} stage.
-@anchor{taler-developer-manual term-contract}@anchor{7f}
+probabilistically (see: @ref{7c,,kappa}) during the @ref{7d,,reveal} stage.
+@anchor{taler-developer-manual term-contract}@anchor{7e}
@geindex contract
-@item contract@anchor{taler-developer-manual term-contracts}@anchor{6c}
+@item contract@anchor{taler-developer-manual term-contracts}@anchor{6b}
@geindex contracts
@itemx contracts
-formal agreement between @ref{63,,merchant} and @ref{6d,,customer} specifying the
-@ref{80,,contract terms} and signed by the merchant and the @ref{6b,,coins} of the
+formal agreement between @ref{62,,merchant} and @ref{6c,,customer} specifying the
+@ref{7f,,contract terms} and signed by the merchant and the @ref{6a,,coins} of the
customer
-@anchor{taler-developer-manual term-contract-terms}@anchor{80}
+@anchor{taler-developer-manual term-contract-terms}@anchor{7f}
@geindex contract terms
@item contract terms
the individual clauses specifying what the buyer is purchasing from the
-@ref{63,,merchant}
-@anchor{taler-developer-manual term-customer}@anchor{6d}
+@ref{62,,merchant}
+@anchor{taler-developer-manual term-customer}@anchor{6c}
@geindex customer
@item customer
individual that directs the buyer (perhaps the same individual) to make a purchase
-@anchor{taler-developer-manual term-denomination}@anchor{77}
+@anchor{taler-developer-manual term-denomination}@anchor{76}
@geindex denomination
@item denomination
-unit of currency, specifies both the currency and the face value of a @ref{76,,coin},
+unit of currency, specifies both the currency and the face value of a @ref{75,,coin},
as well as associated fees and validity periods
-@anchor{taler-developer-manual term-denomination-key}@anchor{81}
+@anchor{taler-developer-manual term-denomination-key}@anchor{80}
@geindex denomination key
@item denomination key
-(RSA) key used by the exchange to certify that a given @ref{76,,coin} is valid and of a
-particular @ref{77,,denomination}
-@anchor{taler-developer-manual term-deposit}@anchor{82}
+(RSA) key used by the exchange to certify that a given @ref{75,,coin} is valid and of a
+particular @ref{76,,denomination}
+@anchor{taler-developer-manual term-deposit}@anchor{81}
@geindex deposit
-@item deposit@anchor{taler-developer-manual term-deposits}@anchor{83}
+@item deposit@anchor{taler-developer-manual term-deposits}@anchor{82}
@geindex deposits
-@itemx deposits@anchor{taler-developer-manual term-depositing}@anchor{84}
+@itemx deposits@anchor{taler-developer-manual term-depositing}@anchor{83}
@geindex depositing
@itemx depositing
operation by which a merchant passes coins to an exchange, expecting the
exchange to credit his bank account in the future using an
-@ref{61,,aggregate} @ref{64,,wire transfer}
-@anchor{taler-developer-manual term-dirty}@anchor{85}
+@ref{60,,aggregate} @ref{63,,wire transfer}
+@anchor{taler-developer-manual term-dirty}@anchor{84}
@geindex dirty
-@item dirty@anchor{taler-developer-manual term-dirty-coin}@anchor{86}
+@item dirty@anchor{taler-developer-manual term-dirty-coin}@anchor{85}
@geindex dirty coin
@itemx dirty coin
a coin is dirty if its public key may be known to an entity other than
the customer, thereby creating the danger of some entity being able to
-link multiple transactions of coin's owner if the coin is not refreshed
-@anchor{taler-developer-manual term-drain}@anchor{87}
+link multiple transactions of coin’s owner if the coin is not refreshed
+@anchor{taler-developer-manual term-drain}@anchor{86}
@geindex drain
-@item drain@anchor{taler-developer-manual term-drained}@anchor{73}
+@item drain@anchor{taler-developer-manual term-drained}@anchor{72}
@geindex drained
@itemx drained
-a @ref{72,,reserve} is being drained when a @ref{69,,wallet} is using the
-reserve's private key to @ref{74,,withdraw} coins from it. This reduces
+a @ref{71,,reserve} is being drained when a @ref{68,,wallet} is using the
+reserve’s private key to @ref{73,,withdraw} coins from it. This reduces
the balance of the reserve. Once the balance reaches zero, we say that
the reserve has been (fully) drained. Reserves that are not drained
-(which is the normal process) are @ref{70,,closed} by the exchange.
-@anchor{taler-developer-manual term-exchange}@anchor{62}
+(which is the normal process) are @ref{6f,,closed} by the exchange.
+@anchor{taler-developer-manual term-exchange}@anchor{61}
@geindex exchange
@item exchange
-Taler's payment service operator. Issues electronic coins during
+Taler’s payment service operator. Issues electronic coins during
withdrawal and redeems them when they are deposited by merchants
-@anchor{taler-developer-manual term-expired}@anchor{88}
+@anchor{taler-developer-manual term-expired}@anchor{87}
@geindex expired
-@item expired@anchor{taler-developer-manual term-expiration}@anchor{89}
+@item expired@anchor{taler-developer-manual term-expiration}@anchor{88}
@geindex expiration
@itemx expiration
@@ -3117,52 +3096,52 @@ Various operations come with time limits. In particular, denomination keys
come with strict time limits for the various operations involving the
coin issued under the denomination. The most important limit is the
deposit expiration, which specifies until when wallets are allowed to
-use the coin in deposit or refreshing operations. There is also a "legal"
+use the coin in deposit or refreshing operations. There is also a “legal”
expiration, which specifies how long the exchange keeps records beyond the
deposit expiration time. This latter expiration matters for legal disputes
in courts and also creates an upper limit for refreshing operations on
special zombie coin
-@anchor{taler-developer-manual term-fakebank}@anchor{8a}
+@anchor{taler-developer-manual term-fakebank}@anchor{89}
@geindex fakebank
@item fakebank
-implementation of the @ref{65,,bank} API in memory to be used only for test
+implementation of the @ref{64,,bank} API in memory to be used only for test
cases.
-@anchor{taler-developer-manual term-fee}@anchor{75}
+@anchor{taler-developer-manual term-fee}@anchor{74}
@geindex fee
@item fee
-an @ref{62,,exchange} charges various fees for its service. The different
+an @ref{61,,exchange} charges various fees for its service. The different
fees are specified in the protocol. There are fees per coin for
-@ref{8b,,withdrawing}, @ref{84,,depositing}, @ref{8c,,melting}, and
-@ref{8d,,refunding}. Furthermore, there are fees per wire transfer
-for @ref{71,,closing} a @ref{72,,reserve}: and for
-@ref{61,,aggregate} @ref{8e,,wire transfers} to the @ref{63,,merchant}.
-@anchor{taler-developer-manual term-fresh}@anchor{7c}
+@ref{8a,,withdrawing}, @ref{83,,depositing}, @ref{8b,,melting}, and
+@ref{8c,,refunding}. Furthermore, there are fees per wire transfer
+for @ref{70,,closing} a @ref{71,,reserve}: and for
+@ref{60,,aggregate} @ref{8d,,wire transfers} to the @ref{62,,merchant}.
+@anchor{taler-developer-manual term-fresh}@anchor{7b}
@geindex fresh
-@item fresh@anchor{taler-developer-manual term-fresh-coin}@anchor{8f}
+@item fresh@anchor{taler-developer-manual term-fresh-coin}@anchor{8e}
@geindex fresh coin
@itemx fresh coin
a coin is fresh if its public key is only known to the customer
-@anchor{taler-developer-manual term-GNUnet}@anchor{5f}
+@anchor{taler-developer-manual term-GNUnet}@anchor{5e}
@geindex GNUnet
@item GNUnet
Codebase of various libraries for a better Internet, some of which
GNU Taler depends upon.
-@anchor{taler-developer-manual term-json}@anchor{90}
+@anchor{taler-developer-manual term-json}@anchor{8f}
@geindex json
-@item json@anchor{taler-developer-manual term-JSON}@anchor{91}
+@item json@anchor{taler-developer-manual term-JSON}@anchor{90}
@geindex JSON
-@itemx JSON@anchor{taler-developer-manual term-JavaScript-Object-Notation}@anchor{92}
+@itemx JSON@anchor{taler-developer-manual term-JavaScript-Object-Notation}@anchor{91}
@geindex JavaScript Object Notation
@itemx JavaScript Object Notation
@@ -3170,192 +3149,192 @@ GNU Taler depends upon.
serialization format derived from the JavaScript language which is
commonly used in the Taler protocol as the payload of HTTP requests
and responses.
-@anchor{taler-developer-manual term-kappa}@anchor{7d}
+@anchor{taler-developer-manual term-kappa}@anchor{7c}
@geindex kappa
@item kappa
-security parameter used in the @ref{7b,,refresh} protocol. Defined to be 3.
+security parameter used in the @ref{7a,,refresh} protocol. Defined to be 3.
The probability of successfully evading the income transparency with the
refresh protocol is 1:kappa.
-@anchor{taler-developer-manual term-LibEuFin}@anchor{93}
+@anchor{taler-developer-manual term-LibEuFin}@anchor{92}
@geindex LibEuFin
@item LibEuFin
FIXME: explain
-@anchor{taler-developer-manual term-link}@anchor{94}
+@anchor{taler-developer-manual term-link}@anchor{93}
@geindex link
-@item link@anchor{taler-developer-manual term-linking}@anchor{95}
+@item link@anchor{taler-developer-manual term-linking}@anchor{94}
@geindex linking
@itemx linking
-specific step in the @ref{7b,,refresh} protocol that an exchange must offer
-to prevent abuse of the @ref{7b,,refresh} mechanism. The link step is
+specific step in the @ref{7a,,refresh} protocol that an exchange must offer
+to prevent abuse of the @ref{7a,,refresh} mechanism. The link step is
not needed in normal operation, it just must be offered.
-@anchor{taler-developer-manual term-master-key}@anchor{96}
+@anchor{taler-developer-manual term-master-key}@anchor{95}
@geindex master key
@item master key
offline key used by the exchange to certify denomination keys and
message signing keys
-@anchor{taler-developer-manual term-melt}@anchor{7a}
+@anchor{taler-developer-manual term-melt}@anchor{79}
@geindex melt
-@item melt@anchor{taler-developer-manual term-melted}@anchor{97}
+@item melt@anchor{taler-developer-manual term-melted}@anchor{96}
@geindex melted
-@itemx melted@anchor{taler-developer-manual term-melting}@anchor{8c}
+@itemx melted@anchor{taler-developer-manual term-melting}@anchor{8b}
@geindex melting
@itemx melting
-step of the @ref{7b,,refresh} protocol where a @ref{86,,dirty coin}
-is invalidated to be reborn @ref{7c,,fresh} in a subsequent
-@ref{7e,,reveal} step.
-@anchor{taler-developer-manual term-merchant}@anchor{63}
+step of the @ref{7a,,refresh} protocol where a @ref{85,,dirty coin}
+is invalidated to be reborn @ref{7b,,fresh} in a subsequent
+@ref{7d,,reveal} step.
+@anchor{taler-developer-manual term-merchant}@anchor{62}
@geindex merchant
@item merchant
party receiving payments (usually in return for goods or services)
-@anchor{taler-developer-manual term-message-signing-key}@anchor{98}
+@anchor{taler-developer-manual term-message-signing-key}@anchor{97}
@geindex message signing key
@item message signing key
key used by the exchange to sign online messages, other than coins
-@anchor{taler-developer-manual term-order}@anchor{99}
+@anchor{taler-developer-manual term-order}@anchor{98}
@geindex order
@item order
offer made by the merchant to a wallet; pre-cursor to
a contract where the wallet is not yet fixed. Turns
-into a @ref{7f,,contract} when a wallet claims the order.
-@anchor{taler-developer-manual term-owner}@anchor{9a}
+into a @ref{7e,,contract} when a wallet claims the order.
+@anchor{taler-developer-manual term-owner}@anchor{99}
@geindex owner
@item owner
a coin is owned by the entity that knows the private key of the coin
-@anchor{taler-developer-manual term-planchet}@anchor{9b}
+@anchor{taler-developer-manual term-planchet}@anchor{9a}
@geindex planchet
@item planchet
-precursor data for a @ref{76,,coin}. A planchet includes the coin's internal
+precursor data for a @ref{75,,coin}. A planchet includes the coin’s internal
secrets (coin private key, blinding factor), but lacks the RSA signature
-of the @ref{62,,exchange}. When @ref{8b,,withdrawing}, a @ref{69,,wallet}
+of the @ref{61,,exchange}. When @ref{8a,,withdrawing}, a @ref{68,,wallet}
creates and persists a planchet before asking the exchange to sign it to
get the coin.
-@anchor{taler-developer-manual term-privacy-policy}@anchor{9c}
+@anchor{taler-developer-manual term-privacy-policy}@anchor{9b}
@geindex privacy policy
@item privacy policy
Statement of an operator how they will protect the privacy of users.
-@anchor{taler-developer-manual term-proof}@anchor{9d}
+@anchor{taler-developer-manual term-proof}@anchor{9c}
@geindex proof
@item proof
Message that cryptographically demonstrates that a particular claim is correct.
-@anchor{taler-developer-manual term-proposal}@anchor{9e}
+@anchor{taler-developer-manual term-proposal}@anchor{9d}
@geindex proposal
@item proposal
-a list of @ref{80,,contract terms} that has been completed and signed by the
+a list of @ref{7f,,contract terms} that has been completed and signed by the
merchant backend.
-@anchor{taler-developer-manual term-purchase}@anchor{9f}
+@anchor{taler-developer-manual term-purchase}@anchor{9e}
@geindex purchase
@item purchase
-Refers to the overall process of negotiating a @ref{7f,,contract} and then
-making a payment with @ref{6b,,coins} to a @ref{63,,merchant}.
-@anchor{taler-developer-manual term-recoup}@anchor{a0}
+Refers to the overall process of negotiating a @ref{7e,,contract} and then
+making a payment with @ref{6a,,coins} to a @ref{62,,merchant}.
+@anchor{taler-developer-manual term-recoup}@anchor{9f}
@geindex recoup
@item recoup
Operation by which an exchange returns the value of coins affected
-by a @ref{a1,,revocation} to their @ref{9a,,owner}, either by allowing the owner to
-withdraw new coins or wiring funds back to the bank account of the @ref{9a,,owner}.
-@anchor{taler-developer-manual term-refresh}@anchor{7b}
+by a @ref{a0,,revocation} to their @ref{99,,owner}, either by allowing the owner to
+withdraw new coins or wiring funds back to the bank account of the @ref{99,,owner}.
+@anchor{taler-developer-manual term-refresh}@anchor{7a}
@geindex refresh
-@item refresh@anchor{taler-developer-manual term-refreshing}@anchor{a2}
+@item refresh@anchor{taler-developer-manual term-refreshing}@anchor{a1}
@geindex refreshing
@itemx refreshing
-operation by which a @ref{86,,dirty coin} is converted into one or more
-@ref{7c,,fresh} coins. Involves @ref{8c,,melting} the @ref{86,,dirty coin} and
-then @ref{a3,,revealing} so-called @ref{a4,,transfer keys}.
-@anchor{taler-developer-manual term-refund}@anchor{a5}
+operation by which a @ref{85,,dirty coin} is converted into one or more
+@ref{7b,,fresh} coins. Involves @ref{8b,,melting} the @ref{85,,dirty coin} and
+then @ref{a2,,revealing} so-called @ref{a3,,transfer keys}.
+@anchor{taler-developer-manual term-refund}@anchor{a4}
@geindex refund
-@item refund@anchor{taler-developer-manual term-refunding}@anchor{8d}
+@item refund@anchor{taler-developer-manual term-refunding}@anchor{8c}
@geindex refunding
@itemx refunding
operation by which a merchant steps back from the right to funds that he
-obtained from a @ref{82,,deposit} operation, giving the right to the funds back
+obtained from a @ref{81,,deposit} operation, giving the right to the funds back
to the customer
-@anchor{taler-developer-manual term-refund-transaction-id}@anchor{a6}
+@anchor{taler-developer-manual term-refund-transaction-id}@anchor{a5}
@geindex refund transaction id
@item refund transaction id
-unique number by which a merchant identifies a @ref{a5,,refund}. Needed
+unique number by which a merchant identifies a @ref{a4,,refund}. Needed
as refunds can be partial and thus there could be multiple refunds for
-the same @ref{9f,,purchase}.
-@anchor{taler-developer-manual term-relative-time}@anchor{60}
+the same @ref{9e,,purchase}.
+@anchor{taler-developer-manual term-relative-time}@anchor{5f}
@geindex relative time
@item relative time
-method of keeping time in @ref{5f,,GNUnet} where the time is represented
+method of keeping time in @ref{5e,,GNUnet} where the time is represented
as a relative number of microseconds. Thus, a relative time specifies
an offset or a duration, but not a date. Called relative time in
-contrast to @ref{5e,,absolute time}.
-@anchor{taler-developer-manual term-reserve}@anchor{72}
+contrast to @ref{5d,,absolute time}.
+@anchor{taler-developer-manual term-reserve}@anchor{71}
@geindex reserve
@item reserve
accounting mechanism used by the exchange to track customer funds
-from incoming @ref{8e,,wire transfers}. A reserve is created whenever
+from incoming @ref{8d,,wire transfers}. A reserve is created whenever
a customer wires money to the exchange using a well-formed public key
-in the subject. The exchange then allows the customer's @ref{69,,wallet}
-to @ref{74,,withdraw} up to the amount received in @ref{7c,,fresh}
-@ref{6b,,coins} from the reserve, thereby draining the reserve. If a
-reserve is not drained, the exchange eventually @ref{6f,,closes} it.
+in the subject. The exchange then allows the customer’s @ref{68,,wallet}
+to @ref{73,,withdraw} up to the amount received in @ref{7b,,fresh}
+@ref{6a,,coins} from the reserve, thereby draining the reserve. If a
+reserve is not drained, the exchange eventually @ref{6e,,closes} it.
Other definition: Funds set aside for future use; either the balance of a customer at the
exchange ready for withdrawal, or the funds kept in the exchange;s bank
account to cover obligations from coins in circulation.
-@anchor{taler-developer-manual term-reveal}@anchor{7e}
+@anchor{taler-developer-manual term-reveal}@anchor{7d}
@geindex reveal
-@item reveal@anchor{taler-developer-manual term-revealing}@anchor{a3}
+@item reveal@anchor{taler-developer-manual term-revealing}@anchor{a2}
@geindex revealing
@itemx revealing
-step in the @ref{7b,,refresh} protocol where some of the transfer private
+step in the @ref{7a,,refresh} protocol where some of the transfer private
keys are revealed to prove honest behavior on the part of the wallet.
-In the reveal step, the exchange returns the signed @ref{7c,,fresh} coins.
-@anchor{taler-developer-manual term-revoke}@anchor{a7}
+In the reveal step, the exchange returns the signed @ref{7b,,fresh} coins.
+@anchor{taler-developer-manual term-revoke}@anchor{a6}
@geindex revoke
-@item revoke@anchor{taler-developer-manual term-revocation}@anchor{a1}
+@item revoke@anchor{taler-developer-manual term-revocation}@anchor{a0}
@geindex revocation
@itemx revocation
@@ -3364,109 +3343,109 @@ exceptional operation by which an exchange withdraws a denomination from
circulation, either because the signing key was compromised or because
the exchange is going out of operation; unspent coins of a revoked
denomination are subjected to recoup.
-@anchor{taler-developer-manual term-sharing}@anchor{a8}
+@anchor{taler-developer-manual term-sharing}@anchor{a7}
@geindex sharing
@item sharing
-users can share ownership of a @ref{76,,coin} by sharing access to the coin&#39;s
+users can share ownership of a @ref{75,,coin} by sharing access to the coin's
private key, thereby allowing all co-owners to spend the coin at any
time.
-@anchor{taler-developer-manual term-spend}@anchor{6a}
+@anchor{taler-developer-manual term-spend}@anchor{69}
@geindex spend
-@item spend@anchor{taler-developer-manual term-spending}@anchor{a9}
+@item spend@anchor{taler-developer-manual term-spending}@anchor{a8}
@geindex spending
@itemx spending
operation by which a customer gives a merchant the right to deposit
coins in return for merchandise
-@anchor{taler-developer-manual term-terms}@anchor{aa}
+@anchor{taler-developer-manual term-terms}@anchor{a9}
@geindex terms
@item terms
the general terms of service of an operator, possibly including
-the @ref{9c,,privacy policy}. Not to be confused with the
-@ref{80,,contract terms} which are about the specific purchase.
-@anchor{taler-developer-manual term-transaction}@anchor{ab}
+the @ref{9b,,privacy policy}. Not to be confused with the
+@ref{7f,,contract terms} which are about the specific purchase.
+@anchor{taler-developer-manual term-transaction}@anchor{aa}
@geindex transaction
@item transaction
method by which ownership is exclusively transferred from one entity
-@anchor{taler-developer-manual term-transfer}@anchor{67}
+@anchor{taler-developer-manual term-transfer}@anchor{66}
@geindex transfer
-@item transfer@anchor{taler-developer-manual term-transfers}@anchor{ac}
+@item transfer@anchor{taler-developer-manual term-transfers}@anchor{ab}
@geindex transfers
-@itemx transfers@anchor{taler-developer-manual term-wire-transfer}@anchor{64}
+@itemx transfers@anchor{taler-developer-manual term-wire-transfer}@anchor{63}
@geindex wire transfer
-@itemx wire transfer@anchor{taler-developer-manual term-wire-transfers}@anchor{8e}
+@itemx wire transfer@anchor{taler-developer-manual term-wire-transfers}@anchor{8d}
@geindex wire transfers
@itemx wire transfers
-method of sending funds between @ref{65,,bank} accounts
-@anchor{taler-developer-manual term-transfer-key}@anchor{ad}
+method of sending funds between @ref{64,,bank} accounts
+@anchor{taler-developer-manual term-transfer-key}@anchor{ac}
@geindex transfer key
-@item transfer key@anchor{taler-developer-manual term-transfer-keys}@anchor{a4}
+@item transfer key@anchor{taler-developer-manual term-transfer-keys}@anchor{a3}
@geindex transfer keys
@itemx transfer keys
-special cryptographic key used in the @ref{7b,,refresh} protocol, some of which
-are revealed during the @ref{7e,,reveal} step. Note that transfer keys have,
-despite the name, no relationship to @ref{8e,,wire transfers}. They merely
-help to transfer the value from a @ref{86,,dirty coin} to a @ref{8f,,fresh coin}
-@anchor{taler-developer-manual term-user}@anchor{ae}
+special cryptographic key used in the @ref{7a,,refresh} protocol, some of which
+are revealed during the @ref{7d,,reveal} step. Note that transfer keys have,
+despite the name, no relationship to @ref{8d,,wire transfers}. They merely
+help to transfer the value from a @ref{85,,dirty coin} to a @ref{8e,,fresh coin}
+@anchor{taler-developer-manual term-user}@anchor{ad}
@geindex user
@item user
any individual using the Taler payment system
-(see @ref{6d,,customer}, @ref{68,,buyer}, @ref{63,,merchant}).
-@anchor{taler-developer-manual term-version}@anchor{af}
+(see @ref{6c,,customer}, @ref{67,,buyer}, @ref{62,,merchant}).
+@anchor{taler-developer-manual term-version}@anchor{ae}
@geindex version
@item version
Taler uses various forms of versioning. There is a database
schema version (stored itself in the database, see *-0000.sql) describing
-the state of the table structure in the database of an @ref{62,,exchange},
-@ref{66,,auditor} or @ref{63,,merchant}. There is a protocol
+the state of the table structure in the database of an @ref{61,,exchange},
+@ref{65,,auditor} or @ref{62,,merchant}. There is a protocol
version (CURRENT:REVISION:AGE, see GNU libtool) which specifies
-the network protocol spoken by an @ref{62,,exchange} or @ref{63,,merchant}
+the network protocol spoken by an @ref{61,,exchange} or @ref{62,,merchant}
including backwards-compatibility. And finally there is the software
release version (MAJOR.MINOR.PATCH, see @indicateurl{https://semver.org/}) of
the respective code base.
-@anchor{taler-developer-manual term-wallet}@anchor{69}
+@anchor{taler-developer-manual term-wallet}@anchor{68}
@geindex wallet
@item wallet
-software running on a customer's computer; withdraws, stores and
+software running on a customer’s computer; withdraws, stores and
spends coins
-@anchor{taler-developer-manual term-WebExtension}@anchor{b0}
+@anchor{taler-developer-manual term-WebExtension}@anchor{af}
@geindex WebExtension
@item WebExtension
Cross-browser API used to implement the GNU Taler wallet browser extension.
-@anchor{taler-developer-manual term-wire-gateway}@anchor{b1}
+@anchor{taler-developer-manual term-wire-gateway}@anchor{b0}
@geindex wire gateway
@item wire gateway
FIXME: explain
-@anchor{taler-developer-manual term-wire-transfer-identifier}@anchor{b2}
+@anchor{taler-developer-manual term-wire-transfer-identifier}@anchor{b1}
@geindex wire transfer identifier
-@item wire transfer identifier@anchor{taler-developer-manual term-wtid}@anchor{b3}
+@item wire transfer identifier@anchor{taler-developer-manual term-wtid}@anchor{b2}
@geindex wtid
@itemx wtid
@@ -3474,35 +3453,35 @@ FIXME: explain
Subject of a wire transfer from the exchange to a merchant;
set by the aggregator to a random nonce which uniquely
identifies the transfer.
-@anchor{taler-developer-manual term-withdraw}@anchor{74}
+@anchor{taler-developer-manual term-withdraw}@anchor{73}
@geindex withdraw
-@item withdraw@anchor{taler-developer-manual term-withdrawing}@anchor{8b}
+@item withdraw@anchor{taler-developer-manual term-withdrawing}@anchor{8a}
@geindex withdrawing
-@itemx withdrawing@anchor{taler-developer-manual term-withdrawal}@anchor{b4}
+@itemx withdrawing@anchor{taler-developer-manual term-withdrawal}@anchor{b3}
@geindex withdrawal
@itemx withdrawal
-operation by which a @ref{69,,wallet} can convert funds from a @ref{72,,reserve} to
+operation by which a @ref{68,,wallet} can convert funds from a @ref{71,,reserve} to
fresh coins
-@anchor{taler-developer-manual term-zombie}@anchor{b5}
+@anchor{taler-developer-manual term-zombie}@anchor{b4}
@geindex zombie
-@item zombie@anchor{taler-developer-manual term-zombie-coin}@anchor{b6}
+@item zombie@anchor{taler-developer-manual term-zombie-coin}@anchor{b5}
@geindex zombie coin
@itemx zombie coin
-coin where the respective @ref{81,,denomination key} is past its
-@ref{82,,deposit} @ref{89,,expiration} time, but which is still (again) valid
-for an operation because it was @ref{97,,melted} while it was still
-valid, and then later again credited during a @ref{a0,,recoup} process
+coin where the respective @ref{80,,denomination key} is past its
+@ref{81,,deposit} @ref{88,,expiration} time, but which is still (again) valid
+for an operation because it was @ref{96,,melted} while it was still
+valid, and then later again credited during a @ref{9f,,recoup} process
@end table
@node Developer Tools,Index,Developer Glossary,Top
-@anchor{taler-developer-manual developer-tools}@anchor{b7}
+@anchor{taler-developer-manual developer-tools}@anchor{b6}
@chapter Developer Tools
@@ -3515,7 +3494,7 @@ developer.
@end menu
@node taler-harness,,,Developer Tools
-@anchor{taler-developer-manual taler-harness}@anchor{b8}
+@anchor{taler-developer-manual taler-harness}@anchor{b7}
@section taler-harness
diff --git a/texinfo/taler-exchange.texi b/texinfo/taler-exchange.texi
index 972da817..95451a54 100644
--- a/texinfo/taler-exchange.texi
+++ b/texinfo/taler-exchange.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -48,7 +48,7 @@ Copyright @copyright{} 2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)
@anchor{taler-exchange-manual doc}@anchor{0}
@c This file is part of GNU TALER.
@c
-@c Copyright (C) 2014-2023 Taler Systems SA
+@c Copyright (C) 2014-2024 Taler Systems SA
@c
@c TALER is free software; you can redistribute it and/or modify it under the
@c terms of the GNU Affero General Public License as published by the Free Software
@@ -123,18 +123,8 @@ Basic Setup: Currency, Denominations and Keys
Wire Gateway Setup
-* Installation and Basic Configuration::
-* Connecting Nexus with an EBICS account::
* Exchange Bank Account Configuration::
-Connecting Nexus with an EBICS account
-
-* Testing; Requesting the transaction history: Testing Requesting the transaction history.
-* Testing; Making payments: Testing Making payments.
-* Automatic scheduling::
-* Creating a Taler facade::
-* Managing Permissions and Users::
-
Legal Setup
* Legal conditions for using the service::
@@ -305,7 +295,7 @@ subsystem. Such intermediary system abstracts the native banking protocol by
exposing the `Taler Wire Gateway API'; this way, the exchange can conduct its
banking operations in a simplified and JSON-based style.
-When customers wire money to the exchange's bank account, the Taler Wire
+When customers wire money to the exchange’s bank account, the Taler Wire
Gateway API must notify the exchange about the incoming wire transfers. The
exchange then creates a `reserve' based on the subject of the wire
transfer. The wallet which knows the secret key matching the wire transfer
@@ -342,7 +332,7 @@ binary is the @code{taler-exchange-httpd}.
`Crypto-Helpers':
The @code{taler-exchange-secmod-rsa}, @code{taler-exchange-secmod-cs} and
@code{taler-exchange-secmod-eddsa}
-are three programs that are responsible for managing the exchange's
+are three programs that are responsible for managing the exchange’s
online signing keys. They must run on the same machine as the
@code{taler-exchange-httpd} as the HTTP frontend communicates with the
crypto helpers using UNIX Domain Sockets.
@@ -361,7 +351,7 @@ excessively frequent transfers. The binary is the
The @code{taler-exchange-closer} tool check that reserves are properly
closed. If a customer wires funds to an exchange and then fails
to withdraw them, the closer will (eventually) trigger a wire
-transfer that sends the customer's funds back to the originating
+transfer that sends the customer’s funds back to the originating
wire account.
@item
@@ -401,7 +391,7 @@ process using libtalerfakebank. Note that this adapter is only
useful for tests, as all transaction data is kept in memory.
@item
-For production, `libeufin''s @code{libeufin-nexus} component
+For production, `libeufin'’s @code{libeufin-nexus} component
implements a wire adapter towards the traditional SEPA banking
system with IBAN accounts using the EBICS protocol.
@@ -434,7 +424,7 @@ computes the expected bank balance, revenue and risk exposure of the
exchange operator. The main binary is the @code{taler-auditor}.
Aside from the key setup procedures, the most critical setup for
deploying an auditor is providing the auditor with an up-to-date
-copy of the exchange's database.
+copy of the exchange’s database.
@end itemize
@node Key Types,Offline keys,Architecture overview,Introduction
@@ -460,14 +450,14 @@ denomination keys (signs digital coins)
security module keys (signs online message signing keys and denomination keys)
@end itemize
-Additionally, the exchange is sometimes concerned with the auditor's public
+Additionally, the exchange is sometimes concerned with the auditor’s public
key (to verify messages signed by auditors approved by the exchange operator)
-and the merchant's public key (to verify refunds are authorized by the
+and the merchant’s public key (to verify refunds are authorized by the
merchant).
Most of the keys are managed fully automatically or configured as part of the
denomination configuration. Some configuration settings must be manually
-set with regards to the exchange's master key.
+set with regards to the exchange’s master key.
@node Offline keys,Online signing key security,Key Types,Introduction
@anchor{taler-exchange-manual offline-keys}@anchor{9}
@@ -476,7 +466,7 @@ set with regards to the exchange's master key.
The exchange (and ideally also its auditor(s)) uses a long-term offline master
siging key that identifies the operator and is used to authenticate critical
-information, such as the exchange's bank account and the actual keys the
+information, such as the exchange’s bank account and the actual keys the
exchange uses online.
Interactions with the offline system are performed using the
@@ -537,7 +527,7 @@ expires or if they are informed about a key having been revoked.
From a security point of view, the helpers are designed to `only' make it
-harder for an attacker who took control of the HTTP daemon's account to
+harder for an attacker who took control of the HTTP daemon’s account to
extract the private keys, limiting the attackers ability to creating
signatures to the duration of their control of that account.
@@ -557,7 +547,7 @@ The helper processes should be run under a user ID that is separate from that
of the user running the main @code{taler-exchange-httpd} service. To get any
security benefit from this, it is important that helpers run under a different
user ID than the main HTTP frontend. In fact, ideally, each helper should run
-under its own user ID. The @code{taler-exchange-httpd} service's will securely
+under its own user ID. The @code{taler-exchange-httpd} service’s will securely
communicate with the helpers using UNIX domain sockets.
@node Configuration,,Setup,Online signing key security
@@ -584,7 +574,7 @@ try to mitigate against.
We recommend the setup of offline signing keys to be done on a second machine that
does not have Internet access.
-In this guide's shell-session fragments, the command prompt shows two pieces
+In this guide’s shell-session fragments, the command prompt shows two pieces
of information:
@@ -695,7 +685,7 @@ backend:
@itemize -
@item
-"Sphinx RTD Theme" Python package aka @code{python3-sphinx-rtd-theme}
+“Sphinx RTD Theme” Python package aka @code{python3-sphinx-rtd-theme}
on Debian-based systems (for GNUnet documentation support, can be
omitted if GNUnet is configured with @code{--disable-documentation})
@@ -792,7 +782,7 @@ In any case, if @code{make check} fails, please consider filing a
bug report with the Taler bug tracker@footnote{https://bugs.taler.net}.
There is no need to actually run a GNUnet peer to use the Taler merchant
-backend -- all the merchant needs from GNUnet is a number of headers and
+backend – all the merchant needs from GNUnet is a number of headers and
libraries!
After installing GNUnet, unpack the GNU Taler exchange tarball,
@@ -1206,7 +1196,7 @@ for generating configuration files under @code{deployment/netzbon/}.
@chapter Exchange Database Setup
-The access credentials for the exchange's database are configured in
+The access credentials for the exchange’s database are configured in
@code{/etc/taler/secrets/exchange-db.secret.conf}. Currently, only PostgreSQL is
supported as a database backend.
@@ -1391,7 +1381,7 @@ must then have the following options:
@item
@code{VALUE}: How much is the coin worth, the format is
-CURRENCY:VALUE.FRACTION. For example, a 10 cent piece is "EUR:0.10".
+CURRENCY:VALUE.FRACTION. For example, a 10 cent piece is “EUR:0.10”.
@item
@code{DURATION_WITHDRAW}: How long can a coin of this type be withdrawn?
@@ -1551,10 +1541,10 @@ this offline signing machine are:
@itemize *
@item
-Generation of the exchange's offline master signing key.
+Generation of the exchange’s offline master signing key.
@item
-Secure storage of the exchange's offline master signing key.
+Secure storage of the exchange’s offline master signing key.
@item
Generation of certificates (signed with the offline master signing key) that will be imported by the exchange.
@@ -1618,401 +1608,59 @@ configuration of the online machine:
@chapter Wire Gateway Setup
-The Taler Wire Gateway is an API that connects the Taler exchange to
-the underlying core banking system.
-
-LibEuFin is an implementation of the Wire Gateway API for the EBICS protocol.
-This section will walk through (1) installing and configuring LibEuFin and
-(2) connecting the Taler Exchange to LibEuFin.
-
-@menu
-* Installation and Basic Configuration::
-* Connecting Nexus with an EBICS account::
-* Exchange Bank Account Configuration::
-
-@end menu
-
-@node Installation and Basic Configuration,Connecting Nexus with an EBICS account,,Wire Gateway Setup
-@anchor{taler-exchange-manual installation-and-basic-configuration}@anchor{22}
-@section Installation and Basic Configuration
-
-
-First, install the @code{libeufin} package. This can be done on the @code{exchange-online}
-machine or a different one.
-
-@example
-[root@@exchange-online]# apt-get install -y libeufin
-@end example
-
-The main component of LibEuFin is called the Nexus. It implements a Web
-service that provides a JSON abstraction layer to access bank accounts.
-
-The HTTP port and database connection string can be edited in the configuration:
-
-
-@float LiteralBlock
-
-@caption{/etc/libeufin/nexus.env}
-
-@example
-LIBEUFIN_NEXUS_PORT=5017
-LIBEUFIN_NEXUS_DB_CONNECTION=jdbc:sqlite:/var/lib/libeufin/nexus/nexus-db.sqlite3
-@end example
-
-@end float
+The Taler Wire Gateway is an API that
+connects the Taler exchange to the underlying core banking system. There are
+several implementations of wire gateways:
+@quotation
-After configuring the database, you can start the service.
-The database is initialized automatically.
-@example
-[root@@exchange-online]# systemctl enable libeufin-nexus
-[root@@exchange-online]# systemctl start libeufin-nexus
-@end example
-
-You can now create a superuser account. The command to
-create the superuser needs direct database access, thus
-the configuration file is sourced first, and the relevant
-environment variable is exported.
+@itemize *
-@example
-[root@@exchange-online]# source /etc/libeufin/nexus.env
-[root@@exchange-online]# export LIBEUFIN_NEXUS_DB_CONNECTION
-[root@@exchange-online]# NEXUS_ADMIN_PW=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 13)
-[root@@exchange-online]# libeufin-nexus superuser admin --password $NEXUS_ADMIN_PW
-@end example
+@item
+Project deploymerization@footnote{https://git.taler.net/depolymerization.git} implements a wire gateway on top of Bitcoin or Ethereum
-If you omit @code{--password $NEXUS_ADMIN_PW}, you will interactively be asked for a password.
-For simplicity, a superuser can as well act as a normal user, but an API
-to create less privileged users is offered.
+@item
+The libeufin-bank provides a wire gateway interface on top of a regional currency bank
-@cartouche
-@quotation Note
-User and permissions management in LibEuFin is still under development.
-In particular, permissions for non-superusers are very limited at the moment.
+@item
+The `taler-fakebank-run' command is an in-memory bank simulator with a wire gateway interface for testing
+@end itemize
@end quotation
-@end cartouche
-
-@node Connecting Nexus with an EBICS account,Exchange Bank Account Configuration,Installation and Basic Configuration,Wire Gateway Setup
-@anchor{taler-exchange-manual connecting-nexus-with-an-ebics-account}@anchor{23}
-@section Connecting Nexus with an EBICS account
-
-
-The command line interface of the LibEuFin Nexus needs the following three
-values to be defined in the environment: @code{LIBEUFIN_NEXUS_URL},
-@code{LIBEUFIN_NEXUS_USERNAME}, and @code{LIBEUFIN_NEXUS_PASSWORD}. In this example,
-@code{LIBEUFIN_NEXUS_USERNAME} should be set to @code{admin}, and
-@code{LIBEUFIN_NEXUS_PASSWORD} to the value hold in @code{NEXUS_ADMIN_PW} from the
-previous step (the @code{libeufin-nexus superuser} command). The
-@code{LIBEUFIN_NEXUS_URL} could be given as @code{http://localhost:5017/}.
-
-Next, we create a EBICS `bank connection' that Nexus can use to communicate with the bank.
-
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- new-ebics-connection \
- --ebics-url $EBICS_BASE_URL \
- --host-id $EBICS_HOST_ID \
- --partner-id $EBICS_PARTNER_ID \
- --ebics-user-id $EBICS_USER_ID \
- $CONNECTION_NAME
-@end example
-
-If this step executes correctly, Nexus will have created all the cryptographic
-material that is needed on the client side; in this EBICS example, it created
-the signature and identification keys. It is therefore advisable to `make
-a backup copy' of such keys.
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- export-backup \
- --passphrase $SECRET \
- --output-file $BACKUP_FILE \
- $CONNECTION_NAME
-@end example
-
-At this point, Nexus needs to both communicate its keys to the bank, and
-download the bank's keys. This synchronization happens through the INI, HIA, and
-finally, HPB message types.
-
-After the electronic synchronization, the subscriber must confirm their keys
-by sending a physical mail to the bank. The following command helps generating
-such letter:
-
-@example
-[root@@exchange-online]# libeufin-cli connections get-key-letter $CONNECTION_NAME out.pdf
-@end example
-
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- connect \
- $CONNECTION_NAME
-@end example
+@c FIXME :ref:`libeufin-nexus <libeufin-nexus>` is an implementation of the Wire Gateway API for the EBICS protocol. Add to list above once nexus implements the TWG directly!
-@c FIXME: Maybe is not 100% clear that 'connecting' means exchanging keys
-@c with the bank?
+Before continuing, you need to decide which wire gateway you want to use,
+and install and configure it on your system. Afterwards, you need to
+have two key pieces of information from that setup:
-Once the connection is synchronized, Nexus needs to import locally the data
-corresponding to the bank accounts offered by the bank connection just made.
-The command below downloads the list of the bank accounts offered by @code{$CONNECTION_NAME}.
+@quotation
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- download-bank-accounts \
- $CONNECTION_NAME
-@end example
-It is now possible to list the accounts offered by the connection.
+@itemize *
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- list-offered-bank-accounts \
- $CONNECTION_NAME
-@end example
+@item
+The username and password to access the exchange’s account in the system.
-@cartouche
-@quotation Note
-The @code{nexusBankAccountId} field should at this step be @code{null},
-as we have not yet imported the bank account and thus the account
-does not yet have a local name.
+@item
+The @code{payto://} URI of that account (see RFC 8905@footnote{https://www.rfc-editor.org/rfc/rfc8905}).
+@end itemize
@end quotation
-@end cartouche
-
-Nexus now needs an explicit import of the accounts it should manage. This
-step is needed to let the user pick a custom name for such accounts.
-
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- import-bank-account \
- --offered-account-id testacct01 \
- --nexus-bank-account-id $LOCAL_ACCOUNT_NAME \
- $CONNECTION_NAME
-@end example
-
-Once a Nexus user imported a bank account (@code{$LOCAL_ACCOUNT_NAME})
-under a certain connection (@code{$CONNECTION_NAME}), it is possible
-to accomplish the usual operations for any bank account: asking for the
-list of transactions, and making a payment.
@menu
-* Testing; Requesting the transaction history: Testing Requesting the transaction history.
-* Testing; Making payments: Testing Making payments.
-* Automatic scheduling::
-* Creating a Taler facade::
-* Managing Permissions and Users::
+* Exchange Bank Account Configuration::
@end menu
-@node Testing Requesting the transaction history,Testing Making payments,,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual testing-requesting-the-transaction-history}@anchor{24}
-@subsection Testing: Requesting the transaction history
-
-
-The LibEuFin Nexus keeps a local copy of the bank account's transaction
-history. Before querying transactions locally, it is necessary
-to request transactions for the bank account via the bank connection.
-
-This command asks Nexus to download the latest transaction reports/statements
-through the bank connection:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts fetch-transactions $LOCAL_ACCOUNT_NAME
-@end example
-
-@cartouche
-@quotation Note
-By default, the latest available transactions are fetched. It is also
-possible to specify a custom date range (or even all available transactions)
-and the type of transactions to fetch (inter-day statements or intra-day
-reports).
-@end quotation
-@end cartouche
-
-@c FIXME: Possibly the date range filter is still missing, see #6243.
-
-Once Nexus has stored all the information in the database, the
-client can ask to actually see the transactions:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts transactions $LOCAL_ACCOUNT_NAME
-@end example
-
-@node Testing Making payments,Automatic scheduling,Testing Requesting the transaction history,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual testing-making-payments}@anchor{25}
-@subsection Testing: Making payments
-
-
-Payments pass through two phases: preparation and submission. The preparation
-phase assigns the payment initiation a unique ID, which prevents accidental
-double submissions of payments in case of network failures or other
-disruptions.
-
-The following command prepares a payment:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts prepare-payment \
- --creditor-iban=$IBAN_TO_SEND_MONEY_TO \
- --creditor-bic=$BIC_TO_SEND_MONEY_TO \
- --creditor-name=$CREDITOR_NAME \
- --payment-amount=$AMOUNT \
- --payment-subject=$SUBJECT \
- $LOCAL_ACCOUNT_NAME
-@end example
-
-Note: the @code{$AMOUNT} value needs the format @code{X.Y:CURRENCY}; for example
-@code{EUR:10}, or @code{EUR:1.01}.
-
-The previous command should return a value (@code{$UUID}) that uniquely
-identifies the prepared payment in the Nexus system. That is needed
-in the next step, to `send the payment instructions to the bank':
-
-@example
-[root@@exchange-online]# libeufin-cli accounts submit-payments \
- --payment-uuid $UUID \
- $LOCAL_ACCOUNT_NAME
-@end example
-
-@node Automatic scheduling,Creating a Taler facade,Testing Making payments,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual automatic-scheduling}@anchor{26}
-@subsection Automatic scheduling
-
-
-With an EBICS bank connection, the LibEuFin Nexus needs to regularly query for
-new transactions and (re-)submit prepared payments.
-
-It is possible to schedule these tasks via an external task scheduler such as
-cron(8). However, the nexus also has an internal task scheduling mechanism for
-accounts.
-
-The following three commands create a schedule for submitting payments hourly,
-fetching transactions (intra-day reports) every 5 minutes, and (inter-day statements)
-once at 11pm every day:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts task-schedule $LOCAL_ACCOUNT_NAME \
- --task-type="submit" \
- --task-name='submit-payments-hourly' \
- --task-cronspec='0 0 *'
-
-[root@@exchange-online]# libeufin-cli accounts task-schedule $LOCAL_ACCOUNT_NAME \
- --task-type="fetch" \
- --task-name='fetch-5min' \
- --task-cronspec='0 */5 *' \
- --task-param-level=report \
- --task-param-range-type=latest
-
-[root@@exchange-online]# libeufin-cli accounts task-schedule $LOCAL_ACCOUNT_NAME \
- --task-type="fetch" \
- --task-name='fetch-daily' \
- --task-cronspec='0 0 23' \
- --task-param-level=statement \
- --task-param-range-type=latest
-@end example
-
-The cronspec has the following format, which is slightly non-standard due to
-the @code{SECONDS} field
-
-@example
-SECONDS MINUTES HOURS DAY-OF-MONTH[optional] MONTH[optional] DAY-OF-WEEK[optional]
-@end example
-
-@node Creating a Taler facade,Managing Permissions and Users,Automatic scheduling,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual creating-a-taler-facade}@anchor{27}
-@subsection Creating a Taler facade
-
-
-Facades are additional abstraction layers that can serve
-specific purposes. For example, one application might need
-a filtered version of the transaction history, or it might
-want to refuse payments that do not conform to certain rules.
-
-At this moment, only the `Taler facade type' is implemented
-in the Nexus, and the command below instantiates one under a
-existing bank account / connection pair. You can freely
-assign an identifier for the @code{$FACADE_NAME} below:
-
-@example
-[root@@exchange-online]# libeufin-cli facades new-taler-wire-gateway-facade \
- --currency EUR \
- --facade-name $FACADE_NAME \
- $CONNECTION_NAME \
- $LOCAL_ACCOUNT_NAME
-@end example
-
-At this point, the additional taler-wire-gateway API
-becomes offered by the Nexus. The purpose is to let a Taler exchange rely on
-Nexus to manage its bank account.
-
-The base URL of the facade that can be used by the Taler exchange
-as the Taler Wire Gateway base URL can be seen by listing the facades:
-
-@example
-[root@@exchange-online]# libeufin-cli facades list
-@end example
-
-@node Managing Permissions and Users,,Creating a Taler facade,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual managing-permissions-and-users}@anchor{28}
-@subsection Managing Permissions and Users
-
-
-This guide has so far assumed that a superuser is accessing the LibEuFin Nexus.
-However, it is advisable that the Nexus is accessed with users that only have a
-minimal set of permissions.
-
-The Nexus currently only has support for giving non-superusers access to Taler
-wire gateway facades.
-
-To create a new user, use the @code{users} subcommand of the CLI:
-
-@example
-[root@@exchange-online]# libeufin-cli users list
-# [ ... shows available users ... ]
-
-[root@@exchange-online]# libeufin-cli users create $USERNAME
-# [ ... will prompt for password ... ]
-@end example
-
-Permissions are managed with the @code{permissions} subcommand.
-The following commands grant permissions to view the transaction history
-and create payment initiations with a Taler wire gateway facade:
-
-@example
-[root@@exchange-online]# libeufin-cli permissions grant \
- user $USERNAME \
- facade $FACADENAME \
- facade.talerwiregateway.history
-
-[root@@exchange-online]# libeufin-cli permissions grant \
- user $USERNAME \
- facade $FACADENAME \
- facade.talerwiregateway.transfer
-@end example
-
-@c FIXME: The two commands above output an empty JSON object
-@c when successful. Possibly, we should suppress that (just like
-@c the other commands do).
-
-The list of all granted permissions can be reviewed:
-
-@example
-[root@@exchange-online]# libeufin-cli permissions list
-@end example
-
-@node Exchange Bank Account Configuration,,Connecting Nexus with an EBICS account,Wire Gateway Setup
-@anchor{taler-exchange-manual bank-account}@anchor{29}@anchor{taler-exchange-manual exchange-bank-account-configuration}@anchor{2a}
+@node Exchange Bank Account Configuration,,,Wire Gateway Setup
+@anchor{taler-exchange-manual exchange-bank-account-configuration}@anchor{22}@anchor{taler-exchange-manual id3}@anchor{23}
@section Exchange Bank Account Configuration
An exchange must be configured with the right settings to access its bank
-account via a Taler Wire Gateway. An exchange can be configured to use
-multiple bank accounts by using multiple Wire Gateways. Typically only one
-Wire Gateway is used.
+account via a Taler wire gateway. An
+exchange can be configured to use multiple bank accounts by using multiple
+wire gateways. Typically only one wire gateway is used.
To configure a bank account in Taler, we need to furnish two pieces of
information:
@@ -2027,8 +1675,8 @@ account. Examples for such URIs include
an IBAN or
@code{payto://x-taler-bank/localhost:8080/2} for the 2nd bank account a
the Taler bank demonstrator running at @code{localhost} on port 8080.
-The first part of the URI following @code{payto://} (“iban” or
-“x-taler-bank”) is called the wire method.
+The first part of the URI following @code{payto://} (@code{iban} or
+@code{x-taler-bank}) is called the wire method.
@item
The @code{taler-exchange-wirewatch} and @code{taler-exchange-transfer}
@@ -2038,20 +1686,22 @@ authentication information is currently a username and password
for HTTP basic authentication.
@end itemize
-A Taler Wire Gateway is configured in a configuration section that follows the
-pattern @code{exchange-account-$id}, where @code{$id} is an internal identifier for
-the bank account accessed by the exchange. The basic information for an
+Each Taler wire gateway is configured in a configuration section that follows
+the pattern @code{exchange-account-$id}, where @code{$id} is an internal identifier
+for the bank account accessed by the exchange. The basic information for an
account should be put in @code{/etc/taler/conf.d/exchange-business.conf}. The
secret credentials to access the Taler Wire Gateway API should be put into a
corresponding @code{exchange-accountcredentials-$id} section in
@code{/etc/taler/secrets/exchange-accountcredentials.conf}. The latter file
-should already be only readable for the @code{taler-exchange-wire} user. Other
-exchange processes should not have access to this information.
+should be only readable for the @code{taler-exchange-wire} user. Only the
+@code{taler-exchange-wirewatch} and @code{taler-exchange-transfer} services should
+run as the @code{taler-exchange-wire} user. Other exchange processes do not need
+to have access to the account credentials.
You can configure multiple accounts for an exchange by creating sections
-starting with “exchange-account-” for the section name. You can ENABLE for
-each account whether it should be used, and for what (incoming or outgoing
-wire transfers):
+starting with @code{exchange-account-} for the section name. You must specify
+@code{ENABLE_}-settings for each account whether it should be used, and for what
+(incoming or outgoing wire transfers):
@float LiteralBlock
@@ -2095,18 +1745,18 @@ ENABLE_CREDIT = YES
# LibEuFin expects basic auth.
WIRE_GATEWAY_AUTH_METHOD = basic
-# Username and password set in LibEuFin.
+# Username and password to access the Taler wire gateway.
USERNAME = ...
PASSWORD = ...
-# Base URL of the wire gateway set up with LibEuFin.
+# Base URL of the Taler wire gateway.
WIRE_GATEWAY_URL = ...
@end example
@end float
-Such a Wire Gateway configuration can be tested with the following commands:
+Such a wire gateway configuration can be tested with the following commands:
@example
[root@@exchange-online]# taler-exchange-wire-gateway-client \
@@ -2115,8 +1765,11 @@ Such a Wire Gateway configuration can be tested with the following commands:
--section exchange-accountcredentials-1 --credit-history
@end example
+On success, you will see some of your account’s transaction history (or an
+empty history), while on failure you should see an error message.
+
@node Legal Setup,KYC Configuration,Wire Gateway Setup,Top
-@anchor{taler-exchange-manual legal-setup}@anchor{2b}@anchor{taler-exchange-manual legalsetup}@anchor{2c}
+@anchor{taler-exchange-manual legal-setup}@anchor{24}@anchor{taler-exchange-manual legalsetup}@anchor{25}
@chapter Legal Setup
@@ -2136,7 +1789,7 @@ legal requirements can safely skip these steps.
@end menu
@node Legal conditions for using the service,Terms of Service,,Legal Setup
-@anchor{taler-exchange-manual legal-conditions-for-using-the-service}@anchor{2d}
+@anchor{taler-exchange-manual legal-conditions-for-using-the-service}@anchor{26}
@section Legal conditions for using the service
@@ -2162,11 +1815,11 @@ user in various languages and various formats. This section describes how to
setup and configure the legal conditions.
@node Terms of Service,Privacy Policy,Legal conditions for using the service,Legal Setup
-@anchor{taler-exchange-manual terms-of-service}@anchor{2e}
+@anchor{taler-exchange-manual terms-of-service}@anchor{27}
@section Terms of Service
-The service has an endpoint "/terms" to return the terms of service (in legal
+The service has an endpoint “/terms” to return the terms of service (in legal
language) of the service operator. Client software show these terms of
service to the user when the user is first interacting with the service.
Terms of service are optional for experimental deployments, if none are
@@ -2180,7 +1833,7 @@ in the configuration file for the service:
@itemize -
@item
-@code{TERMS_ETAG}: The current "Etag" to return for the terms of service.
+@code{TERMS_ETAG}: The current “Etag” to return for the terms of service.
This value must be changed whenever the terms of service are
updated. A common value to use would be a version number.
Note that if you change the @code{TERMS_ETAG}, you MUST also provide
@@ -2193,11 +1846,11 @@ process.
@end itemize
@node Privacy Policy,Legal policies directory layout,Terms of Service,Legal Setup
-@anchor{taler-exchange-manual privacy-policy}@anchor{2f}
+@anchor{taler-exchange-manual privacy-policy}@anchor{28}
@section Privacy Policy
-The service has an endpoint "/pp" to return the terms privacy policy (in legal
+The service has an endpoint “/pp” to return the terms privacy policy (in legal
language) of the service operator. Clients should show the privacy policy to
the user when the user explicitly asks for it, but it should not be shown by
default. Privacy policies are optional for experimental deployments, if none
@@ -2211,7 +1864,7 @@ in the configuration file for the service:
@itemize -
@item
-@code{PRIVACY_ETAG}: The current "Etag" to return for the privacy policy.
+@code{PRIVACY_ETAG}: The current “Etag” to return for the privacy policy.
This value must be changed whenever the privacy policy is
updated. A common value to use would be a version number.
Note that if you change the @code{PRIVACY_ETAG}, you MUST also provide
@@ -2224,7 +1877,7 @@ process.
@end itemize
@node Legal policies directory layout,Generating the Legal Terms,Privacy Policy,Legal Setup
-@anchor{taler-exchange-manual legal-policies-directory-layout}@anchor{30}
+@anchor{taler-exchange-manual legal-policies-directory-layout}@anchor{29}
@section Legal policies directory layout
@@ -2232,7 +1885,7 @@ The @code{TERMS_DIR} and @code{PRIVACY_DIR} directory structures must follow a
particular layout. You may use the same directory for both the terms of
service and the privacy policy, as long as you use different ETAGs. Inside of
the directory, there should be sub-directories using two-letter language codes
-like "en", "de", or "jp". Each of these directories would then hold
+like “en”, “de”, or “jp”. Each of these directories would then hold
translations of the current terms of service into the respective language.
Empty directories are permitted in case translations are not available.
@@ -2240,7 +1893,7 @@ Then, inside each language directory, files with the name of the value set as
the @code{TERMS_ETAG} or @code{PRIVACY_ETAG} must be provided. The extension of each
of the files should be typical for the respective mime type. The set of
supported mime types is currently hard-coded in the service, and includes
-".epub", ".html", ".md", ".pdf" and ".txt" files. If other files are present,
+“.epub”, “.html”, “.md”, “.pdf” and “.txt” files. If other files are present,
the service may show a warning on startup.
@menu
@@ -2249,11 +1902,11 @@ the service may show a warning on startup.
@end menu
@node Example,,,Legal policies directory layout
-@anchor{taler-exchange-manual example}@anchor{31}
+@anchor{taler-exchange-manual example}@anchor{2a}
@subsection Example
-A sample file structure for a @code{TERMS_ETAG} of "tos-v0" would be:
+A sample file structure for a @code{TERMS_ETAG} of “tos-v0” would be:
@itemize -
@@ -2289,12 +1942,12 @@ TERMS_DIR/de/tos-v0.epub
TERMS_DIR/de/tos-v0.md
@end itemize
-If the user requests an HTML format with language preferences "fr" followed by
-"en", the service would return @code{TERMS_DIR/en/tos-v0.html} lacking a version in
+If the user requests an HTML format with language preferences “fr” followed by
+“en”, the service would return @code{TERMS_DIR/en/tos-v0.html} lacking a version in
French.
@node Generating the Legal Terms,Adding translations,Legal policies directory layout,Legal Setup
-@anchor{taler-exchange-manual generating-the-legal-terms}@anchor{32}
+@anchor{taler-exchange-manual generating-the-legal-terms}@anchor{2b}
@section Generating the Legal Terms
@@ -2322,7 +1975,7 @@ languages (initially only English) in @code{$PREFIX/share/terms/}. The generato
has a few options which are documented in its man page.
@node Adding translations,Updating legal documents,Generating the Legal Terms,Legal Setup
-@anchor{taler-exchange-manual adding-translations}@anchor{33}
+@anchor{taler-exchange-manual adding-translations}@anchor{2c}
@section Adding translations
@@ -2357,7 +2010,7 @@ You must restart the service whenever adding or updating legal documents or thei
@end cartouche
@node Updating legal documents,,Adding translations,Legal Setup
-@anchor{taler-exchange-manual updating-legal-documents}@anchor{34}
+@anchor{taler-exchange-manual updating-legal-documents}@anchor{2d}
@section Updating legal documents
@@ -2375,7 +2028,7 @@ forget to update the @code{ETAG} configuration option to the new name and to
restart the service.
@node KYC Configuration,Deployment,Legal Setup,Top
-@anchor{taler-exchange-manual kyc-configuration}@anchor{35}
+@anchor{taler-exchange-manual kyc-configuration}@anchor{2e}
@chapter KYC Configuration
@@ -2403,7 +2056,7 @@ Wallet receives money via P2P payments over a threshold
Merchant receives money over a threshold
@item
-Reserve is "opened" for invoicing or rewards (`planned feature')
+Reserve is “opened” for invoicing (`planned feature')
@end itemize
@end quotation
@@ -2426,7 +2079,7 @@ request should then succeed.
@end menu
@node Taler KYC Terminology,KYC Configuration Options,,KYC Configuration
-@anchor{taler-exchange-manual taler-kyc-terminology}@anchor{36}
+@anchor{taler-exchange-manual taler-kyc-terminology}@anchor{2f}
@section Taler KYC Terminology
@@ -2478,7 +2131,7 @@ implementing the respective API.
@end itemize
@node KYC Configuration Options,OAuth 2 0 specifics,Taler KYC Terminology,KYC Configuration
-@anchor{taler-exchange-manual kyc-configuration-options}@anchor{37}
+@anchor{taler-exchange-manual kyc-configuration-options}@anchor{30}
@section KYC Configuration Options
@@ -2550,7 +2203,7 @@ TIMEFRAME = 30d
@node OAuth 2 0 specifics,Persona specifics,KYC Configuration Options,KYC Configuration
-@anchor{taler-exchange-manual oauth-2-0-specifics}@anchor{38}
+@anchor{taler-exchange-manual oauth-2-0-specifics}@anchor{31}
@section OAuth 2.0 specifics
@@ -2602,7 +2255,7 @@ specific backend.
The Challenger service for address validation supports OAuth2.0, but does not
have a static AUTHORIZE_URL. Instead, the AUTHORIZE_URL must be enabled by the client
-using a special authenticated request to the Challenger's @code{/setup} endpoint.
+using a special authenticated request to the Challenger’s @code{/setup} endpoint.
The exchange supports this by appending @code{#setup} to the AUTHORIZE_URL (note
that fragments are illegal in OAuth2.0 URLs). Be careful to quote the URL,
as @code{#} is otherwise interpreted as the beginning of a comment by the
@@ -2631,7 +2284,7 @@ configuration above and an exchange running on the host
@code{https://exchange.example.com/kyc-proof/kyc-provider-challenger-oauth2/}.
@node Persona specifics,KYC AID specifics,OAuth 2 0 specifics,KYC Configuration
-@anchor{taler-exchange-manual persona-specifics}@anchor{39}
+@anchor{taler-exchange-manual persona-specifics}@anchor{32}
@section Persona specifics
@@ -2699,7 +2352,7 @@ in JSON) expected by the exchange. The script will need to be adjusted
based on the attributes collected by the specific template.
@node KYC AID specifics,,Persona specifics,KYC Configuration
-@anchor{taler-exchange-manual kyc-aid-specifics}@anchor{3a}
+@anchor{taler-exchange-manual kyc-aid-specifics}@anchor{33}
@section KYC AID specifics
@@ -2746,7 +2399,7 @@ need to be adjusted based on the attributes collected by the specific
template.
@node Deployment,Offline Signing Setup Key Maintenance and Tear-Down,KYC Configuration,Top
-@anchor{taler-exchange-manual deployment}@anchor{3b}@anchor{taler-exchange-manual id3}@anchor{3c}
+@anchor{taler-exchange-manual deployment}@anchor{34}@anchor{taler-exchange-manual id4}@anchor{35}
@chapter Deployment
@@ -2761,7 +2414,7 @@ and configuration are completed.
@end menu
@node Serving,Reverse Proxy Setup,,Deployment
-@anchor{taler-exchange-manual id4}@anchor{3d}@anchor{taler-exchange-manual serving}@anchor{3e}
+@anchor{taler-exchange-manual id5}@anchor{36}@anchor{taler-exchange-manual serving}@anchor{37}
@section Serving
@@ -2797,7 +2450,7 @@ the group under which the exchange HTTP server is running.
@end itemize
@node Reverse Proxy Setup,Launching an exchange,Serving,Deployment
-@anchor{taler-exchange-manual reverse-proxy-setup}@anchor{3f}@anchor{taler-exchange-manual reverseproxy}@anchor{40}
+@anchor{taler-exchange-manual reverse-proxy-setup}@anchor{38}@anchor{taler-exchange-manual reverseproxy}@anchor{39}
@section Reverse Proxy Setup
@@ -2845,7 +2498,7 @@ With this last step, we are finally ready to launch the
main exchange process.
@node Launching an exchange,,Reverse Proxy Setup,Deployment
-@anchor{taler-exchange-manual launch}@anchor{41}@anchor{taler-exchange-manual launching-an-exchange}@anchor{42}
+@anchor{taler-exchange-manual launch}@anchor{3a}@anchor{taler-exchange-manual launching-an-exchange}@anchor{3b}
@section Launching an exchange
@@ -2933,7 +2586,7 @@ At this point, the exchange service is not yet fully operational.
@end quotation
@end cartouche
-To check whether the exchange is running correctly under the advertized
+To check whether the exchange is running correctly under the advertised
base URL, run:
@example
@@ -2945,7 +2598,7 @@ The request might take some time to complete on slow machines, because
a lot of key material will be generated.
@node Offline Signing Setup Key Maintenance and Tear-Down,AML Configuration,Deployment,Top
-@anchor{taler-exchange-manual offline-signing-setup-key-maintenance-and-tear-down}@anchor{43}
+@anchor{taler-exchange-manual offline-signing-setup-key-maintenance-and-tear-down}@anchor{3c}
@chapter Offline Signing Setup, Key Maintenance and Tear-Down
@@ -2967,7 +2620,7 @@ via a management HTTP API.
@item
The offline signing system validates this request and signs it.
Additionally, the offline signing system signs policy messages
-to configure the exchange's bank accounts and associated fees.
+to configure the exchange’s bank accounts and associated fees.
@item
The messages generated by the offline signing system are uploaded
@@ -3008,7 +2661,7 @@ The following sections will discuss these steps in more depth.
@end menu
@node Signing the online signing keys,Account signing,,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual keys-generation}@anchor{44}@anchor{taler-exchange-manual signing-the-online-signing-keys}@anchor{45}
+@anchor{taler-exchange-manual keys-generation}@anchor{3d}@anchor{taler-exchange-manual signing-the-online-signing-keys}@anchor{3e}
@section Signing the online signing keys
@@ -3050,7 +2703,7 @@ periodically, as it signs the various online signing keys of the exchange
which periodically expire.
@node Account signing,Wire fee structure,Signing the online signing keys,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual account-signing}@anchor{46}
+@anchor{taler-exchange-manual account-signing}@anchor{3f}@anchor{taler-exchange-manual exchange-account-signing}@anchor{40}
@section Account signing
@@ -3059,7 +2712,7 @@ The @code{enable-account} step is important to must be used to sign the
correct address to wire funds to. Note that for each bank account, additional
options `must' be set in the configuration file to tell the exchange how to
access the bank account. The offline tool `only' configures the externally
-visible portions of the setup. The chapter on Bank account@footnote{_Bank-account} configuration has further details.
+visible portions of the setup. The chapter on bank account configuration@footnote{_exchange-bank-account-configuration} has further details.
taler-exchange-offline accepts additional options to configure the use of the
account. For example, additional options can be used to add currency
@@ -3076,7 +2729,7 @@ For details on optional @code{enable-account} arguments,
see manpages/taler-exchange-offline.1.
@node Wire fee structure,Auditor configuration,Account signing,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual id6}@anchor{47}@anchor{taler-exchange-manual wire-fee-structure}@anchor{48}
+@anchor{taler-exchange-manual id6}@anchor{41}@anchor{taler-exchange-manual wire-fee-structure}@anchor{42}
@section Wire fee structure
@@ -3113,7 +2766,7 @@ this maintenance activity!
@end cartouche
@node Auditor configuration,Revocations,Wire fee structure,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual auditor-configuration}@anchor{49}@anchor{taler-exchange-manual id7}@anchor{4a}
+@anchor{taler-exchange-manual auditor-configuration}@anchor{43}@anchor{taler-exchange-manual id7}@anchor{44}
@section Auditor configuration
@@ -3126,7 +2779,7 @@ provision it with auditor signatures.
This is also done using the @code{taler-exchange-offline} tool on the offline
system. First, the auditor must be configured and provide the exchange
operator with its public key (using @code{taler-auditor-offline setup}) and the
-URL of it's REST API. The exchange operator also needs a human-readable name
+URL of it’s REST API. The exchange operator also needs a human-readable name
that may be shown to users to identify the auditor. For more information on
how to setup and operate an auditor, see
manpages/taler-auditor-offline.1 and taler-auditor-manual.
@@ -3141,7 +2794,7 @@ As before, the `auditor.json' file must then be copied from the offline system
to a system connected to the exchange and there @code{uploaded} to the exchange using @code{taler-exchange-offline upload}.
@node Revocations,,Auditor configuration,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual id8}@anchor{4b}@anchor{taler-exchange-manual revocations}@anchor{4c}
+@anchor{taler-exchange-manual id8}@anchor{45}@anchor{taler-exchange-manual revocations}@anchor{46}
@section Revocations
@@ -3174,7 +2827,7 @@ operation.
@end cartouche
@node AML Configuration,Setup Linting,Offline Signing Setup Key Maintenance and Tear-Down,Top
-@anchor{taler-exchange-manual aml-configuration}@anchor{4d}
+@anchor{taler-exchange-manual aml-configuration}@anchor{47}
@chapter AML Configuration
@@ -3194,7 +2847,7 @@ amount above which a further AML review is triggered.
@end menu
@node AML Officer Setup,AML Triggers,,AML Configuration
-@anchor{taler-exchange-manual aml-officer-setup}@anchor{4e}
+@anchor{taler-exchange-manual aml-officer-setup}@anchor{48}
@section AML Officer Setup
@@ -3213,11 +2866,11 @@ which staff has access to the AML operations:
upload < aml.json
@end example
-The above commands would add an AML officer with the given "Legal Name" with
-read-write (rw) access to the AML officer database. Using "ro" instead of
-"rw" would grant read-only access to the data, leaving out the ability to
+The above commands would add an AML officer with the given “Legal Name” with
+read-write (rw) access to the AML officer database. Using “ro” instead of
+“rw” would grant read-only access to the data, leaving out the ability to
actually make AML decisions. Once AML access has been granted, the AML
-officer can use the SPA to review cases and (with "rw" access) take AML
+officer can use the SPA to review cases and (with “rw” access) take AML
decisions.
Access rights can be revoked at any time using:
@@ -3230,7 +2883,7 @@ Access rights can be revoked at any time using:
@end example
@node AML Triggers,AML Forms,AML Officer Setup,AML Configuration
-@anchor{taler-exchange-manual aml-triggers}@anchor{4f}
+@anchor{taler-exchange-manual aml-triggers}@anchor{49}
@section AML Triggers
@@ -3277,12 +2930,12 @@ KYC_AML_TRIGGER = taler-exchange-kyc-aml-pep-trigger.sh
The given program will be given the KYC attributes in JSON format on standard
input, and must return 0 to continue without AML and non-zero to flag the
-account for manual review. To disable this triger, simply leave the option to
-its default value of '[/usr/bin/]true'. To flag all new users for manual
-review, simply set the program to '[/usr/bin/]false'.
+account for manual review. To disable this trigger, simply leave the option to
+its default value of ‘[/usr/bin/]true’. To flag all new users for manual
+review, simply set the program to ‘[/usr/bin/]false’.
@node AML Forms,,AML Triggers,AML Configuration
-@anchor{taler-exchange-manual aml-forms}@anchor{50}
+@anchor{taler-exchange-manual aml-forms}@anchor{4a}
@section AML Forms
@@ -3314,7 +2967,7 @@ See DD 54 dynamic forms.
@cartouche
@quotation Attention
do not remove a form the list if it has been used. Otherwise you
-won't be able to see the information save in the exchange database.
+won’t be able to see the information save in the exchange database.
@end quotation
@end cartouche
@@ -3325,7 +2978,7 @@ from @code{https://git.taler.net/wallet-core.git/}, compile and copy the file
from the @code{dist/prod}.
@node Setup Linting,Testing and Troubleshooting,AML Configuration,Top
-@anchor{taler-exchange-manual setup-linting}@anchor{51}
+@anchor{taler-exchange-manual setup-linting}@anchor{4b}
@chapter Setup Linting
@@ -3342,7 +2995,7 @@ You can optionally pass the @code{--debug} option to get more verbose output, an
failed.
@node Testing and Troubleshooting,Benchmarking,Setup Linting,Top
-@anchor{taler-exchange-manual testing-and-troubleshooting}@anchor{52}
+@anchor{taler-exchange-manual testing-and-troubleshooting}@anchor{4c}
@chapter Testing and Troubleshooting
@@ -3367,7 +3020,7 @@ Show the status of the manual withdrawal operation.
$ taler-wallet-cli transactions
@end example
-At this point, a bank transfer to the exchange's bank account
+At this point, a bank transfer to the exchange’s bank account
needs to be made with the correct subject / remittance information
as instructed by the wallet after the first step. With the
above configuration, it should take about 5 minutes after the
@@ -3415,10 +3068,10 @@ $ taler-wallet-cli transactions
@end example
If the transaction failed, fix any open issue(s) with the exchange and
-run the "run-pending" command.
+run the “run-pending” command.
The wallet can also track if the exchange wired the money to the merchant
-account. The "deposit group id" can be found in the output of the
+account. The “deposit group id” can be found in the output of the
transactions list.
@example
@@ -3449,12 +3102,12 @@ taler-wallet.
@end menu
@node taler-config,Using taler-config,,Testing and Troubleshooting
-@anchor{taler-exchange-manual taler-config}@anchor{53}
+@anchor{taler-exchange-manual taler-config}@anchor{4d}
@section taler-config
@node Using taler-config,Private key storage,taler-config,Testing and Troubleshooting
-@anchor{taler-exchange-manual using-taler-002dconfig-exchange}@anchor{54}@anchor{taler-exchange-manual using-taler-config}@anchor{55}
+@anchor{taler-exchange-manual using-taler-002dconfig-exchange}@anchor{4e}@anchor{taler-exchange-manual using-taler-config}@anchor{4f}
@section Using taler-config
@@ -3508,7 +3161,7 @@ While the configuration file is typically located at
GNU Taler component using the @code{-c} option.
@node Private key storage,Internal audits,Using taler-config,Testing and Troubleshooting
-@anchor{taler-exchange-manual private-key-storage}@anchor{56}
+@anchor{taler-exchange-manual private-key-storage}@anchor{50}
@section Private key storage
@@ -3520,12 +3173,12 @@ regenerated. However, we do recommend using RAID (1+1 or 1+1+1) for all
disks of the system.
@node Internal audits,Database Scheme,Private key storage,Testing and Troubleshooting
-@anchor{taler-exchange-manual internal-audit}@anchor{57}@anchor{taler-exchange-manual internal-audits}@anchor{58}
+@anchor{taler-exchange-manual internal-audit}@anchor{51}@anchor{taler-exchange-manual internal-audits}@anchor{52}
@section Internal audits
While an exchange should use an external auditor to attest to regulators that
-it is operating correctly, an exchange operator can also use the auditor's
+it is operating correctly, an exchange operator can also use the auditor’s
logic to perform internal checks. For this, an exchange operator can generally
follow the auditor guide. However, instead of using @code{taler-auditor-sync},
an internal audit can and likely should be performed either directly against
@@ -3548,7 +3201,7 @@ from the very beginning, this is generally not recommended as this may be too
expensive.
@node Database Scheme,Database upgrades,Internal audits,Testing and Troubleshooting
-@anchor{taler-exchange-manual database-scheme}@anchor{59}@anchor{taler-exchange-manual id9}@anchor{5a}
+@anchor{taler-exchange-manual database-scheme}@anchor{53}@anchor{taler-exchange-manual id9}@anchor{54}
@section Database Scheme
@@ -3564,7 +3217,7 @@ The database scheme used by the exchange looks as follows:
@image{taler-exchange-figures/exchange-db,,,,png}
@node Database upgrades,,Database Scheme,Testing and Troubleshooting
-@anchor{taler-exchange-manual database-upgrades}@anchor{5b}@anchor{taler-exchange-manual id10}@anchor{5c}
+@anchor{taler-exchange-manual database-upgrades}@anchor{55}@anchor{taler-exchange-manual id10}@anchor{56}
@section Database upgrades
@@ -3602,7 +3255,7 @@ not be performed in a production system. You still also need to then
grant the permissions to the other exchange processes again.
@node Benchmarking,FIXMEs,Testing and Troubleshooting,Top
-@anchor{taler-exchange-manual benchmarking}@anchor{5d}@anchor{taler-exchange-manual exchangebenchmarking}@anchor{5e}
+@anchor{taler-exchange-manual benchmarking}@anchor{57}@anchor{taler-exchange-manual exchangebenchmarking}@anchor{58}
@chapter Benchmarking
@@ -3642,7 +3295,7 @@ some options that are determined at runtime by the setup logic provided by
@end menu
@node Choosing a bank,taler-bank-benchmark,,Benchmarking
-@anchor{taler-exchange-manual benchmark-choose-bank}@anchor{5f}@anchor{taler-exchange-manual choosing-a-bank}@anchor{60}
+@anchor{taler-exchange-manual benchmark-choose-bank}@anchor{59}@anchor{taler-exchange-manual choosing-a-bank}@anchor{5a}
@section Choosing a bank
@@ -3662,7 +3315,7 @@ $ dropdb talercheck; createdb talercheck
$ taler-unified-setup.sh -emwt -c $CONF -f -u exchange-account-1
@end example
-libeufin is GNU Taler's adapter to the core banking system using the EBICS
+libeufin is GNU Taler’s adapter to the core banking system using the EBICS
banking protocol standard. It uses a Postgres database to persist data and is
thus much slower than fakebank. If your GNU Taler deployment uses libeufin in
production, it likely makes sense to benchmark with libeufin. When using the
@@ -3680,7 +3333,7 @@ $ taler-unified-setup.sh -emwt -c $CONF -ns -u exchange-account-2
@end example
@node taler-bank-benchmark,taler-exchange-benchmark,Choosing a bank,Benchmarking
-@anchor{taler-exchange-manual taler-bank-benchmark}@anchor{61}
+@anchor{taler-exchange-manual taler-bank-benchmark}@anchor{5b}
@section taler-bank-benchmark
@@ -3702,12 +3355,12 @@ $ time taler-bank-benchmark -c "$CONF" -r 40 -p 1 -P1 -u exchange-account-2
@end example
For each `parallel' (@code{-p}) client, a number of `reserves' (@code{-r}) is first
-established by `transferring' money from a "user" account (42) to the
-Exchange's account with the respective reserve public key as wire subject.
+established by `transferring' money from a “user” account (42) to the
+Exchange’s account with the respective reserve public key as wire subject.
Processing is then handled by `parallel' (@code{-P}) service workers.
@node taler-exchange-benchmark,taler-aggregator-benchmark,taler-bank-benchmark,Benchmarking
-@anchor{taler-exchange-manual taler-exchange-benchmark}@anchor{62}
+@anchor{taler-exchange-manual taler-exchange-benchmark}@anchor{5c}
@section taler-exchange-benchmark
@@ -3732,8 +3385,8 @@ $ taler-exchange-benchmark -c "$CONF".edited -u exchange-account-2 -L WARNING -n
@end example
For each `parallel' (@code{-p}) client, a number of `reserves' (@code{-r}) is first
-established by `transferring' money from a "user" account (42) to the
-Exchange's account with the respective reserve public key as wire subject.
+established by `transferring' money from a “user” account (42) to the
+Exchange’s account with the respective reserve public key as wire subject.
Next, the client will `withdraw' a `number of coins' (@code{-n}) from the
reserve and `deposit' them. Additionally, a `fraction' (@code{-R}) of the dirty
coins will then be subject to `refreshing'. For some deposits, the auditor
@@ -3745,7 +3398,7 @@ repetitions (i.e. if the operation failed the first time), total execution
time (operating system and user space) and other details.
@node taler-aggregator-benchmark,,taler-exchange-benchmark,Benchmarking
-@anchor{taler-exchange-manual taler-aggregator-benchmark}@anchor{63}
+@anchor{taler-exchange-manual taler-aggregator-benchmark}@anchor{5d}
@section taler-aggregator-benchmark
@@ -3768,7 +3421,7 @@ time a single aggregator process in @code{--test} mode (asking it to terminate
as soon as there is no more pending work).
@node FIXMEs,Index,Benchmarking,Top
-@anchor{taler-exchange-manual fixmes}@anchor{64}
+@anchor{taler-exchange-manual fixmes}@anchor{5e}
@chapter FIXMEs
@@ -3777,11 +3430,11 @@ as soon as there is no more pending work).
@item
We should have some summary with the inventory of services that should be
-running. Systemd by default doesn't show this nicely. Maybe suggest running
-"systemd list-dependencies taler-exchange.target"?
+running. Systemd by default doesn’t show this nicely. Maybe suggest running
+“systemd list-dependencies taler-exchange.target”?
@item
-What happens when the TWG doesn't like one particular outgoing transaction?
+What happens when the TWG doesn’t like one particular outgoing transaction?
How to recover from that as a sysadmin when it happens in practice?
@end itemize
diff --git a/texinfo/taler-merchant-api-tutorial.texi b/texinfo/taler-merchant-api-tutorial.texi
index 33970265..6c6b6411 100644
--- a/texinfo/taler-merchant-api-tutorial.texi
+++ b/texinfo/taler-merchant-api-tutorial.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -69,7 +69,6 @@ Copyright @copyright{} 2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)
* Merchant Payment Processing::
* Giving Refunds::
* Repurchase detection and fulfillment URLs::
-* Giving Customers Rewards::
* Advanced topics::
* Index::
@@ -158,11 +157,6 @@ that accepts donations for software projects and gives donation
receipts.
@item
-The
-survey@footnote{https://git.taler.net/taler-merchant-demos.git/tree/talermerchantdemos/survey}
-that gives users who answer a question a small reward.
-
-@item
The WooCommerce plugin@footnote{https://git.taler.net/gnu-taler-payment-for-woocommerce.git/}
which is a comprehensive integration into a Web shop including the refund business
process.
@@ -531,7 +525,7 @@ under the @code{h_contract} field.
@geindex repurchase
-@node Repurchase detection and fulfillment URLs,Giving Customers Rewards,Giving Refunds,Top
+@node Repurchase detection and fulfillment URLs,Advanced topics,Giving Refunds,Top
@anchor{taler-merchant-api-tutorial repurchase}@anchor{10}@anchor{taler-merchant-api-tutorial repurchase-detection-and-fulfillment-urls}@anchor{11}
@chapter Repurchase detection and fulfillment URLs
@@ -571,75 +565,9 @@ also `only' done for HTTP(S) fulfillment URLs. In particular, this means
fulfillment URIs like @code{taler://fulfillment-success/$MESSAGE} are not
considered to identify a resource you can pay for and thus do not have to be
unique.
-@anchor{taler-merchant-api-tutorial giving-customers-rewards}@anchor{12}
-@geindex rewards
-
-@node Giving Customers Rewards,Advanced topics,Repurchase detection and fulfillment URLs,Top
-@anchor{taler-merchant-api-tutorial id3}@anchor{13}
-@chapter Giving Customers Rewards
-
-
-GNU Taler allows Web sites to grant digital cash directly to a visitor. The
-idea is that some sites may want incentivize actions such as filling out a
-survey or trying a new feature. It is important to note that receiving rewards is
-not enforceable for the visitor, as there is no contract. It is simply a
-voluntary gesture of appreciation of the site to its visitor. However, once a
-reward has been granted, the visitor obtains full control over the funds provided
-by the site.
-
-The merchant backend of the site must be properly configured for rewards, and
-sufficient funds must be made available for rewards. See the Taler User
-Guide for details.
-
-To check if rewards are configured properly and if there are sufficient
-funds available for granting rewards, query the @code{/private/reserves} endpoint:
-
-@example
->>> import requests
->>> requests.get("https://backend.demo.taler.net/private/reserves",
-... headers=@{"Authorization": "Bearer secret-token:sandbox"@})
-<Response [200]>
-@end example
-
-Check that a reserve exists where the @code{merchant_initial_amount} is below the
-@code{committed_amount} and that the reserve is @code{active}.
-@anchor{taler-merchant-api-tutorial authorize-reward}@anchor{14}
-To authorize a reward, @code{POST} to @code{/private/rewards}. The following fields
-are recognized in the JSON request object:
-
-
-@itemize -
-
-@item
-@code{amount}: Amount that should be given to the visitor as a reward.
-
-@item
-@code{justification}: Description of why the reward was granted. Human-readable
-text not exposed to the customer, but used by the Back Office.
-
-@item
-@code{next_url}: The URL that the user’s browser should be redirected to by
-the wallet, once the reward has been processed.
-@end itemize
-
-The response from the backend contains a @code{taler_reward_url}. The
-customer’s browser must be redirected to this URL for the wallet to pick
-up the reward.
-@anchor{taler-merchant-api-tutorial pick-up-reward}@anchor{15}
-This code snipped illustrates giving a reward:
-
-@example
->>> import requests
->>> reward_req = dict(amount="KUDOS:0.5",
-... justification="User filled out survey",
-... next_url="https://merchant.com/thanks.html")
->>> requests.post("https://backend.demo.taler.net/private/rewards", json=reward_req,
-... headers=@{"Authorization": "Bearer secret-token:sandbox"@})
-<Response [200]>
-@end example
-@node Advanced topics,Index,Giving Customers Rewards,Top
-@anchor{taler-merchant-api-tutorial advanced-topics}@anchor{16}@anchor{taler-merchant-api-tutorial id4}@anchor{17}
+@node Advanced topics,Index,Repurchase detection and fulfillment URLs,Top
+@anchor{taler-merchant-api-tutorial advanced-topics}@anchor{12}@anchor{taler-merchant-api-tutorial id3}@anchor{13}
@chapter Advanced topics
@@ -651,7 +579,7 @@ This code snipped illustrates giving a reward:
@end menu
@node Session-Bound Payments,Product Identification,,Advanced topics
-@anchor{taler-merchant-api-tutorial session-002dbound-payments}@anchor{18}@anchor{taler-merchant-api-tutorial session-bound-payments}@anchor{19}
+@anchor{taler-merchant-api-tutorial session-002dbound-payments}@anchor{14}@anchor{taler-merchant-api-tutorial session-bound-payments}@anchor{15}
@section Session-Bound Payments
@@ -688,7 +616,7 @@ receipt is in the user’s wallet is also available as @code{last_session_id}
in the response to @code{/check-payment}.
@node Product Identification,The Taler Order Format,Session-Bound Payments,Advanced topics
-@anchor{taler-merchant-api-tutorial id5}@anchor{1a}@anchor{taler-merchant-api-tutorial product-identification}@anchor{1b}
+@anchor{taler-merchant-api-tutorial id4}@anchor{16}@anchor{taler-merchant-api-tutorial product-identification}@anchor{17}
@section Product Identification
@@ -709,7 +637,7 @@ contract with the same @code{resource_url} before, and if so replay the
previous payment.
@node The Taler Order Format,,Product Identification,Advanced topics
-@anchor{taler-merchant-api-tutorial id6}@anchor{1c}@anchor{taler-merchant-api-tutorial the-taler-order-format}@anchor{1d}
+@anchor{taler-merchant-api-tutorial id5}@anchor{18}@anchor{taler-merchant-api-tutorial the-taler-order-format}@anchor{19}
@section The Taler Order Format
diff --git a/texinfo/taler-merchant.texi b/texinfo/taler-merchant.texi
index acef0f99..d233dd35 100644
--- a/texinfo/taler-merchant.texi
+++ b/texinfo/taler-merchant.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -67,8 +67,10 @@ Copyright @copyright{} 2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)
* Introduction::
* Terminology::
* Installation::
-* How to configure the merchant’s backend::
+* How to configure the merchant backend::
* Instance setup::
+* Instance account setup::
+* Manually creating an order using the SPA::
* Secure setup::
* Customization::
* Upgrade procedure::
@@ -91,18 +93,19 @@ Terminology
* Instance Bank Accounts::
* Inventory::
* Orders and Contracts::
+* Templates::
+* OTP Devices::
* Transfers::
-* Rewards::
-* Reserves::
+* Webhooks::
Installation
-* Installing from source::
* Installing the GNU Taler binary packages on Debian::
* Installing the GNU Taler binary packages on Trisquel::
* Installing the GNU Taler binary packages on Ubuntu::
+* Installing from source::
-How to configure the merchant’s backend
+How to configure the merchant backend
* Configuration format::
* Backend options::
@@ -118,8 +121,11 @@ Backend options
Instance setup
-* Setup without the Web interface::
-* Accounts::
+* Instance setup with the SPA::
+* Instance setup without the Web interface::
+
+Instance account setup
+
* Detecting Settlement; Manually Adding Transfers: Detecting Settlement Manually Adding Transfers.
* Automatic Settlement Data Import::
@@ -334,9 +340,10 @@ This chapter describes some of the key concepts used throughout the manual.
* Instance Bank Accounts::
* Inventory::
* Orders and Contracts::
+* Templates::
+* OTP Devices::
* Transfers::
-* Rewards::
-* Reserves::
+* Webhooks::
@end menu
@@ -354,7 +361,7 @@ shop a request is intended for. Each instance has its own base URL in the
REST API of the merchant backend (@code{/instances/$INSTANCE/}). Each instance
can use its own bank accounts and keys for signing contracts. All major
accounting functionality is separate per instance. Access to each instance is
-controlled via a bearer token (to be set in the HTTP "Authorization" header).
+controlled via a bearer token (to be set in the HTTP “Authorization” header).
All instances share the same `database', top-level HTTP(S) address and the
main Taler configuration (especially the accepted `currency' and `exchanges').
@@ -362,36 +369,36 @@ main Taler configuration (especially the accepted `currency' and `exchanges').
@cartouche
@quotation Note
-This documentation does not use the term "user" or "username" in
+This documentation does not use the term “user” or “username” in
conjunction with instances as that might create confusion between
instances with paying customers using the system. We also do not use the
-term "account" in conjunction with instances, as that might cause
+term “account” in conjunction with instances, as that might cause
confusion with bank accounts. That said, conceptually it is of course
-acceptable to consider instances to be the "users" or "accounts" of a
+acceptable to consider instances to be the “users” or “accounts” of a
merchant backend and the bearer token is equivalent to a passphrase.
@end quotation
@end cartouche
@end quotation
@node Instance Bank Accounts,Inventory,Instances,Terminology
-@anchor{taler-merchant-manual instance-bank-accounts}@anchor{c}
+@anchor{taler-merchant-manual instance-bank-account}@anchor{c}@anchor{taler-merchant-manual instance-bank-accounts}@anchor{d}
@section Instance Bank Accounts
-@geindex instance-bank-account
+@geindex Bank account
To receive payments, an instance must have configured one or more bank
`accounts'. When configuring the bank account of an instance, one should
ideally also provide the address and credentials of an HTTP service
implementing the Taler Bank Revenue HTTP API. Given such a service, the GNU Taler merchant
backend can automatically reconcile wire transfers from the exchange to the
-merchant's bank account with the orders that are being settled.
+merchant’s bank account with the orders that are being settled.
This documentation exclusively uses the term `account' for the bank
accounts of a merchant or shop that may be associated with an instance.
@node Inventory,Orders and Contracts,Instance Bank Accounts,Terminology
-@anchor{taler-merchant-manual inventory}@anchor{d}
+@anchor{taler-merchant-manual inventory}@anchor{e}
@section Inventory
@@ -421,8 +428,8 @@ can also override prices of products in the inventory or set a total price
for an order that is different from the price of the sum of the products
in the order.
-@node Orders and Contracts,Transfers,Inventory,Terminology
-@anchor{taler-merchant-manual orders-and-contracts}@anchor{e}
+@node Orders and Contracts,Templates,Inventory,Terminology
+@anchor{taler-merchant-manual orders-and-contracts}@anchor{f}
@section Orders and Contracts
@@ -494,8 +501,61 @@ main legal reason is typically to provide tax records in case of a tax audit.
After the `legal expiration' (by default: a decade), contract information is
deleted when running the garbage collector using @code{taler-merchant-dbinit}.
-@node Transfers,Rewards,Orders and Contracts,Terminology
-@anchor{taler-merchant-manual transfers}@anchor{f}
+@node Templates,OTP Devices,Orders and Contracts,Terminology
+@anchor{taler-merchant-manual template}@anchor{10}@anchor{taler-merchant-manual templates}@anchor{11}
+@section Templates
+
+
+@geindex Template
+
+Usually, a merchant must use an authenticated endpoint to create an order and
+then share the link to the order with a wallet. Templates are a mechanism that
+allows wallets to create their own orders directly, using a public endpoint.
+The template fixes some properties of the contracts created from it, while
+other details may be left for the customer to provide. Templates are useful
+in cases where the point-of-sale of a merchant is offline (and thus cannot
+setup an order), or even in cases where a simple static QR code is desired to
+accept payments or donations.
+
+When generating a template, the “summary” text of the contract and the
+“amount” to be paid by the customer can be fixed or left for the customer to
+specify. If the customer is expected to provide either or both of these
+values, the template link (or QR code) can specify a default value. For
+example, a cafeteria with a fixed price lunch may use a “lunch” template with
+both values fixed to the lunch price and the “lunch” product, a bakery might
+fix the summary to “baked goods” but allow the customer to enter the amount
+based on the total price of the items being bought, and a charity may allow
+donating an arbitrary amount and summary message while also suggesting default
+values.
+
+If an offline merchant wants to confirm that a customer did actually pay the
+agreed amount using an order derived from a template, they can associate an
+OTP device with the template.
+
+@node OTP Devices,Transfers,Templates,Terminology
+@anchor{taler-merchant-manual otp-device}@anchor{12}@anchor{taler-merchant-manual otp-devices}@anchor{13}
+@section OTP Devices
+
+
+@geindex OTP
+
+@geindex TOTP
+
+A One-Time-Password (OTP) generator is a device or application that generates
+a 4 to 8 digit code typically used for authentication. The widely used TOTP
+standard is described in RFC 6238@footnote{https://www.rfc-editor.org/rfc/rfc6238}.
+For GNU Taler merchant backends, OTP devices are used as a way to assure a
+merchant without network connectivity that a customer made a digital
+payment. The idea is described in depth in our SUERF Policy Brief@footnote{https://www.suerf.org/suer-policy-brief/69851/practical-offline-payments-using-one-time-passcodes}.
+To use this method, a merchant must configure the OTP device’s shared secret
+in the merchant backend, and then associate the OTP device with a
+@ref{10,,Templates}. Once the customer has paid, they are given a list of OTP
+codes which must be shown to the merchant who can check that at least one of
+the codes matches their OTP device, proving that the customer made the
+payment.
+
+@node Transfers,Webhooks,OTP Devices,Terminology
+@anchor{taler-merchant-manual transfers}@anchor{14}
@section Transfers
@@ -506,75 +566,160 @@ deleted when running the garbage collector using @code{taler-merchant-dbinit}.
The Taler backend can be used to verify that the exchange correctly wired all
of the funds to the merchant. However, if no Taler Bank Revenue HTTP API was provided for the respective bank account,
the backend does not have access to the incoming wire transfers of the
-merchant's bank account. In this case, merchants should manually provide the
+merchant’s bank account. In this case, merchants should manually provide the
backend with wire `transfer' data that specifies the `wire transfer subject'
and the amount that was received. Given this information, the backend can
detect and report any irregularities that might arise.
-@node Rewards,Reserves,Transfers,Terminology
-@anchor{taler-merchant-manual rewards}@anchor{10}
-@section Rewards
+@node Webhooks,,Transfers,Terminology
+@anchor{taler-merchant-manual webhooks}@anchor{15}
+@section Webhooks
+
+
+@geindex webhook
+
+A webhook is a pre-defined HTTP request that the GNU Taler merchant backend
+will make upon certain events, such as an order being paid or refunded. When
+the configured event happens, the merchant backend will make an HTTP request
+to the endpoint configured in the webhook configuration, possibly sending
+selected data about the event to the respective Web service. Webhooks can be
+used to trigger additional business logic outside of the GNU Taler merchant
+backend.
+
+@node Installation,How to configure the merchant backend,Terminology,Top
+@anchor{taler-merchant-manual installation}@anchor{16}
+@chapter Installation
-@geindex reward
+This chapter describes how to install the GNU Taler merchant backend.
-@geindex pick up
+@menu
+* Installing the GNU Taler binary packages on Debian::
+* Installing the GNU Taler binary packages on Trisquel::
+* Installing the GNU Taler binary packages on Ubuntu::
+* Installing from source::
+
+@end menu
+
+@node Installing the GNU Taler binary packages on Debian,Installing the GNU Taler binary packages on Trisquel,,Installation
+@anchor{taler-merchant-manual generic-instructions}@anchor{17}@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-debian}@anchor{18}
+@section Installing the GNU Taler binary packages on Debian
+
+
+To install the GNU Taler Debian packages, first ensure that you have
+the right Debian distribution. At this time, the packages are built for
+Debian bookworm.
+
+You need to add a file to import the GNU Taler packages. Typically,
+this is done by adding a file @code{/etc/apt/sources.list.d/taler.list} that
+looks like this:
+
+@example
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/debian bookworm main
+@end example
+
+Next, you must import the Taler Systems SA public package signing key
+into your keyring and update the package lists:
-Taler does not only allow a Website to be paid, but also to make voluntary,
-non-contractual payments to visitors, called `rewards'. Such rewards could be
-granted as a reward for filling in surveys or watching advertizements. For
-rewards, there is no contract, rewards are always voluntary actions by the Web
-site that do not arise from a contractual obligation. Before a Web site
-can create rewards, it must establish a reserve. Once a reserve has been
-established, the merchant can `grant' rewards, allowing wallets to `pick up'
-the reward.
+@example
+# wget -O /etc/apt/keyrings/taler-systems.gpg \
+ https://taler.net/taler-systems.gpg
+# apt update
+@end example
@cartouche
@quotation Note
-Rewards are an optional feature, and exchanges may disable rewards (usually
-if they see compliance issues). In this case, the reward feature will
-not be available.
+You may want to verify the correctness of the Taler Systems SA key out-of-band.
@end quotation
@end cartouche
-@node Reserves,,Rewards,Terminology
-@anchor{taler-merchant-manual reserves}@anchor{11}
-@section Reserves
+Now your system is ready to install the official GNU Taler binary packages
+using apt.
+To install the Taler merchant backend, you can now simply run:
-@geindex reserve
+@example
+# apt install taler-merchant
+@end example
-@geindex close
+Note that the package does not complete the integration of the backend with
+the HTTP reverse proxy (typically with TLS certificates). A configuration
+fragment for Nginx or Apache will be placed in
+@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
+furthermore still configure the database and the instances, and may need to
+extend the fragment with access control restrictions for non-default
+instances.
-A `reserve' is a pool of electronic cash at an exchange under the control of
-a private key. Merchants withdraw coins from a reserve when granting
-rewards. A reserve is established by first generating the required key material
-in the merchant backend, and then wiring the desired amount of funds to the
-exchange.
+@node Installing the GNU Taler binary packages on Trisquel,Installing the GNU Taler binary packages on Ubuntu,Installing the GNU Taler binary packages on Debian,Installation
+@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-trisquel}@anchor{19}
+@section Installing the GNU Taler binary packages on Trisquel
-An exchange will automatically `close' a reserve after a fixed period of time
-(typically about a month), wiring any remaining funds back to the merchant.
-While exchange APIs exists to (1) explicitly `open' a reserve to prevent it
-from being automatically closed and to (2) explicitly `close' a reserve at any
-time, the current merchant backend does not make use of these APIs.
-@node Installation,How to configure the merchant’s backend,Terminology,Top
-@anchor{taler-merchant-manual installation}@anchor{12}
-@chapter Installation
+To install the GNU Taler Trisquel packages, first ensure that you have
+the right Trisquel distribution. Packages are currently available for
+Trisquel GNU/Linux 10.0. Simply follow the same instructions provided
+for Ubuntu.
+@node Installing the GNU Taler binary packages on Ubuntu,Installing from source,Installing the GNU Taler binary packages on Trisquel,Installation
+@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-ubuntu}@anchor{1a}
+@section Installing the GNU Taler binary packages on Ubuntu
-This chapter describes how to install the GNU Taler merchant backend.
-@menu
-* Installing from source::
-* Installing the GNU Taler binary packages on Debian::
-* Installing the GNU Taler binary packages on Trisquel::
-* Installing the GNU Taler binary packages on Ubuntu::
+To install the GNU Taler Ubuntu packages, first ensure that you have
+the right Ubuntu distribution. At this time, the packages are built for
+Ubuntu Lunar and Ubuntu Jammy. Make sure to have @code{universe} in your
+@code{/etc/apt/sources.list} (after @code{main}) as we depend on some packages
+from Ubuntu @code{universe}.
-@end menu
+A typical @code{/etc/apt/sources.list.d/taler.list} file for this setup
+would look like this for Ubuntu Lunar:
+
+@example
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ lunar taler-lunar
+@end example
+
+For Ubuntu Jammy use this instead:
+
+@example
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ jammy taler-jammy
+@end example
+
+The last line is crucial, as it adds the GNU Taler packages.
+
+Next, you must import the Taler Systems SA public package signing key
+into your keyring and update the package lists:
+
+@example
+# wget -O /etc/apt/keyrings/taler-systems.gpg \
+ https://taler.net/taler-systems.gpg
+# apt update
+@end example
+
+@cartouche
+@quotation Note
+You may want to verify the correctness of the Taler Systems key out-of-band.
+@end quotation
+@end cartouche
+
+Now your system is ready to install the official GNU Taler binary packages
+using apt.
+
+To install the Taler merchant backend, you can now simply run:
+
+@example
+# apt install taler-merchant
+@end example
+
+Note that the package does not complete the integration of the backend with
+the HTTP reverse proxy (typically with TLS certificates). A configuration
+fragment for Nginx or Apache will be placed in
+@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
+furthermore still configure the database and the instances, and may need to
+extend the fragment with access control restrictions for non-default
+instances.
-@node Installing from source,Installing the GNU Taler binary packages on Debian,,Installation
-@anchor{taler-merchant-manual generic-instructions}@anchor{13}@anchor{taler-merchant-manual installing-from-source}@anchor{14}
+@node Installing from source,,Installing the GNU Taler binary packages on Ubuntu,Installation
+@anchor{taler-merchant-manual installing-from-source}@anchor{1b}
@section Installing from source
@@ -616,7 +761,7 @@ backend:
@itemize -
@item
-"Sphinx RTD Theme" Python package aka @code{python3-sphinx-rtd-theme}
+“Sphinx RTD Theme” Python package aka @code{python3-sphinx-rtd-theme}
on Debian-based systems (for GNUnet documentation support, can be
omitted if GNUnet is configured with @code{--disable-documentation})
@@ -713,7 +858,7 @@ In any case, if @code{make check} fails, please consider filing a
bug report with the Taler bug tracker@footnote{https://bugs.taler.net}.
There is no need to actually run a GNUnet peer to use the Taler merchant
-backend -- all the merchant needs from GNUnet is a number of headers and
+backend – all the merchant needs from GNUnet is a number of headers and
libraries!
After installing GNUnet, unpack the GNU Taler exchange tarball,
@@ -734,7 +879,7 @@ which requires you to run the last step as @code{root}. You have to specify
previous step.
There is no need to actually run a Taler exchange to use the Taler merchant
-backend -- all the merchant needs from the Taler exchange is a few headers and
+backend – all the merchant needs from the Taler exchange is a few headers and
libraries!
Please note that unlike most packages, if you want to run the @code{make check}
@@ -782,126 +927,9 @@ latter ensures that necessary binaries are copied to the right place.
In any case, if @code{make check} fails, please consider filing a
bug report with the Taler bug tracker@footnote{https://bugs.taler.net}.
-@node Installing the GNU Taler binary packages on Debian,Installing the GNU Taler binary packages on Trisquel,Installing from source,Installation
-@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-debian}@anchor{15}
-@section Installing the GNU Taler binary packages on Debian
-
-
-To install the GNU Taler Debian packages, first ensure that you have
-the right Debian distribution. At this time, the packages are built for
-Debian bookworm.
-
-You need to add a file to import the GNU Taler packages. Typically,
-this is done by adding a file @code{/etc/apt/sources.list.d/taler.list} that
-looks like this:
-
-@example
-deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/debian bookworm main
-@end example
-
-Next, you must import the Taler Systems SA public package signing key
-into your keyring and update the package lists:
-
-@example
-# wget -O /etc/apt/keyrings/taler-systems.gpg \
- https://taler.net/taler-systems.gpg
-# apt update
-@end example
-
-@cartouche
-@quotation Note
-You may want to verify the correctness of the Taler Systems SA key out-of-band.
-@end quotation
-@end cartouche
-
-Now your system is ready to install the official GNU Taler binary packages
-using apt.
-
-To install the Taler merchant backend, you can now simply run:
-
-@example
-# apt install taler-merchant
-@end example
-
-Note that the package does not complete the integration of the backend with
-the HTTP reverse proxy (typically with TLS certificates). A configuration
-fragment for Nginx or Apache will be placed in
-@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
-furthermore still configure the database and the instances, and may need to
-extend the fragment with access control restrictions for non-default
-instances.
-
-@node Installing the GNU Taler binary packages on Trisquel,Installing the GNU Taler binary packages on Ubuntu,Installing the GNU Taler binary packages on Debian,Installation
-@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-trisquel}@anchor{16}
-@section Installing the GNU Taler binary packages on Trisquel
-
-
-To install the GNU Taler Trisquel packages, first ensure that you have
-the right Trisquel distribution. Packages are currently available for
-Trisquel GNU/Linux 10.0. Simply follow the same instructions provided
-for Ubuntu.
-
-@node Installing the GNU Taler binary packages on Ubuntu,,Installing the GNU Taler binary packages on Trisquel,Installation
-@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-ubuntu}@anchor{17}
-@section Installing the GNU Taler binary packages on Ubuntu
-
-
-To install the GNU Taler Ubuntu packages, first ensure that you have
-the right Ubuntu distribution. At this time, the packages are built for
-Ubuntu Lunar and Ubuntu Jammy. Make sure to have @code{universe} in your
-@code{/etc/apt/sources.list} (after @code{main}) as we depend on some packages
-from Ubuntu @code{universe}.
-
-A typical @code{/etc/apt/sources.list.d/taler.list} file for this setup
-would look like this for Ubuntu Lunar:
-
-@example
-deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ lunar taler-lunar
-@end example
-
-For Ubuntu Jammy use this instead:
-
-@example
-deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ jammy taler-jammy
-@end example
-
-The last line is crucial, as it adds the GNU Taler packages.
-
-Next, you must import the Taler Systems SA public package signing key
-into your keyring and update the package lists:
-
-@example
-# wget -O /etc/apt/keyrings/taler-systems.gpg \
- https://taler.net/taler-systems.gpg
-# apt update
-@end example
-
-@cartouche
-@quotation Note
-You may want to verify the correctness of the Taler Systems key out-of-band.
-@end quotation
-@end cartouche
-
-Now your system is ready to install the official GNU Taler binary packages
-using apt.
-
-To install the Taler merchant backend, you can now simply run:
-
-@example
-# apt install taler-merchant
-@end example
-
-Note that the package does not complete the integration of the backend with
-the HTTP reverse proxy (typically with TLS certificates). A configuration
-fragment for Nginx or Apache will be placed in
-@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
-furthermore still configure the database and the instances, and may need to
-extend the fragment with access control restrictions for non-default
-instances.
-
-@node How to configure the merchant’s backend,Instance setup,Installation,Top
-@anchor{taler-merchant-manual how-to-configure-the-merchants-backend}@anchor{18}
-@chapter How to configure the merchant’s backend
+@node How to configure the merchant backend,Instance setup,Installation,Top
+@anchor{taler-merchant-manual how-to-configure-the-merchant-backend}@anchor{1c}
+@chapter How to configure the merchant backend
@geindex taler.conf
@@ -922,8 +950,8 @@ force the use of @code{/etc/taler/taler.conf} as the main configuration file.
@end menu
-@node Configuration format,Backend options,,How to configure the merchant’s backend
-@anchor{taler-merchant-manual configuration-format}@anchor{19}
+@node Configuration format,Backend options,,How to configure the merchant backend
+@anchor{taler-merchant-manual configuration-format}@anchor{1d}
@section Configuration format
@@ -1008,8 +1036,8 @@ pathnames, when they use several levels of @code{$}-expanded variables. See
The repository @code{git://git.taler.net/deployment} contains example code
for generating configuration files under @code{deployment/netzbon/}.
-@node Backend options,Sample backend configuration,Configuration format,How to configure the merchant’s backend
-@anchor{taler-merchant-manual backend-options}@anchor{1a}@anchor{taler-merchant-manual id3}@anchor{1b}
+@node Backend options,Sample backend configuration,Configuration format,How to configure the merchant backend
+@anchor{taler-merchant-manual backend-options}@anchor{1e}@anchor{taler-merchant-manual id3}@anchor{1f}
@section Backend options
@@ -1046,7 +1074,7 @@ modified. Here, the notation @code{[$SECTION]/$OPTION} denotes the option
@end menu
@node Service address,Currency,,Backend options
-@anchor{taler-merchant-manual service-address}@anchor{1c}
+@anchor{taler-merchant-manual service-address}@anchor{20}
@subsection Service address
@@ -1108,7 +1136,7 @@ respective @code{sites-available} directories of Apache and Nginx.
@end cartouche
@node Currency,Database,Service address,Backend options
-@anchor{taler-merchant-manual currency}@anchor{1d}
+@anchor{taler-merchant-manual currency}@anchor{21}
@subsection Currency
@@ -1141,7 +1169,7 @@ directives and destroy the carefully setup path structure.
@end cartouche
@node Database,Exchange,Currency,Backend options
-@anchor{taler-merchant-manual database}@anchor{1e}
+@anchor{taler-merchant-manual database}@anchor{22}
@subsection Database
@@ -1175,7 +1203,7 @@ For the @code{postgres} backend, you need to specify:
CONFIG = "postgres:///taler-merchant"
@end example
-This option specifies a PostgreSQL access path, typicallly using the format
+This option specifies a PostgreSQL access path, typically using the format
@code{postgres:///$DBNAME}, where @code{$DBNAME} is the name of the PostgreSQL
database you want to use (here, @code{taler-merchant} on the local machine).
Suppose @code{$USER} is the name of the user who will run the backend process
@@ -1220,7 +1248,7 @@ secured from unauthorized access.
@c index: MASTER_KEY
@node Exchange,,Database,Backend options
-@anchor{taler-merchant-manual exchange}@anchor{1f}
+@anchor{taler-merchant-manual exchange}@anchor{23}
@subsection Exchange
@@ -1288,8 +1316,8 @@ with the GNU Taler development team.
@end quotation
@end cartouche
-@node Sample backend configuration,Launching the backend,Backend options,How to configure the merchant’s backend
-@anchor{taler-merchant-manual id4}@anchor{20}@anchor{taler-merchant-manual sample-backend-configuration}@anchor{21}
+@node Sample backend configuration,Launching the backend,Backend options,How to configure the merchant backend
+@anchor{taler-merchant-manual id4}@anchor{24}@anchor{taler-merchant-manual sample-backend-configuration}@anchor{25}
@section Sample backend configuration
@@ -1307,7 +1335,7 @@ PORT = 8888
DATABASE = postgres
[merchantdb-postgres]
-CONFIG = postgres:///donations
+CONFIG = postgres:///taler-merchant
[merchant-exchange-kudos]
EXCHANGE_BASE_URL = https://exchange.demo.taler.net/
@@ -1324,8 +1352,8 @@ The backend will deposit the coins it receives to the exchange at
@indicateurl{https://exchange.demo.taler.net/}, which has the master key
@code{FH1Y8ZMHCTPQ0YFSZECDH8C9407JR3YN0MF1706PTG24Q4NEWGV0}.
-@node Launching the backend,,Sample backend configuration,How to configure the merchant’s backend
-@anchor{taler-merchant-manual id5}@anchor{22}@anchor{taler-merchant-manual launching-the-backend}@anchor{23}
+@node Launching the backend,,Sample backend configuration,How to configure the merchant backend
+@anchor{taler-merchant-manual id5}@anchor{26}@anchor{taler-merchant-manual launching-the-backend}@anchor{27}
@section Launching the backend
@@ -1334,20 +1362,17 @@ The backend will deposit the coins it receives to the exchange at
@geindex taler-merchant-httpd
Assuming you have configured everything correctly, you can launch the
-merchant backend as @code{$USER} using
+merchant backend as @code{$USER} using (to provide a trivial example):
@example
$ taler-merchant-httpd &
$ taler-merchant-webhook &
$ taler-merchant-wirewatch &
+$ taler-merchant-depositcheck &
+$ taler-merchant-exchange &
@end example
-You only need to run @code{taler-merchant-webhook} if one of the instances is
-configured to trigger web hooks. Similarly, @code{taler-merchant-wirewatch} is
-only required if instances have accounts configured with automatic import of
-wire transfers via a bank wire gateway.
-
-To ensure these processes runs always in the background and also after
+To ensure these processes run always in the background and also after
rebooting, you should use systemd, cron or some other init system of your
operating system to launch the process. You should also periodically re-start
these services to prevent them from exhausing the memory utilization of the
@@ -1358,8 +1383,8 @@ how to start and stop daemons.
@quotation Note
When using the Debian/Ubuntu packages, the systemd configuration
will already exist. You only need to enable and start the service
-using @code{systemctl enable taler-merchant-httpd} and
-@code{systemctl start taler-merchant-httpd}. Additionally, you should
+using @code{systemctl enable taler-merchant.target} and
+@code{systemctl start taler-merchant.target}. Additionally, you should
review the @code{/etc/apache2/sites-available/taler-merchant.conf}
or @code{/etc/nginx/sites-available/taler-merchant} (these files
contain additional instructions to follow), symlink it to
@@ -1386,7 +1411,7 @@ any access control. You can either:
@itemize *
@item
-Use the @code{--auth=$TOKEN} command-line option to set an access token to be provided in an @code{Authorize: Bearer $TOKEN} HTTP header. Note that this can be used at anytime to override access control, but remains only in effect until a first instance is created or an existing instance authentication setting is modified.
+Use the @code{--auth=$TOKEN} command-line option to `taler-merchant-httpd' to set an access token to be provided in an @code{Authorize: Bearer $TOKEN} HTTP header. Note that this can be used at anytime to override access control, but remains only in effect until a first instance is created or an existing instance authentication setting is modified.
@item
Set the @code{TALER_MERCHANT_TOKEN} environment variable to @code{$TOKEN} for the same effect. This method has the advantage of @code{$TOKEN} not being visible as a command-line interface to other local users on the same machine.
@@ -1401,20 +1426,19 @@ and use TLS for improved network privacy, see @ref{9,,Secure setup}.
@geindex instance
-@node Instance setup,Secure setup,How to configure the merchant’s backend,Top
-@anchor{taler-merchant-manual id6}@anchor{24}@anchor{taler-merchant-manual instance-setup}@anchor{25}
+@node Instance setup,Instance account setup,How to configure the merchant backend,Top
+@anchor{taler-merchant-manual id6}@anchor{28}@anchor{taler-merchant-manual instance-setup}@anchor{29}
@chapter Instance setup
-First of all, we recommend the use of the single-page administration
-application (SPA) that is served by default at the base URL of the merchant
-backend. You can use it to perform all steps described in this section (and
-more!), using a simple Web interface instead of the @code{wget} commands given
-below.
+We recommend the use of the single-page administration application (SPA) that
+is served by default at the base URL of the merchant backend. You can use it
+to perform all steps described in this section (and more!), using a simple Web
+interface. Alternatively, you can also use the @code{wget} commands given below.
-Regardless of which tool you use, the first step for using the backend
+Regardless of which approach you use, the first step for using the backend
involves the creation of a @code{default} instance. The @code{default} instance can
-also create / delete / configure other instances, similar to the @code{root}
+also create, configure or delete other instances, similar to the @code{root}
account on UNIX. When no instance exists and @code{taler-merchant-httpd} was
started without the @code{--auth} option, then the backend is reachable without
any access control (unless you configured some in the reverse proxy).
@@ -1430,21 +1454,47 @@ This means unauthorized users can distinguish between the case where the
instance does not exist (HTTP 404) and the case where access is denied
(HTTP 403).
This is concern can be addressed using a properly configured
-@ref{26,,reverse proxy}.
+@ref{2a,,reverse proxy}.
@end quotation
@end cartouche
@menu
-* Setup without the Web interface::
-* Accounts::
-* Detecting Settlement; Manually Adding Transfers: Detecting Settlement Manually Adding Transfers.
-* Automatic Settlement Data Import::
+* Instance setup with the SPA::
+* Instance setup without the Web interface::
@end menu
-@node Setup without the Web interface,Accounts,,Instance setup
-@anchor{taler-merchant-manual setup-without-the-web-interface}@anchor{27}
-@section Setup without the Web interface
+@node Instance setup with the SPA,Instance setup without the Web interface,,Instance setup
+@anchor{taler-merchant-manual instance-setup-with-the-spa}@anchor{2b}
+@section Instance setup with the SPA
+
+
+In order to setup an instance, you need the merchant backend to already be
+running, and you must either have the credentials for the “default” instance,
+or no instance must be configured at all yet.
+
+To start, point your browser to @code{$PROTO://backend.$DOMAIN_NAME/}, replacing
+“$PROTO” with “https” or (rarely) “http” and “$DOMAIN_NAME” with your
+organizations DNS domain or subdomain.
+
+@cartouche
+@quotation Note
+The label “backend” here is also just a suggestion, your administrator
+can in principle choose any name.
+@end quotation
+@end cartouche
+
+You should be welcomed by the following merchant backoffice page:
+
+@image{taler-merchant-figures/merchant_first_login,,,,png}
+
+After supplying the required fields, primarily the name of your organization
+and the desired access token, click @code{confirm}. You can change the instance
+settings later via the @code{Settings} entry in the menu on the left.
+
+@node Instance setup without the Web interface,,Instance setup with the SPA,Instance setup
+@anchor{taler-merchant-manual instance-setup-without-the-web-interface}@anchor{2c}
+@section Instance setup without the Web interface
Instances can be created by POSTing a request to @code{/management/instances}
@@ -1456,7 +1506,7 @@ InstanceConfigurationMessage:
@example
@{
"id" : "default",
- "name": "example.com",
+ "name": "Example Inc.",
"address": @{ "country" : "zz" @},
"auth": @{ "method" : "external"@} ,
"jurisdiction": @{ "country" : "zz" @},
@@ -1467,7 +1517,7 @@ InstanceConfigurationMessage:
@end example
The @code{name} field will be shown as the name of your shop. The
-@code{address} field is expected to contain your shop's physical address. The
+@code{address} field is expected to contain your shop’s physical address. The
various defaults specify defaults for transaction fees your shop is willing to
cover, how long offers made to the customer are valid, and how long the
exchange has before it must wire the funds to your bank account. Those
@@ -1488,9 +1538,9 @@ Endpoints to modify (reconfigure), permanently disable (while keeping the data)
or purge (deleting all associated data) instances exist as well and are documented
in the Merchant Backend API documentation.
-@node Accounts,Detecting Settlement Manually Adding Transfers,Setup without the Web interface,Instance setup
-@anchor{taler-merchant-manual accounts}@anchor{28}
-@section Accounts
+@node Instance account setup,Manually creating an order using the SPA,Instance setup,Top
+@anchor{taler-merchant-manual id7}@anchor{2d}@anchor{taler-merchant-manual instance-account-setup}@anchor{2e}
+@chapter Instance account setup
Before you can use an instance productively, you need to configure one or more
@@ -1499,19 +1549,56 @@ operator to tell it where to wire the income from your sales. Every bank
account has an associated `wire method' which determines how an exchange can
transfer the funds. The most commonly supported wire method is `iban', which
implies that bank accounts are identified by IBAN numbers and wire transfers
-are to be executed between IBAN accounts.
+are to be executed between IBAN accounts. For regional currency setups, the
+wire method could also be `x-taler-bank'.
+
+@cartouche
+@quotation Note
+When using a regional currency, you need to first create a bank account at
+the regional bank. You may need to contact the respective administrator who
+can set one up. After being able to login to the new bank account, you can
+see your bank account number by clicking on the @code{Welcome, $USERNAME}
+message in the profile page. Next to the bank account number, you can find
+a convenient button to copy the number to the clipboard.
+@end quotation
+@end cartouche
Not every exchange will support every `wire method', and if you do not add a
bank account with a wire method that is supported by a particular exchange,
then you will not be able to receive payments via that exchange even if you
configured the merchant backend to trust that exchange.
-The simplest way to configure an account is to use the Web interface which
-has specific forms for different wire methods. Specifying the revenue gateway
-with username and password is optional and discussed below.
+The simplest way to configure an account is to use the Web interface which has
+specific forms for different wire methods. First, select @code{Bank account} at
+the left of the page. The following page should be shown:
+
+@image{taler-merchant-figures/no_default_account_yet,,,,png}
-@node Detecting Settlement Manually Adding Transfers,Automatic Settlement Data Import,Accounts,Instance setup
-@anchor{taler-merchant-manual detecting-settlement-manually-adding-transfers}@anchor{29}
+Click on the blue “+” sign on the top right of the page to add a new
+bank account. The following page should appear:
+
+@image{taler-merchant-figures/enter_instance_details,,,,png}
+
+First, you should select the wire method, after which the dialog will show you
+additional fields specific to the wire method. For example, if youchoose
+@code{iban} as the account type, the following page should appear:
+
+@image{taler-merchant-figures/instance_iban_config,,,,png}
+
+Specifying the revenue gateway with username and password is optional and
+discussed in section @ref{2f,,Automatic Settlement Data Import} below.
+
+After providing the details and confirming, the shop is ready to generate orders
+and accept payments.
+
+@menu
+* Detecting Settlement; Manually Adding Transfers: Detecting Settlement Manually Adding Transfers.
+* Automatic Settlement Data Import::
+
+@end menu
+
+@node Detecting Settlement Manually Adding Transfers,Automatic Settlement Data Import,,Instance account setup
+@anchor{taler-merchant-manual detecting-settlement-manually-adding-transfers}@anchor{30}
@section Detecting Settlement: Manually Adding Transfers
@@ -1529,24 +1616,57 @@ information, the merchant backend will inquire with the exchange which
individual payments were aggregated, check that the total amount is correct,
and will then flag the respective contracts as wired.
-@node Automatic Settlement Data Import,,Detecting Settlement Manually Adding Transfers,Instance setup
-@anchor{taler-merchant-manual automatic-settlement-data-import}@anchor{2a}
+You can manually enter wire transfers under @code{Transfers}. However, this is
+tedious, and so if your banking setup supports it, we highly recommend
+using the automatic settlement data import.
+
+@node Automatic Settlement Data Import,,Detecting Settlement Manually Adding Transfers,Instance account setup
+@anchor{taler-merchant-manual automatic-settlement-data-import}@anchor{2f}@anchor{taler-merchant-manual id8}@anchor{31}
@section Automatic Settlement Data Import
-To automatically import settlement data, you can provide the merchant backend
-with the address and access credentials of a Taler revenue API for each bank
-account of an instance. The revenue API endpoint will allow the merchant
-backend to observe all incoming wire transfers into your bank account and
-automatically import them into the list of wire transfers.
+To automatically import settlement data, you need to provide the merchant
+backend with the address and access credentials of a
+taler-bank-merchant-http-api for each bank account of an instance. The
+revenue API endpoint will allow the merchant backend to obtain a list of all
+incoming wire transfers into your bank account and automatically import them
+into the list of confirmed wire transfers.
Note that setting up a revenue API endpoint will usually require you to first
-ask your bank for EBICS access and to setup libeufin to provide the revenue
-API endpoint. The taler-bank used by regional currency setups also provides
-a revenue API endpoint.
+ask your bank for EBICS access and to set up libeufin-nexus to provide
+the revenue API endpoint. The libeufin-bank used by regional currency
+setups also provides a revenue API endpoint at
+@code{$BANK_URL/accounts/$ACCOUNT_NAME/taler-revenue/}. Thus, when using a
+regional currency setup, simply use the @code{$BANK_URL} of your bank and specify
+your bank login name and password in the @ref{2e,,Instance account setup} dialog.
+
+@node Manually creating an order using the SPA,Secure setup,Instance account setup,Top
+@anchor{taler-merchant-manual manually-creating-an-order-using-the-spa}@anchor{32}
+@chapter Manually creating an order using the SPA
+
+
+Click on @code{Orders} at the top left corner of the merchant backoffice page; the
+following page should appear
+
+@image{taler-merchant-figures/create_orders,,,,png}
+
+After having filled the required fields, the interface should show the
+following page with the related links to check the status of the order and let
+wallets pay for it.
-@node Secure setup,Customization,Instance setup,Top
-@anchor{taler-merchant-manual id7}@anchor{2b}@anchor{taler-merchant-manual secure-setup}@anchor{9}
+@image{taler-merchant-figures/payment_links,,,,png}
+
+In order to test the setup, it should be now possible to use the command line wallet
+to withdraw Taler coins and spend them to pay for the order we just created.
+
+In practice, you will rarely if ever setup orders manually like this. Instead,
+a GNU Taler e-commerce front-end@footnote{https://taler.net/en/docs.html#extensions} or the
+taler-merchant-pos-app will do this on-demand. Here, you will only need
+to provide the respective front-ends with the URL of your instance
+(e.g. @code{https://backend.$DOMAIN/instances/$NAME}) and your access token.
+
+@node Secure setup,Customization,Manually creating an order using the SPA,Top
+@anchor{taler-merchant-manual id9}@anchor{33}@anchor{taler-merchant-manual secure-setup}@anchor{9}
@chapter Secure setup
@@ -1554,11 +1674,11 @@ a revenue API endpoint.
@geindex TLS
-The Taler backend does not include even the most basic forms of access control
-or transport layer security. Thus, production setups `must' deploy the
-Taler backend behind an HTTP(S) server that acts as a `reverse proxy',
-performs TLS termination and authentication and then forwards requests to the
-backend.
+The Taler backend is deliberately simple in terms of support for access
+control or transport layer security (TLS). Thus, production setups `must'
+deploy the Taler backend behind an HTTP(S) server that acts as a `reverse
+proxy', performs TLS termination and authentication and then forwards requests
+to the backend.
@menu
* Using UNIX domain sockets::
@@ -1569,7 +1689,7 @@ backend.
@end menu
@node Using UNIX domain sockets,Reverse proxy configuration,,Secure setup
-@anchor{taler-merchant-manual using-unix-domain-sockets}@anchor{2c}
+@anchor{taler-merchant-manual using-unix-domain-sockets}@anchor{34}
@section Using UNIX domain sockets
@@ -1582,18 +1702,18 @@ SERVE = unix
UNIXPATH = "/some/path/here.sock"
@end example
-Do not use a UNIX domain socket path in "/tmp": systemd (or other init
-systems) may give Web servers a private "/tmp" thereby hiding UNIX domain
-sockets created by other users/processes in "/tmp".
+Do not use a UNIX domain socket path in “/tmp”: systemd (or other init
+systems) may give Web servers a private “/tmp” thereby hiding UNIX domain
+sockets created by other users/processes in “/tmp”.
If UNIX domain sockets are for some reason not possible, you `may' use a
host-based firewall to block access to the TCP port of the merchant backend,
but this is `not recommended'. If you do need a TCP socket, you should
-instead strongly consider using the "BIND_TO" option to at least bind it only
-to "localhost".
+instead strongly consider using the “BIND_TO” option to at least bind it only
+to “localhost”.
@node Reverse proxy configuration,Access control,Using UNIX domain sockets,Secure setup
-@anchor{taler-merchant-manual id8}@anchor{2d}@anchor{taler-merchant-manual reverse-proxy-configuration}@anchor{26}
+@anchor{taler-merchant-manual id10}@anchor{35}@anchor{taler-merchant-manual reverse-proxy-configuration}@anchor{2a}
@section Reverse proxy configuration
@@ -1604,7 +1724,7 @@ to "localhost".
@end menu
@node Nginx,Apache,,Reverse proxy configuration
-@anchor{taler-merchant-manual nginx}@anchor{2e}
+@anchor{taler-merchant-manual nginx}@anchor{36}
@subsection Nginx
@@ -1624,7 +1744,7 @@ not have HTTPS enabled. Make sure to restart the @code{taler-merchant-httpd}
process after changing the @code{SERVE} configuration.
@node Apache,,Nginx,Reverse proxy configuration
-@anchor{taler-merchant-manual apache}@anchor{2f}
+@anchor{taler-merchant-manual apache}@anchor{37}
@subsection Apache
@@ -1652,7 +1772,7 @@ you have TLS configured. Note that you must add the @code{https} header unless
your site is not available via TLS.
@node Access control,Status code remapping,Reverse proxy configuration,Secure setup
-@anchor{taler-merchant-manual access-control}@anchor{30}
+@anchor{taler-merchant-manual access-control}@anchor{38}
@section Access control
@@ -1663,8 +1783,8 @@ users of the default instance, and to @code{$BASE_URL/instances/$ID/private/} to
the authorized users of the instance @code{$ID}.
By default, the GNU Taler merchant backend simply requires the respective
-HTTP requests to include an "Authorization" header with a "Bearer" token
-set to the respective shared secret which must begin with "secret-token:"
+HTTP requests to include an “Authorization” header with a “Bearer” token
+set to the respective shared secret which must begin with “secret-token:”
(following RFC 8959).
Note that all of the other endpoints (without @code{/private/})
@@ -1672,7 +1792,7 @@ are expected to be fully exposed to the Internet, and wallets may have to
interact with those endpoints directly without client authentication.
@node Status code remapping,,Access control,Secure setup
-@anchor{taler-merchant-manual status-code-remapping}@anchor{31}
+@anchor{taler-merchant-manual status-code-remapping}@anchor{39}
@section Status code remapping
@@ -1689,7 +1809,7 @@ fragment, which remaps all 404 response codes to 403.
@end menu
@node Nginx<2>,Apache<2>,,Status code remapping
-@anchor{taler-merchant-manual id9}@anchor{32}
+@anchor{taler-merchant-manual id11}@anchor{3a}
@subsection Nginx
@@ -1698,7 +1818,7 @@ error_page 404 =403 /empty.gif;
@end example
@node Apache<2>,,Nginx<2>,Status code remapping
-@anchor{taler-merchant-manual id10}@anchor{33}
+@anchor{taler-merchant-manual id12}@anchor{3b}
@subsection Apache
@@ -1708,7 +1828,7 @@ set-status 403
@end example
@node Customization,Upgrade procedure,Secure setup,Top
-@anchor{taler-merchant-manual customization}@anchor{34}
+@anchor{taler-merchant-manual customization}@anchor{3c}
@chapter Customization
@@ -1728,7 +1848,7 @@ set-status 403
@end menu
@node Legal conditions for using the service,Terms of Service,,Customization
-@anchor{taler-merchant-manual legal-conditions-for-using-the-service}@anchor{35}
+@anchor{taler-merchant-manual legal-conditions-for-using-the-service}@anchor{3d}
@section Legal conditions for using the service
@@ -1754,11 +1874,11 @@ user in various languages and various formats. This section describes how to
setup and configure the legal conditions.
@node Terms of Service,Privacy Policy,Legal conditions for using the service,Customization
-@anchor{taler-merchant-manual terms-of-service}@anchor{36}
+@anchor{taler-merchant-manual terms-of-service}@anchor{3e}
@section Terms of Service
-The service has an endpoint "/terms" to return the terms of service (in legal
+The service has an endpoint “/terms” to return the terms of service (in legal
language) of the service operator. Client software show these terms of
service to the user when the user is first interacting with the service.
Terms of service are optional for experimental deployments, if none are
@@ -1772,7 +1892,7 @@ in the configuration file for the service:
@itemize -
@item
-@code{TERMS_ETAG}: The current "Etag" to return for the terms of service.
+@code{TERMS_ETAG}: The current “Etag” to return for the terms of service.
This value must be changed whenever the terms of service are
updated. A common value to use would be a version number.
Note that if you change the @code{TERMS_ETAG}, you MUST also provide
@@ -1785,11 +1905,11 @@ process.
@end itemize
@node Privacy Policy,Legal policies directory layout,Terms of Service,Customization
-@anchor{taler-merchant-manual privacy-policy}@anchor{37}
+@anchor{taler-merchant-manual privacy-policy}@anchor{3f}
@section Privacy Policy
-The service has an endpoint "/pp" to return the terms privacy policy (in legal
+The service has an endpoint “/pp” to return the terms privacy policy (in legal
language) of the service operator. Clients should show the privacy policy to
the user when the user explicitly asks for it, but it should not be shown by
default. Privacy policies are optional for experimental deployments, if none
@@ -1803,7 +1923,7 @@ in the configuration file for the service:
@itemize -
@item
-@code{PRIVACY_ETAG}: The current "Etag" to return for the privacy policy.
+@code{PRIVACY_ETAG}: The current “Etag” to return for the privacy policy.
This value must be changed whenever the privacy policy is
updated. A common value to use would be a version number.
Note that if you change the @code{PRIVACY_ETAG}, you MUST also provide
@@ -1816,7 +1936,7 @@ process.
@end itemize
@node Legal policies directory layout,Generating the Legal Terms,Privacy Policy,Customization
-@anchor{taler-merchant-manual legal-policies-directory-layout}@anchor{38}
+@anchor{taler-merchant-manual legal-policies-directory-layout}@anchor{40}
@section Legal policies directory layout
@@ -1824,7 +1944,7 @@ The @code{TERMS_DIR} and @code{PRIVACY_DIR} directory structures must follow a
particular layout. You may use the same directory for both the terms of
service and the privacy policy, as long as you use different ETAGs. Inside of
the directory, there should be sub-directories using two-letter language codes
-like "en", "de", or "jp". Each of these directories would then hold
+like “en”, “de”, or “jp”. Each of these directories would then hold
translations of the current terms of service into the respective language.
Empty directories are permitted in case translations are not available.
@@ -1832,7 +1952,7 @@ Then, inside each language directory, files with the name of the value set as
the @code{TERMS_ETAG} or @code{PRIVACY_ETAG} must be provided. The extension of each
of the files should be typical for the respective mime type. The set of
supported mime types is currently hard-coded in the service, and includes
-".epub", ".html", ".md", ".pdf" and ".txt" files. If other files are present,
+“.epub”, “.html”, “.md”, “.pdf” and “.txt” files. If other files are present,
the service may show a warning on startup.
@menu
@@ -1841,11 +1961,11 @@ the service may show a warning on startup.
@end menu
@node Example,,,Legal policies directory layout
-@anchor{taler-merchant-manual example}@anchor{39}
+@anchor{taler-merchant-manual example}@anchor{41}
@subsection Example
-A sample file structure for a @code{TERMS_ETAG} of "tos-v0" would be:
+A sample file structure for a @code{TERMS_ETAG} of “tos-v0” would be:
@itemize -
@@ -1881,12 +2001,12 @@ TERMS_DIR/de/tos-v0.epub
TERMS_DIR/de/tos-v0.md
@end itemize
-If the user requests an HTML format with language preferences "fr" followed by
-"en", the service would return @code{TERMS_DIR/en/tos-v0.html} lacking a version in
+If the user requests an HTML format with language preferences “fr” followed by
+“en”, the service would return @code{TERMS_DIR/en/tos-v0.html} lacking a version in
French.
@node Generating the Legal Terms,Adding translations,Legal policies directory layout,Customization
-@anchor{taler-merchant-manual generating-the-legal-terms}@anchor{3a}
+@anchor{taler-merchant-manual generating-the-legal-terms}@anchor{42}
@section Generating the Legal Terms
@@ -1914,7 +2034,7 @@ languages (initially only English) in @code{$PREFIX/share/terms/}. The generato
has a few options which are documented in its man page.
@node Adding translations,Updating legal documents,Generating the Legal Terms,Customization
-@anchor{taler-merchant-manual adding-translations}@anchor{3b}
+@anchor{taler-merchant-manual adding-translations}@anchor{43}
@section Adding translations
@@ -1949,7 +2069,7 @@ You must restart the service whenever adding or updating legal documents or thei
@end cartouche
@node Updating legal documents,Mustach HTML Templates,Adding translations,Customization
-@anchor{taler-merchant-manual updating-legal-documents}@anchor{3c}
+@anchor{taler-merchant-manual updating-legal-documents}@anchor{44}
@section Updating legal documents
@@ -1967,7 +2087,7 @@ forget to update the @code{ETAG} configuration option to the new name and to
restart the service.
@node Mustach HTML Templates,Static files,Updating legal documents,Customization
-@anchor{taler-merchant-manual mustach-html-templates}@anchor{3d}
+@anchor{taler-merchant-manual mustach-html-templates}@anchor{45}
@section Mustach HTML Templates
@@ -1977,7 +2097,7 @@ own design. The templating language used is Mustach, and the templates
are in the @code{share/taler/merchant/templates/} directory.
@node Static files,Internationalization,Mustach HTML Templates,Customization
-@anchor{taler-merchant-manual static-files}@anchor{3e}
+@anchor{taler-merchant-manual static-files}@anchor{46}
@section Static files
@@ -1987,7 +2107,7 @@ logic to load a CSS file, but you can also put other resources such as
images or JavaScript.
@node Internationalization,Limitations,Static files,Customization
-@anchor{taler-merchant-manual internationalization}@anchor{3f}
+@anchor{taler-merchant-manual internationalization}@anchor{47}
@section Internationalization
@@ -2004,7 +2124,7 @@ returned. Otherwise, an internationalized file based on the language
preferences indicated by the browser is returned.
@node Limitations,,Internationalization,Customization
-@anchor{taler-merchant-manual limitations}@anchor{40}
+@anchor{taler-merchant-manual limitations}@anchor{48}
@section Limitations
@@ -2014,7 +2134,7 @@ to increase the @code{ulimit} of the @code{taler-merchant-httpd} process if you
many static files. Note that Mustach templates do not increase the number of
open files.
-The backend determines the MIME type based on the file's extension. The list
+The backend determines the MIME type based on the file’s extension. The list
of supported extensions is hard-coded and includes common text and image
formats.
@@ -2023,7 +2143,7 @@ template expansion, and does not make use of scopes and other Mustach
features.
@node Upgrade procedure,Advanced topics,Customization,Top
-@anchor{taler-merchant-manual upgrade-procedure}@anchor{41}
+@anchor{taler-merchant-manual upgrade-procedure}@anchor{49}
@chapter Upgrade procedure
@@ -2051,7 +2171,7 @@ REVOKE the database permissions. Finally, restart the merchant services
processes, either via your systemd or init system, or directly.
@node Advanced topics,Temporarily Abandoned Features,Upgrade procedure,Top
-@anchor{taler-merchant-manual advanced-topics}@anchor{42}
+@anchor{taler-merchant-manual advanced-topics}@anchor{4a}
@chapter Advanced topics
@@ -2064,14 +2184,14 @@ processes, either via your systemd or init system, or directly.
@end menu
@node taler-config,Using taler-config,,Advanced topics
-@anchor{taler-merchant-manual taler-config}@anchor{43}
+@anchor{taler-merchant-manual taler-config}@anchor{4b}
@section taler-config
@geindex taler-config
@node Using taler-config,Database Scheme,taler-config,Advanced topics
-@anchor{taler-merchant-manual using-taler-config}@anchor{44}
+@anchor{taler-merchant-manual using-taler-config}@anchor{4c}
@section Using taler-config
@@ -2125,7 +2245,7 @@ While the configuration file is typically located at
GNU Taler component using the @code{-c} option.
@node Database Scheme,Benchmarking,Using taler-config,Advanced topics
-@anchor{taler-merchant-manual database-scheme}@anchor{45}@anchor{taler-merchant-manual merchantdatabasescheme}@anchor{46}
+@anchor{taler-merchant-manual database-scheme}@anchor{4d}@anchor{taler-merchant-manual merchantdatabasescheme}@anchor{4e}
@section Database Scheme
@@ -2141,7 +2261,7 @@ The database scheme used by the merchant looks as follows:
@image{taler-merchant-figures/merchant-db,,,,png}
@node Benchmarking,,Database Scheme,Advanced topics
-@anchor{taler-merchant-manual benchmarking}@anchor{47}@anchor{taler-merchant-manual merchantbenchmarking}@anchor{48}
+@anchor{taler-merchant-manual benchmarking}@anchor{4f}@anchor{taler-merchant-manual merchantbenchmarking}@anchor{50}
@section Benchmarking
@@ -2173,7 +2293,7 @@ See Taler Exchange Manual for how to use @code{taler-unified-setup.sh} to setup
@end menu
@node Running taler-merchant-benchmark,,,Benchmarking
-@anchor{taler-merchant-manual running-taler-merchant-benchmark}@anchor{49}
+@anchor{taler-merchant-manual running-taler-merchant-benchmark}@anchor{51}
@subsection Running taler-merchant-benchmark
@@ -2217,8 +2337,12 @@ second gives the chance to leave some payments unaggregated, and also to
use merchant instances other than the default (which is, actually, the
one used by default by the tool).
-Note: the ability of driving the aggregation policy is useful for testing
+@cartouche
+@quotation Note
+The ability to drive the aggregation policy is useful for testing
the back-office facility.
+@end quotation
+@end cartouche
Any subcommand is also equipped with the canonical @code{--help} option, so
feel free to issue the following command in order to explore all the
@@ -2255,7 +2379,7 @@ option:
@end itemize
@node Temporarily Abandoned Features,Index,Advanced topics,Top
-@anchor{taler-merchant-manual temporarily-abandoned-features}@anchor{4a}
+@anchor{taler-merchant-manual temporarily-abandoned-features}@anchor{52}
@chapter Temporarily Abandoned Features
@@ -2265,7 +2389,7 @@ option:
@end menu
@node Installing Taler using Docker,,,Temporarily Abandoned Features
-@anchor{taler-merchant-manual installing-taler-using-docker}@anchor{4b}
+@anchor{taler-merchant-manual installing-taler-using-docker}@anchor{53}
@section Installing Taler using Docker