summaryrefslogtreecommitdiff
path: root/texinfo/taler-developer-manual.texi
diff options
context:
space:
mode:
Diffstat (limited to 'texinfo/taler-developer-manual.texi')
-rw-r--r--texinfo/taler-developer-manual.texi212
1 files changed, 106 insertions, 106 deletions
diff --git a/texinfo/taler-developer-manual.texi b/texinfo/taler-developer-manual.texi
index 3c323a06..66d96eed 100644
--- a/texinfo/taler-developer-manual.texi
+++ b/texinfo/taler-developer-manual.texi
@@ -21,7 +21,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jun 20, 2022
+GNU Taler 0.9.0, Jul 06, 2022
GNU Taler team
@@ -104,13 +104,13 @@ Wallet:
[ ] build wallet
@item
-[ ] verify wallet works against 'test.taler.net'
+[ ] verify wallet works against ‘test.taler.net’
@item
[ ] tag repo.
@item
-[ ] upgrade 'demo.taler.net' to 'test.taler.net'
+[ ] upgrade ‘demo.taler.net’ to ‘test.taler.net’
@item
[ ] upload new wallet release to app store
@@ -134,7 +134,7 @@ For exchange:
@itemize -
@item
-[ ] check no compiler warnings at "-Wall"
+[ ] check no compiler warnings at “-Wall”
@item
[ ] ensure Coverity static analysis passes
@@ -143,10 +143,10 @@ For exchange:
[ ] make check.
@item
-[ ] upgrade 'demo.taler.net' to 'test.taler.net'
+[ ] upgrade ‘demo.taler.net’ to ‘test.taler.net’
@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.
@@ -179,7 +179,7 @@ For merchant (C backend):
@itemize -
@item
-[ ] check no compiler warnings at "-Wall"
+[ ] check no compiler warnings at “-Wall”
@item
[ ] ensure Coverity static analysis passes
@@ -188,10 +188,10 @@ For merchant (C backend):
[ ] make check.
@item
-[ ] upgrade 'demo.taler.net' to 'test.taler.net'
+[ ] upgrade ‘demo.taler.net’ to ‘test.taler.net’
@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.
@@ -413,7 +413,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
@@ -549,7 +549,7 @@ Bootstrap, configure, do @code{make install}, @code{make check}, etc.
Commit the submodule change, and push it to the Taler exchange Git repo.
@end itemize
-A similiar procedure is required for other databases in GANA.
+A similar procedure is required for other databases in GANA.
See file @code{README} in the various directories for specific instructions.
@node Debian and Ubuntu Repositories,Language-Specific Guidelines,Fundamentals,Top
@@ -668,7 +668,7 @@ user can be switched to become active (see next section), and vice versa.
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.
Before deploying on @code{demo}, the same version of all components @strong{must}
be deployed @emph{and} tested on @code{int}.
@@ -838,7 +838,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.
@@ -856,7 +856,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>}
@@ -958,7 +958,7 @@ $ buildbot-worker start worker/
@section Tipping reserve top-up
-Both 'test' and 'demo' setups get their tip reserve topped up
+Both ‘test’ and ‘demo’ setups get their tip reserve topped up
by a Buildbot worker. The following steps get the reserve topper
prepared.
@@ -979,7 +979,7 @@ $ buildbot-worker start worker/
@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.
@@ -1139,7 +1139,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
@@ -1227,21 +1227,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,Android Apps,Continuous integration,Top
@anchor{taler-developer-manual internationalization}@anchor{2c}
@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.
@@ -1329,7 +1329,7 @@ Under @emph{https://weblate.taler.net/create/component/vcs/}:
@strong{Repository push URL} - This is generally @code{git+ssh://git@@git.taler.net/<reponame>`} Check with @code{git remote -v}.
@item
-@strong{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.
+@strong{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
@strong{Merge style} - @emph{Rebase}, in line with GNU Taler development procedures
@@ -1354,7 +1354,7 @@ Under @emph{https://weblate.taler.net/create/component/vcs/}:
4 - Choose the @emph{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.
@@ -1365,7 +1365,7 @@ You may also wish to refer to @indicateurl{https://docs.weblate.org/} .
@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 @emph{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 @emph{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.
@@ -1378,7 +1378,7 @@ Set commit/push to manual only.
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 Android Apps,Code Coverage,Internationalization,Top
@anchor{taler-developer-manual android-apps}@anchor{35}
@@ -1419,7 +1419,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.
@@ -1469,7 +1469,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
@@ -1486,12 +1486,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
@@ -1524,8 +1524,8 @@ 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/}.
@@ -1535,7 +1535,7 @@ you will find your APK in @code{merchant-terminal/build/outputs/apk/release/}.
@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
@@ -1601,7 +1601,7 @@ $ git tag -s $APP-$VERSION
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:
@@ -1701,22 +1701,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
@@ -1749,22 +1749,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
@@ -1806,14 +1806,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
@@ -1833,7 +1833,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
@@ -1843,7 +1843,7 @@ 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
@@ -1929,7 +1929,7 @@ 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
@@ -2033,14 +2033,14 @@ used in the user interface and help materials.
Refreshing is the internal technical terminology for the protocol to
give change for partially spent coins
-@strong{Use instead}: "Obtaining change"
+@strong{Use instead}: “Obtaining change”
@item Coin
Coins are an internal construct, the user should never be aware that their balance
is represented by coins if different denominations.
-@strong{Use instead}: "(Digital) Cash" or "(Wallet) Balance"
+@strong{Use instead}: “(Digital) Cash” or “(Wallet) Balance”
@item Consumer
@@ -2055,7 +2055,7 @@ of the signed contract terms for an order.
@strong{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
@@ -2063,14 +2063,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).
-@strong{Use instead}: "Privacy-preserving", "Privacy-friendly"
+@strong{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.
-@strong{Use instead}: In the event history, "re-activated digital content purchase"
+@strong{Use instead}: In the event history, “re-activated digital content purchase”
could be used. (FIXME: this is still not nice.)
@item Session ID
@@ -2106,16 +2106,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
@@ -2123,12 +2123,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
@@ -2137,7 +2137,7 @@ 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
@@ -2166,7 +2166,7 @@ absolute time in contrast to @ref{4f,,relative time}.
the @ref{51,,exchange} combines multiple payments received by the
same @ref{52,,merchant} into one larger @ref{53,,wire transfer} to
-the respective merchant's @ref{54,,bank} account
+the respective merchant’s @ref{54,,bank} account
@anchor{taler-developer-manual term-auditor}@anchor{55}
@geindex auditor
@@ -2288,7 +2288,7 @@ exchange to credit his bank account in the future using an
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
+link multiple transactions of coin’s owner if the coin is not refreshed
@anchor{taler-developer-manual term-drain}@anchor{76}
@geindex drain
@@ -2298,7 +2298,7 @@ link multiple transactions of coin's owner if the coin is not refreshed
@itemx drained
a @ref{61,,reserve} is being drained when a @ref{58,,wallet} is using the
-reserve's private key to @ref{63,,withdraw} coins from it. This reduces
+reserve’s private key to @ref{63,,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{5f,,closed} by the exchange.
@@ -2307,7 +2307,7 @@ the reserve has been (fully) drained. Reserves that are not drained
@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{77}
@geindex expired
@@ -2321,7 +2321,7 @@ 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
@@ -2449,7 +2449,7 @@ a coin is owned by the entity that knows the private key of the coin
@item planchet
-precursor data for a @ref{65,,coin}. A planchet includes the coin's internal
+precursor data for a @ref{65,,coin}. A planchet includes the coin’s internal
secrets (coin private key, blinding factor), but lacks the RSA signature
of the @ref{51,,exchange}. When @ref{7a,,withdrawing}, a @ref{58,,wallet}
creates and persists a planchet before asking the exchange to sign it to
@@ -2535,7 +2535,7 @@ contrast to @ref{4d,,absolute time}.
accounting mechanism used by the exchange to track customer funds
from incoming @ref{7d,,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{58,,wallet}
+in the subject. The exchange then allows the customer’s @ref{58,,wallet}
to @ref{63,,withdraw} up to the amount received in @ref{6b,,fresh}
@ref{5a,,coins} from the reserve, thereby draining the reserve. If a
reserve is not drained, the exchange eventually @ref{5e,,closes} it.
@@ -2571,7 +2571,7 @@ denomination are subjected to recoup.
@item sharing
-users can share ownership of a @ref{65,,coin} by sharing access to the coin&#39;s
+users can share ownership of a @ref{65,,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{59}
@@ -2651,7 +2651,7 @@ the respective code base.
@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{9f}
@geindex WebExtension
@@ -2724,21 +2724,21 @@ developer.
@strong{taler-config-generate} - tool to simplify Taler configuration generation
@strong{taler-config-generate}
-[@strong{-C} @emph{CURRENCY} | @strong{--currency=}‌@emph{CURRENCY}]
-[@strong{-c} @emph{FILENAME} | @strong{--config=}‌@emph{FILENAME}]
-[@strong{-e} | @strong{--exchange}]
-[@strong{-f} @emph{AMOUNT} | @emph{--wirefee=}‌@emph{AMOUNT}]
-[@strong{-h} | @strong{--help}]
-[@strong{-J} @emph{JSON} | @strong{--wire-json-exchange=}‌@emph{JSON}]
-[@strong{-j} @emph{JSON} | @strong{--wire-json-merchant=}‌@emph{JSON}]
-[@strong{-L} @emph{LOGLEVEL} | @strong{--loglevel=}‌@emph{LOGLEVEL}]
-[@strong{-m} | @strong{--merchant}]
-[@strong{-t} | @strong{--trusted}]
-[@strong{-v} | @strong{--version}]
-[@strong{-w} @emph{WIREFORMAT} | @strong{--wire} @emph{WIREFORMAT}]
-[@strong{--bank-uri}]
-[@strong{--exchange-bank-account}]
-[@strong{--merchant-bank-account}]
+[@strong{-C} @emph{CURRENCY} | @strong{–currency=}‌@emph{CURRENCY}]
+[@strong{-c} @emph{FILENAME} | @strong{–config=}‌@emph{FILENAME}]
+[@strong{-e} | @strong{–exchange}]
+[@strong{-f} @emph{AMOUNT} | @emph{–wirefee=}‌@emph{AMOUNT}]
+[@strong{-h} | @strong{–help}]
+[@strong{-J} @emph{JSON} | @strong{–wire-json-exchange=}‌@emph{JSON}]
+[@strong{-j} @emph{JSON} | @strong{–wire-json-merchant=}‌@emph{JSON}]
+[@strong{-L} @emph{LOGLEVEL} | @strong{–loglevel=}‌@emph{LOGLEVEL}]
+[@strong{-m} | @strong{–merchant}]
+[@strong{-t} | @strong{–trusted}]
+[@strong{-v} | @strong{–version}]
+[@strong{-w} @emph{WIREFORMAT} | @strong{–wire} @emph{WIREFORMAT}]
+[@strong{–bank-uri}]
+[@strong{–exchange-bank-account}]
+[@strong{–merchant-bank-account}]
@strong{taler-config-generate} can be used to generate configuration files
for the Taler exchange or Taler merchants.
@@ -2746,16 +2746,16 @@ for the Taler exchange or Taler merchants.
@table @asis
-@item @strong{-C} @emph{CURRENCY} | @strong{--currency=}‌@emph{CURRENCY}
+@item @strong{-C} @emph{CURRENCY} | @strong{–currency=}‌@emph{CURRENCY}
Which currency should we use in the configuration.
-@item @strong{-c} @emph{FILENAME} | @strong{--config=}‌@emph{FILENAME}
+@item @strong{-c} @emph{FILENAME} | @strong{–config=}‌@emph{FILENAME}
Location where to write the generated configuration. Existing file
will be updated, not overwritten.
-@item @strong{-e} | @strong{--exchange}
+@item @strong{-e} | @strong{–exchange}
Generate configuration for a Taler exchange.
@@ -2764,53 +2764,53 @@ Generate configuration for a Taler exchange.
Setup wire transfer fees for the next 5 years for the exchange (for
all wire methods).
-@item @strong{-h} | @strong{--help}
+@item @strong{-h} | @strong{–help}
Shows this man page.
-@item @strong{-J} @emph{JSON} | @strong{--wire-json-exchange=}‌@emph{JSON}
+@item @strong{-J} @emph{JSON} | @strong{–wire-json-exchange=}‌@emph{JSON}
Wire configuration to use for the exchange.
-@item @strong{-j} @emph{JSON} | @strong{--wire-json-merchant=}‌@emph{JSON}
+@item @strong{-j} @emph{JSON} | @strong{–wire-json-merchant=}‌@emph{JSON}
Wire configuration to use for the merchant.
-@item @strong{-L} @emph{LOGLEVEL} | @strong{--loglevel=}‌@emph{LOGLEVEL}
+@item @strong{-L} @emph{LOGLEVEL} | @strong{–loglevel=}‌@emph{LOGLEVEL}
Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and
ERROR.
-@item @strong{-m} | @strong{--merchant}
+@item @strong{-m} | @strong{–merchant}
Generate configuration for a Taler merchant.
-@item @strong{-t} | @strong{--trusted}
+@item @strong{-t} | @strong{–trusted}
Setup current exchange as trusted with current merchant. Generally
only useful when configuring for testcases.
-@item @strong{-v} | @strong{--version}
+@item @strong{-v} | @strong{–version}
Print version information.
-@item @strong{-w} @emph{WIREFORMAT} | @strong{--wire} @emph{WIREFORMAT}
+@item @strong{-w} @emph{WIREFORMAT} | @strong{–wire} @emph{WIREFORMAT}
Specifies which wire format to use (i.e. “x-talerbank” or “iban”)
-@item @strong{--bank-uri}
+@item @strong{–bank-uri}
Alternative to specify wire configuration to use for the exchange and
merchant for the “test” wire method. Only useful if WIREFORMAT was
set to “test”. Specifies the URI of the bank.
-@item @strong{--exchange-bank-account}
+@item @strong{–exchange-bank-account}
Alternative to specify wire configuration to use for the exchange for
the “test” wire method. Only useful if WIREFORMAT was set to “test”.
Specifies the bank account number of the exchange.
-@item @strong{--merchant-bank-account}
+@item @strong{–merchant-bank-account}
Alternative to specify wire configuration to use for the merchant for
the “test” wire method. Only useful if WIREFORMAT was set to “test”.