Compare commits
No commits in common. "fail-amount" and "master" have entirely different histories.
fail-amoun
...
master
@ -274,11 +274,11 @@ AS_CASE([$with_gnunet],
|
||||
CPPFLAGS="-I$with_gnunet/include ${CPPFLAGS}"])
|
||||
CPPFLAGS="${CPPFLAGS} ${POSTGRESQL_CPPFLAGS}"
|
||||
AC_CHECK_HEADERS([gnunet/gnunet_pq_lib.h],
|
||||
[AC_CHECK_LIB([gnunetpq], [GNUNET_PQ_result_spec_array_string], libgnunetpq=1)])
|
||||
[AC_CHECK_LIB([gnunetpq], [GNUNET_PQ_result_spec_string], libgnunetpq=1)])
|
||||
AS_IF([test $libgnunetpq != 1],
|
||||
[AC_MSG_ERROR([[
|
||||
***
|
||||
*** You need libgnunetpq version >= 4.0.0 to build this program.
|
||||
*** You need libgnunetpq to build this program.
|
||||
*** Make sure you have Postgres installed while
|
||||
*** building GNUnet (and that your GNUnet version
|
||||
*** is recent!)
|
||||
|
2
contrib/.gitignore
vendored
2
contrib/.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
taler-terms-generator
|
||||
locale/**/*.pot
|
@ -1,8 +1,7 @@
|
||||
# This file is in the public domain.
|
||||
|
||||
SUBDIRS = .
|
||||
|
||||
tmplpkgdatadir = $(prefix)/share/taler/exchange/templates/
|
||||
|
||||
dist_tmplpkgdata_DATA = \
|
||||
persona-exchange-unauthorized.en.must \
|
||||
persona-load-failure.en.must \
|
||||
@ -13,48 +12,78 @@ dist_tmplpkgdata_DATA = \
|
||||
persona-kyc-failed.en.must \
|
||||
persona-provider-failure.en.must
|
||||
|
||||
termsdir=$(datadir)/taler/terms/
|
||||
terms_DATA = \
|
||||
exchange-tos-v0.rst \
|
||||
exchange-tos-bfh-v0.rst \
|
||||
exchange-pp-v0.rst
|
||||
# %%.must: merchant-backoffice/%.html
|
||||
# WTF: cp $< $@
|
||||
|
||||
install-exec-local:
|
||||
pwd
|
||||
find locale/ -name "*.po"
|
||||
mkdir -p $(termsdir)
|
||||
cp --parents -r $$(find locale/ -name "*.po") $(termsdir)
|
||||
|
||||
# English (en)
|
||||
tosendir=$(datadir)/taler/exchange/tos/en
|
||||
|
||||
# English (en)
|
||||
ppendir=$(datadir)/taler/exchange/pp/en
|
||||
|
||||
rdatadir=$(datadir)/taler/exchange
|
||||
|
||||
tosen_DATA = \
|
||||
tos/en/*.txt \
|
||||
tos/en/*.md \
|
||||
tos/en/*.pdf \
|
||||
tos/en/*.epub \
|
||||
tos/en/*.xml \
|
||||
tos/en/*.html
|
||||
|
||||
ppen_DATA = \
|
||||
pp/en/*.txt \
|
||||
pp/en/*.md \
|
||||
pp/en/*.pdf \
|
||||
pp/en/*.epub \
|
||||
pp/en/*.xml \
|
||||
pp/en/*.html
|
||||
|
||||
rdata_DATA = \
|
||||
auditor-report.tex.j2
|
||||
|
||||
bin_SCRIPTS = \
|
||||
taler-terms-generator \
|
||||
taler-bank-manage-testing \
|
||||
taler-nexus-prepare
|
||||
|
||||
edit_script = $(SED) -e 's,%termsdir%,$(termsdir),'g $(NULL)
|
||||
taler-terms-generator: taler-terms-generator.in
|
||||
rm -f $@ $@.tmp && \
|
||||
$(edit_script) $< >$@.tmp && \
|
||||
chmod a-w+x $@.tmp && \
|
||||
mv $@.tmp $@
|
||||
|
||||
CLEANFILES = \
|
||||
taler-terms-generator
|
||||
|
||||
EXTRA_DIST = \
|
||||
locale/de/LC_MESSAGES/exchange-tos-v0.po \
|
||||
taler-bank-manage-testing \
|
||||
taler-nexus-prepare \
|
||||
taler-terms-generator.in \
|
||||
$(bin_SCRIPTS) \
|
||||
$(tosen_DATA) \
|
||||
$(ppen_DATA) \
|
||||
update-tos.sh \
|
||||
update-pp.sh \
|
||||
gana-update.sh \
|
||||
gana/gnu-taler-error-codes/registry.rec \
|
||||
gana/gnu-taler-error-codes/Makefile \
|
||||
$(terms_DATA) \
|
||||
tos/Makefile \
|
||||
tos/README \
|
||||
tos/bfh-v0.rst \
|
||||
tos/tos-v0.rst \
|
||||
tos/conf.py.in \
|
||||
tos/locale/de/LC_MESSAGES/tos.po \
|
||||
pp/Makefile \
|
||||
pp/README \
|
||||
pp/pp-v0.rst \
|
||||
pp/conf.py.in \
|
||||
pp/locale/de/LC_MESSAGES/pp.po \
|
||||
$(rdata_DATA) \
|
||||
coverage.sh \
|
||||
gnunet.tag \
|
||||
microhttpd.tag \
|
||||
packages
|
||||
microhttpd.tag
|
||||
|
||||
# Change the set of supported languages here. You should
|
||||
# also update tos'XX'data and EXTRA_DIST accordingly.
|
||||
TOS_LANGUAGES="en de"
|
||||
PP_LANGUAGES="en de"
|
||||
|
||||
# Change the terms-of-service version (Etag) to generate here!
|
||||
# This value should be modified whenever there is a substantive
|
||||
# change in the original text (but not for the translations).
|
||||
TOS_VERSION=tos-v0
|
||||
PP_VERSION=pp-v0
|
||||
|
||||
update-tos:
|
||||
VERSION=$(TOS_VERSION) ./update-tos.sh $(TOS_LANGUAGES)
|
||||
update-pp:
|
||||
VERSION=$(PP_VERSION) ./update-pp.sh $(PP_LANGUAGES)
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit d04f990981fdee8ba1b31d6d61424abbbc03cbc3
|
||||
Subproject commit bd4e73b2ed06269fdee42eaad21acb5be8be9302
|
@ -31,13 +31,7 @@
|
||||
<member kind="define">
|
||||
<type>#define</type>
|
||||
<name>GNUNET_TIME_UNIT_FOREVER_ABS</name>
|
||||
<anchorfile>gnunet_time_lib.h</anchorfile>
|
||||
<arglist></arglist>
|
||||
</member>
|
||||
<member kind="define">
|
||||
<type>#define</type>
|
||||
<name>GNUNET_TIME_UNIT_ZERO_ABS</name>
|
||||
<anchorfile>gnunet_time_lib.h</anchorfile>
|
||||
<anchorfile>gnunet_util_lib.h</anchorfile>
|
||||
<arglist></arglist>
|
||||
</member>
|
||||
</compound>
|
||||
|
@ -1,403 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2014-2023 Taler Systems SA (GPLv3+ or GFDL 1.3+)
|
||||
# This file is distributed under the same license as the tos-v0 package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: tos-v0 tos-v0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-07-20 15:38+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid "Terms Of Service"
|
||||
msgstr "Allgemeine Geschaeftsbedingungen"
|
||||
|
||||
msgid "Last Updated: 12.4.2019"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment service "
|
||||
"through our Internet presence (collectively the “Services”). Before using "
|
||||
"our Services, please read the Terms of Service (the “Terms” or the "
|
||||
"“Agreement”) carefully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This section provides a brief summary of the highlights of this Agreement. "
|
||||
"Please note that when you accept this Agreement, you are accepting all of "
|
||||
"the terms and conditions and not just this section. We and possibly other "
|
||||
"third parties provide Internet services which interact with the Taler "
|
||||
"Wallet’s self-hosted personal payment application. When using the Taler "
|
||||
"Wallet to interact with our Services, you are agreeing to our Terms, so "
|
||||
"please read carefully."
|
||||
msgstr ""
|
||||
|
||||
msgid "Highlights:"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You are responsible for keeping the data in your Taler Wallet at all times "
|
||||
"under your control. Any losses arising from you not being in control of your "
|
||||
"private information are your problem."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"We will try to transfer funds we hold in escrow for our users to any legal "
|
||||
"recipient to the best of our ability within the limitations of the law and "
|
||||
"our implementation. However, the Services offered today are highly "
|
||||
"experimental and the set of recipients of funds is severely restricted."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For our Services, we may charge transaction fees. The specific fee structure "
|
||||
"is provided based on the Taler protocol and should be shown to you when you "
|
||||
"withdraw electronic coins using a Taler Wallet. You agree and understand "
|
||||
"that the Taler protocol allows for the fee structure to change."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You agree to not intentionally overwhelm our systems with requests and "
|
||||
"follow responsible disclosure if you find security issues in our services."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"We cannot be held accountable for our Services not being available due to "
|
||||
"circumstances beyond our control. If we modify or terminate our services, we "
|
||||
"will try to give you the opportunity to recover your funds. However, given "
|
||||
"the experimental state of the Services today, this may not be possible. You "
|
||||
"are strongly advised to limit your use of the Service to small-scale "
|
||||
"experiments expecting total loss of all funds."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"These terms outline approved uses of our Services. The Services and these "
|
||||
"Terms are still at an experimental stage. If you have any questions or "
|
||||
"comments related to this Agreement, please send us a message to legal@taler-"
|
||||
"systems.com. If you do not agree to this Agreement, you must not use our "
|
||||
"Services."
|
||||
msgstr ""
|
||||
|
||||
msgid "How you accept this policy"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"By sending funds to us (to top-up your Taler Wallet), you acknowledge that "
|
||||
"you have read, understood, and agreed to these Terms. We reserve the right "
|
||||
"to change these Terms at any time. If you disagree with the change, we may "
|
||||
"in the future offer you with an easy option to recover your unspent funds. "
|
||||
"However, in the current experimental period you acknowledge that this "
|
||||
"feature is not yet available, resulting in your funds being lost unless you "
|
||||
"accept the new Terms. If you continue to use our Services other than to "
|
||||
"recover your unspent funds, your continued use of our Services following any "
|
||||
"such change will signify your acceptance to be bound by the then current "
|
||||
"Terms. Please check the effective date above to determine if there have been "
|
||||
"any changes since you have last reviewed these Terms."
|
||||
msgstr ""
|
||||
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"We will try to transfer funds that we hold in escrow for our users to any "
|
||||
"legal recipient to the best of our ability and within the limitations of the "
|
||||
"law and our implementation. However, the Services offered today are highly "
|
||||
"experimental and the set of recipients of funds is severely restricted. The "
|
||||
"Taler Wallet can be loaded by exchanging fiat currencies against electronic "
|
||||
"coins. We are providing this exchange service. Once your Taler Wallet is "
|
||||
"loaded with electronic coins they can be spent for purchases if the seller "
|
||||
"is accepting Taler as a means of payment. We are not guaranteeing that any "
|
||||
"seller is accepting Taler at all or a particular seller. The seller or "
|
||||
"recipient of deposits of electronic coins must specify the target account, "
|
||||
"as per the design of the Taler protocol. They are responsible for following "
|
||||
"the protocol and specifying the correct bank account, and are solely liable "
|
||||
"for any losses that may arise from specifying the wrong account. We will "
|
||||
"allow the government to link wire transfers to the underlying contract hash. "
|
||||
"It is the responsibility of recipients to preserve the full contracts and to "
|
||||
"pay whatever taxes and charges may be applicable. Technical issues may lead "
|
||||
"to situations where we are unable to make transfers at all or lead to "
|
||||
"incorrect transfers that cannot be reversed. We will only refuse to execute "
|
||||
"transfers if the transfers are prohibited by a competent legal authority and "
|
||||
"we are ordered to do so."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"When using our Services, you agree to not take any action that intentionally "
|
||||
"imposes an unreasonable load on our infrastructure. If you find security "
|
||||
"problems in our Services, you agree to first report them to security@taler-"
|
||||
"systems.com and grant us the right to publish your report. We warrant that "
|
||||
"we will ourselves publicly disclose any issues reported within 3 months, and "
|
||||
"that we will not prosecute anyone reporting security issues if they did not "
|
||||
"exploit the issue beyond a proof-of-concept, and followed the above "
|
||||
"responsible disclosure practice."
|
||||
msgstr ""
|
||||
|
||||
msgid "Fees"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You agree to pay the fees for exchanges and withdrawals completed via the "
|
||||
"Taler Wallet (\"Fees\") as defined by us, which we may change from time to "
|
||||
"time. With the exception of wire transfer fees, Taler transaction fees are "
|
||||
"set for any electronic coin at the time of withdrawal and fixed throughout "
|
||||
"the validity period of the respective electronic coin. Your wallet should "
|
||||
"obtain and display applicable fees when withdrawing funds. Fees for coins "
|
||||
"obtained as change may differ from the fees applicable to the original coin. "
|
||||
"Wire transfer fees that are independent from electronic coins may change "
|
||||
"annually. You authorize us to charge or deduct applicable fees owed in "
|
||||
"connection with deposits, exchanges and withdrawals following the rules of "
|
||||
"the Taler protocol. We reserve the right to provide different types of "
|
||||
"rewards to users either in the form of discount for our Services or in any "
|
||||
"other form at our discretion and without prior notice to you."
|
||||
msgstr ""
|
||||
|
||||
msgid "Eligibility and Financial self-responsibility"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"To be eligible to use our Services, you must be able to form legally binding "
|
||||
"contracts or have the permission of your legal guardian. By using our "
|
||||
"Services, you represent and warrant that you meet all eligibility "
|
||||
"requirements that we outline in these Terms."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You will be responsible for maintaining the availability, integrity and "
|
||||
"confidentiality of the data stored in your wallet. When you setup a Taler "
|
||||
"Wallet, you are strongly advised to follow the precautionary measures "
|
||||
"offered by the software to minimize the chances to losse access to or "
|
||||
"control over your Wallet data. We will not be liable for any loss or damage "
|
||||
"arising from your failure to comply with this paragraph."
|
||||
msgstr ""
|
||||
|
||||
msgid "Copyrights and trademarks"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"The Taler Wallet is released under the terms of the GNU General Public "
|
||||
"License (GNU GPL). You have the right to access, use, and share the Taler "
|
||||
"Wallet, in modified or unmodified form. However, the GPL is a strong "
|
||||
"copyleft license, which means that any derivative works must be distributed "
|
||||
"under the same license terms as the original software. If you have any "
|
||||
"questions, you should review the GNU GPL’s full terms and conditions at "
|
||||
"https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler” itself is a trademark "
|
||||
"of Taler Systems SA. You are welcome to use the name in relation to "
|
||||
"processing payments using the Taler protocol, assuming your use is "
|
||||
"compatible with an official release from the GNU Project that is not older "
|
||||
"than two years."
|
||||
msgstr ""
|
||||
|
||||
msgid "Limitation of liability & disclaimer of warranties"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You understand and agree that we have no control over, and no duty to take "
|
||||
"any action regarding: Failures, disruptions, errors, or delays in processing "
|
||||
"that you may experience while using our Services; The risk of failure of "
|
||||
"hardware, software, and Internet connections; The risk of malicious software "
|
||||
"being introduced or found in the software underlying the Taler Wallet; The "
|
||||
"risk that third parties may obtain unauthorized access to information stored "
|
||||
"within your Taler Wallet, including, but not limited to your Taler Wallet "
|
||||
"coins or backup encryption keys. You release us from all liability related "
|
||||
"to any losses, damages, or claims arising from:"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"user error such as forgotten passwords, incorrectly constructed transactions;"
|
||||
msgstr ""
|
||||
|
||||
msgid "server failure or data loss;"
|
||||
msgstr ""
|
||||
|
||||
msgid "unauthorized access to the Taler Wallet application;"
|
||||
msgstr ""
|
||||
|
||||
msgid "bugs or other errors in the Taler Wallet software; and"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"any unauthorized third party activities, including, but not limited to, the "
|
||||
"use of viruses, phishing, brute forcing, or other means of attack against "
|
||||
"the Taler Wallet. We make no representations concerning any Third Party "
|
||||
"Content contained in or accessed through our Services."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Any other terms, conditions, warranties, or representations associated with "
|
||||
"such content, are solely between you and such organizations and/or "
|
||||
"individuals."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"To the fullest extent permitted by applicable law, in no event will we or "
|
||||
"any of our officers, directors, representatives, agents, servants, counsel, "
|
||||
"employees, consultants, lawyers, and other personnel authorized to act, "
|
||||
"acting, or purporting to act on our behalf (collectively the “Taler "
|
||||
"Parties”) be liable to you under contract, tort, strict liability, "
|
||||
"negligence, or any other legal or equitable theory, for:"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"any lost profits, data loss, cost of procurement of substitute goods or "
|
||||
"services, or direct, indirect, incidental, special, punitive, compensatory, "
|
||||
"or consequential damages of any kind whatsoever resulting from:"
|
||||
msgstr ""
|
||||
|
||||
msgid "your use of, or conduct in connection with, our services;"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"any unauthorized use of your wallet and/or private key due to your failure "
|
||||
"to maintain the confidentiality of your wallet;"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"any interruption or cessation of transmission to or from the services; or"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"any bugs, viruses, trojan horses, or the like that are found in the Taler "
|
||||
"Wallet software or that may be transmitted to or through our services by any "
|
||||
"third party (regardless of the source of origination), or"
|
||||
msgstr ""
|
||||
|
||||
msgid "any direct damages."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"These limitations apply regardless of legal theory, whether based on tort, "
|
||||
"strict liability, breach of contract, breach of warranty, or any other legal "
|
||||
"theory, and whether or not we were advised of the possibility of such "
|
||||
"damages. Some jurisdictions do not allow the exclusion or limitation of "
|
||||
"liability for consequential or incidental damages, so the above limitation "
|
||||
"may not apply to you."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Our services are provided \"as is\" and without warranty of any kind. To the "
|
||||
"maximum extent permitted by law, we disclaim all representations and "
|
||||
"warranties, express or implied, relating to the services and underlying "
|
||||
"software or any content on the services, whether provided or owned by us or "
|
||||
"by any third party, including without limitation, warranties of "
|
||||
"merchantability, fitness for a particular purpose, title, non-infringement, "
|
||||
"freedom from computer virus, and any implied warranties arising from course "
|
||||
"of dealing, course of performance, or usage in trade, all of which are "
|
||||
"expressly disclaimed. In addition, we do not represent or warrant that the "
|
||||
"content accessible via the services is accurate, complete, available, "
|
||||
"current, free of viruses or other harmful components, or that the results of "
|
||||
"using the services will meet your requirements. Some states do not allow the "
|
||||
"disclaimer of implied warranties, so the foregoing disclaimers may not apply "
|
||||
"to you. This paragraph gives you specific legal rights and you may also have "
|
||||
"other legal rights that vary from state to state."
|
||||
msgstr ""
|
||||
|
||||
msgid "Indemnity and Time limitation on claims and Termination"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"To the extent permitted by applicable law, you agree to defend, indemnify, "
|
||||
"and hold harmless the Taler Parties from and against any and all claims, "
|
||||
"damages, obligations, losses, liabilities, costs or debt, and expenses "
|
||||
"(including, but not limited to, attorney’s fees) arising from: (a) your use "
|
||||
"of and access to the Services; (b) any feedback or submissions you provide "
|
||||
"to us concerning the Taler Wallet; (c) your violation of any term of this "
|
||||
"Agreement; or (d) your violation of any law, rule, or regulation, or the "
|
||||
"rights of any third party."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You agree that any claim you may have arising out of or related to your "
|
||||
"relationship with us must be filed within one year after such claim arises, "
|
||||
"otherwise, your claim in permanently barred."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"In the event of termination concerning your use of our Services, your "
|
||||
"obligations under this Agreement will still continue."
|
||||
msgstr ""
|
||||
|
||||
msgid "Discontinuance of services and Force majeure"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"We may, in our sole discretion and without cost to you, with or without "
|
||||
"prior notice, and at any time, modify or discontinue, temporarily or "
|
||||
"permanently, any portion of our Services. We will use the Taler protocol’s "
|
||||
"provisions to notify Wallets if our Services are to be discontinued. It is "
|
||||
"your responsibility to ensure that the Taler Wallet is online at least once "
|
||||
"every three months to observe these notifications. We shall not be held "
|
||||
"responsible or liable for any loss of funds in the event that we discontinue "
|
||||
"or depreciate the Services and your Taler Wallet fails to transfer out the "
|
||||
"coins within a three months notification period."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"We shall not be held liable for any delays, failure in performance, or "
|
||||
"interruptions of service which result directly or indirectly from any cause "
|
||||
"or condition beyond our reasonable control, including but not limited to: "
|
||||
"any delay or failure due to any act of God, act of civil or military "
|
||||
"authorities, act of terrorism, civil disturbance, war, strike or other labor "
|
||||
"dispute, fire, interruption in telecommunications or Internet services or "
|
||||
"network provider services, failure of equipment and/or software, other "
|
||||
"catastrophe, or any other occurrence which is beyond our reasonable control "
|
||||
"and shall not affect the validity and enforceability of any remaining "
|
||||
"provisions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Governing law, Waivers, Severability and Assignment"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"No matter where you’re located, the laws of Switzerland will govern these "
|
||||
"Terms. If any provisions of these Terms are inconsistent with any applicable "
|
||||
"law, those provisions will be superseded or modified only to the extent such "
|
||||
"provisions are inconsistent. The parties agree to submit to the ordinary "
|
||||
"courts in Zurich, Switzerland for exclusive jurisdiction of any dispute "
|
||||
"arising out of or related to your use of the Services or your breach of "
|
||||
"these Terms."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Our failure to exercise or delay in exercising any right, power, or "
|
||||
"privilege under this Agreement shall not operate as a waiver; nor shall any "
|
||||
"single or partial exercise of any right, power, or privilege preclude any "
|
||||
"other or further exercise thereof."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"You agree that we may assign any of our rights and/or transfer, sub-"
|
||||
"contract, or delegate any of our obligations under these Terms."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"If it turns out that any part of this Agreement is invalid, void, or for any "
|
||||
"reason unenforceable, that term will be deemed severable and limited or "
|
||||
"eliminated to the minimum extent necessary."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This Agreement sets forth the entire understanding and agreement as to the "
|
||||
"subject matter hereof and supersedes any and all prior discussions, "
|
||||
"agreements, and understandings of any kind (including, without limitation, "
|
||||
"any prior versions of this Agreement) and every nature between us. Except as "
|
||||
"provided for above, any modification to this Agreement must be in writing "
|
||||
"and must be signed by both parties."
|
||||
msgstr ""
|
||||
|
||||
msgid "Questions or comments"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"We welcome comments, questions, concerns, or suggestions. Please send us a "
|
||||
"message on our contact page at legal@taler-systems.com."
|
||||
msgstr ""
|
@ -1 +0,0 @@
|
||||
# This configuration will be changed by tooling. Do not touch it manually.
|
@ -1,49 +0,0 @@
|
||||
# Main entry point for the GNU Taler configuration.
|
||||
#
|
||||
# Structure:
|
||||
# - taler.conf is the main configuration entry point
|
||||
# used by all Taler components (the file you are currently
|
||||
# looking at.
|
||||
# - overrides.conf contains configuration overrides that are
|
||||
# set by some tools that help with the configuration,
|
||||
# and should not be edited by humans. Comments in this file
|
||||
# are not preserved.
|
||||
# - conf.d/ contains configuration files for
|
||||
# Taler components, which can be read by all
|
||||
# users of the system and are included by the main
|
||||
# configuration.
|
||||
# - secrets/ contains configuration snippets
|
||||
# with secrets for particular services.
|
||||
# These files should have restrictive permissions
|
||||
# so that only users of the relevant services
|
||||
# can read it. All files in it should end with
|
||||
# ".secret.conf".
|
||||
|
||||
[taler]
|
||||
|
||||
# Currency of the Taler deployment. This setting applies to all Taler
|
||||
# components that only support a single currency.
|
||||
#currency = KUDOS
|
||||
|
||||
# Smallest currency unit handled by the underlying bank system. Taler payments
|
||||
# can make payments smaller than this units, but interactions with external
|
||||
# systems is always rounded to this unit.
|
||||
#currency_round_unit = KUDOS:0.01
|
||||
|
||||
# Monthly amount that mandatorily triggers an AML check
|
||||
#AML_THRESHOLD = KUDOS:10000000
|
||||
|
||||
[paths]
|
||||
|
||||
TALER_HOME = /var/lib/taler
|
||||
TALER_RUNTIME_DIR = /run/taler
|
||||
TALER_CACHE_HOME = /var/cache/taler
|
||||
TALER_CONFIG_HOME = /etc/taler
|
||||
TALER_DATA_HOME = /var/lib/taler
|
||||
|
||||
|
||||
# Inline configurations from all Taler components.
|
||||
@inline-matching@ conf.d/*.conf
|
||||
|
||||
# Overrides from tools that help with configuration.
|
||||
@inline@ overrides.conf
|
@ -1,4 +0,0 @@
|
||||
<Location "/taler-auditor/">
|
||||
ProxyPass "unix:/var/lib/taler-auditor/auditor.sock|http://example.com/"
|
||||
RequestHeader add "X-Forwarded-Proto" "https"
|
||||
</Location>
|
@ -1,18 +0,0 @@
|
||||
server {
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name localhost;
|
||||
|
||||
access_log /var/log/nginx/auditor.log;
|
||||
error_log /var/log/nginx/auditor.err;
|
||||
|
||||
location /taler-auditor/ {
|
||||
proxy_pass http://unix:/var/lib/taler-auditor/auditor.sock;
|
||||
proxy_redirect off;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host "localhost";
|
||||
#proxy_set_header X-Forwarded-Proto "https";
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
# Read secret sections into configuration, but only
|
||||
# if we have permission to do so.
|
||||
@inline-secret@ auditordb-postgres ../secrets/auditor-db.secret.conf
|
||||
|
||||
[auditor]
|
||||
# Debian package is configured to use a reverse proxy with a UNIX
|
||||
# domain socket. See nginx/apache configuration files.
|
||||
SERVE = UNIX
|
||||
UNIXPATH = /var/lib/taler-auditor/auditor.sock
|
||||
|
||||
# Only supported database is Postgres right now.
|
||||
DATABASE = postgres
|
@ -1,10 +0,0 @@
|
||||
# Database configuration for the Taler auditor.
|
||||
|
||||
[auditordb-postgres]
|
||||
|
||||
# Typically, there should only be a single line here, of the form:
|
||||
|
||||
CONFIG=postgres:///DATABASE
|
||||
|
||||
# The details of the URI depend on where the database lives and how
|
||||
# access control was configured.
|
@ -1,4 +0,0 @@
|
||||
<Location "/taler-exchange/">
|
||||
ProxyPass "unix:/run/taler/exchange-httpd/exchange-http.sock|http://example.com/"
|
||||
RequestHeader add "X-Forwarded-Proto" "https"
|
||||
</Location>
|
@ -1,17 +0,0 @@
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name localhost;
|
||||
|
||||
access_log /var/log/nginx/exchange.log;
|
||||
error_log /var/log/nginx/exchange.err;
|
||||
|
||||
location /taler-exchange/ {
|
||||
proxy_pass http://unix:/run/taler/exchange-httpd/exchange-http.sock:/;
|
||||
proxy_redirect off;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host "localhost";
|
||||
#proxy_set_header X-Forwarded-Proto "https";
|
||||
}
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
# Configuration for business-level aspects of the exchange.
|
||||
|
||||
[exchange]
|
||||
|
||||
# Here you MUST add the master public key of the offline system
|
||||
# which you can get using `taler-exchange-offline setup`.
|
||||
# This is just an example, your key will be different!
|
||||
# MASTER_PUBLIC_KEY = YE6Q6TR1EDB7FD0S68TGDZGF1P0GHJD2S0XVV8R2S62MYJ6HJ4ZG
|
||||
# MASTER_PUBLIC_KEY =
|
||||
|
||||
# Publicly visible base URL of the exchange.
|
||||
# BASE_URL = https://example.com/
|
||||
# BASE_URL =
|
||||
|
||||
# Here you MUST configure the amount above which transactions are
|
||||
# always subject to manual AML review.
|
||||
# AML_THRESHOLD =
|
||||
|
||||
# Attribute encryption key for storing attributes encrypted
|
||||
# in the database. Should be a high-entropy nonce.
|
||||
ATTRIBUTE_ENCRYPTION_KEY = SET_ME_PLEASE
|
||||
|
||||
# For your terms of service and privacy policy, you should specify
|
||||
# an Etag that must be updated whenever there are significant
|
||||
# changes to either document. The format is up to you, what matters
|
||||
# is that the value is updated and never re-used. See the HTTP
|
||||
# specification on Etags.
|
||||
# TERMS_ETAG =
|
||||
# PRIVACY_ETAG =
|
||||
|
||||
SERVE = unix
|
||||
UNIXPATH_MODE = 666
|
||||
|
||||
# Bank accounts used by the exchange should be specified here:
|
||||
[exchange-account-1]
|
||||
|
||||
ENABLE_CREDIT = NO
|
||||
ENABLE_DEBIT = NO
|
||||
|
||||
# Account identifier in the form of an RFC-8905 payto:// URI.
|
||||
# For SEPA, looks like payto://sepa/$IBAN?receiver-name=$NAME
|
||||
# Make sure to URL-encode spaces in $NAME!
|
||||
PAYTO_URI =
|
||||
|
||||
# Credentials to access the account are in a separate
|
||||
# config file with restricted permissions.
|
||||
@inline-secret@ exchange-accountcredentials-1 ../secrets/exchange-accountcredentials-1.secret.conf
|
||||
|
||||
|
||||
|
@ -1,33 +0,0 @@
|
||||
#
|
||||
# This configuration file specifies the various denominations offered by your
|
||||
# exchange.
|
||||
#
|
||||
# Each denomination must be specified in a sections starting with
|
||||
# "coin_".
|
||||
#
|
||||
# What follows is an example.
|
||||
#
|
||||
|
||||
# [coin_FOO]
|
||||
## Actual value of the coin
|
||||
#VALUE = KUDOS:1
|
||||
|
||||
## How long will one key be used for withdrawals?
|
||||
#DURATION_WITHDRAW = 7 days
|
||||
|
||||
## How long do users have to spend their coins?
|
||||
#DURATION_SPEND = 2 years
|
||||
|
||||
## How long does the exchange keep the proofs around for legal disputes?
|
||||
#DURATION_LEGAL = 6 years
|
||||
|
||||
## Fees charged. Note that for the lowest denomination, the
|
||||
## fee must precisely be the lowest denomination, or zero.
|
||||
#FEE_WITHDRAW = KUDOS:0
|
||||
#FEE_DEPOSIT = KUDOS:0
|
||||
#FEE_REFRESH = KUDOS:0
|
||||
#FEE_REFUND = KUDOS:0
|
||||
|
||||
## How long should the RSA keys be. Do not change unless you really know
|
||||
## what you are doing (consult your local cryptographer first!).
|
||||
#RSA_KEYSIZE = 2048
|
@ -1,13 +0,0 @@
|
||||
# Configuration settings for system parameters of the exchange.
|
||||
|
||||
# Read secret sections into configuration, but only
|
||||
# if we have permission to do so.
|
||||
@inline-secret@ exchangedb-postgres ../secrets/exchange-db.secret.conf
|
||||
|
||||
[exchange]
|
||||
|
||||
# Only supported database is Postgres right now.
|
||||
DATABASE = postgres
|
||||
|
||||
|
||||
|
@ -1,17 +0,0 @@
|
||||
# This file contains the secret credentials
|
||||
# to access the Taler Wire Gateway API (usually
|
||||
# provided by LibEuFin) for the exchange accounts.
|
||||
#
|
||||
# Each exchange-account-* section should have a matching
|
||||
# exchange-accountcredentials-* section here.
|
||||
#
|
||||
# Each of those sections must be imported via @inline-secret@,
|
||||
# usually in conf.d/exchange-business.conf.
|
||||
|
||||
[exchange-accountcredentials-1]
|
||||
|
||||
wire_gateway_auth_method = basic
|
||||
password =
|
||||
username =
|
||||
wire_gateway_url =
|
||||
|
@ -1,10 +0,0 @@
|
||||
# Database configuration for the Taler exchange.
|
||||
|
||||
[exchangedb-postgres]
|
||||
|
||||
# Typically, there should only be a single line here, of the form:
|
||||
|
||||
# CONFIG=postgres:///DATABASE
|
||||
|
||||
# The details of the URI depend on where the database lives and how
|
||||
# access control was configured.
|
@ -1,12 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system auditor REST API
|
||||
After=postgres.service network.target
|
||||
|
||||
[Service]
|
||||
User=taler-auditor-httpd
|
||||
Type=simple
|
||||
Restart=on-failure
|
||||
ExecStart=/usr/bin/taler-auditor-httpd -c /etc/taler/taler.conf
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange aggregator service
|
||||
PartOf=taler-exchange.target
|
||||
After=postgres.service
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-aggregator
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
RuntimeMaxSec=3600s
|
@ -1,17 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange aggregator service
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-aggregator
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
RuntimeMaxSec=3600s
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange closer service
|
||||
PartOf=taler-exchange.target
|
||||
After=network.target postgres.service
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-closer
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
ExecStart=/usr/bin/taler-exchange-closer -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
RuntimeMaxSec=3600s
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange expire service
|
||||
PartOf=taler-exchange.target
|
||||
After=postgres.service
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-expire
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
ExecStart=/usr/bin/taler-exchange-expire -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
RuntimeMaxSec=3600s
|
@ -1,33 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange REST API
|
||||
AssertPathExists=/run/taler/exchange-httpd
|
||||
Requires=taler-exchange-httpd.socket taler-exchange-secmod-cs.service taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service
|
||||
After=postgres.service network.target taler-exchange-secmod-cs.service taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-httpd
|
||||
Type=simple
|
||||
|
||||
# Depending on the configuration, the service process kills itself and then
|
||||
# needs to be restarted. Thus no significant delay on restarts.
|
||||
Restart=always
|
||||
RestartSec=1ms
|
||||
|
||||
# Disable the service if more than 5 restarts are encountered within 5s.
|
||||
# These are usually the systemd defaults, but can be overwritten, thus we set
|
||||
# them here explicitly, as the exchange code assumes StartLimitInterval
|
||||
# to be >=5s.
|
||||
StartLimitBurst=5
|
||||
StartLimitInterval=5s
|
||||
|
||||
ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=no
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -1,27 +0,0 @@
|
||||
% This is a systemd service template.
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange REST API at %I
|
||||
AssertPathExists=/run/taler/exchange-httpd
|
||||
Requires=taler-exchange-httpd@%i.socket taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service
|
||||
After=postgres.service network.target taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-httpd
|
||||
Type=simple
|
||||
# Depending on the configuration, the service suicides and then
|
||||
# needs to be restarted.
|
||||
Restart=always
|
||||
# Do not dally on restarts.
|
||||
RestartSec=1ms
|
||||
EnvironmentFile=/etc/environment
|
||||
ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=no
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange CS security module
|
||||
AssertPathExists=/run/taler/exchange-secmod-cs
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-secmod-cs
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=100ms
|
||||
ExecStart=/usr/bin/taler-exchange-secmod-cs -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=no
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
IPAddressDeny=any
|
||||
Slice=taler-exchange.slice
|
@ -1,19 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange EdDSA security module
|
||||
AssertPathExists=/run/taler/exchange-secmod-eddsa
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-secmod-eddsa
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=100ms
|
||||
ExecStart=/usr/bin/taler-exchange-secmod-eddsa -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=no
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
IPAddressDeny=any
|
||||
Slice=taler-exchange.slice
|
||||
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange RSA security module
|
||||
AssertPathExists=/run/taler/exchange-secmod-rsa
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-secmod-rsa
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=100ms
|
||||
ExecStart=/usr/bin/taler-exchange-secmod-rsa -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=no
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
IPAddressDeny=any
|
||||
Slice=taler-exchange.slice
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=Taler Exchange Transfer Service
|
||||
After=network.target postgres.service
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-wire
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
ExecStart=/usr/bin/taler-exchange-transfer -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
RuntimeMaxSec=3600s
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange wirewatch service
|
||||
After=network.target postgres.service
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-wire
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
RuntimeMaxSec=3600s
|
||||
ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
@ -1,18 +0,0 @@
|
||||
[Unit]
|
||||
Description=GNU Taler payment system exchange wirewatch service
|
||||
After=network.target
|
||||
PartOf=taler-exchange.target
|
||||
|
||||
[Service]
|
||||
User=taler-exchange-wire
|
||||
Type=simple
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/taler.conf
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectSystem=full
|
||||
Slice=taler-exchange.slice
|
||||
RuntimeMaxSec=3600s
|
3
contrib/pp/.gitignore
vendored
Normal file
3
contrib/pp/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
sphinx.err
|
||||
sphinx.log
|
||||
_build/
|
109
contrib/pp/Makefile
Normal file
109
contrib/pp/Makefile
Normal file
@ -0,0 +1,109 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html json epub latex latexpdf text man doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make a single large HTML file"
|
||||
@echo " json to make JSON files"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " pdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " txt to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
|
||||
# The html-linked builder does not support caching, so we
|
||||
# remove all cached state first.
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/html."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
pdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/pdf
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/pdf all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/pdf."
|
||||
|
||||
txt:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/txt
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/txt."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/info
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/info."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
58
contrib/pp/README
Normal file
58
contrib/pp/README
Normal file
@ -0,0 +1,58 @@
|
||||
This directory contains the privacy policy (template) for exchange
|
||||
operators.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
Generating a new Privacy Policy requires Sphinx, LaTeX with babel
|
||||
packages for all supported languages. On Debian, you should
|
||||
at least install:
|
||||
|
||||
$ apt install python3-sphinx sphinx-intl texlive-lang-german texlive-lang-english latexmk texlive-latex-recommended texlive-latex-extra
|
||||
|
||||
(NOTE: List may be incomplete.)
|
||||
|
||||
|
||||
Updating the Privacy Policy
|
||||
===========================
|
||||
|
||||
The master file with the Privacy Policy is 'pp.rst'.
|
||||
|
||||
If you make substantial changes, you MUST change the "PP_VERSION"
|
||||
in contrib/Makefile.am to the new Etag.
|
||||
|
||||
To begin the translation into other languages after editing the master
|
||||
file, run
|
||||
|
||||
$ make gettext
|
||||
|
||||
to generate the master PO file. Then, run
|
||||
|
||||
$ sphinx-intl update -p _build/locale/ -l de -l fr -l it
|
||||
|
||||
to update the PO files for the various languages (extend the list of
|
||||
languages as necessary). The PO files for the translators are kept
|
||||
at locale/$LANG/LC_MESSAGES/pp.po for the language $LANG.
|
||||
|
||||
Once all PO files have been updated with new translations, run
|
||||
|
||||
$ make update-pp
|
||||
|
||||
in the "contrib/" directory to generate all of the formats. The
|
||||
respective make rule calls the '../update-pp.sh' script in the
|
||||
contrib/ directory, which calls the 'Makefile' in the pp/
|
||||
directory for the various supported languages and file formats
|
||||
and then moves the generated files to the target directory
|
||||
('contrib/pp/$LANG/$VERSION.$FORMAT')
|
||||
|
||||
|
||||
Adding a new language
|
||||
=====================
|
||||
|
||||
To add a new language $LANG, add $LANG to "PP_LANGUAGES" in
|
||||
'contrib/Makefile.am' and run
|
||||
|
||||
$ sphinx-intl update -p _build/gettext -l $LANG
|
||||
|
||||
to generate the PO template.
|
282
contrib/pp/conf.py.in
Normal file
282
contrib/pp/conf.py.in
Normal file
@ -0,0 +1,282 @@
|
||||
"""
|
||||
This file is part of GNU TALER.
|
||||
Copyright (C) 2014-2022 Taler Systems SA
|
||||
|
||||
TALER is free software; you can redistribute it and/or modify it under the
|
||||
terms of the GNU Lesser General Public License as published by the Free Software
|
||||
Foundation; either version 2.1, or (at your option) any later version.
|
||||
|
||||
TALER is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License along with
|
||||
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
@author Florian Dold
|
||||
@author Benedikt Muller
|
||||
@author Sree Harsha Totakura
|
||||
@author Marcello Stanisci
|
||||
"""
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# neuro documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat May 31 13:11:06 2014.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
sys.path.append(os.path.abspath('_exts'))
|
||||
|
||||
#import taler_sphinx_theme
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
needs_sphinx = '1.8.5'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.todo',
|
||||
'sphinx.ext.imgmath',
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
source_suffix = {
|
||||
'.rst': 'restructuredtext',
|
||||
}
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = '%VERSION%'
|
||||
|
||||
# General information about the project.
|
||||
project = u'%VERSION%'
|
||||
copyright = u'2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '%VERSION%'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '%VERSION%'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
# language = "en de"
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build', '_exts', 'cf', 'prebuilt']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
# default_role = "ts:type"
|
||||
|
||||
locale_dirs = ['locale/']
|
||||
gettext_compact = False
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'epub'
|
||||
|
||||
#html_theme_path = taler_sphinx_theme.html_theme_path()
|
||||
|
||||
#html_sidebars = {'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']}
|
||||
|
||||
rst_epilog = ""
|
||||
|
||||
html_show_sphinx = False
|
||||
|
||||
html_theme_options = {
|
||||
# Set the name of the project to appear in the sidebar
|
||||
"relbar1": "false",
|
||||
"footer": "false",
|
||||
}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
html_title = "Taler Privacy Policy"
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
html_short_title = "Privacy Policy"
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
# html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
html_show_sphinx = False
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
('%VERSION%', '%VERSION%.tex',
|
||||
'Privacy Policy', 'GNU Taler team', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# latex_appendices = ["fdl-1.3"]
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
#texinfo_no_detailmenu = False
|
||||
|
||||
|
||||
# -- Options for epub output ----------------------------
|
||||
|
||||
epub_basename = "%VERSION%"
|
||||
|
||||
epub_title = "Privacy Policy"
|
BIN
contrib/pp/en/pp-v0.epub
Normal file
BIN
contrib/pp/en/pp-v0.epub
Normal file
Binary file not shown.
205
contrib/pp/en/pp-v0.html
Normal file
205
contrib/pp/en/pp-v0.html
Normal file
File diff suppressed because one or more lines are too long
237
contrib/pp/en/pp-v0.md
Normal file
237
contrib/pp/en/pp-v0.md
Normal file
@ -0,0 +1,237 @@
|
||||
Privacy Policy
|
||||
**************
|
||||
|
||||
Last Updated: 11.12.2019
|
||||
|
||||
This Privacy Policy describes the policies and procedures of Taler
|
||||
Systems SA (“we,” “our,” or “us”) pertaining to the collection, use,
|
||||
and disclosure of your information on our sites and related mobile
|
||||
applications and products we offer (the “Services” or “Taler Wallet”).
|
||||
This Privacy Statement applies to your personal data when you use our
|
||||
Services, and does not apply to online websites or services that we do
|
||||
not own or control.
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
Your privacy is important to us. We follow a few fundamental
|
||||
principles: We don’t ask you for personally identifiable information
|
||||
(defined below). That being said, your contact information, such as
|
||||
your phone number, social media handle, or email address (depending on
|
||||
how you contact us), may be collected when you communicate with us,
|
||||
for example to report a bug or other error related to the Taler
|
||||
Wallet. We don’t share your information with third parties except when
|
||||
strictly required to deliver you our Services and products, or to
|
||||
comply with the law. If you have any questions or concerns about this
|
||||
policy, please reach out to us at privacy@taler-systems.net.
|
||||
|
||||
|
||||
How you accept this policy
|
||||
==========================
|
||||
|
||||
By using our Services or visiting our sites, you agree to the use,
|
||||
disclosure, and procedures outlined in this Privacy Policy.
|
||||
|
||||
|
||||
What personal information do we collect from our users?
|
||||
=======================================================
|
||||
|
||||
The information we collect from you falls into two categories: (i)
|
||||
personally identifiable information (i.e., data that could potentially
|
||||
identify you as an individual) (“Personal Information”), and (ii) non-
|
||||
personally identifiable information (i.e., information that cannot be
|
||||
used to identify who you are) (“Non-Personal Information”). This
|
||||
Privacy Policy covers both categories and will tell you how we might
|
||||
collect and use each type.
|
||||
|
||||
We do our best to not collect any Personal Information from Taler
|
||||
Wallet users. We believe that the Taler Wallet never transmits
|
||||
personal information to our services without at least clear implied
|
||||
consent, and we only process and retain information with a strict
|
||||
business need. That being said, when using our Services, we inherently
|
||||
have to collect the following information:
|
||||
|
||||
* Bank account details necessary when receiving funds from you to
|
||||
top-up your wallet or to transfer funds to you when you are being
|
||||
paid via Taler. At the current experimental stage, only the
|
||||
pseudonym and password you entered in the bank demonstrator is
|
||||
stored.
|
||||
|
||||
* The amounts being withdrawn or deposited, with associated unique
|
||||
transaction identifiers and cryptographic signatures authorizing
|
||||
the transaction. Note that for purchases, we cannot identify the
|
||||
buyer from the collected data, so when you spend money, we only
|
||||
receive non-personal information.
|
||||
|
||||
* When you contact us. We may collect certain information if you
|
||||
choose to contact us, for example to report a bug or other error
|
||||
with the Taler Wallet. This may include contact information such
|
||||
as your name, email address or phone number depending on the
|
||||
method you choose to contact us.
|
||||
|
||||
|
||||
How we collect and process information
|
||||
======================================
|
||||
|
||||
We may process your information for the following reasons:
|
||||
|
||||
* to transfer money as specified by our users (Taler transactions);
|
||||
|
||||
* to assist government entities in linking income to the underlying
|
||||
contract as required by law and local regulations
|
||||
|
||||
* to support you using the Taler Wallet or to improve our Services
|
||||
|
||||
|
||||
How we share and use the information we gather
|
||||
==============================================
|
||||
|
||||
We may share your Personal Data or other information about you only if
|
||||
you are a merchant receiving income, with your bank, to the degree
|
||||
necessary to execute the payment.
|
||||
|
||||
We retain Personal Data to transfer funds to the accounts designated
|
||||
by our users. We may retain Personal Data only for as long as mandated
|
||||
by law and required for the wire transfers.
|
||||
|
||||
We primarily use the limited information we receive directly from you
|
||||
to enhance the Taler Wallet. Some ways we may use your Personal
|
||||
Information are to: Contact you when necessary to respond to your
|
||||
comments, answer your questions, or obtain additional information on
|
||||
issues related to bugs or errors with the Taler Wallet that you
|
||||
reported.
|
||||
|
||||
|
||||
Agents or third party partners
|
||||
==============================
|
||||
|
||||
We may provide your Personal Information to our employees,
|
||||
contractors, agents, service providers, and designees (“Agents”) to
|
||||
enable them to perform certain services for us exclusively, including:
|
||||
improvement and maintenance of our software and Services.
|
||||
|
||||
|
||||
Protection of us and others
|
||||
===========================
|
||||
|
||||
We reserve the right to access, read, preserve, and disclose any
|
||||
information that we reasonably believe is necessary to comply with the
|
||||
law or a court order.
|
||||
|
||||
|
||||
What personal information can I access or change?
|
||||
=================================================
|
||||
|
||||
You can request access to the information we have collected from you.
|
||||
You can do this by contacting us at privacy@taler-systems.net. We will
|
||||
make sure to provide you with a copy of the data we process about you.
|
||||
To comply with your request, we may ask you to verify your identity.
|
||||
We will fulfill your request by sending your copy electronically. For
|
||||
any subsequent access request, we may charge you with an
|
||||
administrative fee. If you believe that the information we have
|
||||
collected is incorrect, you are welcome to contact us so we can update
|
||||
it and keep your data accurate. Any data that is no longer needed for
|
||||
purposes specified in the “How We Use the Information We Gather”
|
||||
section will be deleted after ninety (90) days.
|
||||
|
||||
|
||||
What are your data protection rights?
|
||||
=====================================
|
||||
|
||||
Anastasis would like to make sure you are fully aware of all of your
|
||||
data protection rights. Every user is entitled to the following:
|
||||
|
||||
**The right to access**: You have the right to request Anastasis for
|
||||
copies of your personal data. We may charge you a small fee for
|
||||
this service.
|
||||
|
||||
**The right to rectification**: You have the right to request that
|
||||
Anastasis correct any information you believe is inaccurate. You also
|
||||
have the right to request Anastasis to complete information you
|
||||
believe is incomplete. The right to erasure - You have the right to
|
||||
request that Anastasis erase your personal data, under certain
|
||||
conditions.
|
||||
|
||||
**The right to restrict processing**: You have the right to request
|
||||
that Anastasis restrict the processing of your personal data, under
|
||||
certain conditions.
|
||||
|
||||
**The right to object to processing**: You have the right to object to
|
||||
Anastasis's processing of your personal data, under certain
|
||||
conditions.
|
||||
|
||||
**The right to data portability**: You have the right to request that
|
||||
Anastasis transfer the data that we have collected to another
|
||||
organization, or directly to you, under certain conditions.
|
||||
|
||||
If you make a request, we have one month to respond to you. If you
|
||||
would like to exercise any of these rights, please contact us at our
|
||||
email: privacy@taler-systems.com
|
||||
|
||||
You can always contact your local data protection authority to enforce
|
||||
your rights.
|
||||
|
||||
|
||||
Data retention
|
||||
==============
|
||||
|
||||
If you uninstall the Taler Wallet mobile applications from your
|
||||
device, or request that your information be deleted, we still may
|
||||
retain some information that you have provided to us to maintain the
|
||||
Taler Wallet or to comply with relevant laws.
|
||||
|
||||
|
||||
Data security
|
||||
=============
|
||||
|
||||
We are committed to making sure your information is protected. We
|
||||
employ several physical and electronic safeguards to keep your
|
||||
information safe, including encrypted user passwords, two factor
|
||||
verification and authentication on passwords where possible, and
|
||||
securing connections with industry standard transport layer security.
|
||||
You are also welcome to contact us using GnuPG encrypted e-mail. Even
|
||||
with all these precautions, we cannot fully guarantee against the
|
||||
access, disclosure, alteration, or deletion of data through events,
|
||||
including but not limited to hardware or software failure or
|
||||
unauthorized use. Any information that you provide to us is done so
|
||||
entirely at your own risk.
|
||||
|
||||
|
||||
Changes and updates to privacy policy
|
||||
=====================================
|
||||
|
||||
We reserve the right to update and revise this privacy policy at any
|
||||
time. We occasionally review this Privacy Policy to make sure it
|
||||
complies with applicable laws and conforms to changes in our business.
|
||||
We may need to update this Privacy Policy, and we reserve the right to
|
||||
do so at any time. If we do revise this Privacy Policy, we will update
|
||||
the “Effective Date” at the bottom of this page so that you can tell
|
||||
if it has changed since your last visit. As we generally do not
|
||||
collect contact information and also do not track your visits, we will
|
||||
not be able to notify you directly. However, the Taler Wallet may
|
||||
inform you about a change in the privacy policy once it detects that
|
||||
the policy has changed. Please review this Privacy Policy regularly to
|
||||
ensure that you are aware of its terms. Any use of our Services after
|
||||
an amendment to our Privacy Policy constitutes your acceptance to the
|
||||
revised or amended agreement.
|
||||
|
||||
|
||||
International users and visitors
|
||||
================================
|
||||
|
||||
Our Services are hosted in Switzerland. If you are a user accessing
|
||||
the Services from the European Union, Asia, US, or any other region
|
||||
with laws or regulations governing personal data collection, use, and
|
||||
disclosure that differ from Swiss laws, please be advised that through
|
||||
your continued use of the Services, which is governed by Swiss law,
|
||||
you are transferring your Personal Information to Switzerland and you
|
||||
consent to that transfer.
|
||||
|
||||
|
||||
Questions
|
||||
=========
|
||||
|
||||
Please contact us at privacy@taler-systems.net if you have questions
|
||||
about our privacy practices that are not addressed in this Privacy
|
||||
Statement.
|
BIN
contrib/pp/en/pp-v0.pdf
Normal file
BIN
contrib/pp/en/pp-v0.pdf
Normal file
Binary file not shown.
237
contrib/pp/en/pp-v0.txt
Normal file
237
contrib/pp/en/pp-v0.txt
Normal file
@ -0,0 +1,237 @@
|
||||
Privacy Policy
|
||||
**************
|
||||
|
||||
Last Updated: 11.12.2019
|
||||
|
||||
This Privacy Policy describes the policies and procedures of Taler
|
||||
Systems SA (“we,” “our,” or “us”) pertaining to the collection, use,
|
||||
and disclosure of your information on our sites and related mobile
|
||||
applications and products we offer (the “Services” or “Taler Wallet”).
|
||||
This Privacy Statement applies to your personal data when you use our
|
||||
Services, and does not apply to online websites or services that we do
|
||||
not own or control.
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
Your privacy is important to us. We follow a few fundamental
|
||||
principles: We don’t ask you for personally identifiable information
|
||||
(defined below). That being said, your contact information, such as
|
||||
your phone number, social media handle, or email address (depending on
|
||||
how you contact us), may be collected when you communicate with us,
|
||||
for example to report a bug or other error related to the Taler
|
||||
Wallet. We don’t share your information with third parties except when
|
||||
strictly required to deliver you our Services and products, or to
|
||||
comply with the law. If you have any questions or concerns about this
|
||||
policy, please reach out to us at privacy@taler-systems.net.
|
||||
|
||||
|
||||
How you accept this policy
|
||||
==========================
|
||||
|
||||
By using our Services or visiting our sites, you agree to the use,
|
||||
disclosure, and procedures outlined in this Privacy Policy.
|
||||
|
||||
|
||||
What personal information do we collect from our users?
|
||||
=======================================================
|
||||
|
||||
The information we collect from you falls into two categories: (i)
|
||||
personally identifiable information (i.e., data that could potentially
|
||||
identify you as an individual) (“Personal Information”), and (ii) non-
|
||||
personally identifiable information (i.e., information that cannot be
|
||||
used to identify who you are) (“Non-Personal Information”). This
|
||||
Privacy Policy covers both categories and will tell you how we might
|
||||
collect and use each type.
|
||||
|
||||
We do our best to not collect any Personal Information from Taler
|
||||
Wallet users. We believe that the Taler Wallet never transmits
|
||||
personal information to our services without at least clear implied
|
||||
consent, and we only process and retain information with a strict
|
||||
business need. That being said, when using our Services, we inherently
|
||||
have to collect the following information:
|
||||
|
||||
* Bank account details necessary when receiving funds from you to
|
||||
top-up your wallet or to transfer funds to you when you are being
|
||||
paid via Taler. At the current experimental stage, only the
|
||||
pseudonym and password you entered in the bank demonstrator is
|
||||
stored.
|
||||
|
||||
* The amounts being withdrawn or deposited, with associated unique
|
||||
transaction identifiers and cryptographic signatures authorizing
|
||||
the transaction. Note that for purchases, we cannot identify the
|
||||
buyer from the collected data, so when you spend money, we only
|
||||
receive non-personal information.
|
||||
|
||||
* When you contact us. We may collect certain information if you
|
||||
choose to contact us, for example to report a bug or other error
|
||||
with the Taler Wallet. This may include contact information such
|
||||
as your name, email address or phone number depending on the
|
||||
method you choose to contact us.
|
||||
|
||||
|
||||
How we collect and process information
|
||||
======================================
|
||||
|
||||
We may process your information for the following reasons:
|
||||
|
||||
* to transfer money as specified by our users (Taler transactions);
|
||||
|
||||
* to assist government entities in linking income to the underlying
|
||||
contract as required by law and local regulations
|
||||
|
||||
* to support you using the Taler Wallet or to improve our Services
|
||||
|
||||
|
||||
How we share and use the information we gather
|
||||
==============================================
|
||||
|
||||
We may share your Personal Data or other information about you only if
|
||||
you are a merchant receiving income, with your bank, to the degree
|
||||
necessary to execute the payment.
|
||||
|
||||
We retain Personal Data to transfer funds to the accounts designated
|
||||
by our users. We may retain Personal Data only for as long as mandated
|
||||
by law and required for the wire transfers.
|
||||
|
||||
We primarily use the limited information we receive directly from you
|
||||
to enhance the Taler Wallet. Some ways we may use your Personal
|
||||
Information are to: Contact you when necessary to respond to your
|
||||
comments, answer your questions, or obtain additional information on
|
||||
issues related to bugs or errors with the Taler Wallet that you
|
||||
reported.
|
||||
|
||||
|
||||
Agents or third party partners
|
||||
==============================
|
||||
|
||||
We may provide your Personal Information to our employees,
|
||||
contractors, agents, service providers, and designees (“Agents”) to
|
||||
enable them to perform certain services for us exclusively, including:
|
||||
improvement and maintenance of our software and Services.
|
||||
|
||||
|
||||
Protection of us and others
|
||||
===========================
|
||||
|
||||
We reserve the right to access, read, preserve, and disclose any
|
||||
information that we reasonably believe is necessary to comply with the
|
||||
law or a court order.
|
||||
|
||||
|
||||
What personal information can I access or change?
|
||||
=================================================
|
||||
|
||||
You can request access to the information we have collected from you.
|
||||
You can do this by contacting us at privacy@taler-systems.net. We will
|
||||
make sure to provide you with a copy of the data we process about you.
|
||||
To comply with your request, we may ask you to verify your identity.
|
||||
We will fulfill your request by sending your copy electronically. For
|
||||
any subsequent access request, we may charge you with an
|
||||
administrative fee. If you believe that the information we have
|
||||
collected is incorrect, you are welcome to contact us so we can update
|
||||
it and keep your data accurate. Any data that is no longer needed for
|
||||
purposes specified in the “How We Use the Information We Gather”
|
||||
section will be deleted after ninety (90) days.
|
||||
|
||||
|
||||
What are your data protection rights?
|
||||
=====================================
|
||||
|
||||
Anastasis would like to make sure you are fully aware of all of your
|
||||
data protection rights. Every user is entitled to the following:
|
||||
|
||||
**The right to access**: You have the right to request Anastasis for
|
||||
copies of your personal data. We may charge you a small fee for
|
||||
this service.
|
||||
|
||||
**The right to rectification**: You have the right to request that
|
||||
Anastasis correct any information you believe is inaccurate. You also
|
||||
have the right to request Anastasis to complete information you
|
||||
believe is incomplete. The right to erasure - You have the right to
|
||||
request that Anastasis erase your personal data, under certain
|
||||
conditions.
|
||||
|
||||
**The right to restrict processing**: You have the right to request
|
||||
that Anastasis restrict the processing of your personal data, under
|
||||
certain conditions.
|
||||
|
||||
**The right to object to processing**: You have the right to object to
|
||||
Anastasis's processing of your personal data, under certain
|
||||
conditions.
|
||||
|
||||
**The right to data portability**: You have the right to request that
|
||||
Anastasis transfer the data that we have collected to another
|
||||
organization, or directly to you, under certain conditions.
|
||||
|
||||
If you make a request, we have one month to respond to you. If you
|
||||
would like to exercise any of these rights, please contact us at our
|
||||
email: privacy@taler-systems.com
|
||||
|
||||
You can always contact your local data protection authority to enforce
|
||||
your rights.
|
||||
|
||||
|
||||
Data retention
|
||||
==============
|
||||
|
||||
If you uninstall the Taler Wallet mobile applications from your
|
||||
device, or request that your information be deleted, we still may
|
||||
retain some information that you have provided to us to maintain the
|
||||
Taler Wallet or to comply with relevant laws.
|
||||
|
||||
|
||||
Data security
|
||||
=============
|
||||
|
||||
We are committed to making sure your information is protected. We
|
||||
employ several physical and electronic safeguards to keep your
|
||||
information safe, including encrypted user passwords, two factor
|
||||
verification and authentication on passwords where possible, and
|
||||
securing connections with industry standard transport layer security.
|
||||
You are also welcome to contact us using GnuPG encrypted e-mail. Even
|
||||
with all these precautions, we cannot fully guarantee against the
|
||||
access, disclosure, alteration, or deletion of data through events,
|
||||
including but not limited to hardware or software failure or
|
||||
unauthorized use. Any information that you provide to us is done so
|
||||
entirely at your own risk.
|
||||
|
||||
|
||||
Changes and updates to privacy policy
|
||||
=====================================
|
||||
|
||||
We reserve the right to update and revise this privacy policy at any
|
||||
time. We occasionally review this Privacy Policy to make sure it
|
||||
complies with applicable laws and conforms to changes in our business.
|
||||
We may need to update this Privacy Policy, and we reserve the right to
|
||||
do so at any time. If we do revise this Privacy Policy, we will update
|
||||
the “Effective Date” at the bottom of this page so that you can tell
|
||||
if it has changed since your last visit. As we generally do not
|
||||
collect contact information and also do not track your visits, we will
|
||||
not be able to notify you directly. However, the Taler Wallet may
|
||||
inform you about a change in the privacy policy once it detects that
|
||||
the policy has changed. Please review this Privacy Policy regularly to
|
||||
ensure that you are aware of its terms. Any use of our Services after
|
||||
an amendment to our Privacy Policy constitutes your acceptance to the
|
||||
revised or amended agreement.
|
||||
|
||||
|
||||
International users and visitors
|
||||
================================
|
||||
|
||||
Our Services are hosted in Switzerland. If you are a user accessing
|
||||
the Services from the European Union, Asia, US, or any other region
|
||||
with laws or regulations governing personal data collection, use, and
|
||||
disclosure that differ from Swiss laws, please be advised that through
|
||||
your continued use of the Services, which is governed by Swiss law,
|
||||
you are transferring your Personal Information to Switzerland and you
|
||||
consent to that transfer.
|
||||
|
||||
|
||||
Questions
|
||||
=========
|
||||
|
||||
Please contact us at privacy@taler-systems.net if you have questions
|
||||
about our privacy practices that are not addressed in this Privacy
|
||||
Statement.
|
214
contrib/pp/en/pp-v0.xml
Normal file
214
contrib/pp/en/pp-v0.xml
Normal file
@ -0,0 +1,214 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE document PUBLIC "+//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML" "http://docutils.sourceforge.net/docs/ref/docutils.dtd">
|
||||
<!-- Generated by Docutils 0.16 -->
|
||||
<document source="/research/taler/exchange/contrib/pp/pp-v0.rst">
|
||||
<section ids="privacy-policy" names="privacy\ policy">
|
||||
<title>Privacy Policy</title>
|
||||
<paragraph>Last Updated: 11.12.2019</paragraph>
|
||||
<paragraph>This Privacy Policy describes the policies and procedures of Taler Systems SA
|
||||
(“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of
|
||||
your information on our sites and related mobile applications and products we
|
||||
offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to
|
||||
your personal data when you use our Services, and does not apply to online
|
||||
websites or services that we do not own or control.</paragraph>
|
||||
<section ids="overview" names="overview">
|
||||
<title>Overview</title>
|
||||
<paragraph>Your privacy is important to us. We follow a few fundamental principles: We
|
||||
don’t ask you for personally identifiable information (defined below). That
|
||||
being said, your contact information, such as your phone number, social media
|
||||
handle, or email address (depending on how you contact us), may be collected
|
||||
when you communicate with us, for example to report a bug or other error
|
||||
related to the Taler Wallet. We don’t share your information with third
|
||||
parties except when strictly required to deliver you our Services and
|
||||
products, or to comply with the law. If you have any questions or concerns
|
||||
about this policy, please reach out to us at <reference refuri="mailto:privacy@taler-systems.net">privacy@taler-systems.net</reference>.</paragraph>
|
||||
</section>
|
||||
<section ids="how-you-accept-this-policy" names="how\ you\ accept\ this\ policy">
|
||||
<title>How you accept this policy</title>
|
||||
<paragraph>By using our Services or visiting our sites, you agree to the use, disclosure,
|
||||
and procedures outlined in this Privacy Policy.</paragraph>
|
||||
</section>
|
||||
<section ids="what-personal-information-do-we-collect-from-our-users" names="what\ personal\ information\ do\ we\ collect\ from\ our\ users?">
|
||||
<title>What personal information do we collect from our users?</title>
|
||||
<paragraph>The information we collect from you falls into two categories: (i) personally
|
||||
identifiable information (i.e., data that could potentially identify you as an
|
||||
individual) (“Personal Information”), and (ii) non-personally identifiable
|
||||
information (i.e., information that cannot be used to identify who you are)
|
||||
(“Non-Personal Information”). This Privacy Policy covers both categories and
|
||||
will tell you how we might collect and use each type.</paragraph>
|
||||
<paragraph>We do our best to not collect any Personal Information from Taler Wallet
|
||||
users. We believe that the Taler Wallet never transmits personal information
|
||||
to our services without at least clear implied consent, and we only process
|
||||
and retain information with a strict business need. That being said, when
|
||||
using our Services, we inherently have to collect the following information:</paragraph>
|
||||
<block_quote>
|
||||
<bullet_list bullet="*">
|
||||
<list_item>
|
||||
<paragraph>Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us.</paragraph>
|
||||
</list_item>
|
||||
</bullet_list>
|
||||
</block_quote>
|
||||
</section>
|
||||
<section ids="how-we-collect-and-process-information" names="how\ we\ collect\ and\ process\ information">
|
||||
<title>How we collect and process information</title>
|
||||
<paragraph>We may process your information for the following reasons:</paragraph>
|
||||
<block_quote>
|
||||
<bullet_list bullet="*">
|
||||
<list_item>
|
||||
<paragraph>to transfer money as specified by our users (Taler transactions);</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>to assist government entities in linking income to the underlying contract as required by law and local regulations</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>to support you using the Taler Wallet or to improve our Services</paragraph>
|
||||
</list_item>
|
||||
</bullet_list>
|
||||
</block_quote>
|
||||
</section>
|
||||
<section ids="how-we-share-and-use-the-information-we-gather" names="how\ we\ share\ and\ use\ the\ information\ we\ gather">
|
||||
<title>How we share and use the information we gather</title>
|
||||
<paragraph>We may share your Personal Data or other information about you only if you are
|
||||
a merchant receiving income, with your bank, to the degree necessary to
|
||||
execute the payment.</paragraph>
|
||||
<paragraph>We retain Personal Data to transfer funds to the accounts designated by our
|
||||
users. We may retain Personal Data only for as long as mandated by law and
|
||||
required for the wire transfers.</paragraph>
|
||||
<paragraph>We primarily use the limited information we receive directly from you to
|
||||
enhance the Taler Wallet. Some ways we may use your Personal Information are
|
||||
to: Contact you when necessary to respond to your comments, answer your
|
||||
questions, or obtain additional information on issues related to bugs or
|
||||
errors with the Taler Wallet that you reported.</paragraph>
|
||||
</section>
|
||||
<section ids="agents-or-third-party-partners" names="agents\ or\ third\ party\ partners">
|
||||
<title>Agents or third party partners</title>
|
||||
<paragraph>We may provide your Personal Information to our employees, contractors,
|
||||
agents, service providers, and designees (“Agents”) to enable them to perform
|
||||
certain services for us exclusively, including: improvement and maintenance of
|
||||
our software and Services.</paragraph>
|
||||
</section>
|
||||
<section ids="protection-of-us-and-others" names="protection\ of\ us\ and\ others">
|
||||
<title>Protection of us and others</title>
|
||||
<paragraph>We reserve the right to access, read, preserve, and disclose any information
|
||||
that we reasonably believe is necessary to comply with the law or a court
|
||||
order.</paragraph>
|
||||
</section>
|
||||
<section ids="what-personal-information-can-i-access-or-change" names="what\ personal\ information\ can\ i\ access\ or\ change?">
|
||||
<title>What personal information can I access or change?</title>
|
||||
<paragraph>You can request access to the information we have collected from you. You can
|
||||
do this by contacting us at <reference refuri="mailto:privacy@taler-systems.net">privacy@taler-systems.net</reference>. We will make sure to
|
||||
provide you with a copy of the data we process about you. To comply with your
|
||||
request, we may ask you to verify your identity. We will fulfill your request
|
||||
by sending your copy electronically. For any subsequent access request, we may
|
||||
charge you with an administrative fee. If you believe that the information we
|
||||
have collected is incorrect, you are welcome to contact us so we can update it
|
||||
and keep your data accurate. Any data that is no longer needed for purposes
|
||||
specified in the “How We Use the Information We Gather” section will be
|
||||
deleted after ninety (90) days.</paragraph>
|
||||
</section>
|
||||
<section ids="what-are-your-data-protection-rights" names="what\ are\ your\ data\ protection\ rights?">
|
||||
<title>What are your data protection rights?</title>
|
||||
<paragraph>Anastasis would like to make sure you are fully aware of all of your
|
||||
data protection rights. Every user is entitled to the following:</paragraph>
|
||||
<definition_list>
|
||||
<definition_list_item>
|
||||
<term><strong>The right to access</strong>: You have the right to request Anastasis for</term>
|
||||
<definition>
|
||||
<paragraph>copies of your personal data. We may charge you a small fee for this
|
||||
service.</paragraph>
|
||||
</definition>
|
||||
</definition_list_item>
|
||||
</definition_list>
|
||||
<paragraph><strong>The right to rectification</strong>: You have the right to request that
|
||||
Anastasis correct any information you believe is inaccurate. You also
|
||||
have the right to request Anastasis to complete information you
|
||||
believe is incomplete. The right to erasure - You have the right to
|
||||
request that Anastasis erase your personal data, under certain
|
||||
conditions.</paragraph>
|
||||
<definition_list>
|
||||
<definition_list_item>
|
||||
<term><strong>The right to restrict processing</strong>: You have the right to request</term>
|
||||
<definition>
|
||||
<paragraph>that Anastasis restrict the processing of your personal data, under
|
||||
certain conditions.</paragraph>
|
||||
</definition>
|
||||
</definition_list_item>
|
||||
<definition_list_item>
|
||||
<term><strong>The right to object to processing</strong>: You have the right to object to</term>
|
||||
<definition>
|
||||
<paragraph>Anastasis’s processing of your personal data, under certain
|
||||
conditions.</paragraph>
|
||||
</definition>
|
||||
</definition_list_item>
|
||||
<definition_list_item>
|
||||
<term><strong>The right to data portability</strong>: You have the right to request that</term>
|
||||
<definition>
|
||||
<paragraph>Anastasis transfer the data that we have collected to another
|
||||
organization, or directly to you, under certain conditions.</paragraph>
|
||||
</definition>
|
||||
</definition_list_item>
|
||||
</definition_list>
|
||||
<paragraph>If you make a request, we have one month to respond to you. If you
|
||||
would like to exercise any of these rights, please contact us at our
|
||||
email: <reference refuri="mailto:privacy@taler-systems.com">privacy@taler-systems.com</reference></paragraph>
|
||||
<paragraph>You can always contact your local data protection authority to enforce
|
||||
your rights.</paragraph>
|
||||
</section>
|
||||
<section ids="data-retention" names="data\ retention">
|
||||
<title>Data retention</title>
|
||||
<paragraph>If you uninstall the Taler Wallet mobile applications from your device, or
|
||||
request that your information be deleted, we still may retain some information
|
||||
that you have provided to us to maintain the Taler Wallet or to comply with
|
||||
relevant laws.</paragraph>
|
||||
</section>
|
||||
<section ids="data-security" names="data\ security">
|
||||
<title>Data security</title>
|
||||
<paragraph>We are committed to making sure your information is protected. We employ
|
||||
several physical and electronic safeguards to keep your information safe,
|
||||
including encrypted user passwords, two factor verification and authentication
|
||||
on passwords where possible, and securing connections with industry standard
|
||||
transport layer security. You are also welcome to contact us using GnuPG
|
||||
encrypted e-mail. Even with all these precautions, we cannot fully guarantee
|
||||
against the access, disclosure, alteration, or deletion of data through
|
||||
events, including but not limited to hardware or software failure or
|
||||
unauthorized use. Any information that you provide to us is done so entirely
|
||||
at your own risk.</paragraph>
|
||||
</section>
|
||||
<section ids="changes-and-updates-to-privacy-policy" names="changes\ and\ updates\ to\ privacy\ policy">
|
||||
<title>Changes and updates to privacy policy</title>
|
||||
<paragraph>We reserve the right to update and revise this privacy policy at any time. We
|
||||
occasionally review this Privacy Policy to make sure it complies with
|
||||
applicable laws and conforms to changes in our business. We may need to update
|
||||
this Privacy Policy, and we reserve the right to do so at any time. If we do
|
||||
revise this Privacy Policy, we will update the “Effective Date” at the bottom
|
||||
of this page so that you can tell if it has changed since your last visit. As
|
||||
we generally do not collect contact information and also do not track your
|
||||
visits, we will not be able to notify you directly. However, the Taler Wallet
|
||||
may inform you about a change in the privacy policy once it detects that the
|
||||
policy has changed. Please review this Privacy Policy regularly to ensure that
|
||||
you are aware of its terms. Any use of our Services after an amendment to our
|
||||
Privacy Policy constitutes your acceptance to the revised or amended
|
||||
agreement.</paragraph>
|
||||
</section>
|
||||
<section ids="international-users-and-visitors" names="international\ users\ and\ visitors">
|
||||
<title>International users and visitors</title>
|
||||
<paragraph>Our Services are hosted in Switzerland. If you are a user accessing the
|
||||
Services from the European Union, Asia, US, or any other region with laws or
|
||||
regulations governing personal data collection, use, and disclosure that
|
||||
differ from Swiss laws, please be advised that through your continued use of
|
||||
the Services, which is governed by Swiss law, you are transferring your
|
||||
Personal Information to Switzerland and you consent to that transfer.</paragraph>
|
||||
</section>
|
||||
<section ids="questions" names="questions">
|
||||
<title>Questions</title>
|
||||
<paragraph>Please contact us at <reference refuri="mailto:privacy@taler-systems.net">privacy@taler-systems.net</reference> if you have questions about our
|
||||
privacy practices that are not addressed in this Privacy Statement.</paragraph>
|
||||
</section>
|
||||
</section>
|
||||
</document>
|
221
contrib/pp/locale/de/LC_MESSAGES/pp.po
Normal file
221
contrib/pp/locale/de/LC_MESSAGES/pp.po
Normal file
@ -0,0 +1,221 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2014-2020 Taler Systems SA (GPLv3+ or GFDL 1.3+)
|
||||
# This file is distributed under the same license as the pp package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: pp 0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-30 21:41+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../../pp.rst:2
|
||||
msgid "Privacy Policy"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:4
|
||||
msgid "Last Updated: 11.12.2019"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:6
|
||||
msgid "This Privacy Policy describes the policies and procedures of Taler Systems SA (“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of your information on our sites and related mobile applications and products we offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to your personal data when you use our Services, and does not apply to online websites or services that we do not own or control."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:15
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:17
|
||||
msgid "Your privacy is important to us. We follow a few fundamental principles: We don’t ask you for personally identifiable information (defined below). That being said, your contact information, such as your phone number, social media handle, or email address (depending on how you contact us), may be collected when you communicate with us, for example to report a bug or other error related to the Taler Wallet. We don’t share your information with third parties except when strictly required to deliver you our Services and products, or to comply with the law. If you have any questions or concerns about this policy, please reach out to us at privacy@taler-systems.net."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:29
|
||||
msgid "How you accept this policy"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:31
|
||||
msgid "By using our Services or visiting our sites, you agree to the use, disclosure, and procedures outlined in this Privacy Policy."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:36
|
||||
msgid "What personal information do we collect from our users?"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:38
|
||||
msgid "The information we collect from you falls into two categories: (i) personally identifiable information (i.e., data that could potentially identify you as an individual) (“Personal Information”), and (ii) non-personally identifiable information (i.e., information that cannot be used to identify who you are) (“Non-Personal Information”). This Privacy Policy covers both categories and will tell you how we might collect and use each type."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:45
|
||||
msgid "We do our best to not collect any Personal Information from Taler Wallet users. We believe that the Taler Wallet never transmits personal information to our services without at least clear implied consent, and we only process and retain information with a strict business need. That being said, when using our Services, we inherently have to collect the following information:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:51
|
||||
msgid "Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:53
|
||||
msgid "The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:55
|
||||
msgid "When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:59
|
||||
msgid "How we collect and process information"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:61
|
||||
msgid "We may process your information for the following reasons:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:63
|
||||
msgid "to transfer money as specified by our users (Taler transactions);"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:64
|
||||
msgid "to assist government entities in linking income to the underlying contract as required by law and local regulations"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:65
|
||||
msgid "to support you using the Taler Wallet or to improve our Services"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:69
|
||||
msgid "How we share and use the information we gather"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:71
|
||||
msgid "We may share your Personal Data or other information about you only if you are a merchant receiving income, with your bank, to the degree necessary to execute the payment."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:75
|
||||
msgid "We retain Personal Data to transfer funds to the accounts designated by our users. We may retain Personal Data only for as long as mandated by law and required for the wire transfers."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:79
|
||||
msgid "We primarily use the limited information we receive directly from you to enhance the Taler Wallet. Some ways we may use your Personal Information are to: Contact you when necessary to respond to your comments, answer your questions, or obtain additional information on issues related to bugs or errors with the Taler Wallet that you reported."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:87
|
||||
msgid "Agents or third party partners"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:89
|
||||
msgid "We may provide your Personal Information to our employees, contractors, agents, service providers, and designees (“Agents”) to enable them to perform certain services for us exclusively, including: improvement and maintenance of our software and Services."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:96
|
||||
msgid "Protection of us and others"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:98
|
||||
msgid "We reserve the right to access, read, preserve, and disclose any information that we reasonably believe is necessary to comply with the law or a court order."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:104
|
||||
msgid "What personal information can I access or change?"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:106
|
||||
msgid "You can request access to the information we have collected from you. You can do this by contacting us at privacy@taler-systems.net. We will make sure to provide you with a copy of the data we process about you. To comply with your request, we may ask you to verify your identity. We will fulfill your request by sending your copy electronically. For any subsequent access request, we may charge you with an administrative fee. If you believe that the information we have collected is incorrect, you are welcome to contact us so we can update it and keep your data accurate. Any data that is no longer needed for purposes specified in the “How We Use the Information We Gather” section will be deleted after ninety (90) days."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:119
|
||||
msgid "What are your data protection rights?"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:121
|
||||
msgid "Anastasis would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:126
|
||||
msgid "**The right to access**: You have the right to request Anastasis for"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:125
|
||||
msgid "copies of your personal data. We may charge you a small fee for this service."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:128
|
||||
msgid "**The right to rectification**: You have the right to request that Anastasis correct any information you believe is inaccurate. You also have the right to request Anastasis to complete information you believe is incomplete. The right to erasure - You have the right to request that Anastasis erase your personal data, under certain conditions."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:137
|
||||
msgid "**The right to restrict processing**: You have the right to request"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:136
|
||||
msgid "that Anastasis restrict the processing of your personal data, under certain conditions."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:141
|
||||
msgid "**The right to object to processing**: You have the right to object to"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:140
|
||||
msgid "Anastasis's processing of your personal data, under certain conditions."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:145
|
||||
msgid "**The right to data portability**: You have the right to request that"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:144
|
||||
msgid "Anastasis transfer the data that we have collected to another organization, or directly to you, under certain conditions."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:147
|
||||
msgid "If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us at our email: privacy@taler-systems.com"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:151
|
||||
msgid "You can always contact your local data protection authority to enforce your rights."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:156
|
||||
msgid "Data retention"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:158
|
||||
msgid "If you uninstall the Taler Wallet mobile applications from your device, or request that your information be deleted, we still may retain some information that you have provided to us to maintain the Taler Wallet or to comply with relevant laws."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:165
|
||||
msgid "Data security"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:167
|
||||
msgid "We are committed to making sure your information is protected. We employ several physical and electronic safeguards to keep your information safe, including encrypted user passwords, two factor verification and authentication on passwords where possible, and securing connections with industry standard transport layer security. You are also welcome to contact us using GnuPG encrypted e-mail. Even with all these precautions, we cannot fully guarantee against the access, disclosure, alteration, or deletion of data through events, including but not limited to hardware or software failure or unauthorized use. Any information that you provide to us is done so entirely at your own risk."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:180
|
||||
msgid "Changes and updates to privacy policy"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:182
|
||||
msgid "We reserve the right to update and revise this privacy policy at any time. We occasionally review this Privacy Policy to make sure it complies with applicable laws and conforms to changes in our business. We may need to update this Privacy Policy, and we reserve the right to do so at any time. If we do revise this Privacy Policy, we will update the “Effective Date” at the bottom of this page so that you can tell if it has changed since your last visit. As we generally do not collect contact information and also do not track your visits, we will not be able to notify you directly. However, the Taler Wallet may inform you about a change in the privacy policy once it detects that the policy has changed. Please review this Privacy Policy regularly to ensure that you are aware of its terms. Any use of our Services after an amendment to our Privacy Policy constitutes your acceptance to the revised or amended agreement."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:198
|
||||
msgid "International users and visitors"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:200
|
||||
msgid "Our Services are hosted in Switzerland. If you are a user accessing the Services from the European Union, Asia, US, or any other region with laws or regulations governing personal data collection, use, and disclosure that differ from Swiss laws, please be advised that through your continued use of the Services, which is governed by Swiss law, you are transferring your Personal Information to Switzerland and you consent to that transfer."
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:209
|
||||
msgid "Questions"
|
||||
msgstr ""
|
||||
|
||||
#: ../../pp.rst:211
|
||||
msgid "Please contact us at privacy@taler-systems.net if you have questions about our privacy practices that are not addressed in this Privacy Statement."
|
||||
msgstr ""
|
@ -1,266 +0,0 @@
|
||||
#!/bin/bash
|
||||
# This file is part of GNU TALER.
|
||||
# Copyright (C) 2014-2023 Taler Systems SA
|
||||
#
|
||||
# TALER is free software; you can redistribute it and/or modify it under the
|
||||
# terms of the GNU Lesser General Public License as published by the Free Software
|
||||
# Foundation; either version 2.1, or (at your option) any later version.
|
||||
#
|
||||
# TALER is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License along with
|
||||
# TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||||
#
|
||||
# @author Florian Dold
|
||||
# @author Benedikt Muller
|
||||
# @author Sree Harsha Totakura
|
||||
# @author Marcello Stanisci
|
||||
# @author Christian Grothoff
|
||||
#
|
||||
#
|
||||
# Error checking on
|
||||
set -eu
|
||||
|
||||
# Call with target language as first argument.
|
||||
function make_config()
|
||||
{
|
||||
XPWD=$(echo "$PWD" | sed -e "s/\//\\\\\\//g")
|
||||
sed -e "s/%VERSION%/$VERSION/g" \
|
||||
-e "s/%TITLE%/$TITLE/g" \
|
||||
-e "s/%AUTHOR%/$AUTHOR/g" \
|
||||
-e "s/%ORIGIN%/$XPWD/g" \
|
||||
-e "s/%COPYRIGHT%/$COPYRIGHT/g" \
|
||||
-e "s/%LANGUAGE%/$1/g" \
|
||||
> "${BUILDDIR}/conf.py" <<EOF
|
||||
import sys
|
||||
import os
|
||||
sys.path.append(os.path.abspath('_exts'))
|
||||
needs_sphinx = '1.8.5'
|
||||
extensions = [
|
||||
'sphinx.ext.todo',
|
||||
'sphinx.ext.imgmath',
|
||||
]
|
||||
templates_path = ['_templates']
|
||||
source_suffix = {
|
||||
'.rst': 'restructuredtext',
|
||||
}
|
||||
master_doc = '%VERSION%'
|
||||
project = u'%VERSION%'
|
||||
copyright = u'%COPYRIGHT%'
|
||||
version = '%VERSION%'
|
||||
release = '%VERSION%'
|
||||
language = "%LANGUAGE%"
|
||||
exclude_patterns = ['_build', '_exts', 'cf', 'prebuilt']
|
||||
locale_dirs = ['%ORIGIN%/locale/']
|
||||
gettext_compact = False
|
||||
pygments_style = 'sphinx'
|
||||
html_theme = 'epub'
|
||||
rst_epilog = ""
|
||||
html_show_sphinx = False
|
||||
html_theme_options = {
|
||||
"relbar1": "false",
|
||||
"footer": "false",
|
||||
}
|
||||
html_title = "%TITLE%"
|
||||
html_short_title = "%TITLE%"
|
||||
html_use_index = True
|
||||
html_show_sphinx = False
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
latex_documents = [
|
||||
('%VERSION%', '%VERSION%.tex',
|
||||
'%TITLE%', '%AUTHOR%', 'manual'),
|
||||
]
|
||||
epub_basename = "%VERSION%"
|
||||
epub_title = "%TITLE%"
|
||||
EOF
|
||||
}
|
||||
|
||||
# defaults
|
||||
AUTHOR="GNU Taler team"
|
||||
VERSION="exchange-tos-v0"
|
||||
OUTPUT="%termsdir%"
|
||||
PAPER="a4"
|
||||
COPYRIGHT="2014-2023 Taler Systems SA (GPLv3+ or GFDL 1.3+)"
|
||||
|
||||
# Parse command-line options
|
||||
while getopts ':a:C:hi:l:o:p:t:' OPTION; do
|
||||
case "$OPTION" in
|
||||
a)
|
||||
AUTHOR="$OPTARG"
|
||||
;;
|
||||
C)
|
||||
COPYRIGHT="$OPTARG"
|
||||
;;
|
||||
h)
|
||||
echo 'Supported options:'
|
||||
echo ' -a AUTHOR -- set author header' "(default: $AUTHOR)"
|
||||
echo ' -C COPYRIGHT -- set copyright header' "(default: $COPYRIGHT)"
|
||||
echo ' -h -- print this help'
|
||||
echo ' -i INPUT -- input file to convert' "(default: $VERSION)"
|
||||
echo ' -l LANGUAGE -- target language to add'
|
||||
echo ' -o OUTPUT -- output directory' "(default: $OUTPUT)"
|
||||
echo ' -p PAPER -- paper format' "(default: $PAPER)"
|
||||
echo ' -t TITLE -- title of the document to generate'
|
||||
exit 0
|
||||
;;
|
||||
l)
|
||||
ADD_LANGUAGE="$OPTARG"
|
||||
;;
|
||||
i)
|
||||
VERSION="$OPTARG"
|
||||
;;
|
||||
o)
|
||||
OUTPUT="$OPTARG"
|
||||
;;
|
||||
p)
|
||||
PAPER="$OPTARG"
|
||||
case "$PAPER" in
|
||||
a4|letter)
|
||||
;;
|
||||
*)
|
||||
echo "Error: Paper format '$PAPER' invalid (use 'a4' or 'letter')"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
t)
|
||||
TITLE="$OPTARG"
|
||||
;;
|
||||
?)
|
||||
exit_fail "Unrecognized command line option"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ! which sphinx-build > /dev/null
|
||||
then
|
||||
echo "Command 'sphinx-build' not found, but required. Please install sphinx."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BUILDDIR=$(mktemp -d /tmp/taler-terms-XXXXXX)
|
||||
if [ ! -f "${VERSION}.rst" ]
|
||||
then
|
||||
echo "Error: File '${VERSION}.rst' not found. Please check '-i' option."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "${VERSION}.rst" "${BUILDDIR}/"
|
||||
|
||||
if [ -z ${TITLE+x} ]
|
||||
then
|
||||
TITLE=$(head -n1 "${VERSION}.rst")
|
||||
echo "Title automatically set to '$TITLE'"
|
||||
fi
|
||||
|
||||
if [ -n "${ADD_LANGUAGE+x}" ]
|
||||
then
|
||||
if echo "${ADD_LANGUAGE}" | grep -e '..' > /dev/null
|
||||
then
|
||||
echo "Error: Invalid language '${ADD_LANGUAGE}'. Two characters (en, de, fr, ...) expected."
|
||||
exit 1
|
||||
fi
|
||||
echo "Adding language files for translations to '${ADD_LANGUAGE}'"
|
||||
make_config "${ADD_LANGUAGE}"
|
||||
sphinx-build \
|
||||
-b gettext \
|
||||
-D language="${ADD_LANGUAGE}" \
|
||||
-d "{BUILDDIR}/.doctrees" \
|
||||
"${BUILDDIR}" \
|
||||
"${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/" \
|
||||
&> "${BUILDDIR}/add-language.log"
|
||||
if [ -f "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po" ]
|
||||
then
|
||||
msgmerge --lang="${ADD_LANGUAGE}" \
|
||||
--no-location \
|
||||
-o "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.mrg" \
|
||||
"${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po" \
|
||||
"${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.pot"
|
||||
mv "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.mrg" \
|
||||
"${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po"
|
||||
else
|
||||
mv "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.pot" \
|
||||
"${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.po"
|
||||
fi
|
||||
rm "${PWD}/locale/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION}.pot"
|
||||
echo "Done"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for d in en $(ls -d locale/?? 2> /dev/null || true)
|
||||
do
|
||||
LANGUAGE=$(basename "$d")
|
||||
echo "Generating files at '$OUTPUT' for ETag '$VERSION' and language '${LANGUAGE}' in '${BUILDDIR}':"
|
||||
|
||||
make_config "$LANGUAGE"
|
||||
mkdir -p "${OUTPUT}/${LANGUAGE}/"
|
||||
|
||||
LBUILD="sphinx-build -D language=${LANGUAGE} -d ${BUILDDIR}/.doctrees"
|
||||
|
||||
echo "$VERSION XML ($LANGUAGE)..."
|
||||
# shellcheck disable=SC2090
|
||||
$LBUILD \
|
||||
-b xml \
|
||||
"${BUILDDIR}" \
|
||||
"${BUILDDIR}/xml" \
|
||||
&> "${BUILDDIR}/xml-sphinx.log"
|
||||
mv "${BUILDDIR}/xml/${VERSION}.xml" "${OUTPUT}/${LANGUAGE}/${VERSION}.xml"
|
||||
|
||||
echo "$VERSION TXT ($LANGUAGE)..."
|
||||
# shellcheck disable=SC2090
|
||||
$LBUILD \
|
||||
-b text \
|
||||
"${BUILDDIR}" \
|
||||
"${BUILDDIR}/txt" \
|
||||
&> "${BUILDDIR}/txt-sphinx.log"
|
||||
mv "${BUILDDIR}/txt/${VERSION}.txt" "${OUTPUT}/${LANGUAGE}/${VERSION}.txt"
|
||||
cp "${OUTPUT}/${LANGUAGE}/${VERSION}.txt" "${OUTPUT}/${LANGUAGE}/${VERSION}.md"
|
||||
|
||||
echo "$VERSION HTML ($LANGUAGE)..."
|
||||
# shellcheck disable=SC2090
|
||||
$LBUILD \
|
||||
-b html \
|
||||
"${BUILDDIR}" \
|
||||
"${BUILDDIR}/html" \
|
||||
&> "$BUILDDIR/html-sphinx.log"
|
||||
htmlark \
|
||||
-o "${OUTPUT}/${LANGUAGE}/${VERSION}.html" \
|
||||
"${BUILDDIR}/html/${VERSION}.html"
|
||||
|
||||
echo "$VERSION EPUB ($LANGUAGE)..."
|
||||
# shellcheck disable=SC2090
|
||||
$LBUILD \
|
||||
-b epub \
|
||||
"${BUILDDIR}" \
|
||||
"${BUILDDIR}/epub" \
|
||||
&> "$BUILDDIR/epub-sphinx.log"
|
||||
mv "${BUILDDIR}/epub/${VERSION}.epub" "${OUTPUT}/${LANGUAGE}/${VERSION}.epub"
|
||||
|
||||
echo "$VERSION PDF ($LANGUAGE)..."
|
||||
# shellcheck disable=SC2090
|
||||
$LBUILD \
|
||||
-b latex \
|
||||
-D latex_paper_size="${PAPER}" \
|
||||
"${BUILDDIR}" \
|
||||
"${BUILDDIR}/pdf" \
|
||||
&> "$BUILDDIR/pdf-sphinx.log"
|
||||
make \
|
||||
-C "${BUILDDIR}/pdf" \
|
||||
all-pdf \
|
||||
&> "$BUILDDIR/pdf-latex.log"
|
||||
mv "${BUILDDIR}/pdf/${VERSION}.pdf" "${OUTPUT}/${LANGUAGE}/${VERSION}.pdf"
|
||||
done
|
||||
|
||||
echo "Done"
|
||||
exit 0
|
3
contrib/tos/.gitignore
vendored
Normal file
3
contrib/tos/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
sphinx.err
|
||||
sphinx.log
|
||||
_build/
|
109
contrib/tos/Makefile
Normal file
109
contrib/tos/Makefile
Normal file
@ -0,0 +1,109 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html json epub latex latexpdf text man doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make a single large HTML file"
|
||||
@echo " json to make JSON files"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " pdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " txt to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
|
||||
# The html-linked builder does not support caching, so we
|
||||
# remove all cached state first.
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/html."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
pdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/pdf
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/pdf all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/pdf."
|
||||
|
||||
txt:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/txt
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/txt."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/info
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/info."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
58
contrib/tos/README
Normal file
58
contrib/tos/README
Normal file
@ -0,0 +1,58 @@
|
||||
This directory contains the terms of service (template) for exchange
|
||||
operators.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
Generating new Terms of Service requires Sphinx, LaTeX with babel
|
||||
packages for all supported languages. On Debian, you should
|
||||
at least install:
|
||||
|
||||
$ apt install python3-sphinx sphinx-intl texlive-lang-german texlive-lang-english latexmk texlive-latex-recommended texlive-latex-extra
|
||||
|
||||
(NOTE: List may be incomplete.)
|
||||
|
||||
|
||||
Updating the Terms of Service
|
||||
=============================
|
||||
|
||||
The master file with the Terms of service is 'tos.rst'.
|
||||
|
||||
If you make substantial changes, you MUST change the "TOS_VERSION"
|
||||
in contrib/Makefile.am to the new Etag.
|
||||
|
||||
To begin the translation into other languages after editing the master
|
||||
file, run
|
||||
|
||||
$ make gettext
|
||||
|
||||
to generate the master PO file. Then, run
|
||||
|
||||
$ sphinx-intl update -p _build/locale/ -l de -l fr -l it
|
||||
|
||||
to update the PO files for the various languages (extend the list of
|
||||
languages as necessary). The PO files for the translators are kept
|
||||
at locale/$LANG/LC_MESSAGES/tos.po for the language $LANG.
|
||||
|
||||
Once all PO files have been updated with new translations, run
|
||||
|
||||
$ make update-tos
|
||||
|
||||
in the "contrib/" directory to generate all of the formats. The
|
||||
respective make rule calls the '../update-tos.sh' script in the
|
||||
contrib/ directory, which calls the 'Makefile' in the tos/
|
||||
directory for the various supported languages and file formats
|
||||
and then moves the generated files to the target directory
|
||||
('contrib/tos/$LANG/$VERSION.$FORMAT')
|
||||
|
||||
|
||||
Adding a new language
|
||||
=====================
|
||||
|
||||
To add a new language $LANG, add $LANG to "TOS_LANGUAGES" in
|
||||
'contrib/Makefile.am' and run
|
||||
|
||||
$ sphinx-intl update -p _build/gettext -l $LANG
|
||||
|
||||
to generate the PO template.
|
283
contrib/tos/conf.py.in
Normal file
283
contrib/tos/conf.py.in
Normal file
@ -0,0 +1,283 @@
|
||||
"""
|
||||
This file is part of GNU TALER.
|
||||
Copyright (C) 2014-2020 Taler Systems SA
|
||||
|
||||
TALER is free software; you can redistribute it and/or modify it under the
|
||||
terms of the GNU Lesser General Public License as published by the Free Software
|
||||
Foundation; either version 2.1, or (at your option) any later version.
|
||||
|
||||
TALER is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License along with
|
||||
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
@author Florian Dold
|
||||
@author Benedikt Muller
|
||||
@author Sree Harsha Totakura
|
||||
@author Marcello Stanisci
|
||||
@author Christian Grothoff
|
||||
"""
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# neuro documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat May 31 13:11:06 2014.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
sys.path.append(os.path.abspath('_exts'))
|
||||
|
||||
#import taler_sphinx_theme
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
needs_sphinx = '1.8.5'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.todo',
|
||||
'sphinx.ext.imgmath',
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
source_suffix = {
|
||||
'.rst': 'restructuredtext',
|
||||
}
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = '%VERSION%'
|
||||
|
||||
# General information about the project.
|
||||
project = u'%VERSION%'
|
||||
copyright = u'2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '%VERSION%'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '%VERSION%'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
# language = "en de"
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build', '_exts', 'cf', 'prebuilt']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
# default_role = "ts:type"
|
||||
|
||||
locale_dirs = ['locale/']
|
||||
gettext_compact = False
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'epub'
|
||||
|
||||
#html_theme_path = taler_sphinx_theme.html_theme_path()
|
||||
|
||||
#html_sidebars = {'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']}
|
||||
|
||||
rst_epilog = ""
|
||||
|
||||
html_show_sphinx = False
|
||||
|
||||
html_theme_options = {
|
||||
# Set the name of the project to appear in the sidebar
|
||||
"relbar1": "false",
|
||||
"footer": "false",
|
||||
}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
html_title = "Taler Exchange Terms of Service"
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
html_short_title = "Terms of Service"
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
# html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
html_show_sphinx = False
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
('%VERSION%', '%VERSION%.tex',
|
||||
'Terms of Service', 'GNU Taler team', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
# latex_appendices = ["fdl-1.3"]
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
#texinfo_no_detailmenu = False
|
||||
|
||||
|
||||
# -- Options for epub output ----------------------------
|
||||
|
||||
epub_basename = "%VERSION%"
|
||||
|
||||
epub_title = "Terms of Service"
|
BIN
contrib/tos/en/bfh-v0.epub
Normal file
BIN
contrib/tos/en/bfh-v0.epub
Normal file
Binary file not shown.
310
contrib/tos/en/bfh-v0.html
Normal file
310
contrib/tos/en/bfh-v0.html
Normal file
File diff suppressed because one or more lines are too long
BIN
contrib/tos/en/bfh-v0.pdf
Normal file
BIN
contrib/tos/en/bfh-v0.pdf
Normal file
Binary file not shown.
349
contrib/tos/en/bfh-v0.txt
Normal file
349
contrib/tos/en/bfh-v0.txt
Normal file
@ -0,0 +1,349 @@
|
||||
Terms Of Service
|
||||
****************
|
||||
|
||||
Last Updated: 09.06.2022
|
||||
|
||||
Welcome! The ICE research center of the Bern University of Applied
|
||||
Sciences in Switzerland (“we,” “our,” or “us”) provides an
|
||||
experimental payment service through our Internet presence
|
||||
(collectively the “Services”). Before using our Services, please read
|
||||
the Terms of Service (the “Terms” or the “Agreement”) carefully.
|
||||
|
||||
|
||||
This is research
|
||||
================
|
||||
|
||||
This is a research experiment. Any funds wired to our Bitcoin address
|
||||
are considered a donation to our research group. We may use them to
|
||||
enable payments following the GNU Taler protocol, or simply keep them
|
||||
at our discretion. The service is experimental and may also be
|
||||
discontinued at any time, in which case all remaining funds will
|
||||
definitively be kept by the research group.
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
This section provides a brief summary of the highlights of this
|
||||
Agreement. Please note that when you accept this Agreement, you are
|
||||
accepting all of the terms and conditions and not just this section.
|
||||
We and possibly other third parties provide Internet services which
|
||||
interact with the Taler Wallet’s self-hosted personal payment
|
||||
application. When using the Taler Wallet to interact with our
|
||||
Services, you are agreeing to our Terms, so please read carefully.
|
||||
|
||||
|
||||
Highlights:
|
||||
-----------
|
||||
|
||||
* You are responsible for keeping the data in your Taler Wallet at
|
||||
all times under your control. Any losses arising from you not
|
||||
being in control of your private information are your problem.
|
||||
|
||||
* We may transfer funds we receive from our users to any legal
|
||||
recipient to the best of our ability within the limitations of
|
||||
the law and our implementation. However, the Services offered
|
||||
today are highly experimental and the set of recipients of funds
|
||||
is severely restricted. Again, we stress this is a research
|
||||
experiment and technically all funds held by the exchange are
|
||||
owned by the research group of the university.
|
||||
|
||||
* For our Services, we may charge transaction fees. The specific
|
||||
fee structure is provided based on the Taler protocol and should
|
||||
be shown to you when you withdraw electronic coins using a Taler
|
||||
Wallet. You agree and understand that the Taler protocol allows
|
||||
for the fee structure to change.
|
||||
|
||||
* You agree to not intentionally overwhelm our systems with
|
||||
requests and follow responsible disclosure if you find security
|
||||
issues in our services.
|
||||
|
||||
* We cannot be held accountable for our Services not being
|
||||
available due to any circumstances. If we modify or terminate our
|
||||
services, we may give you the opportunity to recover your funds.
|
||||
However, given the experimental state of the Services today, this
|
||||
may not be possible. You are strongly advised to limit your use
|
||||
of the Service to small-scale experiments expecting total loss of
|
||||
all funds.
|
||||
|
||||
These terms outline approved uses of our Services. The Services and
|
||||
these Terms are still at an experimental stage. If you have any
|
||||
questions or comments related to this Agreement, please send us a
|
||||
message to ice@bfh.ch. If you do not agree to this Agreement, you must
|
||||
not use our Services.
|
||||
|
||||
|
||||
How you accept this policy
|
||||
==========================
|
||||
|
||||
By sending funds to us (to top-up your Taler Wallet), you acknowledge
|
||||
that you have read, understood, and agreed to these Terms. We reserve
|
||||
the right to change these Terms at any time. If you disagree with the
|
||||
change, we may in the future offer you with an easy option to recover
|
||||
your unspent funds. However, in the current experimental period you
|
||||
acknowledge that this feature is not yet available, resulting in your
|
||||
funds being lost unless you accept the new Terms. If you continue to
|
||||
use our Services other than to recover your unspent funds, your
|
||||
continued use of our Services following any such change will signify
|
||||
your acceptance to be bound by the then current Terms. Please check
|
||||
the effective date above to determine if there have been any changes
|
||||
since you have last reviewed these Terms.
|
||||
|
||||
|
||||
Services
|
||||
========
|
||||
|
||||
We will try to transfer funds that we receive from users to any legal
|
||||
recipient to the best of our ability and within the limitations of the
|
||||
law. However, the Services offered today are highly experimental and
|
||||
the set of recipients of funds is severely restricted. The Taler
|
||||
Wallet can be loaded by exchanging fiat or cryptocurrencies against
|
||||
electronic coins. We are providing this exchange service. Once your
|
||||
Taler Wallet is loaded with electronic coins they can be spent for
|
||||
purchases if the seller is accepting Taler as a means of payment. We
|
||||
are not guaranteeing that any seller is accepting Taler at all or a
|
||||
particular seller. The seller or recipient of deposits of electronic
|
||||
coins must specify the target account, as per the design of the Taler
|
||||
protocol. They are responsible for following the protocol and
|
||||
specifying the correct bank account, and are solely liable for any
|
||||
losses that may arise from specifying the wrong account. We may allow
|
||||
the government to link wire transfers to the underlying contract hash.
|
||||
It is the responsibility of recipients to preserve the full contracts
|
||||
and to pay whatever taxes and charges may be applicable. Technical
|
||||
issues may lead to situations where we are unable to make transfers at
|
||||
all or lead to incorrect transfers that cannot be reversed. We may
|
||||
refuse to execute transfers if the transfers are prohibited by a
|
||||
competent legal authority and we are ordered to do so.
|
||||
|
||||
When using our Services, you agree to not take any action that
|
||||
intentionally imposes an unreasonable load on our infrastructure. If
|
||||
you find security problems in our Services, you agree to first report
|
||||
them to security@taler-systems.com and grant us the right to publish
|
||||
your report. We warrant that we will ourselves publicly disclose any
|
||||
issues reported within 3 months, and that we will not prosecute anyone
|
||||
reporting security issues if they did not exploit the issue beyond a
|
||||
proof-of-concept, and followed the above responsible disclosure
|
||||
practice.
|
||||
|
||||
|
||||
Fees
|
||||
====
|
||||
|
||||
You agree to pay the fees for exchanges and withdrawals completed via
|
||||
the Taler Wallet ("Fees") as defined by us, which we may change from
|
||||
time to time. With the exception of wire transfer fees, Taler
|
||||
transaction fees are set for any electronic coin at the time of
|
||||
withdrawal and fixed throughout the validity period of the respective
|
||||
electronic coin. Your wallet should obtain and display applicable fees
|
||||
when withdrawing funds. Fees for coins obtained as change may differ
|
||||
from the fees applicable to the original coin. Wire transfer fees that
|
||||
are independent from electronic coins may change annually. You
|
||||
authorize us to charge or deduct applicable fees owed in connection
|
||||
with deposits, exchanges and withdrawals following the rules of the
|
||||
Taler protocol. We reserve the right to provide different types of
|
||||
rewards to users either in the form of discount for our Services or in
|
||||
any other form at our discretion and without prior notice to you.
|
||||
|
||||
|
||||
Eligibility and Financial self-responsibility
|
||||
=============================================
|
||||
|
||||
To be eligible to use our Services, you must be able to form legally
|
||||
binding contracts or have the permission of your legal guardian. By
|
||||
using our Services, you represent and warrant that you meet all
|
||||
eligibility requirements that we outline in these Terms.
|
||||
|
||||
You will be responsible for maintaining the availability, integrity
|
||||
and confidentiality of the data stored in your wallet. When you setup
|
||||
a Taler Wallet, you are strongly advised to follow the precautionary
|
||||
measures offered by the software to minimize the chances to losse
|
||||
access to or control over your Wallet data. We will not be liable for
|
||||
any loss or damage arising from your failure to comply with this
|
||||
paragraph.
|
||||
|
||||
|
||||
Copyrights and trademarks
|
||||
=========================
|
||||
|
||||
The Taler Wallet is released under the terms of the GNU General Public
|
||||
License (GNU GPL). You have the right to access, use, and share the
|
||||
Taler Wallet, in modified or unmodified form. However, the GPL is a
|
||||
strong copyleft license, which means that any derivative works must be
|
||||
distributed under the same license terms as the original software. If
|
||||
you have any questions, you should review the GNU GPL’s full terms and
|
||||
conditions at https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler”
|
||||
itself is a trademark of Taler Systems SA. You are welcome to use the
|
||||
name in relation to processing payments using the Taler protocol,
|
||||
assuming your use is compatible with an official release from the GNU
|
||||
Project that is not older than two years.
|
||||
|
||||
|
||||
Limitation of liability & disclaimer of warranties
|
||||
==================================================
|
||||
|
||||
You understand and agree that we have no control over, and no duty to
|
||||
take any action regarding: Failures, disruptions, errors, or delays in
|
||||
processing that you may experience while using our Services; The risk
|
||||
of failure of hardware, software, and Internet connections; The risk
|
||||
of malicious software being introduced or found in the software
|
||||
underlying the Taler Wallet; The risk that third parties may obtain
|
||||
unauthorized access to information stored within your Taler Wallet,
|
||||
including, but not limited to your Taler Wallet coins or backup
|
||||
encryption keys. You release us from all liability related to any
|
||||
losses, damages, or claims arising from:
|
||||
|
||||
1. user error such as forgotten passwords, incorrectly constructed
|
||||
transactions;
|
||||
|
||||
2. server failure or data loss;
|
||||
|
||||
3. unauthorized access to the Taler Wallet application;
|
||||
|
||||
4. bugs or other errors in the Taler Wallet software; and
|
||||
|
||||
5. any unauthorized third party activities, including, but not limited
|
||||
to, the use of viruses, phishing, brute forcing, or other means of
|
||||
attack against the Taler Wallet. We make no representations
|
||||
concerning any Third Party Content contained in or accessed through
|
||||
our Services.
|
||||
|
||||
Any other terms, conditions, warranties, or representations associated
|
||||
with such content, are solely between you and such organizations
|
||||
and/or individuals.
|
||||
|
||||
To the fullest extent permitted by applicable law, in no event will we
|
||||
or any of our officers, directors, representatives, agents, servants,
|
||||
counsel, employees, consultants, lawyers, and other personnel
|
||||
authorized to act, acting, or purporting to act on our behalf
|
||||
(collectively the “Taler Parties”) be liable to you under contract,
|
||||
tort, strict liability, negligence, or any other legal or equitable
|
||||
theory, for:
|
||||
|
||||
1. any lost profits, data loss, cost of procurement of substitute
|
||||
goods or services, or direct, indirect, incidental, special,
|
||||
punitive, compensatory, or consequential damages of any kind
|
||||
whatsoever resulting from:
|
||||
|
||||
1. your use of, or conduct in connection with, our services;
|
||||
|
||||
2. any unauthorized use of your wallet and/or private key due to
|
||||
your failure to maintain the confidentiality of your wallet;
|
||||
|
||||
3. any interruption or cessation of transmission to or from the
|
||||
services; or
|
||||
|
||||
4. any bugs, viruses, trojan horses, or the like that are found in
|
||||
the Taler Wallet software or that may be transmitted to or
|
||||
through our services by any third party (regardless of the
|
||||
source of origination), or
|
||||
|
||||
2. any direct damages.
|
||||
|
||||
These limitations apply regardless of legal theory, whether based on
|
||||
tort, strict liability, breach of contract, breach of warranty, or any
|
||||
other legal theory, and whether or not we were advised of the
|
||||
possibility of such damages. Some jurisdictions do not allow the
|
||||
exclusion or limitation of liability for consequential or incidental
|
||||
damages, so the above limitation may not apply to you.
|
||||
|
||||
Our services are provided "as is" and without warranty of any kind. To
|
||||
the maximum extent permitted by law, we disclaim all representations
|
||||
and warranties, express or implied, relating to the services and
|
||||
underlying software or any content on the services, whether provided
|
||||
or owned by us or by any third party, including without limitation,
|
||||
warranties of merchantability, fitness for a particular purpose,
|
||||
title, non-infringement, freedom from computer virus, and any implied
|
||||
warranties arising from course of dealing, course of performance, or
|
||||
usage in trade, all of which are expressly disclaimed. In addition, we
|
||||
do not represent or warrant that the content accessible via the
|
||||
services is accurate, complete, available, current, free of viruses or
|
||||
other harmful components, or that the results of using the services
|
||||
will meet your requirements. Some states do not allow the disclaimer
|
||||
of implied warranties, so the foregoing disclaimers may not apply to
|
||||
you. This paragraph gives you specific legal rights and you may also
|
||||
have other legal rights that vary from state to state.
|
||||
|
||||
|
||||
Indemnity and Time limitation on claims and Termination
|
||||
=======================================================
|
||||
|
||||
To the extent permitted by applicable law, you agree to defend,
|
||||
indemnify, and hold harmless the Taler Parties from and against any
|
||||
and all claims, damages, obligations, losses, liabilities, costs or
|
||||
debt, and expenses (including, but not limited to, attorney’s fees)
|
||||
arising from: (a) your use of and access to the Services; (b) any
|
||||
feedback or submissions you provide to us concerning the Taler Wallet;
|
||||
(c) your violation of any term of this Agreement; or (d) your
|
||||
violation of any law, rule, or regulation, or the rights of any third
|
||||
party.
|
||||
|
||||
You agree that any claim you may have arising out of or related to
|
||||
your relationship with us must be filed within one year after such
|
||||
claim arises, otherwise, your claim in permanently barred.
|
||||
|
||||
In the event of termination concerning your use of our Services, your
|
||||
obligations under this Agreement will still continue.
|
||||
|
||||
|
||||
Discontinuance of services and Force majeure
|
||||
============================================
|
||||
|
||||
We may, in our sole discretion and without cost to you, with or
|
||||
without prior notice, and at any time, modify or discontinue,
|
||||
temporarily or permanently, any portion of our Services. We will use
|
||||
the Taler protocol’s provisions to notify Wallets if our Services are
|
||||
to be discontinued. It is your responsibility to ensure that the Taler
|
||||
Wallet is online at least once every three months to observe these
|
||||
notifications. We shall not be held responsible or liable for any loss
|
||||
of funds in the event that we discontinue or depreciate the Services
|
||||
and your Taler Wallet fails to transfer out the coins within a three
|
||||
months notification period.
|
||||
|
||||
We shall not be held liable for any delays, failure in performance, or
|
||||
interruptions of service which result directly or indirectly from any
|
||||
cause or condition beyond our reasonable control, including but not
|
||||
limited to: any delay or failure due to any act of God, act of civil
|
||||
or military authorities, act of terrorism, civil disturbance, war,
|
||||
strike or other labor dispute, fire, interruption in
|
||||
telecommunications or Internet services or network provider services,
|
||||
failure of equipment and/or software, other catastrophe, or any other
|
||||
occurrence which is beyond our reasonable control and shall not affect
|
||||
the validity and enforceability of any remaining provisions.
|
||||
|
||||
|
||||
Governing law, Waivers, Severability and Assignment
|
||||
===================================================
|
||||
|
||||
No matter where you’re located, the laws of Switzerland will govern
|
||||
these Terms. If any provisions of these Terms are inconsistent with
|
||||
any applicable law, those provisions will be superseded or modified
|
||||
only to the extent such provisions are inconsistent. The parties agree
|
||||
to submit to the ordinary courts in Bern, Switzerland for exclusive
|
||||
jurisdiction of any dispute arising out of or related to your use of
|
||||
the Services or your breach of these Terms.
|
||||
|
||||
Our failure to exercise or delay in exercising any right, power, or
|
||||
privilege under this Agreement shall not operate as a waiver; nor
|
||||
shall any single or partial exercise of any right, power, or privilege
|
||||
preclude any other or further exercise thereof.
|
||||
|
||||
You agree that we may assign any of our rights and/or transfer, sub-
|
||||
contract, or delegate any of our obligations under these Terms.
|
||||
|
||||
If it turns out that any part of this Agreement is invalid, void, or
|
||||
for any reason unenforceable, that term will be deemed severable and
|
||||
limited or eliminated to the minimum extent necessary.
|
||||
|
||||
This Agreement sets forth the entire understanding and agreement as to
|
||||
the subject matter hereof and supersedes any and all prior
|
||||
discussions, agreements, and understandings of any kind (including,
|
||||
without limitation, any prior versions of this Agreement) and every
|
||||
nature between us. Except as provided for above, any modification to
|
||||
this Agreement must be in writing and must be signed by both parties.
|
||||
|
||||
|
||||
Questions or comments
|
||||
=====================
|
||||
|
||||
We welcome comments, questions, concerns, or suggestions. Please send
|
||||
us a message on our contact page at legal@taler-systems.com.
|
323
contrib/tos/en/bfh-v0.xml
Normal file
323
contrib/tos/en/bfh-v0.xml
Normal file
@ -0,0 +1,323 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE document PUBLIC "+//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML" "http://docutils.sourceforge.net/docs/ref/docutils.dtd">
|
||||
<!-- Generated by Docutils 0.16 -->
|
||||
<document source="/research/taler/exchange/contrib/tos/bfh-v0.rst">
|
||||
<section ids="terms-of-service" names="terms\ of\ service">
|
||||
<title>Terms Of Service</title>
|
||||
<paragraph>Last Updated: 09.06.2022</paragraph>
|
||||
<paragraph>Welcome! The ICE research center of the Bern University of Applied Sciences
|
||||
in Switzerland (“we,” “our,” or “us”) provides an experimental payment service
|
||||
through our Internet presence (collectively the “Services”). Before using our
|
||||
Services, please read the Terms of Service (the “Terms” or the “Agreement”)
|
||||
carefully.</paragraph>
|
||||
<section ids="this-is-research" names="this\ is\ research">
|
||||
<title>This is research</title>
|
||||
<paragraph>This is a research experiment. Any funds wired to our Bitcoin address are
|
||||
considered a donation to our research group. We may use them to enable
|
||||
payments following the GNU Taler protocol, or simply keep them at our
|
||||
discretion. The service is experimental and may also be discontinued at
|
||||
any time, in which case all remaining funds will definitively be kept by
|
||||
the research group.</paragraph>
|
||||
</section>
|
||||
<section ids="overview" names="overview">
|
||||
<title>Overview</title>
|
||||
<paragraph>This section provides a brief summary of the highlights of this
|
||||
Agreement. Please note that when you accept this Agreement, you are accepting
|
||||
all of the terms and conditions and not just this section. We and possibly
|
||||
other third parties provide Internet services which interact with the Taler
|
||||
Wallet’s self-hosted personal payment application. When using the Taler Wallet
|
||||
to interact with our Services, you are agreeing to our Terms, so please read
|
||||
carefully.</paragraph>
|
||||
<section ids="highlights" names="highlights:">
|
||||
<title>Highlights:</title>
|
||||
<block_quote>
|
||||
<bullet_list bullet="•">
|
||||
<list_item>
|
||||
<paragraph>You are responsible for keeping the data in your Taler Wallet at all times
|
||||
under your control. Any losses arising from you not being in control of
|
||||
your private information are your problem.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>We may transfer funds we receive from our users to any legal
|
||||
recipient to the best of our ability within the limitations of the law and
|
||||
our implementation. However, the Services offered today are highly
|
||||
experimental and the set of recipients of funds is severely restricted.
|
||||
Again, we stress this is a research experiment and technically all funds
|
||||
held by the exchange are owned by the research group of the university.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>For our Services, we may charge transaction fees. The specific fee structure
|
||||
is provided based on the Taler protocol and should be shown to you when you
|
||||
withdraw electronic coins using a Taler Wallet. You agree and understand
|
||||
that the Taler protocol allows for the fee structure to change.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>You agree to not intentionally overwhelm our systems with requests and
|
||||
follow responsible disclosure if you find security issues in our services.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>We cannot be held accountable for our Services not being available due to
|
||||
any circumstances. If we modify or terminate our services,
|
||||
we may give you the opportunity to recover your funds. However,
|
||||
given the experimental state of the Services today, this may not be
|
||||
possible. You are strongly advised to limit your use of the Service
|
||||
to small-scale experiments expecting total loss of all funds.</paragraph>
|
||||
</list_item>
|
||||
</bullet_list>
|
||||
</block_quote>
|
||||
<paragraph>These terms outline approved uses of our Services. The Services and these
|
||||
Terms are still at an experimental stage. If you have any questions or
|
||||
comments related to this Agreement, please send us a message to
|
||||
<reference refuri="mailto:ice@bfh.ch">ice@bfh.ch</reference>. If you do not agree to this Agreement, you must not
|
||||
use our Services.</paragraph>
|
||||
</section>
|
||||
</section>
|
||||
<section ids="how-you-accept-this-policy" names="how\ you\ accept\ this\ policy">
|
||||
<title>How you accept this policy</title>
|
||||
<paragraph>By sending funds to us (to top-up your Taler Wallet), you acknowledge that you
|
||||
have read, understood, and agreed to these Terms. We reserve the right to
|
||||
change these Terms at any time. If you disagree with the change, we may in the
|
||||
future offer you with an easy option to recover your unspent funds. However,
|
||||
in the current experimental period you acknowledge that this feature is not
|
||||
yet available, resulting in your funds being lost unless you accept the new
|
||||
Terms. If you continue to use our Services other than to recover your unspent
|
||||
funds, your continued use of our Services following any such change will
|
||||
signify your acceptance to be bound by the then current Terms. Please check
|
||||
the effective date above to determine if there have been any changes since you
|
||||
have last reviewed these Terms.</paragraph>
|
||||
</section>
|
||||
<section ids="services" names="services">
|
||||
<title>Services</title>
|
||||
<paragraph>We will try to transfer funds that we receive from users to any legal
|
||||
recipient to the best of our ability and within the limitations of the
|
||||
law. However, the Services offered today are highly experimental and the set
|
||||
of recipients of funds is severely restricted. The Taler Wallet can be loaded
|
||||
by exchanging fiat or cryptocurrencies against electronic coins. We are
|
||||
providing this exchange service. Once your Taler Wallet is loaded with
|
||||
electronic coins they can be spent for purchases if the seller is accepting
|
||||
Taler as a means of payment. We are not guaranteeing that any seller is
|
||||
accepting Taler at all or a particular seller. The seller or recipient of
|
||||
deposits of electronic coins must specify the target account, as per the
|
||||
design of the Taler protocol. They are responsible for following the protocol
|
||||
and specifying the correct bank account, and are solely liable for any losses
|
||||
that may arise from specifying the wrong account. We may allow the government
|
||||
to link wire transfers to the underlying contract hash. It is the
|
||||
responsibility of recipients to preserve the full contracts and to pay
|
||||
whatever taxes and charges may be applicable. Technical issues may lead to
|
||||
situations where we are unable to make transfers at all or lead to incorrect
|
||||
transfers that cannot be reversed. We may refuse to execute transfers if the
|
||||
transfers are prohibited by a competent legal authority and we are ordered to
|
||||
do so.</paragraph>
|
||||
<paragraph>When using our Services, you agree to not take any action that intentionally
|
||||
imposes an unreasonable load on our infrastructure. If you find security
|
||||
problems in our Services, you agree to first report them to
|
||||
<reference refuri="mailto:security@taler-systems.com">security@taler-systems.com</reference> and grant us the right to publish your report. We
|
||||
warrant that we will ourselves publicly disclose any issues reported within 3
|
||||
months, and that we will not prosecute anyone reporting security issues if
|
||||
they did not exploit the issue beyond a proof-of-concept, and followed the
|
||||
above responsible disclosure practice.</paragraph>
|
||||
</section>
|
||||
<section ids="fees" names="fees">
|
||||
<title>Fees</title>
|
||||
<paragraph>You agree to pay the fees for exchanges and withdrawals completed via the
|
||||
Taler Wallet (“Fees”) as defined by us, which we may change from time to
|
||||
time. With the exception of wire transfer fees, Taler transaction fees are set
|
||||
for any electronic coin at the time of withdrawal and fixed throughout the
|
||||
validity period of the respective electronic coin. Your wallet should obtain
|
||||
and display applicable fees when withdrawing funds. Fees for coins obtained as
|
||||
change may differ from the fees applicable to the original coin. Wire transfer
|
||||
fees that are independent from electronic coins may change annually. You
|
||||
authorize us to charge or deduct applicable fees owed in connection with
|
||||
deposits, exchanges and withdrawals following the rules of the Taler protocol.
|
||||
We reserve the right to provide different types of rewards to users either in
|
||||
the form of discount for our Services or in any other form at our discretion
|
||||
and without prior notice to you.</paragraph>
|
||||
</section>
|
||||
<section ids="eligibility-and-financial-self-responsibility" names="eligibility\ and\ financial\ self-responsibility">
|
||||
<title>Eligibility and Financial self-responsibility</title>
|
||||
<paragraph>To be eligible to use our Services, you must be able to form legally binding
|
||||
contracts or have the permission of your legal guardian. By using our
|
||||
Services, you represent and warrant that you meet all eligibility requirements
|
||||
that we outline in these Terms.</paragraph>
|
||||
<paragraph>You will be responsible for maintaining the availability, integrity and
|
||||
confidentiality of the data stored in your wallet. When you setup a Taler
|
||||
Wallet, you are strongly advised to follow the precautionary measures offered
|
||||
by the software to minimize the chances to losse access to or control over
|
||||
your Wallet data. We will not be liable for any loss or damage arising from
|
||||
your failure to comply with this paragraph.</paragraph>
|
||||
</section>
|
||||
<section ids="copyrights-and-trademarks" names="copyrights\ and\ trademarks">
|
||||
<title>Copyrights and trademarks</title>
|
||||
<paragraph>The Taler Wallet is released under the terms of the GNU General Public License
|
||||
(GNU GPL). You have the right to access, use, and share the Taler Wallet, in
|
||||
modified or unmodified form. However, the GPL is a strong copyleft license,
|
||||
which means that any derivative works must be distributed under the same
|
||||
license terms as the original software. If you have any questions, you should
|
||||
review the GNU GPL’s full terms and conditions at
|
||||
<reference refuri="https://www.gnu.org/licenses/gpl-3.0.en.html">https://www.gnu.org/licenses/gpl-3.0.en.html</reference>. “Taler” itself is a trademark
|
||||
of Taler Systems SA. You are welcome to use the name in relation to processing
|
||||
payments using the Taler protocol, assuming your use is compatible with an
|
||||
official release from the GNU Project that is not older than two years.</paragraph>
|
||||
</section>
|
||||
<section ids="limitation-of-liability-disclaimer-of-warranties" names="limitation\ of\ liability\ &\ disclaimer\ of\ warranties">
|
||||
<title>Limitation of liability & disclaimer of warranties</title>
|
||||
<paragraph>You understand and agree that we have no control over, and no duty to take any
|
||||
action regarding: Failures, disruptions, errors, or delays in processing that
|
||||
you may experience while using our Services; The risk of failure of hardware,
|
||||
software, and Internet connections; The risk of malicious software being
|
||||
introduced or found in the software underlying the Taler Wallet; The risk that
|
||||
third parties may obtain unauthorized access to information stored within your
|
||||
Taler Wallet, including, but not limited to your Taler Wallet coins or backup
|
||||
encryption keys. You release us from all liability related to any losses,
|
||||
damages, or claims arising from:</paragraph>
|
||||
<enumerated_list enumtype="loweralpha" prefix="(" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>user error such as forgotten passwords, incorrectly constructed
|
||||
transactions;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>server failure or data loss;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>unauthorized access to the Taler Wallet application;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>bugs or other errors in the Taler Wallet software; and</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any unauthorized third party activities, including, but not limited to,
|
||||
the use of viruses, phishing, brute forcing, or other means of attack
|
||||
against the Taler Wallet. We make no representations concerning any
|
||||
Third Party Content contained in or accessed through our Services.</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
<paragraph>Any other terms, conditions, warranties, or representations associated with
|
||||
such content, are solely between you and such organizations and/or
|
||||
individuals.</paragraph>
|
||||
<paragraph>To the fullest extent permitted by applicable law, in no event will we or any
|
||||
of our officers, directors, representatives, agents, servants, counsel,
|
||||
employees, consultants, lawyers, and other personnel authorized to act,
|
||||
acting, or purporting to act on our behalf (collectively the “Taler Parties”)
|
||||
be liable to you under contract, tort, strict liability, negligence, or any
|
||||
other legal or equitable theory, for:</paragraph>
|
||||
<enumerated_list enumtype="loweralpha" prefix="(" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>any lost profits, data loss, cost of procurement of substitute goods or
|
||||
services, or direct, indirect, incidental, special, punitive, compensatory,
|
||||
or consequential damages of any kind whatsoever resulting from:</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
<block_quote>
|
||||
<enumerated_list enumtype="lowerroman" prefix="(" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>your use of, or conduct in connection with, our services;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any unauthorized use of your wallet and/or private key due to your
|
||||
failure to maintain the confidentiality of your wallet;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any interruption or cessation of transmission to or from the services; or</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any bugs, viruses, trojan horses, or the like that are found in the Taler
|
||||
Wallet software or that may be transmitted to or through our services by
|
||||
any third party (regardless of the source of origination), or</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
</block_quote>
|
||||
<enumerated_list enumtype="loweralpha" prefix="(" start="2" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>any direct damages.</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
<paragraph>These limitations apply regardless of legal theory, whether based on tort,
|
||||
strict liability, breach of contract, breach of warranty, or any other legal
|
||||
theory, and whether or not we were advised of the possibility of such
|
||||
damages. Some jurisdictions do not allow the exclusion or limitation of
|
||||
liability for consequential or incidental damages, so the above limitation may
|
||||
not apply to you.</paragraph>
|
||||
<paragraph>Our services are provided “as is” and without warranty of any kind. To the
|
||||
maximum extent permitted by law, we disclaim all representations and
|
||||
warranties, express or implied, relating to the services and underlying
|
||||
software or any content on the services, whether provided or owned by us or by
|
||||
any third party, including without limitation, warranties of merchantability,
|
||||
fitness for a particular purpose, title, non-infringement, freedom from
|
||||
computer virus, and any implied warranties arising from course of dealing,
|
||||
course of performance, or usage in trade, all of which are expressly
|
||||
disclaimed. In addition, we do not represent or warrant that the content
|
||||
accessible via the services is accurate, complete, available, current, free of
|
||||
viruses or other harmful components, or that the results of using the services
|
||||
will meet your requirements. Some states do not allow the disclaimer of
|
||||
implied warranties, so the foregoing disclaimers may not apply to you. This
|
||||
paragraph gives you specific legal rights and you may also have other legal
|
||||
rights that vary from state to state.</paragraph>
|
||||
</section>
|
||||
<section ids="indemnity-and-time-limitation-on-claims-and-termination" names="indemnity\ and\ time\ limitation\ on\ claims\ and\ termination">
|
||||
<title>Indemnity and Time limitation on claims and Termination</title>
|
||||
<paragraph>To the extent permitted by applicable law, you agree to defend, indemnify, and
|
||||
hold harmless the Taler Parties from and against any and all claims, damages,
|
||||
obligations, losses, liabilities, costs or debt, and expenses (including, but
|
||||
not limited to, attorney’s fees) arising from: (a) your use of and access to
|
||||
the Services; (b) any feedback or submissions you provide to us concerning the
|
||||
Taler Wallet; (c) your violation of any term of this Agreement; or (d) your
|
||||
violation of any law, rule, or regulation, or the rights of any third party.</paragraph>
|
||||
<paragraph>You agree that any claim you may have arising out of or related to your
|
||||
relationship with us must be filed within one year after such claim arises,
|
||||
otherwise, your claim in permanently barred.</paragraph>
|
||||
<paragraph>In the event of termination concerning your use of our Services, your
|
||||
obligations under this Agreement will still continue.</paragraph>
|
||||
</section>
|
||||
<section ids="discontinuance-of-services-and-force-majeure" names="discontinuance\ of\ services\ and\ force\ majeure">
|
||||
<title>Discontinuance of services and Force majeure</title>
|
||||
<paragraph>We may, in our sole discretion and without cost to you, with or without prior
|
||||
notice, and at any time, modify or discontinue, temporarily or permanently,
|
||||
any portion of our Services. We will use the Taler protocol’s provisions to
|
||||
notify Wallets if our Services are to be discontinued. It is your
|
||||
responsibility to ensure that the Taler Wallet is online at least once every
|
||||
three months to observe these notifications. We shall not be held responsible
|
||||
or liable for any loss of funds in the event that we discontinue or depreciate
|
||||
the Services and your Taler Wallet fails to transfer out the coins within a
|
||||
three months notification period.</paragraph>
|
||||
<paragraph>We shall not be held liable for any delays, failure in performance, or
|
||||
interruptions of service which result directly or indirectly from any cause or
|
||||
condition beyond our reasonable control, including but not limited to: any
|
||||
delay or failure due to any act of God, act of civil or military authorities,
|
||||
act of terrorism, civil disturbance, war, strike or other labor dispute, fire,
|
||||
interruption in telecommunications or Internet services or network provider
|
||||
services, failure of equipment and/or software, other catastrophe, or any
|
||||
other occurrence which is beyond our reasonable control and shall not affect
|
||||
the validity and enforceability of any remaining provisions.</paragraph>
|
||||
</section>
|
||||
<section ids="governing-law-waivers-severability-and-assignment" names="governing\ law,\ waivers,\ severability\ and\ assignment">
|
||||
<title>Governing law, Waivers, Severability and Assignment</title>
|
||||
<paragraph>No matter where you’re located, the laws of Switzerland will govern these
|
||||
Terms. If any provisions of these Terms are inconsistent with any applicable
|
||||
law, those provisions will be superseded or modified only to the extent such
|
||||
provisions are inconsistent. The parties agree to submit to the ordinary
|
||||
courts in Bern, Switzerland for exclusive jurisdiction of any dispute
|
||||
arising out of or related to your use of the Services or your breach of these
|
||||
Terms.</paragraph>
|
||||
<paragraph>Our failure to exercise or delay in exercising any right, power, or privilege
|
||||
under this Agreement shall not operate as a waiver; nor shall any single or
|
||||
partial exercise of any right, power, or privilege preclude any other or
|
||||
further exercise thereof.</paragraph>
|
||||
<paragraph>You agree that we may assign any of our rights and/or transfer, sub-contract,
|
||||
or delegate any of our obligations under these Terms.</paragraph>
|
||||
<paragraph>If it turns out that any part of this Agreement is invalid, void, or for any
|
||||
reason unenforceable, that term will be deemed severable and limited or
|
||||
eliminated to the minimum extent necessary.</paragraph>
|
||||
<paragraph>This Agreement sets forth the entire understanding and agreement as to the
|
||||
subject matter hereof and supersedes any and all prior discussions,
|
||||
agreements, and understandings of any kind (including, without limitation, any
|
||||
prior versions of this Agreement) and every nature between us. Except as
|
||||
provided for above, any modification to this Agreement must be in writing and
|
||||
must be signed by both parties.</paragraph>
|
||||
</section>
|
||||
<section ids="questions-or-comments" names="questions\ or\ comments">
|
||||
<title>Questions or comments</title>
|
||||
<paragraph>We welcome comments, questions, concerns, or suggestions. Please send us a
|
||||
message on our contact page at <reference refuri="mailto:legal@taler-systems.com">legal@taler-systems.com</reference>.</paragraph>
|
||||
</section>
|
||||
</section>
|
||||
</document>
|
BIN
contrib/tos/en/tos-v0.epub
Normal file
BIN
contrib/tos/en/tos-v0.epub
Normal file
Binary file not shown.
298
contrib/tos/en/tos-v0.html
Normal file
298
contrib/tos/en/tos-v0.html
Normal file
File diff suppressed because one or more lines are too long
337
contrib/tos/en/tos-v0.md
Normal file
337
contrib/tos/en/tos-v0.md
Normal file
@ -0,0 +1,337 @@
|
||||
Terms Of Service
|
||||
****************
|
||||
|
||||
Last Updated: 12.4.2019
|
||||
|
||||
Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment
|
||||
service through our Internet presence (collectively the “Services”).
|
||||
Before using our Services, please read the Terms of Service (the
|
||||
“Terms” or the “Agreement”) carefully.
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
This section provides a brief summary of the highlights of this
|
||||
Agreement. Please note that when you accept this Agreement, you are
|
||||
accepting all of the terms and conditions and not just this section.
|
||||
We and possibly other third parties provide Internet services which
|
||||
interact with the Taler Wallet’s self-hosted personal payment
|
||||
application. When using the Taler Wallet to interact with our
|
||||
Services, you are agreeing to our Terms, so please read carefully.
|
||||
|
||||
|
||||
Highlights:
|
||||
-----------
|
||||
|
||||
* You are responsible for keeping the data in your Taler Wallet at
|
||||
all times under your control. Any losses arising from you not
|
||||
being in control of your private information are your problem.
|
||||
|
||||
* We will try to transfer funds we hold in escrow for our users to
|
||||
any legal recipient to the best of our ability within the
|
||||
limitations of the law and our implementation. However, the
|
||||
Services offered today are highly experimental and the set of
|
||||
recipients of funds is severely restricted.
|
||||
|
||||
* For our Services, we may charge transaction fees. The specific
|
||||
fee structure is provided based on the Taler protocol and should
|
||||
be shown to you when you withdraw electronic coins using a Taler
|
||||
Wallet. You agree and understand that the Taler protocol allows
|
||||
for the fee structure to change.
|
||||
|
||||
* You agree to not intentionally overwhelm our systems with
|
||||
requests and follow responsible disclosure if you find security
|
||||
issues in our services.
|
||||
|
||||
* We cannot be held accountable for our Services not being
|
||||
available due to circumstances beyond our control. If we modify
|
||||
or terminate our services, we will try to give you the
|
||||
opportunity to recover your funds. However, given the
|
||||
experimental state of the Services today, this may not be
|
||||
possible. You are strongly advised to limit your use of the
|
||||
Service to small-scale experiments expecting total loss of all
|
||||
funds.
|
||||
|
||||
These terms outline approved uses of our Services. The Services and
|
||||
these Terms are still at an experimental stage. If you have any
|
||||
questions or comments related to this Agreement, please send us a
|
||||
message to legal@taler-systems.com. If you do not agree to this
|
||||
Agreement, you must not use our Services.
|
||||
|
||||
|
||||
How you accept this policy
|
||||
==========================
|
||||
|
||||
By sending funds to us (to top-up your Taler Wallet), you acknowledge
|
||||
that you have read, understood, and agreed to these Terms. We reserve
|
||||
the right to change these Terms at any time. If you disagree with the
|
||||
change, we may in the future offer you with an easy option to recover
|
||||
your unspent funds. However, in the current experimental period you
|
||||
acknowledge that this feature is not yet available, resulting in your
|
||||
funds being lost unless you accept the new Terms. If you continue to
|
||||
use our Services other than to recover your unspent funds, your
|
||||
continued use of our Services following any such change will signify
|
||||
your acceptance to be bound by the then current Terms. Please check
|
||||
the effective date above to determine if there have been any changes
|
||||
since you have last reviewed these Terms.
|
||||
|
||||
|
||||
Services
|
||||
========
|
||||
|
||||
We will try to transfer funds that we hold in escrow for our users to
|
||||
any legal recipient to the best of our ability and within the
|
||||
limitations of the law and our implementation. However, the Services
|
||||
offered today are highly experimental and the set of recipients of
|
||||
funds is severely restricted. The Taler Wallet can be loaded by
|
||||
exchanging fiat currencies against electronic coins. We are providing
|
||||
this exchange service. Once your Taler Wallet is loaded with
|
||||
electronic coins they can be spent for purchases if the seller is
|
||||
accepting Taler as a means of payment. We are not guaranteeing that
|
||||
any seller is accepting Taler at all or a particular seller. The
|
||||
seller or recipient of deposits of electronic coins must specify the
|
||||
target account, as per the design of the Taler protocol. They are
|
||||
responsible for following the protocol and specifying the correct bank
|
||||
account, and are solely liable for any losses that may arise from
|
||||
specifying the wrong account. We will allow the government to link
|
||||
wire transfers to the underlying contract hash. It is the
|
||||
responsibility of recipients to preserve the full contracts and to pay
|
||||
whatever taxes and charges may be applicable. Technical issues may
|
||||
lead to situations where we are unable to make transfers at all or
|
||||
lead to incorrect transfers that cannot be reversed. We will only
|
||||
refuse to execute transfers if the transfers are prohibited by a
|
||||
competent legal authority and we are ordered to do so.
|
||||
|
||||
When using our Services, you agree to not take any action that
|
||||
intentionally imposes an unreasonable load on our infrastructure. If
|
||||
you find security problems in our Services, you agree to first report
|
||||
them to security@taler-systems.com and grant us the right to publish
|
||||
your report. We warrant that we will ourselves publicly disclose any
|
||||
issues reported within 3 months, and that we will not prosecute anyone
|
||||
reporting security issues if they did not exploit the issue beyond a
|
||||
proof-of-concept, and followed the above responsible disclosure
|
||||
practice.
|
||||
|
||||
|
||||
Fees
|
||||
====
|
||||
|
||||
You agree to pay the fees for exchanges and withdrawals completed via
|
||||
the Taler Wallet ("Fees") as defined by us, which we may change from
|
||||
time to time. With the exception of wire transfer fees, Taler
|
||||
transaction fees are set for any electronic coin at the time of
|
||||
withdrawal and fixed throughout the validity period of the respective
|
||||
electronic coin. Your wallet should obtain and display applicable fees
|
||||
when withdrawing funds. Fees for coins obtained as change may differ
|
||||
from the fees applicable to the original coin. Wire transfer fees that
|
||||
are independent from electronic coins may change annually. You
|
||||
authorize us to charge or deduct applicable fees owed in connection
|
||||
with deposits, exchanges and withdrawals following the rules of the
|
||||
Taler protocol. We reserve the right to provide different types of
|
||||
rewards to users either in the form of discount for our Services or in
|
||||
any other form at our discretion and without prior notice to you.
|
||||
|
||||
|
||||
Eligibility and Financial self-responsibility
|
||||
=============================================
|
||||
|
||||
To be eligible to use our Services, you must be able to form legally
|
||||
binding contracts or have the permission of your legal guardian. By
|
||||
using our Services, you represent and warrant that you meet all
|
||||
eligibility requirements that we outline in these Terms.
|
||||
|
||||
You will be responsible for maintaining the availability, integrity
|
||||
and confidentiality of the data stored in your wallet. When you setup
|
||||
a Taler Wallet, you are strongly advised to follow the precautionary
|
||||
measures offered by the software to minimize the chances to losse
|
||||
access to or control over your Wallet data. We will not be liable for
|
||||
any loss or damage arising from your failure to comply with this
|
||||
paragraph.
|
||||
|
||||
|
||||
Copyrights and trademarks
|
||||
=========================
|
||||
|
||||
The Taler Wallet is released under the terms of the GNU General Public
|
||||
License (GNU GPL). You have the right to access, use, and share the
|
||||
Taler Wallet, in modified or unmodified form. However, the GPL is a
|
||||
strong copyleft license, which means that any derivative works must be
|
||||
distributed under the same license terms as the original software. If
|
||||
you have any questions, you should review the GNU GPL’s full terms and
|
||||
conditions at https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler”
|
||||
itself is a trademark of Taler Systems SA. You are welcome to use the
|
||||
name in relation to processing payments using the Taler protocol,
|
||||
assuming your use is compatible with an official release from the GNU
|
||||
Project that is not older than two years.
|
||||
|
||||
|
||||
Limitation of liability & disclaimer of warranties
|
||||
==================================================
|
||||
|
||||
You understand and agree that we have no control over, and no duty to
|
||||
take any action regarding: Failures, disruptions, errors, or delays in
|
||||
processing that you may experience while using our Services; The risk
|
||||
of failure of hardware, software, and Internet connections; The risk
|
||||
of malicious software being introduced or found in the software
|
||||
underlying the Taler Wallet; The risk that third parties may obtain
|
||||
unauthorized access to information stored within your Taler Wallet,
|
||||
including, but not limited to your Taler Wallet coins or backup
|
||||
encryption keys. You release us from all liability related to any
|
||||
losses, damages, or claims arising from:
|
||||
|
||||
1. user error such as forgotten passwords, incorrectly constructed
|
||||
transactions;
|
||||
|
||||
2. server failure or data loss;
|
||||
|
||||
3. unauthorized access to the Taler Wallet application;
|
||||
|
||||
4. bugs or other errors in the Taler Wallet software; and
|
||||
|
||||
5. any unauthorized third party activities, including, but not limited
|
||||
to, the use of viruses, phishing, brute forcing, or other means of
|
||||
attack against the Taler Wallet. We make no representations
|
||||
concerning any Third Party Content contained in or accessed through
|
||||
our Services.
|
||||
|
||||
Any other terms, conditions, warranties, or representations associated
|
||||
with such content, are solely between you and such organizations
|
||||
and/or individuals.
|
||||
|
||||
To the fullest extent permitted by applicable law, in no event will we
|
||||
or any of our officers, directors, representatives, agents, servants,
|
||||
counsel, employees, consultants, lawyers, and other personnel
|
||||
authorized to act, acting, or purporting to act on our behalf
|
||||
(collectively the “Taler Parties”) be liable to you under contract,
|
||||
tort, strict liability, negligence, or any other legal or equitable
|
||||
theory, for:
|
||||
|
||||
1. any lost profits, data loss, cost of procurement of substitute
|
||||
goods or services, or direct, indirect, incidental, special,
|
||||
punitive, compensatory, or consequential damages of any kind
|
||||
whatsoever resulting from:
|
||||
|
||||
1. your use of, or conduct in connection with, our services;
|
||||
|
||||
2. any unauthorized use of your wallet and/or private key due to
|
||||
your failure to maintain the confidentiality of your wallet;
|
||||
|
||||
3. any interruption or cessation of transmission to or from the
|
||||
services; or
|
||||
|
||||
4. any bugs, viruses, trojan horses, or the like that are found in
|
||||
the Taler Wallet software or that may be transmitted to or
|
||||
through our services by any third party (regardless of the
|
||||
source of origination), or
|
||||
|
||||
2. any direct damages.
|
||||
|
||||
These limitations apply regardless of legal theory, whether based on
|
||||
tort, strict liability, breach of contract, breach of warranty, or any
|
||||
other legal theory, and whether or not we were advised of the
|
||||
possibility of such damages. Some jurisdictions do not allow the
|
||||
exclusion or limitation of liability for consequential or incidental
|
||||
damages, so the above limitation may not apply to you.
|
||||
|
||||
Our services are provided "as is" and without warranty of any kind. To
|
||||
the maximum extent permitted by law, we disclaim all representations
|
||||
and warranties, express or implied, relating to the services and
|
||||
underlying software or any content on the services, whether provided
|
||||
or owned by us or by any third party, including without limitation,
|
||||
warranties of merchantability, fitness for a particular purpose,
|
||||
title, non-infringement, freedom from computer virus, and any implied
|
||||
warranties arising from course of dealing, course of performance, or
|
||||
usage in trade, all of which are expressly disclaimed. In addition, we
|
||||
do not represent or warrant that the content accessible via the
|
||||
services is accurate, complete, available, current, free of viruses or
|
||||
other harmful components, or that the results of using the services
|
||||
will meet your requirements. Some states do not allow the disclaimer
|
||||
of implied warranties, so the foregoing disclaimers may not apply to
|
||||
you. This paragraph gives you specific legal rights and you may also
|
||||
have other legal rights that vary from state to state.
|
||||
|
||||
|
||||
Indemnity and Time limitation on claims and Termination
|
||||
=======================================================
|
||||
|
||||
To the extent permitted by applicable law, you agree to defend,
|
||||
indemnify, and hold harmless the Taler Parties from and against any
|
||||
and all claims, damages, obligations, losses, liabilities, costs or
|
||||
debt, and expenses (including, but not limited to, attorney’s fees)
|
||||
arising from: (a) your use of and access to the Services; (b) any
|
||||
feedback or submissions you provide to us concerning the Taler Wallet;
|
||||
(c) your violation of any term of this Agreement; or (d) your
|
||||
violation of any law, rule, or regulation, or the rights of any third
|
||||
party.
|
||||
|
||||
You agree that any claim you may have arising out of or related to
|
||||
your relationship with us must be filed within one year after such
|
||||
claim arises, otherwise, your claim in permanently barred.
|
||||
|
||||
In the event of termination concerning your use of our Services, your
|
||||
obligations under this Agreement will still continue.
|
||||
|
||||
|
||||
Discontinuance of services and Force majeure
|
||||
============================================
|
||||
|
||||
We may, in our sole discretion and without cost to you, with or
|
||||
without prior notice, and at any time, modify or discontinue,
|
||||
temporarily or permanently, any portion of our Services. We will use
|
||||
the Taler protocol’s provisions to notify Wallets if our Services are
|
||||
to be discontinued. It is your responsibility to ensure that the Taler
|
||||
Wallet is online at least once every three months to observe these
|
||||
notifications. We shall not be held responsible or liable for any loss
|
||||
of funds in the event that we discontinue or depreciate the Services
|
||||
and your Taler Wallet fails to transfer out the coins within a three
|
||||
months notification period.
|
||||
|
||||
We shall not be held liable for any delays, failure in performance, or
|
||||
interruptions of service which result directly or indirectly from any
|
||||
cause or condition beyond our reasonable control, including but not
|
||||
limited to: any delay or failure due to any act of God, act of civil
|
||||
or military authorities, act of terrorism, civil disturbance, war,
|
||||
strike or other labor dispute, fire, interruption in
|
||||
telecommunications or Internet services or network provider services,
|
||||
failure of equipment and/or software, other catastrophe, or any other
|
||||
occurrence which is beyond our reasonable control and shall not affect
|
||||
the validity and enforceability of any remaining provisions.
|
||||
|
||||
|
||||
Governing law, Waivers, Severability and Assignment
|
||||
===================================================
|
||||
|
||||
No matter where you’re located, the laws of Switzerland will govern
|
||||
these Terms. If any provisions of these Terms are inconsistent with
|
||||
any applicable law, those provisions will be superseded or modified
|
||||
only to the extent such provisions are inconsistent. The parties agree
|
||||
to submit to the ordinary courts in Zurich, Switzerland for exclusive
|
||||
jurisdiction of any dispute arising out of or related to your use of
|
||||
the Services or your breach of these Terms.
|
||||
|
||||
Our failure to exercise or delay in exercising any right, power, or
|
||||
privilege under this Agreement shall not operate as a waiver; nor
|
||||
shall any single or partial exercise of any right, power, or privilege
|
||||
preclude any other or further exercise thereof.
|
||||
|
||||
You agree that we may assign any of our rights and/or transfer, sub-
|
||||
contract, or delegate any of our obligations under these Terms.
|
||||
|
||||
If it turns out that any part of this Agreement is invalid, void, or
|
||||
for any reason unenforceable, that term will be deemed severable and
|
||||
limited or eliminated to the minimum extent necessary.
|
||||
|
||||
This Agreement sets forth the entire understanding and agreement as to
|
||||
the subject matter hereof and supersedes any and all prior
|
||||
discussions, agreements, and understandings of any kind (including,
|
||||
without limitation, any prior versions of this Agreement) and every
|
||||
nature between us. Except as provided for above, any modification to
|
||||
this Agreement must be in writing and must be signed by both parties.
|
||||
|
||||
|
||||
Questions or comments
|
||||
=====================
|
||||
|
||||
We welcome comments, questions, concerns, or suggestions. Please send
|
||||
us a message on our contact page at legal@taler-systems.com.
|
BIN
contrib/tos/en/tos-v0.pdf
Normal file
BIN
contrib/tos/en/tos-v0.pdf
Normal file
Binary file not shown.
337
contrib/tos/en/tos-v0.txt
Normal file
337
contrib/tos/en/tos-v0.txt
Normal file
@ -0,0 +1,337 @@
|
||||
Terms Of Service
|
||||
****************
|
||||
|
||||
Last Updated: 12.4.2019
|
||||
|
||||
Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment
|
||||
service through our Internet presence (collectively the “Services”).
|
||||
Before using our Services, please read the Terms of Service (the
|
||||
“Terms” or the “Agreement”) carefully.
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
This section provides a brief summary of the highlights of this
|
||||
Agreement. Please note that when you accept this Agreement, you are
|
||||
accepting all of the terms and conditions and not just this section.
|
||||
We and possibly other third parties provide Internet services which
|
||||
interact with the Taler Wallet’s self-hosted personal payment
|
||||
application. When using the Taler Wallet to interact with our
|
||||
Services, you are agreeing to our Terms, so please read carefully.
|
||||
|
||||
|
||||
Highlights:
|
||||
-----------
|
||||
|
||||
* You are responsible for keeping the data in your Taler Wallet at
|
||||
all times under your control. Any losses arising from you not
|
||||
being in control of your private information are your problem.
|
||||
|
||||
* We will try to transfer funds we hold in escrow for our users to
|
||||
any legal recipient to the best of our ability within the
|
||||
limitations of the law and our implementation. However, the
|
||||
Services offered today are highly experimental and the set of
|
||||
recipients of funds is severely restricted.
|
||||
|
||||
* For our Services, we may charge transaction fees. The specific
|
||||
fee structure is provided based on the Taler protocol and should
|
||||
be shown to you when you withdraw electronic coins using a Taler
|
||||
Wallet. You agree and understand that the Taler protocol allows
|
||||
for the fee structure to change.
|
||||
|
||||
* You agree to not intentionally overwhelm our systems with
|
||||
requests and follow responsible disclosure if you find security
|
||||
issues in our services.
|
||||
|
||||
* We cannot be held accountable for our Services not being
|
||||
available due to circumstances beyond our control. If we modify
|
||||
or terminate our services, we will try to give you the
|
||||
opportunity to recover your funds. However, given the
|
||||
experimental state of the Services today, this may not be
|
||||
possible. You are strongly advised to limit your use of the
|
||||
Service to small-scale experiments expecting total loss of all
|
||||
funds.
|
||||
|
||||
These terms outline approved uses of our Services. The Services and
|
||||
these Terms are still at an experimental stage. If you have any
|
||||
questions or comments related to this Agreement, please send us a
|
||||
message to legal@taler-systems.com. If you do not agree to this
|
||||
Agreement, you must not use our Services.
|
||||
|
||||
|
||||
How you accept this policy
|
||||
==========================
|
||||
|
||||
By sending funds to us (to top-up your Taler Wallet), you acknowledge
|
||||
that you have read, understood, and agreed to these Terms. We reserve
|
||||
the right to change these Terms at any time. If you disagree with the
|
||||
change, we may in the future offer you with an easy option to recover
|
||||
your unspent funds. However, in the current experimental period you
|
||||
acknowledge that this feature is not yet available, resulting in your
|
||||
funds being lost unless you accept the new Terms. If you continue to
|
||||
use our Services other than to recover your unspent funds, your
|
||||
continued use of our Services following any such change will signify
|
||||
your acceptance to be bound by the then current Terms. Please check
|
||||
the effective date above to determine if there have been any changes
|
||||
since you have last reviewed these Terms.
|
||||
|
||||
|
||||
Services
|
||||
========
|
||||
|
||||
We will try to transfer funds that we hold in escrow for our users to
|
||||
any legal recipient to the best of our ability and within the
|
||||
limitations of the law and our implementation. However, the Services
|
||||
offered today are highly experimental and the set of recipients of
|
||||
funds is severely restricted. The Taler Wallet can be loaded by
|
||||
exchanging fiat currencies against electronic coins. We are providing
|
||||
this exchange service. Once your Taler Wallet is loaded with
|
||||
electronic coins they can be spent for purchases if the seller is
|
||||
accepting Taler as a means of payment. We are not guaranteeing that
|
||||
any seller is accepting Taler at all or a particular seller. The
|
||||
seller or recipient of deposits of electronic coins must specify the
|
||||
target account, as per the design of the Taler protocol. They are
|
||||
responsible for following the protocol and specifying the correct bank
|
||||
account, and are solely liable for any losses that may arise from
|
||||
specifying the wrong account. We will allow the government to link
|
||||
wire transfers to the underlying contract hash. It is the
|
||||
responsibility of recipients to preserve the full contracts and to pay
|
||||
whatever taxes and charges may be applicable. Technical issues may
|
||||
lead to situations where we are unable to make transfers at all or
|
||||
lead to incorrect transfers that cannot be reversed. We will only
|
||||
refuse to execute transfers if the transfers are prohibited by a
|
||||
competent legal authority and we are ordered to do so.
|
||||
|
||||
When using our Services, you agree to not take any action that
|
||||
intentionally imposes an unreasonable load on our infrastructure. If
|
||||
you find security problems in our Services, you agree to first report
|
||||
them to security@taler-systems.com and grant us the right to publish
|
||||
your report. We warrant that we will ourselves publicly disclose any
|
||||
issues reported within 3 months, and that we will not prosecute anyone
|
||||
reporting security issues if they did not exploit the issue beyond a
|
||||
proof-of-concept, and followed the above responsible disclosure
|
||||
practice.
|
||||
|
||||
|
||||
Fees
|
||||
====
|
||||
|
||||
You agree to pay the fees for exchanges and withdrawals completed via
|
||||
the Taler Wallet ("Fees") as defined by us, which we may change from
|
||||
time to time. With the exception of wire transfer fees, Taler
|
||||
transaction fees are set for any electronic coin at the time of
|
||||
withdrawal and fixed throughout the validity period of the respective
|
||||
electronic coin. Your wallet should obtain and display applicable fees
|
||||
when withdrawing funds. Fees for coins obtained as change may differ
|
||||
from the fees applicable to the original coin. Wire transfer fees that
|
||||
are independent from electronic coins may change annually. You
|
||||
authorize us to charge or deduct applicable fees owed in connection
|
||||
with deposits, exchanges and withdrawals following the rules of the
|
||||
Taler protocol. We reserve the right to provide different types of
|
||||
rewards to users either in the form of discount for our Services or in
|
||||
any other form at our discretion and without prior notice to you.
|
||||
|
||||
|
||||
Eligibility and Financial self-responsibility
|
||||
=============================================
|
||||
|
||||
To be eligible to use our Services, you must be able to form legally
|
||||
binding contracts or have the permission of your legal guardian. By
|
||||
using our Services, you represent and warrant that you meet all
|
||||
eligibility requirements that we outline in these Terms.
|
||||
|
||||
You will be responsible for maintaining the availability, integrity
|
||||
and confidentiality of the data stored in your wallet. When you setup
|
||||
a Taler Wallet, you are strongly advised to follow the precautionary
|
||||
measures offered by the software to minimize the chances to losse
|
||||
access to or control over your Wallet data. We will not be liable for
|
||||
any loss or damage arising from your failure to comply with this
|
||||
paragraph.
|
||||
|
||||
|
||||
Copyrights and trademarks
|
||||
=========================
|
||||
|
||||
The Taler Wallet is released under the terms of the GNU General Public
|
||||
License (GNU GPL). You have the right to access, use, and share the
|
||||
Taler Wallet, in modified or unmodified form. However, the GPL is a
|
||||
strong copyleft license, which means that any derivative works must be
|
||||
distributed under the same license terms as the original software. If
|
||||
you have any questions, you should review the GNU GPL’s full terms and
|
||||
conditions at https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler”
|
||||
itself is a trademark of Taler Systems SA. You are welcome to use the
|
||||
name in relation to processing payments using the Taler protocol,
|
||||
assuming your use is compatible with an official release from the GNU
|
||||
Project that is not older than two years.
|
||||
|
||||
|
||||
Limitation of liability & disclaimer of warranties
|
||||
==================================================
|
||||
|
||||
You understand and agree that we have no control over, and no duty to
|
||||
take any action regarding: Failures, disruptions, errors, or delays in
|
||||
processing that you may experience while using our Services; The risk
|
||||
of failure of hardware, software, and Internet connections; The risk
|
||||
of malicious software being introduced or found in the software
|
||||
underlying the Taler Wallet; The risk that third parties may obtain
|
||||
unauthorized access to information stored within your Taler Wallet,
|
||||
including, but not limited to your Taler Wallet coins or backup
|
||||
encryption keys. You release us from all liability related to any
|
||||
losses, damages, or claims arising from:
|
||||
|
||||
1. user error such as forgotten passwords, incorrectly constructed
|
||||
transactions;
|
||||
|
||||
2. server failure or data loss;
|
||||
|
||||
3. unauthorized access to the Taler Wallet application;
|
||||
|
||||
4. bugs or other errors in the Taler Wallet software; and
|
||||
|
||||
5. any unauthorized third party activities, including, but not limited
|
||||
to, the use of viruses, phishing, brute forcing, or other means of
|
||||
attack against the Taler Wallet. We make no representations
|
||||
concerning any Third Party Content contained in or accessed through
|
||||
our Services.
|
||||
|
||||
Any other terms, conditions, warranties, or representations associated
|
||||
with such content, are solely between you and such organizations
|
||||
and/or individuals.
|
||||
|
||||
To the fullest extent permitted by applicable law, in no event will we
|
||||
or any of our officers, directors, representatives, agents, servants,
|
||||
counsel, employees, consultants, lawyers, and other personnel
|
||||
authorized to act, acting, or purporting to act on our behalf
|
||||
(collectively the “Taler Parties”) be liable to you under contract,
|
||||
tort, strict liability, negligence, or any other legal or equitable
|
||||
theory, for:
|
||||
|
||||
1. any lost profits, data loss, cost of procurement of substitute
|
||||
goods or services, or direct, indirect, incidental, special,
|
||||
punitive, compensatory, or consequential damages of any kind
|
||||
whatsoever resulting from:
|
||||
|
||||
1. your use of, or conduct in connection with, our services;
|
||||
|
||||
2. any unauthorized use of your wallet and/or private key due to
|
||||
your failure to maintain the confidentiality of your wallet;
|
||||
|
||||
3. any interruption or cessation of transmission to or from the
|
||||
services; or
|
||||
|
||||
4. any bugs, viruses, trojan horses, or the like that are found in
|
||||
the Taler Wallet software or that may be transmitted to or
|
||||
through our services by any third party (regardless of the
|
||||
source of origination), or
|
||||
|
||||
2. any direct damages.
|
||||
|
||||
These limitations apply regardless of legal theory, whether based on
|
||||
tort, strict liability, breach of contract, breach of warranty, or any
|
||||
other legal theory, and whether or not we were advised of the
|
||||
possibility of such damages. Some jurisdictions do not allow the
|
||||
exclusion or limitation of liability for consequential or incidental
|
||||
damages, so the above limitation may not apply to you.
|
||||
|
||||
Our services are provided "as is" and without warranty of any kind. To
|
||||
the maximum extent permitted by law, we disclaim all representations
|
||||
and warranties, express or implied, relating to the services and
|
||||
underlying software or any content on the services, whether provided
|
||||
or owned by us or by any third party, including without limitation,
|
||||
warranties of merchantability, fitness for a particular purpose,
|
||||
title, non-infringement, freedom from computer virus, and any implied
|
||||
warranties arising from course of dealing, course of performance, or
|
||||
usage in trade, all of which are expressly disclaimed. In addition, we
|
||||
do not represent or warrant that the content accessible via the
|
||||
services is accurate, complete, available, current, free of viruses or
|
||||
other harmful components, or that the results of using the services
|
||||
will meet your requirements. Some states do not allow the disclaimer
|
||||
of implied warranties, so the foregoing disclaimers may not apply to
|
||||
you. This paragraph gives you specific legal rights and you may also
|
||||
have other legal rights that vary from state to state.
|
||||
|
||||
|
||||
Indemnity and Time limitation on claims and Termination
|
||||
=======================================================
|
||||
|
||||
To the extent permitted by applicable law, you agree to defend,
|
||||
indemnify, and hold harmless the Taler Parties from and against any
|
||||
and all claims, damages, obligations, losses, liabilities, costs or
|
||||
debt, and expenses (including, but not limited to, attorney’s fees)
|
||||
arising from: (a) your use of and access to the Services; (b) any
|
||||
feedback or submissions you provide to us concerning the Taler Wallet;
|
||||
(c) your violation of any term of this Agreement; or (d) your
|
||||
violation of any law, rule, or regulation, or the rights of any third
|
||||
party.
|
||||
|
||||
You agree that any claim you may have arising out of or related to
|
||||
your relationship with us must be filed within one year after such
|
||||
claim arises, otherwise, your claim in permanently barred.
|
||||
|
||||
In the event of termination concerning your use of our Services, your
|
||||
obligations under this Agreement will still continue.
|
||||
|
||||
|
||||
Discontinuance of services and Force majeure
|
||||
============================================
|
||||
|
||||
We may, in our sole discretion and without cost to you, with or
|
||||
without prior notice, and at any time, modify or discontinue,
|
||||
temporarily or permanently, any portion of our Services. We will use
|
||||
the Taler protocol’s provisions to notify Wallets if our Services are
|
||||
to be discontinued. It is your responsibility to ensure that the Taler
|
||||
Wallet is online at least once every three months to observe these
|
||||
notifications. We shall not be held responsible or liable for any loss
|
||||
of funds in the event that we discontinue or depreciate the Services
|
||||
and your Taler Wallet fails to transfer out the coins within a three
|
||||
months notification period.
|
||||
|
||||
We shall not be held liable for any delays, failure in performance, or
|
||||
interruptions of service which result directly or indirectly from any
|
||||
cause or condition beyond our reasonable control, including but not
|
||||
limited to: any delay or failure due to any act of God, act of civil
|
||||
or military authorities, act of terrorism, civil disturbance, war,
|
||||
strike or other labor dispute, fire, interruption in
|
||||
telecommunications or Internet services or network provider services,
|
||||
failure of equipment and/or software, other catastrophe, or any other
|
||||
occurrence which is beyond our reasonable control and shall not affect
|
||||
the validity and enforceability of any remaining provisions.
|
||||
|
||||
|
||||
Governing law, Waivers, Severability and Assignment
|
||||
===================================================
|
||||
|
||||
No matter where you’re located, the laws of Switzerland will govern
|
||||
these Terms. If any provisions of these Terms are inconsistent with
|
||||
any applicable law, those provisions will be superseded or modified
|
||||
only to the extent such provisions are inconsistent. The parties agree
|
||||
to submit to the ordinary courts in Zurich, Switzerland for exclusive
|
||||
jurisdiction of any dispute arising out of or related to your use of
|
||||
the Services or your breach of these Terms.
|
||||
|
||||
Our failure to exercise or delay in exercising any right, power, or
|
||||
privilege under this Agreement shall not operate as a waiver; nor
|
||||
shall any single or partial exercise of any right, power, or privilege
|
||||
preclude any other or further exercise thereof.
|
||||
|
||||
You agree that we may assign any of our rights and/or transfer, sub-
|
||||
contract, or delegate any of our obligations under these Terms.
|
||||
|
||||
If it turns out that any part of this Agreement is invalid, void, or
|
||||
for any reason unenforceable, that term will be deemed severable and
|
||||
limited or eliminated to the minimum extent necessary.
|
||||
|
||||
This Agreement sets forth the entire understanding and agreement as to
|
||||
the subject matter hereof and supersedes any and all prior
|
||||
discussions, agreements, and understandings of any kind (including,
|
||||
without limitation, any prior versions of this Agreement) and every
|
||||
nature between us. Except as provided for above, any modification to
|
||||
this Agreement must be in writing and must be signed by both parties.
|
||||
|
||||
|
||||
Questions or comments
|
||||
=====================
|
||||
|
||||
We welcome comments, questions, concerns, or suggestions. Please send
|
||||
us a message on our contact page at legal@taler-systems.com.
|
311
contrib/tos/en/tos-v0.xml
Normal file
311
contrib/tos/en/tos-v0.xml
Normal file
@ -0,0 +1,311 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE document PUBLIC "+//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML" "http://docutils.sourceforge.net/docs/ref/docutils.dtd">
|
||||
<!-- Generated by Docutils 0.16 -->
|
||||
<document source="/research/taler/exchange/contrib/tos/tos-v0.rst">
|
||||
<section ids="terms-of-service" names="terms\ of\ service">
|
||||
<title>Terms Of Service</title>
|
||||
<paragraph>Last Updated: 12.4.2019</paragraph>
|
||||
<paragraph>Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment service
|
||||
through our Internet presence (collectively the “Services”). Before using our
|
||||
Services, please read the Terms of Service (the “Terms” or the “Agreement”)
|
||||
carefully.</paragraph>
|
||||
<section ids="overview" names="overview">
|
||||
<title>Overview</title>
|
||||
<paragraph>This section provides a brief summary of the highlights of this
|
||||
Agreement. Please note that when you accept this Agreement, you are accepting
|
||||
all of the terms and conditions and not just this section. We and possibly
|
||||
other third parties provide Internet services which interact with the Taler
|
||||
Wallet’s self-hosted personal payment application. When using the Taler Wallet
|
||||
to interact with our Services, you are agreeing to our Terms, so please read
|
||||
carefully.</paragraph>
|
||||
<section ids="highlights" names="highlights:">
|
||||
<title>Highlights:</title>
|
||||
<block_quote>
|
||||
<bullet_list bullet="•">
|
||||
<list_item>
|
||||
<paragraph>You are responsible for keeping the data in your Taler Wallet at all times
|
||||
under your control. Any losses arising from you not being in control of
|
||||
your private information are your problem.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>We will try to transfer funds we hold in escrow for our users to any legal
|
||||
recipient to the best of our ability within the limitations of the law and
|
||||
our implementation. However, the Services offered today are highly
|
||||
experimental and the set of recipients of funds is severely restricted.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>For our Services, we may charge transaction fees. The specific fee structure
|
||||
is provided based on the Taler protocol and should be shown to you when you
|
||||
withdraw electronic coins using a Taler Wallet. You agree and understand
|
||||
that the Taler protocol allows for the fee structure to change.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>You agree to not intentionally overwhelm our systems with requests and
|
||||
follow responsible disclosure if you find security issues in our services.</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>We cannot be held accountable for our Services not being available due to
|
||||
circumstances beyond our control. If we modify or terminate our services,
|
||||
we will try to give you the opportunity to recover your funds. However,
|
||||
given the experimental state of the Services today, this may not be
|
||||
possible. You are strongly advised to limit your use of the Service
|
||||
to small-scale experiments expecting total loss of all funds.</paragraph>
|
||||
</list_item>
|
||||
</bullet_list>
|
||||
</block_quote>
|
||||
<paragraph>These terms outline approved uses of our Services. The Services and these
|
||||
Terms are still at an experimental stage. If you have any questions or
|
||||
comments related to this Agreement, please send us a message to
|
||||
<reference refuri="mailto:legal@taler-systems.com">legal@taler-systems.com</reference>. If you do not agree to this Agreement, you must not
|
||||
use our Services.</paragraph>
|
||||
</section>
|
||||
</section>
|
||||
<section ids="how-you-accept-this-policy" names="how\ you\ accept\ this\ policy">
|
||||
<title>How you accept this policy</title>
|
||||
<paragraph>By sending funds to us (to top-up your Taler Wallet), you acknowledge that you
|
||||
have read, understood, and agreed to these Terms. We reserve the right to
|
||||
change these Terms at any time. If you disagree with the change, we may in the
|
||||
future offer you with an easy option to recover your unspent funds. However,
|
||||
in the current experimental period you acknowledge that this feature is not
|
||||
yet available, resulting in your funds being lost unless you accept the new
|
||||
Terms. If you continue to use our Services other than to recover your unspent
|
||||
funds, your continued use of our Services following any such change will
|
||||
signify your acceptance to be bound by the then current Terms. Please check
|
||||
the effective date above to determine if there have been any changes since you
|
||||
have last reviewed these Terms.</paragraph>
|
||||
</section>
|
||||
<section ids="services" names="services">
|
||||
<title>Services</title>
|
||||
<paragraph>We will try to transfer funds that we hold in escrow for our users to any
|
||||
legal recipient to the best of our ability and within the limitations of the
|
||||
law and our implementation. However, the Services offered today are highly
|
||||
experimental and the set of recipients of funds is severely restricted. The
|
||||
Taler Wallet can be loaded by exchanging fiat currencies against electronic
|
||||
coins. We are providing this exchange service. Once your Taler Wallet is
|
||||
loaded with electronic coins they can be spent for purchases if the seller is
|
||||
accepting Taler as a means of payment. We are not guaranteeing that any seller
|
||||
is accepting Taler at all or a particular seller. The seller or recipient of
|
||||
deposits of electronic coins must specify the target account, as per the
|
||||
design of the Taler protocol. They are responsible for following the protocol
|
||||
and specifying the correct bank account, and are solely liable for any losses
|
||||
that may arise from specifying the wrong account. We will allow the government
|
||||
to link wire transfers to the underlying contract hash. It is the
|
||||
responsibility of recipients to preserve the full contracts and to pay
|
||||
whatever taxes and charges may be applicable. Technical issues may lead to
|
||||
situations where we are unable to make transfers at all or lead to incorrect
|
||||
transfers that cannot be reversed. We will only refuse to execute transfers if
|
||||
the transfers are prohibited by a competent legal authority and we are ordered
|
||||
to do so.</paragraph>
|
||||
<paragraph>When using our Services, you agree to not take any action that intentionally
|
||||
imposes an unreasonable load on our infrastructure. If you find security
|
||||
problems in our Services, you agree to first report them to
|
||||
<reference refuri="mailto:security@taler-systems.com">security@taler-systems.com</reference> and grant us the right to publish your report. We
|
||||
warrant that we will ourselves publicly disclose any issues reported within 3
|
||||
months, and that we will not prosecute anyone reporting security issues if
|
||||
they did not exploit the issue beyond a proof-of-concept, and followed the
|
||||
above responsible disclosure practice.</paragraph>
|
||||
</section>
|
||||
<section ids="fees" names="fees">
|
||||
<title>Fees</title>
|
||||
<paragraph>You agree to pay the fees for exchanges and withdrawals completed via the
|
||||
Taler Wallet (“Fees”) as defined by us, which we may change from time to
|
||||
time. With the exception of wire transfer fees, Taler transaction fees are set
|
||||
for any electronic coin at the time of withdrawal and fixed throughout the
|
||||
validity period of the respective electronic coin. Your wallet should obtain
|
||||
and display applicable fees when withdrawing funds. Fees for coins obtained as
|
||||
change may differ from the fees applicable to the original coin. Wire transfer
|
||||
fees that are independent from electronic coins may change annually. You
|
||||
authorize us to charge or deduct applicable fees owed in connection with
|
||||
deposits, exchanges and withdrawals following the rules of the Taler protocol.
|
||||
We reserve the right to provide different types of rewards to users either in
|
||||
the form of discount for our Services or in any other form at our discretion
|
||||
and without prior notice to you.</paragraph>
|
||||
</section>
|
||||
<section ids="eligibility-and-financial-self-responsibility" names="eligibility\ and\ financial\ self-responsibility">
|
||||
<title>Eligibility and Financial self-responsibility</title>
|
||||
<paragraph>To be eligible to use our Services, you must be able to form legally binding
|
||||
contracts or have the permission of your legal guardian. By using our
|
||||
Services, you represent and warrant that you meet all eligibility requirements
|
||||
that we outline in these Terms.</paragraph>
|
||||
<paragraph>You will be responsible for maintaining the availability, integrity and
|
||||
confidentiality of the data stored in your wallet. When you setup a Taler
|
||||
Wallet, you are strongly advised to follow the precautionary measures offered
|
||||
by the software to minimize the chances to losse access to or control over
|
||||
your Wallet data. We will not be liable for any loss or damage arising from
|
||||
your failure to comply with this paragraph.</paragraph>
|
||||
</section>
|
||||
<section ids="copyrights-and-trademarks" names="copyrights\ and\ trademarks">
|
||||
<title>Copyrights and trademarks</title>
|
||||
<paragraph>The Taler Wallet is released under the terms of the GNU General Public License
|
||||
(GNU GPL). You have the right to access, use, and share the Taler Wallet, in
|
||||
modified or unmodified form. However, the GPL is a strong copyleft license,
|
||||
which means that any derivative works must be distributed under the same
|
||||
license terms as the original software. If you have any questions, you should
|
||||
review the GNU GPL’s full terms and conditions at
|
||||
<reference refuri="https://www.gnu.org/licenses/gpl-3.0.en.html">https://www.gnu.org/licenses/gpl-3.0.en.html</reference>. “Taler” itself is a trademark
|
||||
of Taler Systems SA. You are welcome to use the name in relation to processing
|
||||
payments using the Taler protocol, assuming your use is compatible with an
|
||||
official release from the GNU Project that is not older than two years.</paragraph>
|
||||
</section>
|
||||
<section ids="limitation-of-liability-disclaimer-of-warranties" names="limitation\ of\ liability\ &\ disclaimer\ of\ warranties">
|
||||
<title>Limitation of liability & disclaimer of warranties</title>
|
||||
<paragraph>You understand and agree that we have no control over, and no duty to take any
|
||||
action regarding: Failures, disruptions, errors, or delays in processing that
|
||||
you may experience while using our Services; The risk of failure of hardware,
|
||||
software, and Internet connections; The risk of malicious software being
|
||||
introduced or found in the software underlying the Taler Wallet; The risk that
|
||||
third parties may obtain unauthorized access to information stored within your
|
||||
Taler Wallet, including, but not limited to your Taler Wallet coins or backup
|
||||
encryption keys. You release us from all liability related to any losses,
|
||||
damages, or claims arising from:</paragraph>
|
||||
<enumerated_list enumtype="loweralpha" prefix="(" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>user error such as forgotten passwords, incorrectly constructed
|
||||
transactions;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>server failure or data loss;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>unauthorized access to the Taler Wallet application;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>bugs or other errors in the Taler Wallet software; and</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any unauthorized third party activities, including, but not limited to,
|
||||
the use of viruses, phishing, brute forcing, or other means of attack
|
||||
against the Taler Wallet. We make no representations concerning any
|
||||
Third Party Content contained in or accessed through our Services.</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
<paragraph>Any other terms, conditions, warranties, or representations associated with
|
||||
such content, are solely between you and such organizations and/or
|
||||
individuals.</paragraph>
|
||||
<paragraph>To the fullest extent permitted by applicable law, in no event will we or any
|
||||
of our officers, directors, representatives, agents, servants, counsel,
|
||||
employees, consultants, lawyers, and other personnel authorized to act,
|
||||
acting, or purporting to act on our behalf (collectively the “Taler Parties”)
|
||||
be liable to you under contract, tort, strict liability, negligence, or any
|
||||
other legal or equitable theory, for:</paragraph>
|
||||
<enumerated_list enumtype="loweralpha" prefix="(" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>any lost profits, data loss, cost of procurement of substitute goods or
|
||||
services, or direct, indirect, incidental, special, punitive, compensatory,
|
||||
or consequential damages of any kind whatsoever resulting from:</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
<block_quote>
|
||||
<enumerated_list enumtype="lowerroman" prefix="(" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>your use of, or conduct in connection with, our services;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any unauthorized use of your wallet and/or private key due to your
|
||||
failure to maintain the confidentiality of your wallet;</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any interruption or cessation of transmission to or from the services; or</paragraph>
|
||||
</list_item>
|
||||
<list_item>
|
||||
<paragraph>any bugs, viruses, trojan horses, or the like that are found in the Taler
|
||||
Wallet software or that may be transmitted to or through our services by
|
||||
any third party (regardless of the source of origination), or</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
</block_quote>
|
||||
<enumerated_list enumtype="loweralpha" prefix="(" start="2" suffix=")">
|
||||
<list_item>
|
||||
<paragraph>any direct damages.</paragraph>
|
||||
</list_item>
|
||||
</enumerated_list>
|
||||
<paragraph>These limitations apply regardless of legal theory, whether based on tort,
|
||||
strict liability, breach of contract, breach of warranty, or any other legal
|
||||
theory, and whether or not we were advised of the possibility of such
|
||||
damages. Some jurisdictions do not allow the exclusion or limitation of
|
||||
liability for consequential or incidental damages, so the above limitation may
|
||||
not apply to you.</paragraph>
|
||||
<paragraph>Our services are provided “as is” and without warranty of any kind. To the
|
||||
maximum extent permitted by law, we disclaim all representations and
|
||||
warranties, express or implied, relating to the services and underlying
|
||||
software or any content on the services, whether provided or owned by us or by
|
||||
any third party, including without limitation, warranties of merchantability,
|
||||
fitness for a particular purpose, title, non-infringement, freedom from
|
||||
computer virus, and any implied warranties arising from course of dealing,
|
||||
course of performance, or usage in trade, all of which are expressly
|
||||
disclaimed. In addition, we do not represent or warrant that the content
|
||||
accessible via the services is accurate, complete, available, current, free of
|
||||
viruses or other harmful components, or that the results of using the services
|
||||
will meet your requirements. Some states do not allow the disclaimer of
|
||||
implied warranties, so the foregoing disclaimers may not apply to you. This
|
||||
paragraph gives you specific legal rights and you may also have other legal
|
||||
rights that vary from state to state.</paragraph>
|
||||
</section>
|
||||
<section ids="indemnity-and-time-limitation-on-claims-and-termination" names="indemnity\ and\ time\ limitation\ on\ claims\ and\ termination">
|
||||
<title>Indemnity and Time limitation on claims and Termination</title>
|
||||
<paragraph>To the extent permitted by applicable law, you agree to defend, indemnify, and
|
||||
hold harmless the Taler Parties from and against any and all claims, damages,
|
||||
obligations, losses, liabilities, costs or debt, and expenses (including, but
|
||||
not limited to, attorney’s fees) arising from: (a) your use of and access to
|
||||
the Services; (b) any feedback or submissions you provide to us concerning the
|
||||
Taler Wallet; (c) your violation of any term of this Agreement; or (d) your
|
||||
violation of any law, rule, or regulation, or the rights of any third party.</paragraph>
|
||||
<paragraph>You agree that any claim you may have arising out of or related to your
|
||||
relationship with us must be filed within one year after such claim arises,
|
||||
otherwise, your claim in permanently barred.</paragraph>
|
||||
<paragraph>In the event of termination concerning your use of our Services, your
|
||||
obligations under this Agreement will still continue.</paragraph>
|
||||
</section>
|
||||
<section ids="discontinuance-of-services-and-force-majeure" names="discontinuance\ of\ services\ and\ force\ majeure">
|
||||
<title>Discontinuance of services and Force majeure</title>
|
||||
<paragraph>We may, in our sole discretion and without cost to you, with or without prior
|
||||
notice, and at any time, modify or discontinue, temporarily or permanently,
|
||||
any portion of our Services. We will use the Taler protocol’s provisions to
|
||||
notify Wallets if our Services are to be discontinued. It is your
|
||||
responsibility to ensure that the Taler Wallet is online at least once every
|
||||
three months to observe these notifications. We shall not be held responsible
|
||||
or liable for any loss of funds in the event that we discontinue or depreciate
|
||||
the Services and your Taler Wallet fails to transfer out the coins within a
|
||||
three months notification period.</paragraph>
|
||||
<paragraph>We shall not be held liable for any delays, failure in performance, or
|
||||
interruptions of service which result directly or indirectly from any cause or
|
||||
condition beyond our reasonable control, including but not limited to: any
|
||||
delay or failure due to any act of God, act of civil or military authorities,
|
||||
act of terrorism, civil disturbance, war, strike or other labor dispute, fire,
|
||||
interruption in telecommunications or Internet services or network provider
|
||||
services, failure of equipment and/or software, other catastrophe, or any
|
||||
other occurrence which is beyond our reasonable control and shall not affect
|
||||
the validity and enforceability of any remaining provisions.</paragraph>
|
||||
</section>
|
||||
<section ids="governing-law-waivers-severability-and-assignment" names="governing\ law,\ waivers,\ severability\ and\ assignment">
|
||||
<title>Governing law, Waivers, Severability and Assignment</title>
|
||||
<paragraph>No matter where you’re located, the laws of Switzerland will govern these
|
||||
Terms. If any provisions of these Terms are inconsistent with any applicable
|
||||
law, those provisions will be superseded or modified only to the extent such
|
||||
provisions are inconsistent. The parties agree to submit to the ordinary
|
||||
courts in Zurich, Switzerland for exclusive jurisdiction of any dispute
|
||||
arising out of or related to your use of the Services or your breach of these
|
||||
Terms.</paragraph>
|
||||
<paragraph>Our failure to exercise or delay in exercising any right, power, or privilege
|
||||
under this Agreement shall not operate as a waiver; nor shall any single or
|
||||
partial exercise of any right, power, or privilege preclude any other or
|
||||
further exercise thereof.</paragraph>
|
||||
<paragraph>You agree that we may assign any of our rights and/or transfer, sub-contract,
|
||||
or delegate any of our obligations under these Terms.</paragraph>
|
||||
<paragraph>If it turns out that any part of this Agreement is invalid, void, or for any
|
||||
reason unenforceable, that term will be deemed severable and limited or
|
||||
eliminated to the minimum extent necessary.</paragraph>
|
||||
<paragraph>This Agreement sets forth the entire understanding and agreement as to the
|
||||
subject matter hereof and supersedes any and all prior discussions,
|
||||
agreements, and understandings of any kind (including, without limitation, any
|
||||
prior versions of this Agreement) and every nature between us. Except as
|
||||
provided for above, any modification to this Agreement must be in writing and
|
||||
must be signed by both parties.</paragraph>
|
||||
</section>
|
||||
<section ids="questions-or-comments" names="questions\ or\ comments">
|
||||
<title>Questions or comments</title>
|
||||
<paragraph>We welcome comments, questions, concerns, or suggestions. Please send us a
|
||||
message on our contact page at <reference refuri="mailto:legal@taler-systems.com">legal@taler-systems.com</reference>.</paragraph>
|
||||
</section>
|
||||
</section>
|
||||
</document>
|
241
contrib/tos/locale/de/LC_MESSAGES/tos.po
Normal file
241
contrib/tos/locale/de/LC_MESSAGES/tos.po
Normal file
@ -0,0 +1,241 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2014-2020 Taler Systems SA (GPLv3+ or GFDL 1.3+)
|
||||
# This file is distributed under the same license as the tos package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: tos 0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-30 21:42+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ../../tos.rst:2
|
||||
msgid "Terms Of Service"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:4
|
||||
msgid "Last Updated: 12.4.2019"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:6
|
||||
msgid "Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment service through our Internet presence (collectively the “Services”). Before using our Services, please read the Terms of Service (the “Terms” or the “Agreement”) carefully."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:12
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:14
|
||||
msgid "This section provides a brief summary of the highlights of this Agreement. Please note that when you accept this Agreement, you are accepting all of the terms and conditions and not just this section. We and possibly other third parties provide Internet services which interact with the Taler Wallet’s self-hosted personal payment application. When using the Taler Wallet to interact with our Services, you are agreeing to our Terms, so please read carefully."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:23
|
||||
msgid "Highlights:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:25
|
||||
msgid "You are responsible for keeping the data in your Taler Wallet at all times under your control. Any losses arising from you not being in control of your private information are your problem."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:28
|
||||
msgid "We will try to transfer funds we hold in escrow for our users to any legal recipient to the best of our ability within the limitations of the law and our implementation. However, the Services offered today are highly experimental and the set of recipients of funds is severely restricted."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:32
|
||||
msgid "For our Services, we may charge transaction fees. The specific fee structure is provided based on the Taler protocol and should be shown to you when you withdraw electronic coins using a Taler Wallet. You agree and understand that the Taler protocol allows for the fee structure to change."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:36
|
||||
msgid "You agree to not intentionally overwhelm our systems with requests and follow responsible disclosure if you find security issues in our services."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:38
|
||||
msgid "We cannot be held accountable for our Services not being available due to circumstances beyond our control. If we modify or terminate our services, we will try to give you the opportunity to recover your funds. However, given the experimental state of the Services today, this may not be possible. You are strongly advised to limit your use of the Service to small-scale experiments expecting total loss of all funds."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:45
|
||||
msgid "These terms outline approved uses of our Services. The Services and these Terms are still at an experimental stage. If you have any questions or comments related to this Agreement, please send us a message to legal@taler-systems.com. If you do not agree to this Agreement, you must not use our Services."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:52
|
||||
msgid "How you accept this policy"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:54
|
||||
msgid "By sending funds to us (to top-up your Taler Wallet), you acknowledge that you have read, understood, and agreed to these Terms. We reserve the right to change these Terms at any time. If you disagree with the change, we may in the future offer you with an easy option to recover your unspent funds. However, in the current experimental period you acknowledge that this feature is not yet available, resulting in your funds being lost unless you accept the new Terms. If you continue to use our Services other than to recover your unspent funds, your continued use of our Services following any such change will signify your acceptance to be bound by the then current Terms. Please check the effective date above to determine if there have been any changes since you have last reviewed these Terms."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:67
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:69
|
||||
msgid "We will try to transfer funds that we hold in escrow for our users to any legal recipient to the best of our ability and within the limitations of the law and our implementation. However, the Services offered today are highly experimental and the set of recipients of funds is severely restricted. The Taler Wallet can be loaded by exchanging fiat currencies against electronic coins. We are providing this exchange service. Once your Taler Wallet is loaded with electronic coins they can be spent for purchases if the seller is accepting Taler as a means of payment. We are not guaranteeing that any seller is accepting Taler at all or a particular seller. The seller or recipient of deposits of electronic coins must specify the target account, as per the design of the Taler protocol. They are responsible for following the protocol and specifying the correct bank account, and are solely liable for any losses that may arise from specifying the wrong account. We will allow the government to link wire transfers to the underlying contract hash. It is the responsibility of recipients to preserve the full contracts and to pay whatever taxes and charges may be applicable. Technical issues may lead to situations where we are unable to make transfers at all or lead to incorrect transfers that cannot be reversed. We will only refuse to execute transfers if the transfers are prohibited by a competent legal authority and we are ordered to do so."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:90
|
||||
msgid "When using our Services, you agree to not take any action that intentionally imposes an unreasonable load on our infrastructure. If you find security problems in our Services, you agree to first report them to security@taler-systems.com and grant us the right to publish your report. We warrant that we will ourselves publicly disclose any issues reported within 3 months, and that we will not prosecute anyone reporting security issues if they did not exploit the issue beyond a proof-of-concept, and followed the above responsible disclosure practice."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:101
|
||||
msgid "Fees"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:103
|
||||
msgid "You agree to pay the fees for exchanges and withdrawals completed via the Taler Wallet (\"Fees\") as defined by us, which we may change from time to time. With the exception of wire transfer fees, Taler transaction fees are set for any electronic coin at the time of withdrawal and fixed throughout the validity period of the respective electronic coin. Your wallet should obtain and display applicable fees when withdrawing funds. Fees for coins obtained as change may differ from the fees applicable to the original coin. Wire transfer fees that are independent from electronic coins may change annually. You authorize us to charge or deduct applicable fees owed in connection with deposits, exchanges and withdrawals following the rules of the Taler protocol. We reserve the right to provide different types of rewards to users either in the form of discount for our Services or in any other form at our discretion and without prior notice to you."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:118
|
||||
msgid "Eligibility and Financial self-responsibility"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:120
|
||||
msgid "To be eligible to use our Services, you must be able to form legally binding contracts or have the permission of your legal guardian. By using our Services, you represent and warrant that you meet all eligibility requirements that we outline in these Terms."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:125
|
||||
msgid "You will be responsible for maintaining the availability, integrity and confidentiality of the data stored in your wallet. When you setup a Taler Wallet, you are strongly advised to follow the precautionary measures offered by the software to minimize the chances to losse access to or control over your Wallet data. We will not be liable for any loss or damage arising from your failure to comply with this paragraph."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:133
|
||||
msgid "Copyrights and trademarks"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:135
|
||||
msgid "The Taler Wallet is released under the terms of the GNU General Public License (GNU GPL). You have the right to access, use, and share the Taler Wallet, in modified or unmodified form. However, the GPL is a strong copyleft license, which means that any derivative works must be distributed under the same license terms as the original software. If you have any questions, you should review the GNU GPL’s full terms and conditions at https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler” itself is a trademark of Taler Systems SA. You are welcome to use the name in relation to processing payments using the Taler protocol, assuming your use is compatible with an official release from the GNU Project that is not older than two years."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:148
|
||||
msgid "Limitation of liability & disclaimer of warranties"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:150
|
||||
msgid "You understand and agree that we have no control over, and no duty to take any action regarding: Failures, disruptions, errors, or delays in processing that you may experience while using our Services; The risk of failure of hardware, software, and Internet connections; The risk of malicious software being introduced or found in the software underlying the Taler Wallet; The risk that third parties may obtain unauthorized access to information stored within your Taler Wallet, including, but not limited to your Taler Wallet coins or backup encryption keys. You release us from all liability related to any losses, damages, or claims arising from:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:160
|
||||
msgid "user error such as forgotten passwords, incorrectly constructed transactions;"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:162
|
||||
msgid "server failure or data loss;"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:163
|
||||
msgid "unauthorized access to the Taler Wallet application;"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:164
|
||||
msgid "bugs or other errors in the Taler Wallet software; and"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:165
|
||||
msgid "any unauthorized third party activities, including, but not limited to, the use of viruses, phishing, brute forcing, or other means of attack against the Taler Wallet. We make no representations concerning any Third Party Content contained in or accessed through our Services."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:170
|
||||
msgid "Any other terms, conditions, warranties, or representations associated with such content, are solely between you and such organizations and/or individuals."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:174
|
||||
msgid "To the fullest extent permitted by applicable law, in no event will we or any of our officers, directors, representatives, agents, servants, counsel, employees, consultants, lawyers, and other personnel authorized to act, acting, or purporting to act on our behalf (collectively the “Taler Parties”) be liable to you under contract, tort, strict liability, negligence, or any other legal or equitable theory, for:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:181
|
||||
msgid "any lost profits, data loss, cost of procurement of substitute goods or services, or direct, indirect, incidental, special, punitive, compensatory, or consequential damages of any kind whatsoever resulting from:"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:185
|
||||
msgid "your use of, or conduct in connection with, our services;"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:186
|
||||
msgid "any unauthorized use of your wallet and/or private key due to your failure to maintain the confidentiality of your wallet;"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:188
|
||||
msgid "any interruption or cessation of transmission to or from the services; or"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:189
|
||||
msgid "any bugs, viruses, trojan horses, or the like that are found in the Taler Wallet software or that may be transmitted to or through our services by any third party (regardless of the source of origination), or"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:193
|
||||
msgid "any direct damages."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:195
|
||||
msgid "These limitations apply regardless of legal theory, whether based on tort, strict liability, breach of contract, breach of warranty, or any other legal theory, and whether or not we were advised of the possibility of such damages. Some jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, so the above limitation may not apply to you."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:202
|
||||
msgid "Our services are provided \"as is\" and without warranty of any kind. To the maximum extent permitted by law, we disclaim all representations and warranties, express or implied, relating to the services and underlying software or any content on the services, whether provided or owned by us or by any third party, including without limitation, warranties of merchantability, fitness for a particular purpose, title, non-infringement, freedom from computer virus, and any implied warranties arising from course of dealing, course of performance, or usage in trade, all of which are expressly disclaimed. In addition, we do not represent or warrant that the content accessible via the services is accurate, complete, available, current, free of viruses or other harmful components, or that the results of using the services will meet your requirements. Some states do not allow the disclaimer of implied warranties, so the foregoing disclaimers may not apply to you. This paragraph gives you specific legal rights and you may also have other legal rights that vary from state to state."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:219
|
||||
msgid "Indemnity and Time limitation on claims and Termination"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:221
|
||||
msgid "To the extent permitted by applicable law, you agree to defend, indemnify, and hold harmless the Taler Parties from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, and expenses (including, but not limited to, attorney’s fees) arising from: (a) your use of and access to the Services; (b) any feedback or submissions you provide to us concerning the Taler Wallet; (c) your violation of any term of this Agreement; or (d) your violation of any law, rule, or regulation, or the rights of any third party."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:229
|
||||
msgid "You agree that any claim you may have arising out of or related to your relationship with us must be filed within one year after such claim arises, otherwise, your claim in permanently barred."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:233
|
||||
msgid "In the event of termination concerning your use of our Services, your obligations under this Agreement will still continue."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:238
|
||||
msgid "Discontinuance of services and Force majeure"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:240
|
||||
msgid "We may, in our sole discretion and without cost to you, with or without prior notice, and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. We will use the Taler protocol’s provisions to notify Wallets if our Services are to be discontinued. It is your responsibility to ensure that the Taler Wallet is online at least once every three months to observe these notifications. We shall not be held responsible or liable for any loss of funds in the event that we discontinue or depreciate the Services and your Taler Wallet fails to transfer out the coins within a three months notification period."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:250
|
||||
msgid "We shall not be held liable for any delays, failure in performance, or interruptions of service which result directly or indirectly from any cause or condition beyond our reasonable control, including but not limited to: any delay or failure due to any act of God, act of civil or military authorities, act of terrorism, civil disturbance, war, strike or other labor dispute, fire, interruption in telecommunications or Internet services or network provider services, failure of equipment and/or software, other catastrophe, or any other occurrence which is beyond our reasonable control and shall not affect the validity and enforceability of any remaining provisions."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:262
|
||||
msgid "Governing law, Waivers, Severability and Assignment"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:264
|
||||
msgid "No matter where you’re located, the laws of Switzerland will govern these Terms. If any provisions of these Terms are inconsistent with any applicable law, those provisions will be superseded or modified only to the extent such provisions are inconsistent. The parties agree to submit to the ordinary courts in Zurich, Switzerland for exclusive jurisdiction of any dispute arising out of or related to your use of the Services or your breach of these Terms."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:272
|
||||
msgid "Our failure to exercise or delay in exercising any right, power, or privilege under this Agreement shall not operate as a waiver; nor shall any single or partial exercise of any right, power, or privilege preclude any other or further exercise thereof."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:277
|
||||
msgid "You agree that we may assign any of our rights and/or transfer, sub-contract, or delegate any of our obligations under these Terms."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:280
|
||||
msgid "If it turns out that any part of this Agreement is invalid, void, or for any reason unenforceable, that term will be deemed severable and limited or eliminated to the minimum extent necessary."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:284
|
||||
msgid "This Agreement sets forth the entire understanding and agreement as to the subject matter hereof and supersedes any and all prior discussions, agreements, and understandings of any kind (including, without limitation, any prior versions of this Agreement) and every nature between us. Except as provided for above, any modification to this Agreement must be in writing and must be signed by both parties."
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:293
|
||||
msgid "Questions or comments"
|
||||
msgstr ""
|
||||
|
||||
#: ../../tos.rst:295
|
||||
msgid "We welcome comments, questions, concerns, or suggestions. Please send us a message on our contact page at legal@taler-systems.com."
|
||||
msgstr ""
|
@ -4,7 +4,7 @@
|
||||
exec 1>&2
|
||||
|
||||
RET=0
|
||||
changed=$(git diff --cached --name-only | grep -v mustach | grep -v templating/test./)
|
||||
changed=$(git diff --cached --name-only | grep -v mustach)
|
||||
crustified=""
|
||||
|
||||
for f in $changed;
|
||||
@ -28,7 +28,7 @@ done
|
||||
if [ $RET = 1 ];
|
||||
then
|
||||
echo "Run"
|
||||
echo "uncrustify --replace -c uncrustify.cfg ${crustified}"
|
||||
echo "uncrustify --no-backup -c uncrustify.cfg ${crustified}"
|
||||
echo "before committing."
|
||||
fi
|
||||
exit $RET
|
||||
|
3
debian/control
vendored
3
debian/control
vendored
@ -39,9 +39,6 @@ Depends:
|
||||
netbase,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Recommends:
|
||||
python3-sphinx,
|
||||
python3-sphinx-rtd-theme
|
||||
Description: Libraries to talk to a GNU Taler exchange.
|
||||
The package also contains various files fundamental
|
||||
to all GNU Taler installations, such as the
|
||||
|
@ -12,14 +12,6 @@
|
||||
# BASE_URL = https://example.com/
|
||||
# BASE_URL =
|
||||
|
||||
# Here you MUST configure the amount above which transactions are
|
||||
# always subject to manual AML review.
|
||||
# AML_THRESHOLD =
|
||||
|
||||
# Attribute encryption key for storing attributes encrypted
|
||||
# in the database. Should be a high-entropy nonce.
|
||||
ATTRIBUTE_ENCRYPTION_KEY = SET_ME_PLEASE
|
||||
|
||||
# For your terms of service and privacy policy, you should specify
|
||||
# an Etag that must be updated whenever there are significant
|
||||
# changes to either document. The format is up to you, what matters
|
||||
@ -34,17 +26,14 @@ UNIXPATH_MODE = 666
|
||||
# Bank accounts used by the exchange should be specified here:
|
||||
[exchange-account-1]
|
||||
|
||||
ENABLE_CREDIT = NO
|
||||
ENABLE_DEBIT = NO
|
||||
enable_credit = no
|
||||
enable_debit = no
|
||||
|
||||
# Account identifier in the form of an RFC-8905 payto:// URI.
|
||||
# For SEPA, looks like payto://sepa/$IBAN?receiver-name=$NAME
|
||||
# Make sure to URL-encode spaces in $NAME!
|
||||
PAYTO_URI =
|
||||
payto_uri =
|
||||
|
||||
# Credentials to access the account are in a separate
|
||||
# config file with restricted permissions.
|
||||
@inline-secret@ exchange-accountcredentials-1 ../secrets/exchange-accountcredentials-1.secret.conf
|
||||
|
||||
|
||||
|
||||
|
@ -8,6 +8,3 @@
|
||||
|
||||
# Only supported database is Postgres right now.
|
||||
DATABASE = postgres
|
||||
|
||||
|
||||
|
||||
|
12
debian/libtalerexchange-dev.install
vendored
12
debian/libtalerexchange-dev.install
vendored
@ -1,22 +1,17 @@
|
||||
# Benchmarks, only install them for the dev package.
|
||||
usr/bin/taler-aggregator-benchmark
|
||||
usr/bin/taler-bank-benchmark
|
||||
usr/bin/taler-exchange-benchmark
|
||||
usr/bin/taler-exchange-kyc-tester
|
||||
usr/bin/taler-fakebank-run
|
||||
usr/bin/taler-unified-setup.sh
|
||||
usr/bin/taler-bank-benchmark
|
||||
usr/bin/taler-exchange-kyc-tester
|
||||
|
||||
# Only used in test cases. Maybe these
|
||||
# shouldn't even be installed?
|
||||
usr/bin/taler-bank-manage-testing
|
||||
usr/bin/taler-nexus-prepare
|
||||
usr/bin/taler-bank-manage-testing
|
||||
|
||||
# Man pages
|
||||
usr/share/man/man1/taler-exchange-kyc-tester*
|
||||
usr/share/man/man1/taler-aggregator-benchmark*
|
||||
usr/share/man/man1/taler-bank-benchmark*
|
||||
usr/share/man/man1/taler-exchange-benchmark*
|
||||
usr/share/man/man1/taler-unified-setup*
|
||||
|
||||
|
||||
# Headers
|
||||
@ -32,4 +27,5 @@ usr/lib/*/libtalertesting.so
|
||||
usr/lib/*/libtalerfakebank.so
|
||||
|
||||
# Documentation
|
||||
usr/share/man/man1/taler-exchange-benchmark*
|
||||
usr/share/info/taler-developer-manual*
|
||||
|
1
debian/libtalerexchange.install
vendored
1
debian/libtalerexchange.install
vendored
@ -5,6 +5,5 @@ usr/share/taler/config.d/paths.conf
|
||||
usr/share/taler/config.d/taler.conf
|
||||
debian/etc-libtalerexchange/* etc/
|
||||
usr/bin/taler-config
|
||||
usr/bin/taler-terms-generator.sh
|
||||
usr/share/man/man5/taler.conf.5
|
||||
usr/share/man/man1/taler-config*
|
||||
|
6
debian/taler-exchange.install
vendored
6
debian/taler-exchange.install
vendored
@ -35,7 +35,5 @@ usr/share/taler/exchange/templates/*.must
|
||||
# configuration files in /etc/taler
|
||||
debian/etc-taler-exchange/* etc/
|
||||
|
||||
# Terms of service / privacy policy templates
|
||||
usr/share/taler/exchange/*.rst
|
||||
# Translations of ToS/PP
|
||||
usr/share/taler/exchange/locale/*/LC_MESSAGES/*.po
|
||||
usr/share/taler/exchange/pp/*/*
|
||||
usr/share/taler/exchange/tos/*/*
|
||||
|
@ -9,7 +9,6 @@ infoimagedir = $(infodir)/images
|
||||
man_MANS = \
|
||||
prebuilt/man/taler.conf.5 \
|
||||
prebuilt/man/taler-config.1 \
|
||||
prebuilt/man/taler-aggregator-benchmark.1 \
|
||||
prebuilt/man/taler-auditor.1 \
|
||||
prebuilt/man/taler-auditor-dbinit.1 \
|
||||
prebuilt/man/taler-auditor-exchange.1 \
|
||||
@ -17,7 +16,6 @@ man_MANS = \
|
||||
prebuilt/man/taler-auditor-offline.1 \
|
||||
prebuilt/man/taler-auditor-sign.1 \
|
||||
prebuilt/man/taler-auditor-sync.1 \
|
||||
prebuilt/man/taler-bank-benchmark.1 \
|
||||
prebuilt/man/taler-bank-transfer.1 \
|
||||
prebuilt/man/taler-exchange-aggregator.1 \
|
||||
prebuilt/man/taler-exchange-benchmark.1 \
|
||||
@ -26,7 +24,6 @@ man_MANS = \
|
||||
prebuilt/man/taler-exchange-drain.1 \
|
||||
prebuilt/man/taler-exchange-expire.1 \
|
||||
prebuilt/man/taler-exchange-httpd.1 \
|
||||
prebuilt/man/taler-exchange-kyc-aml-pep-trigger.1 \
|
||||
prebuilt/man/taler-exchange-kyc-tester.1 \
|
||||
prebuilt/man/taler-exchange-offline.1 \
|
||||
prebuilt/man/taler-exchange-router.1\
|
||||
@ -41,9 +38,7 @@ man_MANS = \
|
||||
prebuilt/man/taler-helper-auditor-deposits.1\
|
||||
prebuilt/man/taler-helper-auditor-purses.1\
|
||||
prebuilt/man/taler-helper-auditor-reserves.1\
|
||||
prebuilt/man/taler-helper-auditor-wire.1 \
|
||||
prebuilt/man/taler-terms-generator.1 \
|
||||
prebuilt/man/taler-unified-setup.1
|
||||
prebuilt/man/taler-helper-auditor-wire.1
|
||||
|
||||
info_TEXINFOS = \
|
||||
prebuilt/texinfo/taler-auditor.texi \
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
all:
|
||||
pdflatex main.tex
|
||||
pdflatex main.tex
|
@ -1,39 +0,0 @@
|
||||
\section{Fees per coin} \label{sec:fees:coin}
|
||||
|
||||
Payments with Taler are always made using coins. Each coin has a specific
|
||||
denomination, and an exchange will issue coins in different denominations (in
|
||||
the same currency). The fees per coin depend on the operation and the
|
||||
denomination.
|
||||
|
||||
The primary fee to be paid is a {\bf deposit} fee that is
|
||||
charged whenever a coin is fully or partially deposited
|
||||
into a bank account or another wallet.
|
||||
|
||||
A secondary fee to be paid is a {\bf change} fee that is
|
||||
charged whenever a coin partially spent and change must
|
||||
be rendered.
|
||||
|
||||
Coins also have an {\bf expiration} date of approximately {\bf one year}.
|
||||
After the expiration date, coins become worthless. Wallets that are online
|
||||
{\bf three months} {\em before} a coin expires will automatically trade any
|
||||
such coins for one or more fresh coins with a later expiration date. This
|
||||
process is also subject to the {\bf change} fee.
|
||||
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Fees per coin. Coin denomination values are given in units of CHF 0.01.}
|
||||
\label{table:fees:coins}
|
||||
\begin{center}
|
||||
\begin{tabular}{l|c|r}
|
||||
{\bf Denomination} & {\bf Fee type} & {\bf Amount} \\ \hline \hline
|
||||
$2^{-4}-2^{ 0}$ & deposit & {\em CHF 0.00125} \\
|
||||
$2^{-4}-2^{ 0}$ & change & {\em CHF 0.00125} \\
|
||||
$2^{ 0}-2^{ 3}$ & deposit & {\em CHF 0.00250} \\
|
||||
$2^{ 0}-2^{ 3}$ & change & {\em CHF 0.00125} \\
|
||||
$2^{ 4}-2^{ 8}$ & deposit & {\em CHF 0.005} \\
|
||||
$2^{ 4}-2^{ 8}$ & change & {\em CHF 0.00125} \\
|
||||
$2^{ 8}-2^{12}$ & deposit & {\em CHF 0.01} \\
|
||||
$2^{ 8}-2^{12}$ & change & {\em CHF 0.00125} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\end{table}
|
@ -1,30 +0,0 @@
|
||||
\section{Fees per wire} \label{sec:fees:wire}
|
||||
|
||||
Wire fees apply whenever an exchange needs to initiate a wire transfer to
|
||||
another bank account. Wire fees do not apply to every individual payment to a
|
||||
merchant, as merchants can choose to {\em aggregate} multiple micropayments
|
||||
into one large payment on the wire. Wire fees also do not apply to
|
||||
wallet-to-wallet payments within the Taler system.
|
||||
|
||||
A {\bf wire} fee is applied when a merchant receives
|
||||
an aggregated payment into their bank account.
|
||||
|
||||
A {\bf closing} fee is applied when a wallet fails to
|
||||
withdraw coins and money has to be sent back to the
|
||||
originating bank account.
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Table with wire fees. Wire fees are set annually.}
|
||||
\label{table:fees:wire}
|
||||
\begin{center}
|
||||
\begin{tabular}{l|c|r}
|
||||
{\bf Year} & {\bf Fee type} & {\bf Amount} \\ \hline \hline
|
||||
2023 & wire & {\em CHF 0.05} \\
|
||||
2023 & closing & {\em CHF 0.10} \\
|
||||
2024 & wire & {\em CHF 0.05} \\
|
||||
2024 & closing & {\em CHF 0.10} \\
|
||||
2025 & wire & {\em CHF 0.05} \\
|
||||
2025 & closing & {\em CHF 0.10} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\end{table}
|
@ -1,52 +0,0 @@
|
||||
\section{Deposit} \label{sec:deposit}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer wallet \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{bank}{\shortstack{Retail bank \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] {Checking \\ Accounts};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
\begin{callself}{wallet}{Review deposit fees}{}
|
||||
\end{callself}
|
||||
\mess[0]{wallet}{Deposit {(Coins)}}{exchange}
|
||||
\begin{sdblock}{Acceptable account?}{}
|
||||
\mess[0]{exchange}{{Refuse deposit}}{wallet}
|
||||
\end{sdblock}
|
||||
\begin{sdblock}{KYC/AML required?}{}
|
||||
\begin{callself}{exchange}{Figures~\ref{fig:proc:kyc}, \ref{fig:proc:aml}}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
% \prelevel
|
||||
% \prelevel
|
||||
% \begin{sdblock}{User abort?}{}
|
||||
% \mess[0]{wallet}{{Request abort}}{exchange}
|
||||
% \mess[0]{exchange}{{Abort confirmation}}{wallet}
|
||||
% \end{sdblock}
|
||||
\mess[0]{exchange}{{Initiate transfer}}{bank}
|
||||
|
||||
\end{sequencediagram}
|
||||
\caption{A customer deposits the coins issued by a Taler exchange (payment
|
||||
service provider) into a bank account. Even if the
|
||||
bank account is owned by the same customer, the
|
||||
KYC checks from Section~\ref{sec:kyc:deposit} apply.}
|
||||
\label{fig:int:deposit}
|
||||
\end{figure}
|
||||
|
||||
We do {\bf not} permit the customer to regain control over their funds {\em
|
||||
unless} they pass the KYC/AML checks. The technical reason is simply that
|
||||
the KYC/AML checks happen {\em after} the aggregation logic and at this point
|
||||
refunds are no longer permitted. From a compliance perspective, this also
|
||||
prevents malicious customers from risk-free probing of the system.
|
@ -1,60 +0,0 @@
|
||||
\section{Pay} \label{sec:pay}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer wallet \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[1]{merchant}{\shortstack{Merchant \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[1]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[1]{bank}{\shortstack{Merchant bank \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] {Commercial \\ Accounts};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
\mess[0]{wallet}{Browse catalog}{merchant}
|
||||
\mess[0]{merchant}{Commercial offer}{wallet}
|
||||
\begin{callself}{wallet}{Review offer}{}
|
||||
\end{callself}
|
||||
\mess[0]{wallet}{Pay {(Coins)}}{merchant}
|
||||
\mess[0]{merchant}{Deposit {(Coins)}}{exchange}
|
||||
\begin{sdblock}{Acceptable account?}{}
|
||||
\mess[0]{exchange}{{Refuse deposit}}{merchant}
|
||||
\mess[0]{merchant}{{Refund purchase}}{wallet}
|
||||
\end{sdblock}
|
||||
\mess[0]{exchange}{{Confirm deposit}}{merchant}
|
||||
\mess[0]{merchant}{Fulfill order}{wallet}
|
||||
\begin{callself}{exchange}{Aggregate transactions}{}
|
||||
\end{callself}
|
||||
\begin{sdblock}{KYC/AML required?}{}
|
||||
\begin{callself}{exchange}{Figures~\ref{fig:proc:kyc}, \ref{fig:proc:aml}}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
\mess[0]{exchange}{{Initiate transfer}}{bank}
|
||||
\end{sequencediagram}
|
||||
\caption{Payments from a customer to merchant result in
|
||||
depositing coins at the Taler exchange (payment service provider)
|
||||
which then credits the merchant's bank account.
|
||||
The KYC/AML checks are described in Section~\ref{sec:kyc:deposit}}
|
||||
\label{fig:int:pay}
|
||||
\end{figure}
|
||||
|
||||
{\bf Internal note:} The exchange refusing a deposit immediately based on
|
||||
unaccaptable merchant accounts may not be fully implemented (this is a very
|
||||
recent feature, after all); especially the merchant then automatically
|
||||
refunding the purchase to the customer is certainly missing. However,
|
||||
the entire situation only arises when a merchant is incorrectly configured
|
||||
and in violation of the terms of service.
|
@ -1,56 +0,0 @@
|
||||
\section{Pull payment (aka invoicing)} \label{sec:pull}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{payer}{\shortstack{Payer \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] {Pre-funded \\ Wallet};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{payee}{\shortstack{Payee \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
\begin{callself}{payee}{Review pull payment fees}{}
|
||||
\end{callself}
|
||||
\mess[0]{payee}{{Create invoice (Wallet ID)}}{exchange}
|
||||
|
||||
\mess[0]{exchange}{{Invoice ready}}{payee}
|
||||
\mess[0]{payee}{{Send invoice (e.g. via QR code)}}{payer}
|
||||
|
||||
\begin{callself}{payer}{Review invoice}{}
|
||||
\end{callself}
|
||||
\mess[0]{payer}{{Make payment (Coins)}}{exchange}
|
||||
|
||||
\begin{sdblock}{Domestic wallet?}{}
|
||||
\begin{callself}{exchange}{Figure~\ref{fig:proc:domestic}}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
\begin{sdblock}{KYC/AML required?}{}
|
||||
\begin{callself}{exchange}{Figures~\ref{fig:proc:kyc}, \ref{fig:proc:aml}}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
|
||||
\mess[0]{exchange}{{Distribute digital cash}}{payee}
|
||||
|
||||
\end{sequencediagram}
|
||||
\caption{Interactions between wallets and Taler exchange
|
||||
in a pull payment. KYC/AML checks are described in
|
||||
Section~\ref{sec:kyc:pull}.}
|
||||
\label{fig:int:pull}
|
||||
\end{figure}
|
||||
|
||||
We do {\bf not} permit the payer to regain control over their funds, once the
|
||||
payment was made they are locked {\em until} the payee passes the KYC/AML
|
||||
checks. We only do the AML/KYC process once the funds are locked at the
|
||||
exchange. This ensures we know the actual transacted amounts (which may be
|
||||
lower than the total amounts requested) and prevents risk-free probing
|
||||
attacks.
|
@ -1,48 +0,0 @@
|
||||
\section{Push payment} \label{sec:push}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{payer}{\shortstack{Payer \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] {Pre-funded \\ Wallet};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{payee}{\shortstack{Payee \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
\begin{callself}{payer}{Review push payment fees}{}
|
||||
\end{callself}
|
||||
\mess[0]{payer}{{Push funds (Coins)}}{exchange}
|
||||
\mess[0]{payer}{{Offer payment (e.g. via QR code)}}{payee}
|
||||
\begin{callself}{payee}{Review payment offer}{}
|
||||
\end{callself}
|
||||
\mess[0]{payee}{{Request funds (Wallet ID)}}{exchange}
|
||||
\begin{sdblock}{Domestic wallet?}{}
|
||||
\begin{callself}{exchange}{Figure~\ref{fig:proc:domestic}}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
\begin{sdblock}{KYC/AML required?}{}
|
||||
\begin{callself}{exchange}{Figures~\ref{fig:proc:kyc}, \ref{fig:proc:aml}}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
\mess[0]{exchange}{{Distribute digital cash}}{payee}
|
||||
% \postlevel
|
||||
\begin{sdblock}{Payment offer expired?}{}
|
||||
\mess[0]{exchange}{{Return funds}}{payer}
|
||||
\end{sdblock}
|
||||
|
||||
\end{sequencediagram}
|
||||
\caption{Interactions between wallets and Taler exchange
|
||||
in a push payment. KYC/AML checks are described
|
||||
in Section~\ref{sec:kyc:push}.}
|
||||
\label{fig:int:push}
|
||||
\end{figure}
|
@ -1,39 +0,0 @@
|
||||
\section{Refund}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer wallet \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{merchant}{\shortstack{Merchant \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
\begin{callself}{merchant}{Initiate refund}{}
|
||||
\end{callself}
|
||||
\mess[0]{merchant}{{Refund offer (QR code)}}{wallet}
|
||||
\mess[0]{wallet}{Download refund}{merchant}
|
||||
\mess[0]{merchant}{Approve refund}{exchange}
|
||||
\mess[0]{exchange}{Confirm refund}{merchant}
|
||||
\mess[0]{merchant}{Return refund confirmation}{wallet}
|
||||
\end{sequencediagram}
|
||||
\caption{Refund processing when a merchant is unable to fulfill
|
||||
a contract. Refunds must happen {\em before} the
|
||||
exchange has aggregated the original transaction for
|
||||
a bank transfer to the merchant. Furthermore, refunds
|
||||
can only go to the customer who made the original payment
|
||||
and the refund cannot exceed the amount of the original
|
||||
payment.}
|
||||
\label{fig:int:refund}
|
||||
\end{figure}
|
@ -1,48 +0,0 @@
|
||||
\section{Shutdown}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer wallet \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{bank}{\shortstack{Customer bank \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] {Checking \\ Accounts};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
|
||||
\begin{callself}{exchange}{Operator initiates shutdown}{}
|
||||
\end{callself}
|
||||
\mess[0]{exchange}{{Shutdown alert}}{wallet}
|
||||
\begin{sdblock}{Bank account known?}{}
|
||||
\begin{callself}{wallet}{Designate bank account}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
\mess[0]{wallet}{{Deposit (Coins)}}{exchange}
|
||||
\begin{sdblock}{Acceptable account?}{}
|
||||
\mess[0]{exchange}{{Refuse deposit}}{wallet}
|
||||
\end{sdblock}
|
||||
\begin{sdblock}{KYC/AML required?}{}
|
||||
\begin{callself}{exchange}{Figures~\ref{fig:proc:kyc}, \ref{fig:proc:aml}}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
\mess[0]{exchange}{{Initiate transfer}}{bank}
|
||||
\end{sequencediagram}
|
||||
\caption{Shutdown interactions between customer, Taler exchange (payment
|
||||
service provider) and bank.}
|
||||
\label{fig:int:shutdown}
|
||||
\end{figure}
|
||||
|
||||
KYC/AML requirements are relaxed in cases where the customer is able to
|
||||
cryptographically demonstrate that they previously withdrew these coins from
|
||||
the designated checking account. Thus, KYC/AML checks here primarily still
|
||||
apply if the customer received the funds via P2P transfers from other wallets.
|
@ -1,49 +0,0 @@
|
||||
\section{Withdraw}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer wallet \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{bank}{\shortstack{Customer bank \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] {Checking \\ Accounts};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
\mess[0]{wallet}{Withdraw {(Amount)}}{exchange}
|
||||
\mess[0]{exchange}{{Configuration (ToS, Fees)}}{wallet}
|
||||
\begin{sdblock}{once}{}
|
||||
\begin{callself}{wallet}{Accept ToS}{}
|
||||
\end{callself}
|
||||
\end{sdblock}
|
||||
\begin{callself}{wallet}{Review withdraw fees}{}
|
||||
\end{callself}
|
||||
\mess[0]{wallet}{{Initiate transfer (Amount, Credit account, Wallet ID)}}{bank}
|
||||
\mess[0]{bank}{{Credit (Wallet ID)}}{exchange}
|
||||
|
||||
\begin{sdblock}{Acceptable transfer?}{}
|
||||
\mess[0]{exchange}{{Bounce funds}}{bank}
|
||||
\end{sdblock}
|
||||
\postlevel
|
||||
\mess[0]{exchange}{Confirm wire transfer}{wallet}
|
||||
\mess[0]{wallet}{Request digital cash}{exchange}
|
||||
\mess[0]{exchange}{Distribute digital cash}{wallet}
|
||||
\postlevel
|
||||
\begin{sdblock}{Withdraw period expired?}{}
|
||||
\mess[0]{exchange}{{Return remaining funds}}{bank}
|
||||
\end{sdblock}
|
||||
\end{sequencediagram}
|
||||
\caption{Withdraw interactions between customer, Taler exchange (payment
|
||||
service provider) and bank. The amount of digital cash distributed is
|
||||
subject to limits per origin account (see Section~\ref{sec:kyc:withdraw}).}
|
||||
\label{fig:int:withdraw}
|
||||
\end{figure}
|
@ -1,58 +0,0 @@
|
||||
\section{KYC: Balance}
|
||||
|
||||
Note: this process is not implemented and would require non-trivial extra work
|
||||
if required.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[node distance=1cm,font=\sffamily,
|
||||
start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30},
|
||||
end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
|
||||
process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30},
|
||||
failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30},
|
||||
io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
|
||||
decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30},
|
||||
arr/.style={very thick,-latex},
|
||||
every edge quotes/.style = {auto, font=\footnotesize, sloped}
|
||||
]
|
||||
\node (start) [start] {Start};
|
||||
\node (balance) [decision,below=of start,text width=3cm] {Transaction leaves wallet balance below AML threshold?};
|
||||
\node (registered) [decision,below=of balance,text width=3cm] {Wallet has been subject to KYC?};
|
||||
\node (kyc) [process, below=of registered] {KYC process};
|
||||
\node (aml) [process, left=of kyc] {AML process};
|
||||
\node (allow) [end, right=of balance] {Allow};
|
||||
\node (deny) [failed, right=of registered] {Deny};
|
||||
\draw[arr] (start) -> (balance) {};
|
||||
\draw[arr] (balance) -> (registered);
|
||||
\draw (balance) edge["No"] (registered);
|
||||
\draw[arr] (balance) -> (allow);
|
||||
\draw (balance) edge["Yes"] (allow);
|
||||
|
||||
\draw[arr] (registered) -> (kyc);
|
||||
\draw (registered) edge["No"] (kyc);
|
||||
\draw[arr] (registered) -> (deny);
|
||||
\draw (registered) edge["Yes"] (deny);
|
||||
|
||||
\draw[arr] (kyc) -> (deny);
|
||||
\draw (kyc) edge["Failed"] (deny);
|
||||
\draw[arr] (kyc) -> (aml);
|
||||
\draw (kyc) edge["Ok"] (aml);
|
||||
|
||||
\draw[arr] (aml) -> (balance.west);
|
||||
\draw (aml) edge["New threshold"] (balance.west);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Regulatory process when a wallet exceeds its AML threshold.
|
||||
When the transfer is denied the transaction (withdraw, P2P transfer)
|
||||
is refused by the wallet.}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Settings for the balance trigger.}
|
||||
\begin{tabular}{l|l|r}
|
||||
{\bf Setting} & {\bf Type} & {\bf Value} \\ \hline \hline
|
||||
KYC threshold & Amount & {\em 5000 CHF} \\
|
||||
Default AML threshold & Amount & {\em 5000 CHF} \\
|
||||
\end{tabular}
|
||||
\end{table}
|
@ -1,80 +0,0 @@
|
||||
\section{KYC: Deposit} \label{sec:kyc:deposit}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[node distance=1cm,font=\sffamily,
|
||||
start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30},
|
||||
end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
|
||||
process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30},
|
||||
failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30},
|
||||
io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
|
||||
decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30},
|
||||
arr/.style={very thick,-latex},
|
||||
every edge quotes/.style = {auto, font=\footnotesize, sloped}
|
||||
]
|
||||
\node (start) [start] {Start};
|
||||
\node (country) [decision,below=of start,text width=2.5cm] {Target account in allowed country?};
|
||||
\node (amount) [decision, below=of country,text width=2.5cm] {Target account received less than KYB threshold?};
|
||||
\node (kyc) [process, right=of amount] {KYB process};
|
||||
\node (high) [decision, below=of amount,text width=2.5cm] {Target account received more than its AML threshold?};
|
||||
\node (aml) [process, right=of high] {AML process};
|
||||
\node (dummy) [below right=of aml] {};
|
||||
\node (allow) [end, below right=of dummy] {Allow};
|
||||
\node (deny) [failed, right=of kyc] {Deny};
|
||||
\draw[arr] (start) -> (country) {};
|
||||
|
||||
\draw[arr] (country) -> (amount);
|
||||
\draw (country) edge["Yes"] (amount);
|
||||
|
||||
\draw[arr] (country.east) -> (deny);
|
||||
\draw (country.east) edge["No"] (deny);
|
||||
|
||||
\draw[arr] (amount) -> (high);
|
||||
\draw (amount) edge["Yes"] (high);
|
||||
|
||||
\draw[arr] (amount.east) -> (kyc);
|
||||
\draw (amount.east) edge["No"] (kyc);
|
||||
|
||||
\draw[arr] (kyc) -> (deny);
|
||||
\draw (kyc) edge["Failed"] (deny);
|
||||
|
||||
\draw[arr] (kyc) -> (high);
|
||||
\draw (kyc) edge["Succeeded"] (high);
|
||||
|
||||
\draw[arr] (high.south) -> (allow);
|
||||
\draw (high.south) edge["Yes"] (allow);
|
||||
|
||||
\draw[arr] (high.east) -> (aml);
|
||||
\draw (high.east) edge["No"] (aml);
|
||||
|
||||
\draw[arr] (aml) -> (deny);
|
||||
\draw (aml) edge["Violation"] (deny);
|
||||
|
||||
\draw[arr] (aml) -> (allow);
|
||||
\draw (aml) edge["Ok"] (allow);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Regulatory process when depositing digital cash into a bank
|
||||
account. When the transfer is denied, the money is held in escrow
|
||||
until authorities authorize the transfer.}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Settings for the deposit trigger. Note that the operation
|
||||
must satisfy all of the given rules.}
|
||||
\begin{tabular}{l|l|r}
|
||||
{\bf Setting} & {\bf Type} & {\bf Value} \\ \hline \hline
|
||||
Allowed bank accounts & RFC 8905 RegEx & {\em CH*} \\ \hline
|
||||
KYB deposit threshold & Amount/month & {\em 5000 CHF} \\
|
||||
KYB deposit threshold & Amount/year & {\em 25000 CHF} \\
|
||||
Default AML deposit threshold & Amount/month & {\em 2500 CHF} \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
The KYB deposit threshold of 5'000 \CURRENCY{} per month and than 25'000
|
||||
\CURRENCY{} per year ensure compliance with article 48-1b.
|
||||
|
||||
Additionally, our terms of service will prohibit businesses to receive
|
||||
amounts exceeding 1'000 \CURRENCY{} per transaction (well below the
|
||||
15'000 \CURRENCY{} threshold defined in article 24-1c).
|
@ -1,86 +0,0 @@
|
||||
\section{KYC/AML: Pull Payment} \label{sec:kyc:pull}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[node distance=0.9cm,font=\sffamily,
|
||||
start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30},
|
||||
end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
|
||||
process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30},
|
||||
failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30},
|
||||
io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
|
||||
decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30},
|
||||
arr/.style={very thick,-latex},
|
||||
every edge quotes/.style = {auto, font=\footnotesize, sloped}
|
||||
]
|
||||
\node (start) [start] {Start};
|
||||
\node (wallet) [decision,below=of start,text width=2.5cm] {Wallet linked to (domestic) phone number?};
|
||||
\node (domestic) [process, right=of wallet] {Validate phone number};
|
||||
\node (amount) [decision, below=of wallet,text width=2.5cm] {Wallet received less than KYC threshold from other wallets?};
|
||||
\node (kyc) [process, right=of amount] {KYC process};
|
||||
\node (high) [decision, below=of amount,text width=2.5cm] {Wallet received more than its AML threshold?};
|
||||
\node (aml) [process, right=of high] {AML process};
|
||||
\node (dummy) [below right=of aml] {};
|
||||
\node (allow) [end, below right=of dummy] {Allow invoicing};
|
||||
\node (deny) [failed, right=of kyc] {Deny};
|
||||
\draw[arr] (start) -> (wallet) {};
|
||||
|
||||
\draw[arr] (wallet) -> (amount);
|
||||
\draw (wallet) edge["Yes"] (amount);
|
||||
|
||||
\draw[arr] (wallet.east) -> (domestic);
|
||||
\draw (wallet.east) edge["No"] (domestic);
|
||||
|
||||
\draw[arr] (domestic) -> (amount);
|
||||
\draw (domestic) edge["Confirmed"] (amount);
|
||||
|
||||
\draw[arr] (domestic) -> (deny);
|
||||
\draw (domestic) edge["Failed"] (deny);
|
||||
|
||||
\draw[arr] (amount) -> (high);
|
||||
\draw (amount) edge["Yes"] (high);
|
||||
|
||||
\draw[arr] (amount.east) -> (kyc);
|
||||
\draw (amount.east) edge["No"] (kyc);
|
||||
|
||||
\draw[arr] (kyc) -> (deny);
|
||||
\draw (kyc) edge["Failed"] (deny);
|
||||
|
||||
\draw[arr] (kyc) -> (high);
|
||||
\draw (kyc) edge["Succeeded"] (high);
|
||||
|
||||
\draw[arr] (high.south) -> (allow);
|
||||
\draw (high.south) edge["Yes"] (allow);
|
||||
|
||||
\draw[arr] (high.east) -> (aml);
|
||||
\draw (high.east) edge["No"] (aml);
|
||||
|
||||
\draw[arr] (aml) -> (deny);
|
||||
\draw (aml) edge["Violation"] (deny);
|
||||
|
||||
\draw[arr] (aml) -> (allow);
|
||||
\draw (aml) edge["Ok"] (allow);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Regulatory process when receiving payments from another wallet.
|
||||
The threshold depends on the risk profile from the KYC process.
|
||||
When KYC thresholds would be passed, the receiving wallet cannot
|
||||
generate a valid invoice until it has provided the KYC data.
|
||||
When a transfer is denied by AML staff, the money is held in escrow
|
||||
until authorities authorize the transfer.}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Settings for the pull payment trigger. Note that the operation
|
||||
must satisfy all of the given rules.}
|
||||
\begin{tabular}{l|l|r}
|
||||
{\bf Setting} & {\bf Type} & {\bf Value} \\ \hline \hline
|
||||
Permitted phone numbers & Dialing prefix & {\em +41} \\
|
||||
P2P KYC threshold & Amount/month & {\em 1000 CHF} \\
|
||||
P2P KYC threshold & Amount/year & {\em 5000 CHF} \\
|
||||
Default P2P AML threshold & Amount/month & {\em 2500 CHF} \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
The P2P KYC thresholds of 1'000 \CURRENCY{} per month and than 5'000
|
||||
\CURRENCY{} per year ensure compliance with article 49-2c.
|
@ -1,84 +0,0 @@
|
||||
\section{KYC/AML: Push Payment} \label{sec:kyc:push}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[node distance=0.9cm,font=\sffamily,
|
||||
start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30},
|
||||
end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
|
||||
process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30},
|
||||
failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30},
|
||||
io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
|
||||
decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30},
|
||||
arr/.style={very thick,-latex},
|
||||
every edge quotes/.style = {auto, font=\footnotesize, sloped}
|
||||
]
|
||||
\node (start) [start] {Start};
|
||||
\node (wallet) [decision,below=of start,text width=2.5cm] {Wallet linked to (domestic) phone number?};
|
||||
\node (domestic) [process, right=of wallet] {Validate phone number};
|
||||
\node (amount) [decision, below=of wallet,text width=2.5cm] {Wallet received less than KYC threshold from other wallets?};
|
||||
\node (kyc) [process, right=of amount] {KYC process};
|
||||
\node (high) [decision, below=of amount,text width=2.5cm] {Wallet received more than its AML threshold?};
|
||||
\node (aml) [process, right=of high] {AML process};
|
||||
\node (dummy) [below right=of aml] {};
|
||||
\node (allow) [end, below right=of dummy] {Allow};
|
||||
\node (deny) [failed, right=of kyc] {Deny};
|
||||
\draw[arr] (start) -> (wallet) {};
|
||||
|
||||
\draw[arr] (wallet) -> (amount);
|
||||
\draw (wallet) edge["Yes"] (amount);
|
||||
|
||||
\draw[arr] (wallet.east) -> (domestic);
|
||||
\draw (wallet.east) edge["No"] (domestic);
|
||||
|
||||
\draw[arr] (domestic) -> (amount);
|
||||
\draw (domestic) edge["Confirmed"] (amount);
|
||||
|
||||
\draw[arr] (domestic) -> (deny);
|
||||
\draw (domestic) edge["Failed"] (deny);
|
||||
|
||||
\draw[arr] (amount) -> (high);
|
||||
\draw (amount) edge["Yes"] (high);
|
||||
|
||||
\draw[arr] (amount.east) -> (kyc);
|
||||
\draw (amount.east) edge["No"] (kyc);
|
||||
|
||||
\draw[arr] (kyc) -> (deny);
|
||||
\draw (kyc) edge["Failed"] (deny);
|
||||
|
||||
\draw[arr] (kyc) -> (high);
|
||||
\draw (kyc) edge["Succeeded"] (high);
|
||||
|
||||
\draw[arr] (high.south) -> (allow);
|
||||
\draw (high.south) edge["Yes"] (allow);
|
||||
|
||||
\draw[arr] (high.east) -> (aml);
|
||||
\draw (high.east) edge["No"] (aml);
|
||||
|
||||
\draw[arr] (aml) -> (deny);
|
||||
\draw (aml) edge["Violation"] (deny);
|
||||
|
||||
\draw[arr] (aml) -> (allow);
|
||||
\draw (aml) edge["Ok"] (allow);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Regulatory process when receiving payments from another wallet.
|
||||
The threshold depends on the risk profile from the KYC process.
|
||||
When the transfer is denied, the money is held in escrow
|
||||
until authorities authorize the transfer.}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Settings for the push payment trigger. Note that the operation
|
||||
must satisfy all of the given rules.}
|
||||
\begin{tabular}{l|l|r}
|
||||
{\bf Setting} & {\bf Type} & {\bf Value} \\ \hline \hline
|
||||
Permitted phone numbers & Dialing prefix & {\em +41} \\
|
||||
P2P KYC threshold & Amount/month & {\em 1000 CHF} \\
|
||||
P2P KYC threshold & Amount/year & {\em 5000 CHF} \\
|
||||
Default P2P AML threshold & Amount/month & {\em 2500 CHF} \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
The P2P KYC thresholds of 1'000 \CURRENCY{} per month and than 5'000
|
||||
\CURRENCY{} per year ensure compliance with article 49-2c.
|
@ -1,55 +0,0 @@
|
||||
\section{KYC: Withdraw} \label{sec:kyc:withdraw}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[node distance=1cm,font=\sffamily,
|
||||
start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30},
|
||||
end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
|
||||
process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30},
|
||||
failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30},
|
||||
io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
|
||||
decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30},
|
||||
arr/.style={very thick,-latex},
|
||||
every edge quotes/.style = {auto, font=\footnotesize, sloped}
|
||||
]
|
||||
\node (start) [start] {Start};
|
||||
\node (country) [decision,below=of start,text width=3cm] {Wire transfer originates from allowed country?};
|
||||
\node (amount) [decision, below=of country,text width=3cm] {Transferred less than maximum amount from origin account over last month?};
|
||||
\node (allow) [end, below=of amount] {Allow};
|
||||
\node (deny) [failed, right=of allow] {Deny};
|
||||
\draw[arr] (start) -> (country) {};
|
||||
\draw[arr] (country) -> (amount);
|
||||
\draw (country) edge["Yes"] (amount);
|
||||
\draw[arr] (country.east) -> (deny);
|
||||
\draw (country.east) edge["No"] (deny);
|
||||
\draw[arr] (amount) -> (allow);
|
||||
\draw (amount) edge["Yes"] (allow);
|
||||
\draw[arr] (amount.east) -> (deny);
|
||||
\draw (amount.east) edge["No"] (deny);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\caption{Regulatory process when withdrawing digital cash from a
|
||||
bank account.
|
||||
If the transfer is denied or the user fails to withdraw the
|
||||
funds for any other reason, the money is automatically returned
|
||||
after the bounce period (see Table~\ref{table:kyc:withdraw:settings}) to
|
||||
the originating bank account.}
|
||||
\label{fig:kyc:withdraw}
|
||||
\end{figure}
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Settings for the withdraw trigger. Note that the operation
|
||||
must satisfy all of the given rules.} \label{table:kyc:withdraw:settings}
|
||||
\begin{tabular}{l|l|r}
|
||||
{\bf Setting} & {\bf Type} & {\bf Value} \\ \hline \hline
|
||||
Allowed bank accounts & RFC 8905 RegEx & {\em CH*} \\ \hline
|
||||
SMS-Identification & Amount/month & {\em 200 CHF} \\
|
||||
Withdraw limit & Amount/month & {\em 5000 CHF} \\
|
||||
Withdraw limit & Amount/year & {\em 25000 CHF} \\
|
||||
Bounce period & Delay & 1 month \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
The limit of 200 \CURRENCY{} results from article 48-2. Strictly limiting
|
||||
withdrawals to less than 5'000 \CURRENCY{} per month and less than 25'000
|
||||
\CURRENCY{} per year assures compliance with article 48-1c.
|
@ -1,239 +0,0 @@
|
||||
% This is a (partial) translation of main.tex into
|
||||
% German. Please keep the structure as parallel as
|
||||
% possible when improving / expanding the translation!
|
||||
\documentclass[10pt,a4paper,oneside]{book}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{url}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{qrcode}
|
||||
\usepackage{pgf-umlsd}
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{shapes,arrows}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{calc}
|
||||
\usetikzlibrary{quotes}
|
||||
\author{Christian Grothoff}
|
||||
\title{Flows in the GNU Taler System}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\newcommand\TALER{TALER OPERATIONS AG}
|
||||
\newcommand\CURRENCY{CHF}
|
||||
\newcommand\LAND{der Schweiz}
|
||||
|
||||
\section{Transaktionen im Taler-Bezahlsystem}\label{sec:Transaktionen}
|
||||
|
||||
Dieser Abschnitt stellt die Transaktionen im Taler-Bezahlsystem
|
||||
vor. Die Grafiken geben wieder, in welcher Reihenfolge die beteiligten
|
||||
Parteien interagieren. \\
|
||||
F\"ur jede einzelne Transaktion ist die automatische Ausl\"osung von
|
||||
Compliance-Prozessen durch den Taler-Exchange einstellbar.
|
||||
Die im Rahmen des jeweiligen Compliance-Prozesses erzwungenen
|
||||
Pr\"ufschritte beschreibt Abschnitt~\ref{sec:triggers}.
|
||||
|
||||
Folgende Transaktionen kommen als Ausl\"oser f\"ur AML- und KYC-Prozesse
|
||||
in Betracht:
|
||||
\begin{description}[noitemsep]
|
||||
\item[withdraw] Ein Nutzer hebt digitales Bargeld (e-money) in Form von
|
||||
Taler-Coins in ein Taler-Wallet ab
|
||||
\item[reimburse] Ein Nutzer l\"asst den Gegenwert von Taler-Coins vom
|
||||
Taler-Exchange an das urspr\"ungliche IBAN-Bankkonto zur\"uck\"uberweisen
|
||||
\item[pay] Ein Nutzer zahlt zugunsten eines IBAN-Bankkontos des Empf\"angers
|
||||
\item[refund] Ein Verk\"aufer erteilt einem Zahlenden die R\"uckerstattung
|
||||
eines Zahlbetrags
|
||||
\item[push] Ein Nutzer sendet einen Zahlbetrag an ein anderes Taler-Wallet
|
||||
\item[pull] Ein Nutzer stellt einem anderen Taler-Wallet eine Rechnung aus
|
||||
und fordert eine Zahlung von diesem Wallet
|
||||
\item[shutdown] Der Betreiber des Taler-Exchange informiert die Inhaber von
|
||||
Coins, die diese von jenem Exchange abgehoben hatten, dass der Exchange
|
||||
geplant eingestellt und die Gegenwerte der Coins restituiert werden
|
||||
\end{description}
|
||||
|
||||
Die Nutzer beginnen ein gesch\"aftliches Nutzungsverh\"altnis mit
|
||||
\TALER{}, wenn sie ihre Taler-Wallets anweisen, eine Abhebung durchzuf\"uhren.
|
||||
Das Taler-Bezahlsystem verwendet jedoch keine Konten, sondern wert-basierte
|
||||
Token und explizit keine konten-basierten Geld-\"Aquivalente.
|
||||
Taler soll digitales Bargeld sein und erlaubt technisch bedingt
|
||||
kein Nachvollziehen der Transaktionen seiner Nutzer, wie es Konten mit
|
||||
Eing\"angen und Ausg\"angen von Zahlungen erm\"oglichen w\"urden.
|
||||
Es gibt daher kein ``Er\"offnen'' oder ``Schliessen'' von Konten der Nutzer.
|
||||
Die Begriffe ``opening'' und ``closing'' lassen sich deshalb auch nicht auf
|
||||
das System anwenden oder \"ubertragen. \\
|
||||
|
||||
Die Nutzer k\"onnen
|
||||
\begin{enumerate}[noitemsep]
|
||||
\item die treuh\"andisch verwalteten Einlagen gezielt auf ein bestimmtes
|
||||
Bankkonto auszahlen lassen,
|
||||
%(siehe Abschnitt~\ref{sec:deposit})
|
||||
\item an einen Verk\"aufer zahlen,
|
||||
%(siehe Abschnitt~\ref{sec:deposit})
|
||||
\item einem anderen Empf\"anger mittels peer-to-peer-Verfahren Coins zukommen
|
||||
lassen
|
||||
%(siehe Abschnitte~\ref{sec:push} und~\ref{sec:pull})
|
||||
\item die Coins in ihrem Wallet, das verloren ging oder zerst\"ort wurde,
|
||||
durch Ablauf der G\"ultigkeit entwerten lassen (dies w\"are ebenso der Fall
|
||||
bei einer langen Zeit ohne Internet-Anbindung oder ohne Installation),
|
||||
\item den Wert der Coins im Wallet durch Zahlung von Geb\"uhren f\"ur
|
||||
die Verl\"angerung ihrer G\"ultigkeit langsam verringern lassen.
|
||||
%(siehe Abschnitt~\ref{sec:fees:coin})
|
||||
\end{enumerate}
|
||||
|
||||
Das Taler-Bezahlsystem verwehrt den Nutzern kategorisch die Abhebung
|
||||
von h\"oheren Betr\"agen als 5.000 \CURRENCY{} pro Monat bzw. von
|
||||
mehr als 15.000 \CURRENCY{} pro Jahr. Damit wird gew\"ahrleistet,
|
||||
dass die Nutzer stets unterhalb der Grenzwerte bleiben, ab denen die
|
||||
meisten Pr\"ufschritte aufgrund regulatorischer Bestimmungen erforderlich
|
||||
werden. \TALER{} stellt dar\"uber hinaus sicher, dass die Nutzer
|
||||
ausschliesslich in \LAND{} ans\"assig sind
|
||||
(siehe Abschnitt~\ref{sec:proc:domestic}), da auf ihrer Seite ein Bankkonto
|
||||
in \LAND{} f\"ur die \"Uberweisungen an den Taler-Exchange und/oder
|
||||
eine Telefonnummer mit entsprechender Vorwahl (++41) ben\"otigt werden.
|
||||
Zus\"atzlich setzt das Taler-Wallet zu jeder Zeit eine Obergrenze
|
||||
von 5.000 \CURRENCY{} auf die Coin-Betr\"age in Summe fest, so dass es
|
||||
keine weitere Abhebung \"uber diesen Grenzwert hinaus bewirken kann.
|
||||
|
||||
F\"ur {\bf Verk\"aufer} beginnt ein gesch\"aftliches Nutzungsverh\"altnis
|
||||
mit \TALER{}, sobald sie Geldeing\"ange auf ihren IBAN-Bankkonten erhalten,
|
||||
die als Zahlungen von Nutzern des Taler-Bezahlsystems ausgel\"ost wurden
|
||||
(siehe Abschnitt~\ref{sec:deposit}). Sollten die Summen der Eing\"ange
|
||||
5.000 \CURRENCY{} pro Monat bzw. 15.000 \CURRENCY{} pro Jahr \"ubersteigen,
|
||||
kommt es zu einer KYB-Pr\"ufung, die dem Begriff ``Er\"offnen'' eines
|
||||
Kontos entspricht und die eine aktualisierte KYB-Information sowie
|
||||
die Pr\"ufung von Sanktionslisten erfordert, sofern der Verk\"aufer
|
||||
innerhalb von 24 Monaten wenigstens einen Geldeingang erhielt.
|
||||
|
||||
Im Gegensatz zu normalen Nutzern k\"onnen Verk\"aufer im Prinzip
|
||||
Zahlungen ohne Limit empfangen. Allerdings m\"ussen diese Transaktionen
|
||||
auch wirklich als Eing\"ange auf dem Bankkonto des Unternehmens verzeichnet
|
||||
werden (im Kontoauszug). In Abh\"angigkeit von den an das Gesch\"aftskonto
|
||||
\"uberwiesenen Betr\"agen wird der Verk\"aufer einer KYB-Pr\"ufung unterzogen
|
||||
(siehe Abschnitt~\ref{sec:KYB}). Dies gilt ebenso f\"ur
|
||||
Geldw\"asche-\"Uberpr\"ufungen (AML checks).
|
||||
|
||||
Das Taler-Bezahlsystem transferiert lediglich Gelder auf die bestehenden
|
||||
Bankkonten der Verk\"aufer, die f\"ur ihre G\"uterleistungen Zahlungen
|
||||
der Nutzer erhalten, f\"ur die bereits bei der \"Uberweisung von deren
|
||||
Kundenkonten eine KYC-Pr\"ufung erfolgte. Daher wird unseres Erachtens
|
||||
der Betreiber eines Taler-Exchange keine Mittelherkunft verlangen bzw.
|
||||
nachweisen m\"ussen
|
||||
\footnote{Wenn Unternehmen das Taler-Bezahlsystem ihrerseits f\"ur
|
||||
Zahlungen nutzen wollen, m\"ussen sie genauso wie alle anderen Nutzer
|
||||
zuerst Geld von ihrem Bankkonto an einen Taler-Exchange \"uberweisen,
|
||||
eine KYC-Pr\"ufung absolvieren und dann ihr Wallet Coins abheben lassen.
|
||||
F\"ur die gesch\"aftlichen K\"aufer gelten ebenfalls die Limits wie
|
||||
f\"ur alle anderen Nutzer.}.
|
||||
|
||||
|
||||
\include{int-withdraw}
|
||||
\include{int-deposit}
|
||||
\include{int-pay}
|
||||
\include{int-refund}
|
||||
\include{int-push}
|
||||
\include{int-pull}
|
||||
\include{int-shutdown}
|
||||
|
||||
|
||||
|
||||
\chapter{Regulatory Triggers} \label{chap:triggers}
|
||||
|
||||
In this chapter we show decision diagrams for regulatory processes of the
|
||||
various core operations of the GNU Taler payment system. In each case, the
|
||||
{\bf start} state refers to one of the interactions described in the previous
|
||||
chapter. The payment system will then use the process to arrive at an {\bf
|
||||
allow} decision which permits the transaction to go through, or at a {\bf
|
||||
deny} decision which ensures that the funds are not moved.
|
||||
|
||||
The specific {\em decisions} (in green) depend on the risk profile and the
|
||||
regulatory environment. The tables in each section list the specific values
|
||||
that are to be configured.
|
||||
|
||||
There are five types if interactions that can trigger regulatory processes:
|
||||
|
||||
\begin{description}
|
||||
\item[withdraw] a customer withdraws digital cash from their {\bf bank account}
|
||||
\item[deposit] a merchant's {\bf bank account} is designated to receive a payment in digital cash
|
||||
\item[push] a {\bf wallet} accepts a payment from another wallet
|
||||
\item[pull] a {\bf wallet} requests a payment from another wallet
|
||||
\item[balance] a withdraw or P2P payment causes the balance of a {\bf wallet} to exceed a given threshold
|
||||
\end{description}
|
||||
|
||||
We note in bold the {\bf anchor} for the regulator process. The anchor is used
|
||||
to link the interaction to an identity. Once an identity has been established
|
||||
for a particular anchor, that link is considered established for all types of
|
||||
activities involving that anchor. A wallet is uniquely identified in the
|
||||
system by its unique cryptographic key. A bank account is uniquely identified
|
||||
in the system by its (RFC 8905) bank routing data (usually including BIC, IBAN
|
||||
and account owner name).
|
||||
|
||||
The KYC and AML processes themselves are described in
|
||||
Chapter~\ref{chap:regproc}.
|
||||
|
||||
\include{kyc-withdraw}
|
||||
\include{kyc-deposit}
|
||||
\include{kyc-push}
|
||||
\include{kyc-pull}
|
||||
\include{kyc-balance}
|
||||
|
||||
\chapter{Regulatory Processes} \label{chap:regproc}
|
||||
|
||||
This chapter describes the interactions between the customer, exchange and
|
||||
organizations or staff assisting with regulatory processes designed to ensure
|
||||
that customers are residents in the area of operation of the payment service
|
||||
provider, are properly identified, and do not engage in money laundering.
|
||||
|
||||
The three main regulatory processes are:
|
||||
|
||||
\begin{description}
|
||||
\item[domestic check] This process establishes that a user is generally
|
||||
eligible to use the payment system. The process checks that the user has an
|
||||
eligible address, but stops short of establishing the user's identity.
|
||||
\item[kyc] This process establishes a user's legal identity, possibly
|
||||
using external providers to review documents and check against blacklists.
|
||||
\item[aml] The AML process reviews suspicious payment activities for
|
||||
money laundering. Here AML staff reviews all collected information.
|
||||
\end{description}
|
||||
|
||||
\include{proc-domestic}
|
||||
%\include{proc-kyc}
|
||||
\include{proc-kyb}
|
||||
\include{proc-aml}
|
||||
|
||||
\chapter{Fees} \label{chap:fees}
|
||||
|
||||
The business model for operating a Taler exchange is to charge transaction
|
||||
fees. Fees are charged on certain operations by the exchange. There are two
|
||||
types of fees, {\bf wire fees} and {\bf coin fees}. This chapter describes
|
||||
the fee structure.
|
||||
|
||||
Fixed, amount-independent {\bf wire fees} are charged on wire transfers using
|
||||
the core banking system. Details on wire fees are described in
|
||||
Section~\ref{sec:fees:wire}.
|
||||
|
||||
Coin fees are more complex, as they do not exactly follow neither the usual
|
||||
percentage of volume model of other payment systems. Instead, coin fees are
|
||||
applied per coin, resulting in a {\em logarithmic} fee structure. As a
|
||||
result, the effective fee {\em percentage} for tiny transactions is high (for
|
||||
example 50\% for transactions of 0.0025 CHF) while the effective fee
|
||||
percentage for large transactions is nominal (for example $\approx$ 0.05\% for
|
||||
transactions of $\approx$ 40 CHF). Details on coin fees are described in
|
||||
Section~\ref{sec:fees:coin}.
|
||||
|
||||
Fees are configurable (and that fee types beyond those described here are
|
||||
supported by the software). Thus, the specific fees may be adjusted in the
|
||||
future based on business decisions. However, changes to the fees are never
|
||||
retroactively applied to coins already in circulation. Wire fees that have
|
||||
been publicly announced for a particular time period also cannot be changed.
|
||||
Finally, any change to the terms of service must also be explicitly accepted
|
||||
by the users before they withdraw additional funds.
|
||||
|
||||
|
||||
\include{fees-wire}
|
||||
\include{fees-coins}
|
||||
%\include{fees-other}
|
||||
|
||||
|
||||
\end{document}
|
@ -1,206 +0,0 @@
|
||||
\documentclass[10pt,a4paper,oneside]{book}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{url}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{qrcode}
|
||||
\usepackage{pgf-umlsd}
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{shapes,arrows}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{calc}
|
||||
\usetikzlibrary{quotes}
|
||||
\author{Christian Grothoff}
|
||||
\title{Flows in the GNU Taler System}
|
||||
|
||||
\newcommand\CURRENCY{CHF}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
\tableofcontents
|
||||
|
||||
\chapter{Interactions} \label{chap:interactions}
|
||||
|
||||
This chapter introduces the main payment interactions in the GNU Taler payment
|
||||
system. For each interaction, we introduce the parties involved and in which
|
||||
order they interact and how. In each interaction it is possible that the
|
||||
Taler exchange needs to trigger a compliance process. These regulatory
|
||||
riggers are described in more detail in Chapter~\ref{chap:triggers}.
|
||||
|
||||
The main interactions of the system are:
|
||||
|
||||
\begin{description}
|
||||
\item[withdraw] a customer withdraws digital cash to their wallet
|
||||
\item[deposit] a customer returns digital cash into their bank account
|
||||
\item[pay] a customer pays into bank account of a merchant
|
||||
\item[refund] a merchant decides to return funds to a customer
|
||||
\item[push] a customer sends a payment to another wallet
|
||||
\item[pull] a customer requests a payment from another wallet (effectively sending an invoice)
|
||||
\item[shutdown] the Taler payment system operator informs the customers that the system is being shut down for good
|
||||
\end{description}
|
||||
|
||||
In the analysis of the legal requirements, it is important to differentiate
|
||||
between transactions between wallets (customer-to-customer) and transactions
|
||||
where money flows from a wallet into a bank account (customer-to-merchant) as
|
||||
these have different limits: When digital coins are used to pay at a business in
|
||||
Taler, the business never actually receives usable digital coins but instead
|
||||
the amount is always directly credited to their bank account. Depending on
|
||||
the transacted amounts, the business will nevertheless be subject to KYB
|
||||
(Section~\ref{sec:proc:kyb}) and AML checks.
|
||||
|
||||
{\bf Customers} begin their business relationship with us when they withdraw
|
||||
digital cash. Taler has no accounts (this is digital cash) and thus there is
|
||||
no ``opening'' or ``closing'' of accounts for consumers. Given digital cash,
|
||||
the customers can either (1) deposit the funds explicitly into a bank account
|
||||
(see Section~\ref{sec:deposit}), (2) pay a merchant (see
|
||||
Section~\ref{sec:pay}), (3) pay another customer using a peer-to-peer
|
||||
transfer (see Sections~\ref{sec:push} and~\ref{sec:pull}), or (4) the coins
|
||||
will expire if the wallet was lost (including offline for a long time or
|
||||
uninstalled). Finally, if a wallet remains (occasionally) online but a user
|
||||
does simply not spend the coins will (5) diminish in value from the change
|
||||
fees (see Section~\ref{sec:fees:coin}) that apply to prevent the coins from
|
||||
expiring outright.
|
||||
|
||||
For customers, we will categorically limit of digital cash withdrawn per month
|
||||
to less than CHF 5'000 per month and less than CHF 25'000 per year, thus
|
||||
ensuring that consumers remain below the thresholds where most regulatory
|
||||
processes become applicable. Payments between users will be limited
|
||||
to receiving less than CHF 1'000 per month and less than CHF 5'000 per year.
|
||||
We will ensure that customers are Swiss
|
||||
(see Section~\ref{sec:proc:domestic}) by requiring them to have a Swiss bank
|
||||
account and/or Swiss phone number (+41-prefix).
|
||||
%Furthermore, the wallet will
|
||||
%impose an upper limit of CHF 5000 on its balance at any point in time.
|
||||
|
||||
For {\bf merchants}, the Taler equivalent of ``opening'' an account and thus
|
||||
establishing an ongoing business relationship is for a business to receive
|
||||
payments (see Section~\ref{sec:pay}) exceeding CHF 5'000/month or CHF
|
||||
25'000/year. We will consider the account ``open'' (and require up-to-date KYB
|
||||
information and check sanction lists) as long as the business has made any
|
||||
transactions within the last 24 months.
|
||||
|
||||
As we will only transfer money into the existing bank accounts of the
|
||||
merchants to compensate them for sales made using the Taler payment system, we
|
||||
do not need to check the origin of funds for those merchants as they will only
|
||||
receive funds from us.\footnote{Should businesses want to use Taler for
|
||||
expenditures, they will need to withdraw digital coins from their bank account
|
||||
just like customers, and the limits for customers will continue to apply.}
|
||||
|
||||
For individual {\bf transactions}, we will impose a limit of CHF
|
||||
1'000/transaction (even though our reading of the regulations would permit
|
||||
individual transactions up to CHF 15'000).
|
||||
|
||||
The following sections describe the respective processes for each of these
|
||||
interactions.
|
||||
|
||||
\include{int-withdraw}
|
||||
\include{int-deposit}
|
||||
\include{int-pay}
|
||||
\include{int-refund}
|
||||
\include{int-push}
|
||||
\include{int-pull}
|
||||
\include{int-shutdown}
|
||||
|
||||
|
||||
\chapter{Regulatory Triggers} \label{chap:triggers}
|
||||
|
||||
In this chapter we show decision diagrams for regulatory processes of the
|
||||
various core operations of the GNU Taler payment system. In each case, the
|
||||
{\bf start} state refers to one of the interactions described in the previous
|
||||
chapter. The payment system will then use the process to arrive at an {\bf
|
||||
allow} decision which permits the transaction to go through, or at a {\bf
|
||||
deny} decision which ensures that the funds are not moved.
|
||||
|
||||
The specific {\em decisions} (in green) depend on the risk profile and the
|
||||
regulatory environment. The tables in each section list the specific values
|
||||
that are to be configured.
|
||||
|
||||
There are five types if interactions that can trigger regulatory processes:
|
||||
|
||||
\begin{description}
|
||||
\item[withdraw] a customer withdraws digital cash from their {\bf bank account}
|
||||
\item[deposit] a customer or merchant's {\bf bank account} is
|
||||
designated to receive a payment due someone paying with or
|
||||
depositing digital cash
|
||||
\item[push] a {\bf wallet} accepts a payment from another wallet
|
||||
\item[pull] a {\bf wallet} requests a payment from another wallet
|
||||
% \item[balance] a withdraw or P2P payment causes the balance of a {\bf wallet} to exceed a given threshold
|
||||
\end{description}
|
||||
|
||||
We note in bold the {\bf anchor} for the regulator process. The anchor is used
|
||||
to link the interaction to an identity. Once an identity has been established
|
||||
for a particular anchor, that link is considered established for all types of
|
||||
activities involving that anchor. A wallet is uniquely identified in the
|
||||
system by its unique cryptographic key. A bank account is uniquely identified
|
||||
in the system by its (RFC 8905) bank routing data (usually including BIC, IBAN
|
||||
and account owner name).
|
||||
|
||||
The KYC and AML processes themselves are described in
|
||||
Chapter~\ref{chap:regproc}.
|
||||
|
||||
\include{kyc-withdraw}
|
||||
\include{kyc-deposit}
|
||||
\include{kyc-push}
|
||||
\include{kyc-pull}
|
||||
%\include{kyc-balance}
|
||||
|
||||
\chapter{Regulatory Processes} \label{chap:regproc}
|
||||
|
||||
This chapter describes the interactions between the customer, exchange and
|
||||
organizations or staff assisting with regulatory processes designed to ensure
|
||||
that customers are residents in the area of operation of the payment service
|
||||
provider, are properly identified, and do not engage in money laundering.
|
||||
|
||||
The three main regulatory processes are:
|
||||
|
||||
\begin{description}
|
||||
\item[domestic check] This process establishes that a user is generally
|
||||
eligible to use the payment system. The process checks that the user has an
|
||||
eligible address, but stops short of establishing the user's identity.
|
||||
\item[kyc] This process establishes a user's legal identity, possibly
|
||||
using external providers to review documents and check against blacklists.
|
||||
\item[aml] The AML process reviews suspicious payment activities for
|
||||
money laundering. Here AML staff reviews all collected information.
|
||||
\end{description}
|
||||
|
||||
\include{proc-domestic}
|
||||
\include{proc-kyc}
|
||||
\include{proc-kyb}
|
||||
\include{proc-aml}
|
||||
|
||||
\chapter{Fees} \label{chap:fees}
|
||||
|
||||
The business model for operating a Taler exchange is to charge transaction
|
||||
fees. Fees are charged on certain operations by the exchange. There are two
|
||||
types of fees, {\bf wire fees} and {\bf coin fees}. This chapter describes
|
||||
the fee structure.
|
||||
|
||||
Fixed, amount-independent {\bf wire fees} are charged on wire transfers using
|
||||
the core banking system. Details on wire fees are described in
|
||||
Section~\ref{sec:fees:wire}.
|
||||
|
||||
Coin fees are more complex, as they do not exactly follow neither the usual
|
||||
percentage of volume model of other payment systems. Instead, coin fees are
|
||||
applied per coin, resulting in a {\em logarithmic} fee structure. As a
|
||||
result, the effective fee {\em percentage} for tiny transactions is high (for
|
||||
example 50\% for transactions of 0.0025 CHF) while the effective fee
|
||||
percentage for large transactions is nominal (for example $\approx$ 0.05\% for
|
||||
transactions of $\approx$ 40 CHF). Details on coin fees are described in
|
||||
Section~\ref{sec:fees:coin}.
|
||||
|
||||
Fees are configurable (and that fee types beyond those described here are
|
||||
supported by the software). Thus, the specific fees may be adjusted in the
|
||||
future based on business decisions. However, changes to the fees are never
|
||||
retroactively applied to coins already in circulation. Wire fees that have
|
||||
been publicly announced for a particular time period also cannot be changed.
|
||||
Finally, any change to the terms of service must also be explicitly accepted
|
||||
by the users before they withdraw additional funds.
|
||||
|
||||
|
||||
\include{fees-wire}
|
||||
\include{fees-coins}
|
||||
%\include{fees-other}
|
||||
|
||||
|
||||
\end{document}
|
@ -1,47 +0,0 @@
|
||||
\section{AML process}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Action};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{staff}{\shortstack{AML staff \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Access \\ Token};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\postlevel
|
||||
\mess[0]{wallet}{{Initial action}}{exchange}
|
||||
\begin{callself}{exchange}{Establish AML requirement}{}
|
||||
\end{callself}
|
||||
\begin{callself}{exchange}{Queue AML task}{}
|
||||
\end{callself}
|
||||
\mess[0]{exchange}{Wait for AML}{wallet}
|
||||
\mess[0]{staff}{Request AML work}{exchange}
|
||||
\mess[0]{exchange}{{Open AML task(s)}}{staff}
|
||||
\mess[0]{staff}{Request details}{exchange}
|
||||
\mess[0]{exchange}{KYC/AML data}{staff}
|
||||
\begin{callself}{staff}{Review and decide}{}
|
||||
\end{callself}
|
||||
\mess[0]{staff}{{Decision documentation}}{exchange}
|
||||
\mess[0]{exchange}{AML decision}{wallet}
|
||||
\mess[0]{wallet}{{Retry action}}{exchange}
|
||||
\end{sequencediagram}
|
||||
\caption{Deposit interactions between customer, Taler exchange (payment
|
||||
service provider) and the AML staff. The process can be
|
||||
triggered by various {\em actions} described in Chapter~\ref{chap:triggers}.
|
||||
AML staff interactions are cryptographically secured and
|
||||
decisions and the provided reasoning are archived by the exchange.
|
||||
AML staff may interact with the customer (out-of-band)
|
||||
in its decision process.
|
||||
}
|
||||
\label{fig:proc:aml}
|
||||
\end{figure}
|
@ -1,66 +0,0 @@
|
||||
\section{Domestic wallet check} \label{sec:proc:domestic}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer wallet \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{sms}{\shortstack{Address validator}}
|
||||
|
||||
\postlevel
|
||||
\mess[0]{wallet}{{P2P payment (Wallet ID)}}{exchange}
|
||||
\begin{callself}{exchange}{New wallet?}{}
|
||||
\end{callself}
|
||||
\mess[0]{exchange}{Request address validation}{sms}
|
||||
\mess[0]{sms}{Validation process ID}{exchange}
|
||||
\mess[0]{exchange}{Request address validation}{wallet}
|
||||
\mess[0]{wallet}{Send address}{sms}
|
||||
\mess[0]{sms}{{Send confirmation code (to address)}}{wallet}
|
||||
\mess[0]{wallet}{Supply confirmation code}{sms}
|
||||
\mess[0]{sms}{{Confirmed customer address}}{exchange}
|
||||
\mess[0]{exchange}{{Confirm completion}}{wallet}
|
||||
\mess[0]{wallet}{{Retry action}}{exchange}
|
||||
\end{sequencediagram}
|
||||
\caption{Deposit interactions between customer, Taler exchange (payment
|
||||
service provider) and external address validation service. The process can be
|
||||
triggered by wallet-to-wallet (P2P) payments described in Chapter~\ref{chap:triggers}.}
|
||||
\label{fig:proc:domestic}
|
||||
\end{figure}
|
||||
|
||||
Our users have to accept the terms of service which restrict the use of the
|
||||
service to domestic customers. For interactions with the core banking system,
|
||||
this simply means that we only accept payments from or to domestic bank
|
||||
accounts. For P2P payments between wallets, we require that the wallets are
|
||||
controlled by a domestic entity. We define domestic entities as those that
|
||||
are able to receive messages at a domestic address. Two types of addresses are
|
||||
supported:
|
||||
|
||||
\begin{itemize}
|
||||
\item Control over a domestic {\bf mobile phone number} is established
|
||||
by sending an SMS message with a confirmation code to the MSIN.
|
||||
\item Control over a domestic {\bf postal address} is established by
|
||||
sending a letter with a confirmation code to the address.
|
||||
\end{itemize}
|
||||
|
||||
Depending on the type of address, a validation has a limited validity period,
|
||||
as shown in Table~\ref{table:proc:domestic}. When the validity period is
|
||||
over, a wallet has to re-do the address validation before they can receive any
|
||||
further funds through the service.
|
||||
|
||||
\begin{table}[h!]
|
||||
\caption{Restrictions on address validations}
|
||||
\label{table:proc:domestic}
|
||||
\begin{tabular}{l|l|r}
|
||||
{\bf Type} & {\bf Validity period} & {\bf Restricted to} \\ \hline \hline
|
||||
Mobile phone number & 12 months & {\em +41} \\
|
||||
Postal address & 36 months & {\em Switzerland} \\
|
||||
\end{tabular}
|
||||
\end{table}
|
@ -1,97 +0,0 @@
|
||||
\section{KYB process} \label{sec:proc:kyb}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{merchant}{\shortstack{Merchant \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Action};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{kyb}{\shortstack{KYB provider \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
|
||||
\postlevel
|
||||
\mess[0]{merchant}{{Initial action}}{exchange}
|
||||
\begin{callself}{exchange}{Establish KYB requirement}{}
|
||||
\end{callself}
|
||||
\mess[0]{exchange}{Request new KYB process}{kyb}
|
||||
\mess[0]{kyb}{{Process identifier (PI)}}{exchange}
|
||||
\mess[0]{exchange}{{KYB required (PI)}}{merchant}
|
||||
\mess[0]{merchant}{{KYB start (PI)}}{kyb}
|
||||
\mess[0]{kyb}{{Request identity documentation}}{merchant}
|
||||
\mess[0]{merchant}{{Upload identity documentation}}{kyb}
|
||||
\begin{callself}{kyb}{Validate documentation}{}
|
||||
\end{callself}
|
||||
\mess[0]{kyb}{{Share documentation (PI)}}{exchange}
|
||||
\mess[0]{kyb}{{Confirm completion}}{merchant}
|
||||
\mess[0]{merchant}{{Retry action}}{exchange}
|
||||
\end{sequencediagram}
|
||||
\caption{Deposit interactions between customer, Taler exchange (payment
|
||||
service provider) and external KYB provider. The process can be
|
||||
triggered by various {\em actions} described in Chapter~\ref{chap:triggers}.}
|
||||
\label{fig:proc:kyb}
|
||||
\end{figure}
|
||||
|
||||
At the beginning of the KYB process, the user needs to specify whether they
|
||||
are an {\bf individual} (not incorporated) or a {\bf business}.\footnote{In
|
||||
practice, we expect most owners of bank accounts crossing the KYB threshold to
|
||||
be businesses, but in principle such a bank account could be owned by an
|
||||
individual operating a business without a separate legal entity.} This then
|
||||
determines which types of attributes are collected in the KYB process
|
||||
(Table~\ref{table:proc:kyb:individual}
|
||||
vs. Table~\ref{table:proc:kyb:business}).
|
||||
|
||||
\begin{table}
|
||||
\caption{Information collected for unincorporated individuals}
|
||||
\label{table:proc:kyb:individual}
|
||||
\begin{center}
|
||||
\begin{tabular}{l|c|r}
|
||||
{\bf Type} & {\bf Required} & {\bf Example} \\ \hline \hline
|
||||
Surname & yes & Mustermann \\
|
||||
First name(s) & yes & Max \\
|
||||
Date of birth & yes & 1.1.1980 \\
|
||||
Nationality & yes & Swiss \\
|
||||
Actual address of domicile & yes & Seestrasse 3, 8008 Zuerich \\
|
||||
Phone number & no & +41-123456789 \\
|
||||
E-mail & no & me@example.com \\
|
||||
Identification document & yes & JPG image \\
|
||||
Taxpayer identification & yes & ZPV Nr. 253'123'456 \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
|
||||
\begin{table}
|
||||
\caption{Information collected for businesses. Information on individals is
|
||||
collected for owners with more than 25\% ownership and for those with
|
||||
signature authority for the business.}
|
||||
\label{table:proc:kyb:business}
|
||||
\begin{center}
|
||||
\begin{tabular}{l|c|r}
|
||||
{\bf Type} & {\bf Required} & {\bf Example} \\ \hline \hline
|
||||
Company name & yes & Mega AG \\
|
||||
Registered office & yes & Seestrasse 4, 8008 Zuerich \\
|
||||
Company identification document & yes & PDF file \\
|
||||
Power of attorney arrangement & yes & PDF file \\
|
||||
Business registration number & yes & \\
|
||||
Business registration document & yes & PDF file \\
|
||||
Registration authority & yes & \\ \hline
|
||||
Contact person name & yes & Max Mustermann \\
|
||||
Identification document & yes & JPG image \\
|
||||
Date of birth & yes & 1.1.1980 \\
|
||||
Nationality & yes & Swiss \\
|
||||
E-mail & yes & me@example.com \\
|
||||
Phone number & no & +41-123456789 \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\end{table}
|
@ -1,88 +0,0 @@
|
||||
\section{KYC process}
|
||||
|
||||
\begin{figure}[h!]
|
||||
\begin{sequencediagram}
|
||||
\newinst{wallet}{\shortstack{Customer \\
|
||||
\\ \begin{tikzpicture}
|
||||
\node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Action};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{exchange}{\shortstack{Taler (exchange) \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
\newinst[2]{kyc}{\shortstack{KYC provider \\
|
||||
\\ \begin{tikzpicture}[shape aspect=.5]
|
||||
\tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}}
|
||||
\node at (1.5,0) {\shortstack{{{\tiny Database}}}};
|
||||
\end{tikzpicture}
|
||||
}}
|
||||
|
||||
\postlevel
|
||||
\mess[0]{wallet}{{Initial action}}{exchange}
|
||||
\begin{callself}{exchange}{Establish KYC requirement}{}
|
||||
\end{callself}
|
||||
\mess[0]{exchange}{Request new KYC process}{kyc}
|
||||
\mess[0]{kyc}{{Process identifier (PI)}}{exchange}
|
||||
\mess[0]{exchange}{{KYC required (PI)}}{wallet}
|
||||
\mess[0]{wallet}{{KYC start (PI)}}{kyc}
|
||||
\mess[0]{kyc}{{Request identity documentation}}{wallet}
|
||||
\mess[0]{wallet}{{Upload identity documentation}}{kyc}
|
||||
\begin{callself}{kyc}{Validate documentation}{}
|
||||
\end{callself}
|
||||
\mess[0]{kyc}{{Share documentation (PI)}}{exchange}
|
||||
\mess[0]{kyc}{{Confirm completion}}{wallet}
|
||||
\mess[0]{wallet}{{Retry action}}{exchange}
|
||||
\end{sequencediagram}
|
||||
\caption{Deposit interactions between customer, Taler exchange (payment
|
||||
service provider) and external KYC provider. The process can be
|
||||
triggered by various {\em actions} described in Chapter~\ref{chap:triggers}.}
|
||||
\label{fig:proc:kyc}
|
||||
\end{figure}
|
||||
|
||||
At the beginning of the KYC process, the user needs to specify whether they
|
||||
are an {\bf individual} or a {\bf business}.\footnote{ In practice, we expect
|
||||
most wallet-users to be individuals, but in principle a wallet could be owned
|
||||
by a business.} This then determines which types of attributes are collected
|
||||
in the KYC process (Table~\ref{table:proc:kyc:individual} vs.
|
||||
Table~\ref{table:proc:kyc:business}).
|
||||
|
||||
\begin{table}
|
||||
\caption{Information collected for individuals}
|
||||
\label{table:proc:kyc:individual}
|
||||
\begin{center}
|
||||
\begin{tabular}{l|c|r}
|
||||
{\bf Type} & {\bf Required} & {\bf Example} \\ \hline \hline
|
||||
Surname & yes & Mustermann \\
|
||||
First name(s) & yes & Max \\
|
||||
Date of birth & yes & 1.1.1980 \\
|
||||
Nationality & yes & Swiss \\
|
||||
Actual address of domicile & yes & Seestrasse 3, 8008 Zuerich \\
|
||||
Phone number & no & +41-123456789 \\
|
||||
E-mail & no & me@example.com \\
|
||||
Identification document & yes & JPG image \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
\begin{table}
|
||||
\caption{Information collected for businesses}
|
||||
\label{table:proc:kyc:business}
|
||||
\begin{center}
|
||||
\begin{tabular}{l|c|r}
|
||||
{\bf Type} & {\bf Required} & {\bf Example} \\ \hline \hline
|
||||
Company name & yes & Mega AG \\
|
||||
Registered office & yes & Seestrasse 4, 8008 Zuerich \\
|
||||
Company identification document & yes & PDF file \\ \hline
|
||||
Contact person name & yes & Max Mustermann \\
|
||||
Phone number & no & +41-123456789 \\
|
||||
E-mail & yes & me@example.com \\
|
||||
Identification document & yes & JPG image \\
|
||||
Date of birth & yes & 1.1.1980 \\
|
||||
Nationality & yes & Swiss \\ \hline
|
||||
Power of attorney arrangement & yes & PDF file \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\end{table}
|
@ -1 +1 @@
|
||||
Subproject commit 47cd9e96ca2b3ff39db16e667fb9a63652970628
|
||||
Subproject commit 8452f991dd967328207fab52a99beb19e2cb4dff
|
2
src/auditor/.gitignore
vendored
2
src/auditor/.gitignore
vendored
@ -24,5 +24,3 @@ taler-auditor-test.sqlite3
|
||||
libeufin-nexus.pid
|
||||
libeufin-sandbox.pid
|
||||
taler-helper-auditor-purses
|
||||
generate-kyc-basedb.conf.edited
|
||||
generate-auditor-basedb.conf.edited
|
||||
|
@ -207,22 +207,20 @@ taler_auditor_sync_CPPFLAGS = \
|
||||
|
||||
check_SCRIPTS = \
|
||||
test-auditor.sh \
|
||||
test-kyc.sh \
|
||||
test-revocation.sh \
|
||||
test-sync.sh
|
||||
|
||||
.NOTPARALLEL:
|
||||
# TESTS = $(check_SCRIPTS)
|
||||
# revocation test disabled for now: need working wallet first!
|
||||
TESTS = $(check_SCRIPTS)
|
||||
|
||||
EXTRA_DIST = \
|
||||
taler-auditor.in \
|
||||
taler-helper-auditor-render.py \
|
||||
auditor.conf \
|
||||
setup.sh \
|
||||
test-sync-in.conf \
|
||||
test-sync-out.conf \
|
||||
generate-auditor-basedb.sh \
|
||||
generate-auditor-basedb.conf \
|
||||
generate-kyc-basedb.conf \
|
||||
generate-revoke-basedb.sh \
|
||||
$(check_SCRIPTS)
|
||||
|
@ -17,7 +17,7 @@ AUDITOR_PRIV_FILE = ${TALER_DATA_HOME}/auditor/offline-keys/auditor.priv
|
||||
|
||||
# What is the Web site of the auditor (i.e. to file complaints about
|
||||
# a misbehaving exchange)?
|
||||
BASE_URL = http://localhost:8083/
|
||||
# BASE_URL = https://auditor.taler.net/
|
||||
|
||||
|
||||
# Network configuration for the normal API/service HTTP server
|
||||
|
@ -1,26 +1,14 @@
|
||||
[PATHS]
|
||||
TALER_CACHE_HOME = $TALER_HOME/.cache/taler/
|
||||
TALER_CONFIG_HOME = $TALER_HOME/.config/taler/
|
||||
TALER_DATA_HOME = $TALER_HOME/.local/share/taler/
|
||||
TALER_HOME = ${PWD}/generate_auditordb_home/
|
||||
[taler]
|
||||
CURRENCY = TESTKUDOS
|
||||
CURRENCY_ROUND_UNIT = TESTKUDOS:0.01
|
||||
[exchange-offline]
|
||||
MASTER_PRIV_FILE = auditor-basedb.mpriv
|
||||
|
||||
[exchange]
|
||||
MASTER_PUBLIC_KEY = M4FGP18EQFXFGGFQ1AWXHACN2JX0SMVK9CNF6459Z1WG18JSN0BG
|
||||
SIGNKEY_DURATION = 4 weeks
|
||||
LOOKAHEAD_SIGN = 32 weeks 1 day
|
||||
SIGNKEY_LEGAL_DURATION = 4 weeks
|
||||
AML_THRESHOLD = TESTKUDOS:1000000
|
||||
|
||||
[exchangedb-postgres]
|
||||
CONFIG = postgres:///auditor-basedb
|
||||
[instance-default]
|
||||
KEYFILE = ${TALER_DATA_HOME}/merchant/default.priv
|
||||
NAME = Merchant Inc.
|
||||
|
||||
[exchange-account-1]
|
||||
PAYTO_URI = payto://iban/SANDBOXX/DE989651?receiver-name=Exchange+Company
|
||||
ENABLE_DEBIT = YES
|
||||
ENABLE_CREDIT = YES
|
||||
enable_debit = yes
|
||||
enable_credit = yes
|
||||
|
||||
[exchange-accountcredentials-1]
|
||||
WIRE_GATEWAY_URL = http://localhost:8082/facades/test-facade/taler-wire-gateway/
|
||||
@ -28,38 +16,24 @@ WIRE_GATEWAY_AUTH_METHOD = basic
|
||||
USERNAME = exchange
|
||||
PASSWORD = x
|
||||
|
||||
[merchant]
|
||||
WIREFORMAT = default
|
||||
DEFAULT_MAX_DEPOSIT_FEE = TESTKUDOS:0.1
|
||||
KEYFILE = ${TALER_DATA_HOME}/merchant/merchant.priv
|
||||
DEFAULT_MAX_WIRE_FEE = TESTKUDOS:0.10
|
||||
WIRE_TRANSFER_DELAY = 1 minute
|
||||
FORCE_AUDIT = YES
|
||||
|
||||
[merchantdb-postgres]
|
||||
CONFIG = postgres:///auditor-basedb
|
||||
[merchant-account-merchant]
|
||||
PAYTO_URI = payto://x-taler-bank/localhost/42
|
||||
HONOR_default = YES
|
||||
ACTIVE_default = YES
|
||||
|
||||
[merchant-exchange-default]
|
||||
MASTER_KEY = M4FGP18EQFXFGGFQ1AWXHACN2JX0SMVK9CNF6459Z1WG18JSN0BG
|
||||
MASTER_KEY = RKNMPRGXCX35H11WEYXDXYHPR7NX2QK9BG15MT0QEF75PC5KR470
|
||||
EXCHANGE_BASE_URL = http://localhost:8081/
|
||||
CURRENCY = TESTKUDOS
|
||||
|
||||
[bank]
|
||||
HTTP_PORT = 8082
|
||||
|
||||
[libeufin-nexus]
|
||||
DB_CONNECTION="jdbc:postgresql://localhost/auditor-basedb?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg&socketFactoryArg=/var/run/postgresql/.s.PGSQL.5432"
|
||||
|
||||
[libeufin-sandbox]
|
||||
DB_CONNECTION="jdbc:postgresql://localhost/auditor-basedb?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg&socketFactoryArg=/var/run/postgresql/.s.PGSQL.5432"
|
||||
|
||||
[auditor]
|
||||
BASE_URL = http://localhost:8083/
|
||||
TINY_AMOUNT = TESTKUDOS:0.01
|
||||
PUBLIC_KEY = 0EHPW5WEKHXPPN4MPJNGA7Z6D29JP21GKVNV8ARFB1YW7WWJX20G
|
||||
|
||||
[auditordb-postgres]
|
||||
CONFIG = postgres:///auditor-basedb
|
||||
[payments-generator]
|
||||
currency = TESTKUDOS
|
||||
instance = default
|
||||
bank = http://localhost:8082/
|
||||
merchant = http://localhost:9966/
|
||||
exchange_admin = http://localhost:18080/
|
||||
exchange-admin = http://localhost:18080/
|
||||
exchange = http://localhost:8081/
|
||||
|
||||
[coin_kudos_ct_1]
|
||||
value = TESTKUDOS:0.01
|
||||
@ -156,3 +130,61 @@ fee_refresh = TESTKUDOS:0.03
|
||||
fee_refund = TESTKUDOS:0.01
|
||||
CIPHER = RSA
|
||||
rsa_keysize = 1024
|
||||
|
||||
[benchmark]
|
||||
BANK_DETAILS = bank_details.json
|
||||
MERCHANT_DETAILS = merchant_details.json
|
||||
|
||||
[arm]
|
||||
CONFIG = /research/taler/exchange/src/auditor/auditor-basedb.conf
|
||||
|
||||
[taler]
|
||||
CURRENCY_ROUND_UNIT = TESTKUDOS:0.01
|
||||
CURRENCY = TESTKUDOS
|
||||
AML_THRESHOLD = TESTKUDOS:1000000
|
||||
|
||||
[merchantdb-postgres]
|
||||
CONFIG = postgres:///auditor-basedb
|
||||
|
||||
[merchant]
|
||||
WIREFORMAT = default
|
||||
DEFAULT_MAX_DEPOSIT_FEE = TESTKUDOS:0.1
|
||||
KEYFILE = ${TALER_DATA_HOME}/merchant/merchant.priv
|
||||
DEFAULT_MAX_WIRE_FEE = TESTKUDOS:0.10
|
||||
WIRE_TRANSFER_DELAY = 1 minute
|
||||
FORCE_AUDIT = YES
|
||||
UNIXPATH = ${TALER_RUNTIME_DIR}/merchant.http
|
||||
|
||||
[exchangedb-postgres]
|
||||
CONFIG = postgres:///auditor-basedb
|
||||
|
||||
[exchange]
|
||||
MASTER_PUBLIC_KEY = RKNMPRGXCX35H11WEYXDXYHPR7NX2QK9BG15MT0QEF75PC5KR470
|
||||
SIGNKEY_DURATION = 4 weeks
|
||||
LOOKAHEAD_SIGN = 32 weeks 1 day
|
||||
SIGNKEY_LEGAL_DURATION = 4 weeks
|
||||
UNIXPATH = ${TALER_RUNTIME_DIR}/exchange.http
|
||||
|
||||
[bank]
|
||||
HTTP_PORT = 8082
|
||||
SUGGESTED_EXCHANGE = http://localhost:8081/
|
||||
SUGGESTED_EXCHANGE_PAYTO = payto://x-taler-bank/localhost/2
|
||||
ALLOW_REGISTRATIONS = YES
|
||||
SERVE = http
|
||||
MAX_DEBT_BANK = TESTKUDOS:100000.0
|
||||
MAX_DEBT = TESTKUDOS:50.0
|
||||
DATABASE = postgres:///auditor-basedb
|
||||
|
||||
[auditordb-postgres]
|
||||
CONFIG = postgres:///auditor-basedb
|
||||
|
||||
[auditor]
|
||||
BASE_URL = http://localhost:8083/
|
||||
TINY_AMOUNT = TESTKUDOS:0.01
|
||||
PUBLIC_KEY = 0EHPW5WEKHXPPN4MPJNGA7Z6D29JP21GKVNV8ARFB1YW7WWJX20G
|
||||
|
||||
[PATHS]
|
||||
TALER_CACHE_HOME = $TALER_HOME/.cache/taler/
|
||||
TALER_CONFIG_HOME = $TALER_HOME/.config/taler/
|
||||
TALER_DATA_HOME = $TALER_HOME/.local/share/taler/
|
||||
TALER_HOME = ${PWD}/generate_auditordb_home/
|
||||
|
@ -1,86 +1,412 @@
|
||||
#!/bin/bash
|
||||
# This file is in the public domain.
|
||||
# Script to generate the basic database for auditor
|
||||
# testing from a 'correct' interaction between exchange,
|
||||
# wallet and merchant.
|
||||
#
|
||||
# Script to generate the basic database for auditor testing from a 'correct'
|
||||
# interaction between exchange, wallet and merchant.
|
||||
# Creates $BASEDB.sql, $BASEDB.fees,
|
||||
# $BASEDB.{mpub,mpriv}.
|
||||
# Default $BASEDB is "auditor-basedb", override via $1.
|
||||
#
|
||||
# Creates "$1.sql".
|
||||
#
|
||||
# Requires the wallet CLI to be installed and in the path. Furthermore, the
|
||||
# user running this script must be Postgres superuser and be allowed to
|
||||
# create/drop databases.
|
||||
# Currently must be run online as it interacts with
|
||||
# bank.test.taler.net; also requires the wallet CLI
|
||||
# to be installed and in the path. Furthermore, the
|
||||
# user running this script must be Postgres superuser
|
||||
# and be allowed to create/drop databases.
|
||||
#
|
||||
set -eu
|
||||
#set -x
|
||||
|
||||
. setup.sh
|
||||
# Cleanup to run whenever we exit
|
||||
function exit_cleanup()
|
||||
{
|
||||
echo "Running generate-auditor-basedb exit cleanup logic..."
|
||||
if test -f ${MY_TMP_DIR:-/}/libeufin-sandbox.pid
|
||||
then
|
||||
PID=`cat ${MY_TMP_DIR}/libeufin-sandbox.pid 2> /dev/null`
|
||||
kill $PID 2> /dev/null || true
|
||||
rm ${MY_TMP_DIR}/libeufin-sandbox.pid
|
||||
echo "Killed libeufin sandbox $PID"
|
||||
wait $PID || true
|
||||
fi
|
||||
if test -f ${MY_TMP_DIR:-/}/libeufin-nexus.pid
|
||||
then
|
||||
PID=`cat ${MY_TMP_DIR}/libeufin-nexus.pid 2> /dev/null`
|
||||
kill $PID 2> /dev/null || true
|
||||
rm ${MY_TMP_DIR}/libeufin-nexus.pid
|
||||
echo "Killed libeufin nexus $PID"
|
||||
wait $PID || true
|
||||
fi
|
||||
echo "killing libeufin DONE"
|
||||
for n in `jobs -p`
|
||||
do
|
||||
kill $n 2> /dev/null || true
|
||||
done
|
||||
wait || true
|
||||
}
|
||||
|
||||
CONF="generate-auditor-basedb.conf"
|
||||
# Parse command-line options
|
||||
while getopts ':c:d:h' OPTION; do
|
||||
case "$OPTION" in
|
||||
c)
|
||||
CONF="$OPTARG"
|
||||
;;
|
||||
d)
|
||||
BASEDB="$OPTARG"
|
||||
;;
|
||||
h)
|
||||
echo 'Supported options:'
|
||||
# shellcheck disable=SC2016
|
||||
echo ' -c $CONF -- set configuration'
|
||||
# shellcheck disable=SC2016
|
||||
echo ' -d $DB -- set database name'
|
||||
;;
|
||||
?)
|
||||
exit_fail "Unrecognized command line option"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# Install cleanup handler (except for kill -9)
|
||||
trap exit_cleanup EXIT
|
||||
|
||||
|
||||
# Exit, with status code "skip" (no 'real' failure)
|
||||
function exit_skip() {
|
||||
echo "SKIPPING: $1"
|
||||
exit 77
|
||||
}
|
||||
# Where do we write the result?
|
||||
if [ ! -v BASEDB ]
|
||||
then
|
||||
exit_fail "-d option required"
|
||||
fi
|
||||
BASEDB=${1:-"auditor-basedb"}
|
||||
# Name of the Postgres database we will use for the script.
|
||||
# Will be dropped, do NOT use anything that might be used
|
||||
# elsewhere
|
||||
export TARGET_DB=`basename ${BASEDB}`
|
||||
|
||||
echo -n "Testing for curl ..."
|
||||
export WALLET_DB=${BASEDB:-"wallet"}.wdb
|
||||
|
||||
# delete existing wallet database
|
||||
rm -f $WALLET_DB
|
||||
|
||||
# Configuration file will be edited, so we create one
|
||||
# from the template.
|
||||
export CONF=$1.conf
|
||||
cp generate-auditor-basedb.conf $CONF
|
||||
echo "Created configuration at ${CONF}"
|
||||
DATA_DIR=$1/exchange-data-dir/
|
||||
mkdir -p $DATA_DIR
|
||||
taler-config -c $CONF -s PATHS -o TALER_HOME -V $DATA_DIR
|
||||
|
||||
echo -n "Testing for libeufin"
|
||||
libeufin-cli --help >/dev/null </dev/null || exit_skip " MISSING"
|
||||
echo " FOUND"
|
||||
echo -n "Testing for taler-wallet-cli"
|
||||
taler-wallet-cli -v >/dev/null </dev/null || exit_skip " MISSING"
|
||||
echo " FOUND"
|
||||
echo -n "Testing for curl"
|
||||
curl --help >/dev/null </dev/null || exit_skip " MISSING"
|
||||
echo " FOUND"
|
||||
|
||||
|
||||
# reset database
|
||||
echo -n "Reset 'auditor-basedb' database at $PGHOST ..."
|
||||
dropdb "auditor-basedb" >/dev/null 2>/dev/null || true
|
||||
createdb "auditor-basedb" || exit_skip "Could not create database '$BASEDB' at $PGHOST"
|
||||
echo " DONE"
|
||||
|
||||
# Launch exchange, merchant and bank.
|
||||
setup -c "$CONF" \
|
||||
-aenmsw \
|
||||
-d "iban"
|
||||
dropdb $TARGET_DB >/dev/null 2>/dev/null || true
|
||||
createdb $TARGET_DB || exit_skip "Could not create database $TARGET_DB"
|
||||
ORIGIN=`pwd`
|
||||
MY_TMP_DIR=`dirname $1`
|
||||
|
||||
# obtain key configuration data
|
||||
EXCHANGE_URL=$(taler-config -c "$CONF" -s EXCHANGE -o BASE_URL)
|
||||
MERCHANT_PORT=$(taler-config -c "$CONF" -s MERCHANT -o PORT)
|
||||
MERCHANT_URL="http://localhost:${MERCHANT_PORT}/"
|
||||
BANK_PORT=$(taler-config -c "$CONF" -s BANK -o HTTP_PORT)
|
||||
MASTER_PRIV_FILE=$1.mpriv
|
||||
MASTER_PRIV_DIR=`dirname $MASTER_PRIV_FILE`
|
||||
taler-config -f -c ${CONF} -s exchange-offline -o MASTER_PRIV_FILE -V ${MASTER_PRIV_FILE}
|
||||
rm -f "${MASTER_PRIV_FILE}"
|
||||
mkdir -p $MASTER_PRIV_DIR
|
||||
gnunet-ecc -l/dev/null -g1 $MASTER_PRIV_FILE > /dev/null
|
||||
export MASTER_PUB=`gnunet-ecc -p $MASTER_PRIV_FILE`
|
||||
export EXCHANGE_URL=`taler-config -c $CONF -s EXCHANGE -o BASE_URL`
|
||||
MERCHANT_PORT=`taler-config -c $CONF -s MERCHANT -o PORT`
|
||||
export MERCHANT_URL=http://localhost:${MERCHANT_PORT}/
|
||||
BANK_PORT=`taler-config -c $CONF -s BANK -o HTTP_PORT`
|
||||
BANK_URL="http://localhost:1${BANK_PORT}"
|
||||
export AUDITOR_URL=http://localhost:8083/
|
||||
AUDITOR_PRIV_FILE=$1.apriv
|
||||
AUDITOR_PRIV_DIR=`dirname $AUDITOR_PRIV_FILE`
|
||||
taler-config -f -c ${CONF} -s auditor -o AUDITOR_PRIV_FILE -V ${AUDITOR_PRIV_FILE}
|
||||
mkdir -p $AUDITOR_PRIV_DIR
|
||||
gnunet-ecc -l/dev/null -g1 $AUDITOR_PRIV_FILE > /dev/null
|
||||
AUDITOR_PUB=`gnunet-ecc -p $AUDITOR_PRIV_FILE`
|
||||
|
||||
echo "MASTER PUB is ${MASTER_PUB} using file ${MASTER_PRIV_FILE}"
|
||||
echo "AUDITOR PUB is ${AUDITOR_PUB} using file ${AUDITOR_PRIV_FILE}"
|
||||
|
||||
# patch configuration
|
||||
taler-config -c $CONF -s exchange -o MASTER_PUBLIC_KEY -V $MASTER_PUB
|
||||
taler-config -c $CONF -s auditor -o PUBLIC_KEY -V $AUDITOR_PUB
|
||||
taler-config -c $CONF -s merchant-exchange-default -o MASTER_KEY -V $MASTER_PUB
|
||||
|
||||
taler-config -c $CONF -s exchangedb-postgres -o CONFIG -V postgres:///$TARGET_DB
|
||||
taler-config -c $CONF -s auditordb-postgres -o CONFIG -V postgres:///$TARGET_DB
|
||||
taler-config -c $CONF -s merchantdb-postgres -o CONFIG -V postgres:///$TARGET_DB
|
||||
taler-config -c $CONF -s bank -o database -V postgres:///$TARGET_DB
|
||||
|
||||
# setup exchange
|
||||
echo "Setting up exchange"
|
||||
taler-exchange-dbinit -c $CONF
|
||||
|
||||
echo "Setting up merchant"
|
||||
taler-merchant-dbinit -c $CONF
|
||||
|
||||
# setup auditor
|
||||
echo "Setting up auditor"
|
||||
taler-auditor-dbinit -c $CONF || exit_skip "Failed to initialize auditor DB"
|
||||
taler-auditor-exchange -c $CONF -m $MASTER_PUB -u $EXCHANGE_URL || exit_skip "Failed to add exchange to auditor"
|
||||
|
||||
# Launch services
|
||||
echo "Launching services (pre audit DB: $TARGET_DB)"
|
||||
|
||||
rm -rf ${TARGET_DB}-sandbox.sqlite3
|
||||
export LIBEUFIN_SANDBOX_DB_CONNECTION="jdbc:sqlite:${TARGET_DB}-sandbox.sqlite3"
|
||||
# Create the default demobank.
|
||||
cd $MY_TMP_DIR
|
||||
export LIBEUFIN_SANDBOX_ADMIN_PASSWORD=secret
|
||||
libeufin-sandbox config --currency "TESTKUDOS" default
|
||||
libeufin-sandbox serve --port "1${BANK_PORT}" \
|
||||
> ${MY_TMP_DIR}/libeufin-sandbox-stdout.log \
|
||||
2> ${MY_TMP_DIR}/libeufin-sandbox-stderr.log &
|
||||
echo $! > ${MY_TMP_DIR}/libeufin-sandbox.pid
|
||||
cd $ORIGIN
|
||||
export LIBEUFIN_SANDBOX_URL="http://localhost:1${BANK_PORT}"
|
||||
set +e
|
||||
echo -n "Waiting for Sandbox..."
|
||||
OK=0
|
||||
for n in `seq 1 100`; do
|
||||
echo -n "."
|
||||
sleep 1
|
||||
if wget --timeout=1 \
|
||||
--user admin --password secret --auth-no-challenge \
|
||||
--tries=3 --waitretry=0 \
|
||||
-o /dev/null -O /dev/null \
|
||||
${LIBEUFIN_SANDBOX_URL};
|
||||
then
|
||||
OK=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test $OK != 1
|
||||
then
|
||||
exit_skip " Failed to launch sandbox"
|
||||
fi
|
||||
echo "OK"
|
||||
|
||||
register_sandbox_account() {
|
||||
export LIBEUFIN_SANDBOX_USERNAME=$1
|
||||
export LIBEUFIN_SANDBOX_PASSWORD=$2
|
||||
cd $MY_TMP_DIR
|
||||
libeufin-cli sandbox \
|
||||
demobank \
|
||||
register --name "$3"
|
||||
cd $ORIGIN
|
||||
unset LIBEUFIN_SANDBOX_USERNAME
|
||||
unset LIBEUFIN_SANDBOX_PASSWORD
|
||||
}
|
||||
set -e
|
||||
echo -n "Register the 'fortytwo' Sandbox user.."
|
||||
register_sandbox_account fortytwo x "Forty Two"
|
||||
echo OK
|
||||
echo -n "Register the 'fortythree' Sandbox user.."
|
||||
register_sandbox_account fortythree x "Forty Three"
|
||||
echo OK
|
||||
echo -n "Register 'exchange' Sandbox user.."
|
||||
register_sandbox_account exchange x "Exchange Company"
|
||||
echo OK
|
||||
echo -n "Specify exchange's PAYTO_URI in the config ..."
|
||||
export LIBEUFIN_SANDBOX_USERNAME=exchange
|
||||
export LIBEUFIN_SANDBOX_PASSWORD=x
|
||||
cd $MY_TMP_DIR
|
||||
PAYTO=`libeufin-cli sandbox demobank info --bank-account exchange | jq --raw-output '.paytoUri'`
|
||||
taler-config -c $CONF -s exchange-account-1 -o PAYTO_URI -V $PAYTO
|
||||
echo " OK"
|
||||
echo -n "Setting this exchange as the bank's default ..."
|
||||
EXCHANGE_PAYTO=`libeufin-cli sandbox demobank info --bank-account exchange | jq --raw-output '.paytoUri'`
|
||||
libeufin-sandbox default-exchange "$EXCHANGE_URL" "$EXCHANGE_PAYTO"
|
||||
echo " OK"
|
||||
# Prepare EBICS: create Ebics host and Exchange subscriber.
|
||||
# Shortly becoming admin to setup Ebics.
|
||||
export LIBEUFIN_SANDBOX_USERNAME=admin
|
||||
export LIBEUFIN_SANDBOX_PASSWORD=secret
|
||||
echo -n "Create EBICS host at Sandbox.."
|
||||
libeufin-cli sandbox \
|
||||
--sandbox-url "http://localhost:1${BANK_PORT}" \
|
||||
ebicshost create --host-id "talerebics"
|
||||
echo "OK"
|
||||
echo -n "Create exchange EBICS subscriber at Sandbox.."
|
||||
libeufin-cli sandbox \
|
||||
demobank new-ebicssubscriber --host-id talerebics \
|
||||
--user-id exchangeebics --partner-id talerpartner \
|
||||
--bank-account exchange # that's a username _and_ a bank account name
|
||||
echo "OK"
|
||||
unset LIBEUFIN_SANDBOX_USERNAME
|
||||
unset LIBEUFIN_SANDBOX_PASSWORD
|
||||
# Prepare Nexus, which is the side actually talking
|
||||
# to the exchange.
|
||||
rm -rf ${TARGET_DB}-nexus.sqlite3
|
||||
export LIBEUFIN_NEXUS_DB_CONNECTION="jdbc:sqlite:${TARGET_DB}-nexus.sqlite3"
|
||||
# For convenience, username and password are
|
||||
# identical to those used at the Sandbox.
|
||||
echo -n "Create exchange Nexus user..."
|
||||
libeufin-nexus superuser exchange --password x
|
||||
echo " OK"
|
||||
libeufin-nexus serve --port ${BANK_PORT} \
|
||||
2> ${MY_TMP_DIR}/libeufin-nexus-stderr.log \
|
||||
> ${MY_TMP_DIR}/libeufin-nexus-stdout.log &
|
||||
echo $! > ${MY_TMP_DIR}/libeufin-nexus.pid
|
||||
export LIBEUFIN_NEXUS_URL="http://localhost:${BANK_PORT}"
|
||||
echo -n "Waiting for Nexus..."
|
||||
set +e
|
||||
OK=0
|
||||
for n in `seq 1 50`; do
|
||||
echo -n "."
|
||||
sleep 1
|
||||
if wget --timeout=1 \
|
||||
--tries=3 --waitretry=0 \
|
||||
-o /dev/null -O /dev/null \
|
||||
$LIBEUFIN_NEXUS_URL;
|
||||
then
|
||||
OK=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test $OK != 1
|
||||
then
|
||||
exit_skip " Failed to launch Nexus at $LIBEUFIN_NEXUS_URL"
|
||||
fi
|
||||
set -e
|
||||
echo "OK"
|
||||
export LIBEUFIN_NEXUS_USERNAME=exchange
|
||||
export LIBEUFIN_NEXUS_PASSWORD=x
|
||||
echo -n "Creating an EBICS connection at Nexus..."
|
||||
libeufin-cli connections new-ebics-connection \
|
||||
--ebics-url "http://localhost:1${BANK_PORT}/ebicsweb" \
|
||||
--host-id "talerebics" \
|
||||
--partner-id "talerpartner" \
|
||||
--ebics-user-id "exchangeebics" \
|
||||
talerconn
|
||||
echo "OK"
|
||||
echo -n "Setup EBICS keying..."
|
||||
libeufin-cli connections connect "talerconn" > /dev/null
|
||||
echo "OK"
|
||||
echo -n "Download bank account name from Sandbox..."
|
||||
libeufin-cli connections download-bank-accounts "talerconn"
|
||||
echo "OK"
|
||||
echo -n "Importing bank account info into Nexus..."
|
||||
libeufin-cli connections import-bank-account \
|
||||
--offered-account-id "exchange" \
|
||||
--nexus-bank-account-id "exchange-nexus" \
|
||||
"talerconn"
|
||||
echo "OK"
|
||||
echo -n "Setup payments submission task..."
|
||||
# Tries every second.
|
||||
libeufin-cli accounts task-schedule \
|
||||
--task-type submit \
|
||||
--task-name "exchange-payments" \
|
||||
--task-cronspec "* * *" \
|
||||
"exchange-nexus"
|
||||
echo "OK"
|
||||
# Tries every second. Ask C52
|
||||
echo -n "Setup history fetch task..."
|
||||
libeufin-cli accounts task-schedule \
|
||||
--task-type fetch \
|
||||
--task-name "exchange-history" \
|
||||
--task-cronspec "* * *" \
|
||||
--task-param-level report \
|
||||
--task-param-range-type latest \
|
||||
"exchange-nexus"
|
||||
echo "OK"
|
||||
# create Taler facade.
|
||||
echo -n "Create the Taler facade at Nexus..."
|
||||
libeufin-cli facades \
|
||||
new-taler-wire-gateway-facade \
|
||||
--currency "TESTKUDOS" --facade-name "test-facade" \
|
||||
"talerconn" "exchange-nexus"
|
||||
echo "OK"
|
||||
cd $ORIGIN
|
||||
# Facade schema: http://localhost:$BANK_PORT/facades/test-facade/taler-wire-gateway/
|
||||
|
||||
|
||||
TFN=`which taler-exchange-httpd`
|
||||
TBINPFX=`dirname $TFN`
|
||||
TLIBEXEC=${TBINPFX}/../lib/taler/libexec/
|
||||
taler-exchange-secmod-eddsa -c $CONF 2> ${MY_TMP_DIR}/taler-exchange-secmod-eddsa.log &
|
||||
taler-exchange-secmod-rsa -c $CONF 2> ${MY_TMP_DIR}/taler-exchange-secmod-rsa.log &
|
||||
taler-exchange-secmod-cs -c $CONF 2> ${MY_TMP_DIR}/taler-exchange-secmod-cs.log &
|
||||
taler-exchange-httpd -c $CONF 2> ${MY_TMP_DIR}/taler-exchange-httpd.log &
|
||||
taler-merchant-httpd -c $CONF -L INFO 2> ${MY_TMP_DIR}/taler-merchant-httpd.log &
|
||||
taler-exchange-wirewatch -c $CONF 2> ${MY_TMP_DIR}/taler-exchange-wirewatch.log &
|
||||
taler-auditor-httpd -L INFO -c $CONF 2> ${MY_TMP_DIR}/taler-auditor-httpd.log &
|
||||
export BANK_PORT
|
||||
export EXCHANGE_URL
|
||||
export MERCHANT_URL
|
||||
export AUDITOR_URL
|
||||
|
||||
echo -n "Waiting for services to be available "
|
||||
# Wait for all bank to be available (usually the slowest)
|
||||
for n in `seq 1 50`
|
||||
do
|
||||
echo -n "."
|
||||
sleep 0.2
|
||||
OK=0
|
||||
# bank
|
||||
wget http://localhost:${BANK_PORT}/ -o /dev/null -O /dev/null >/dev/null || continue
|
||||
OK=1
|
||||
break
|
||||
done
|
||||
|
||||
if [ 1 != $OK ]
|
||||
then
|
||||
exit_skip "Failed to launch services (bank)"
|
||||
fi
|
||||
|
||||
# Wait for all services to be available
|
||||
for n in `seq 1 50`
|
||||
do
|
||||
echo -n "."
|
||||
sleep 0.1
|
||||
OK=0
|
||||
# exchange
|
||||
wget ${EXCHANGE_URL}seed -o /dev/null -O /dev/null >/dev/null || continue
|
||||
# merchant
|
||||
wget ${MERCHANT_URL} -o /dev/null -O /dev/null >/dev/null || continue
|
||||
# Auditor
|
||||
wget ${AUDITOR_URL} -o /dev/null -O /dev/null >/dev/null || continue
|
||||
OK=1
|
||||
break
|
||||
done
|
||||
|
||||
if [ 1 != $OK ]
|
||||
then
|
||||
bash
|
||||
exit_skip "Failed to launch services (Taler)"
|
||||
fi
|
||||
echo -n "Setting up keys"
|
||||
taler-exchange-offline -c $CONF \
|
||||
download sign \
|
||||
enable-account `taler-config -c $CONF -s exchange-account-1 -o PAYTO_URI` \
|
||||
enable-auditor $AUDITOR_PUB $AUDITOR_URL "TESTKUDOS Auditor" \
|
||||
wire-fee now iban TESTKUDOS:0.07 TESTKUDOS:0.01 \
|
||||
global-fee now TESTKUDOS:0.01 TESTKUDOS:0.01 TESTKUDOS:0.01 1h 1year 5 \
|
||||
upload &> ${MY_TMP_DIR}/taler-exchange-offline.log
|
||||
|
||||
echo -n "."
|
||||
|
||||
for n in `seq 1 2`
|
||||
do
|
||||
echo -n "."
|
||||
OK=0
|
||||
wget --timeout=1 http://localhost:8081/keys -o /dev/null -O /dev/null >/dev/null || continue
|
||||
OK=1
|
||||
break
|
||||
done
|
||||
|
||||
if [ 1 != $OK ]
|
||||
then
|
||||
exit_skip "Failed to setup keys"
|
||||
fi
|
||||
|
||||
echo " DONE"
|
||||
echo -n "Adding auditor signatures ..."
|
||||
|
||||
taler-auditor-offline -c $CONF \
|
||||
download sign upload &> ${MY_TMP_DIR}/taler-auditor-offline.log
|
||||
|
||||
echo " DONE"
|
||||
# Setup merchant
|
||||
|
||||
echo -n "Setting up merchant"
|
||||
|
||||
curl -H "Content-Type: application/json" -X POST -d '{"auth":{"method":"external"},"accounts":[{"payto_uri":"payto://iban/SANDBOXX/DE474361?receiver-name=Merchant43"}],"id":"default","name":"default","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us" : 3600000000},"default_pay_delay":{"d_us": 3600000000}}' http://localhost:9966/management/instances
|
||||
|
||||
|
||||
echo -n "Setting up merchant ..."
|
||||
curl -H "Content-Type: application/json" -X POST -d '{"auth":{"method":"external"},"accounts":[{"payto_uri":"payto://iban/SANDBOXX/DE474361?receiver-name=Merchant43"}],"id":"default","name":"default","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us" : 3600000000},"default_pay_delay":{"d_us": 3600000000}}' "${MERCHANT_URL}management/instances"
|
||||
echo " DONE"
|
||||
|
||||
# delete existing wallet database
|
||||
export WALLET_DB="wallet.wdb"
|
||||
rm -f "$WALLET_DB"
|
||||
# run wallet CLI
|
||||
echo "Running wallet"
|
||||
|
||||
echo -n "Running wallet ..."
|
||||
taler-wallet-cli \
|
||||
--no-throttle \
|
||||
--wallet-db="$WALLET_DB" \
|
||||
api \
|
||||
--expect-success \
|
||||
'runIntegrationTest' \
|
||||
taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB api --expect-success 'runIntegrationTest' \
|
||||
"$(jq -n '
|
||||
{
|
||||
amountToSpend: "TESTKUDOS:4",
|
||||
@ -92,30 +418,28 @@ taler-wallet-cli \
|
||||
--arg MERCHANT_URL "$MERCHANT_URL" \
|
||||
--arg EXCHANGE_URL "$EXCHANGE_URL" \
|
||||
--arg BANK_URL "$BANK_URL/demobanks/default/access-api/"
|
||||
)" &> taler-wallet-cli.log
|
||||
echo " DONE"
|
||||
)" &> ${MY_TMP_DIR}/taler-wallet-cli.log
|
||||
|
||||
taler-wallet-cli --wallet-db="$WALLET_DB" run-until-done
|
||||
taler-wallet-cli --wallet-db="$WALLET_DB" advanced run-pending
|
||||
echo "Shutting down services"
|
||||
exit_cleanup
|
||||
|
||||
# Dump database
|
||||
mkdir -p "$(dirname "$BASEDB")"
|
||||
echo "Dumping database ${BASEDB}(-libeufin).sql"
|
||||
pg_dump -O $TARGET_DB | sed -e '/AS integer/d' > ${BASEDB}.sql
|
||||
cd $MY_TMP_DIR
|
||||
sqlite3 ${TARGET_DB}-nexus.sqlite3 ".dump" > ${BASEDB}-libeufin-nexus.sql
|
||||
sqlite3 ${TARGET_DB}-sandbox.sqlite3 ".dump" > ${BASEDB}-libeufin-sandbox.sql
|
||||
rm ${TARGET_DB}-sandbox.sqlite3 ${TARGET_DB}-nexus.sqlite3 # libeufin DB
|
||||
cd $ORIGIN
|
||||
|
||||
echo "Dumping database ${BASEDB}.sql"
|
||||
pg_dump -O "auditor-basedb" | sed -e '/AS integer/d' > "${BASEDB}.sql"
|
||||
cp "${CONF}.edited" "${BASEDB}.conf"
|
||||
cp "$(taler-config -c "${CONF}.edited" -s exchange-offline -o MASTER_PRIV_FILE -f)" "${BASEDB}.mpriv"
|
||||
echo $MASTER_PUB > ${BASEDB}.mpub
|
||||
|
||||
# clean up
|
||||
echo -n "Final clean up ..."
|
||||
kill -TERM "$SETUP_PID"
|
||||
wait
|
||||
unset SETUP_PID
|
||||
dropdb "auditor-basedb"
|
||||
echo " DONE"
|
||||
echo "Final clean up"
|
||||
dropdb $TARGET_DB
|
||||
|
||||
echo "====================================="
|
||||
echo "Finished generation of ${BASEDB}.sql"
|
||||
echo " Finished generation of $BASEDB"
|
||||
echo "====================================="
|
||||
|
||||
exit 0
|
||||
|
@ -1,4 +0,0 @@
|
||||
# This file is in the public domain.
|
||||
@INLINE@ generate-auditor-basedb.conf
|
||||
|
||||
# FIXME: add options for KYC here!
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user