From 02b4a2ad6208c3b70a4a194b4c763a4e4334cdc1 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 4 Jan 2018 11:08:39 +0100 Subject: store sender wire info in separate store --- src/dbTypes.ts | 17 ++++++ src/helpers.ts | 14 +++++ src/i18n/de.po | 113 ++++++++++++++++++++------------------- src/i18n/en-US.po | 113 ++++++++++++++++++++------------------- src/i18n/fr.po | 113 ++++++++++++++++++++------------------- src/i18n/it.po | 113 ++++++++++++++++++++------------------- src/i18n/strings.ts | 8 +-- src/i18n/taler-wallet-webex.pot | 113 ++++++++++++++++++++------------------- src/talerTypes.ts | 13 +++++ src/wallet.ts | 41 ++++++++++---- src/walletTypes.ts | 2 +- src/webex/pages/return-coins.tsx | 2 +- 12 files changed, 365 insertions(+), 297 deletions(-) diff --git a/src/dbTypes.ts b/src/dbTypes.ts index e0adb6fc4..264f81dd5 100644 --- a/src/dbTypes.ts +++ b/src/dbTypes.ts @@ -34,6 +34,7 @@ import { PayReq, RefundPermission, TipResponse, + WireDetail, } from "./talerTypes"; @@ -809,3 +810,19 @@ export interface PurchaseRecord { */ timestamp_refund: number; } + + +/** + * Information about wire information for bank accounts we withdrew coins from. + */ +export interface SenderWireRecord { + /** + * Wire details. + */ + senderWire: WireDetail; + + /** + * Identifier, hash code of canonicalized senderWire. + */ + id: number; +} diff --git a/src/helpers.ts b/src/helpers.ts index d85808acb..42863c65b 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -138,3 +138,17 @@ export function getTalerStampDate(stamp: string): Date | null { return new Date(sec * 1000); } +export function hash(val: any): number { + const str = canonicalJson(val); + // https://github.com/darkskyapp/string-hash + let h = 5381; + let i = str.length; + while (i) { + h = (h * 33) ^ str.charCodeAt(--i); + } + + /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed + * integers. Since we want the results to be always positive, convert the + * signed int to an unsigned by doing an unsigned bitshift. */ + return h >>> 0; +} diff --git a/src/i18n/de.po b/src/i18n/de.po index 49b7ada8f..21ff8dfe0 100644 --- a/src/i18n/de.po +++ b/src/i18n/de.po @@ -27,28 +27,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:70 +#: src/webex/pages/confirm-contract.tsx:73 #, c-format msgid "show more details\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:84 +#: src/webex/pages/confirm-contract.tsx:87 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:89 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:156 +#: src/webex/pages/confirm-contract.tsx:159 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:158 +#: src/webex/pages/confirm-contract.tsx:161 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,37 +56,37 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:214 +#: src/webex/pages/confirm-contract.tsx:217 #, c-format msgid "The merchant%1$s offers you to purchase:\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:235 +#: src/webex/pages/confirm-contract.tsx:238 #, fuzzy, c-format msgid "Confirm payment" msgstr "Bezahlung bestätigen" -#: src/webex/pages/confirm-create-reserve.tsx:121 +#: src/webex/pages/confirm-create-reserve.tsx:126 #, c-format msgid "Select" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:137 +#: src/webex/pages/confirm-create-reserve.tsx:142 #, c-format msgid "Error: URL may not be relative" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:205 +#: src/webex/pages/confirm-create-reserve.tsx:210 #, c-format msgid "The exchange is trusted by the wallet.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:211 +#: src/webex/pages/confirm-create-reserve.tsx:216 #, c-format msgid "The exchange is audited by a trusted auditor.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:217 +#: src/webex/pages/confirm-create-reserve.tsx:222 #, c-format msgid "" "Warning: The exchange is neither directly trusted nor audited by a trusted " @@ -94,7 +94,7 @@ msgid "" "If you withdraw from this exchange, it will be trusted in the future.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:226 +#: src/webex/pages/confirm-create-reserve.tsx:231 #, c-format msgid "" "Using exchange provider%1$s.\n" @@ -102,135 +102,135 @@ msgid "" " %2$s in fees.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:240 +#: src/webex/pages/confirm-create-reserve.tsx:245 #, c-format msgid "" "Waiting for a response from\n" " %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:257 +#: src/webex/pages/confirm-create-reserve.tsx:262 #, c-format msgid "" "Information about fees will be available when an exchange provider is " "selected." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:300 +#: src/webex/pages/confirm-create-reserve.tsx:307 #, c-format msgid "Accept fees and withdraw" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:305 +#: src/webex/pages/confirm-create-reserve.tsx:312 #, c-format msgid "Change Exchange Provider" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:357 +#: src/webex/pages/confirm-create-reserve.tsx:364 #, c-format msgid "You are about to withdraw %1$s from your bank account into your wallet." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:442 +#: src/webex/pages/confirm-create-reserve.tsx:449 #, c-format msgid "" "Oops, something went wrong. The wallet responded with error status (%1$s)." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:451 +#: src/webex/pages/confirm-create-reserve.tsx:458 #, c-format msgid "Checking URL, please wait ..." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:465 +#: src/webex/pages/confirm-create-reserve.tsx:472 #, c-format msgid "Can't parse amount: %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:472 +#: src/webex/pages/confirm-create-reserve.tsx:479 #, c-format msgid "Can't parse wire_types: %1$s" msgstr "" #. #-#-#-#-# - (PACKAGE VERSION) #-#-#-#-# #. TODO:generic error reporting function or component. -#: src/webex/pages/confirm-create-reserve.tsx:498 src/webex/pages/tip.tsx:148 +#: src/webex/pages/confirm-create-reserve.tsx:505 src/webex/pages/tip.tsx:155 #, c-format msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:160 +#: src/webex/pages/popup.tsx:162 #, c-format msgid "Balance" msgstr "Saldo" -#: src/webex/pages/popup.tsx:163 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "History" msgstr "Verlauf" -#: src/webex/pages/popup.tsx:166 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "Debug" msgstr "Debug" -#: src/webex/pages/popup.tsx:246 +#: src/webex/pages/popup.tsx:248 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:251 +#: src/webex/pages/popup.tsx:253 #, fuzzy, c-format msgid "" "You have no balance to show. Need some\n" " %1$s getting started?\n" msgstr "Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?" -#: src/webex/pages/popup.tsx:268 +#: src/webex/pages/popup.tsx:270 #, c-format msgid "%1$s incoming\n" msgstr "" -#: src/webex/pages/popup.tsx:281 +#: src/webex/pages/popup.tsx:283 #, c-format msgid "%1$s being spent\n" msgstr "" -#: src/webex/pages/popup.tsx:307 +#: src/webex/pages/popup.tsx:309 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:334 +#: src/webex/pages/popup.tsx:336 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:335 +#: src/webex/pages/popup.tsx:337 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:336 +#: src/webex/pages/popup.tsx:338 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:348 +#: src/webex/pages/popup.tsx:350 #, fuzzy, c-format msgid "" "Bank requested reserve (%1$s) for\n" " %2$s.\n" msgstr "Bank bestätig anlegen der Reserve (%1$s) bei %2$s" -#: src/webex/pages/popup.tsx:358 +#: src/webex/pages/popup.tsx:360 #, fuzzy, c-format msgid "" "Started to withdraw\n" " %1$s%2$sfrom%3$s(%4$s).\n" msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" -#: src/webex/pages/popup.tsx:367 +#: src/webex/pages/popup.tsx:369 #, fuzzy, c-format msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgstr "" @@ -238,99 +238,100 @@ msgstr "" " möchte einen Vertrag über %2$s\n" " mit Ihnen abschließen." -#: src/webex/pages/popup.tsx:378 +#: src/webex/pages/popup.tsx:380 #, fuzzy, c-format msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" -#: src/webex/pages/popup.tsx:388 +#: src/webex/pages/popup.tsx:390 #, fuzzy, c-format msgid "" "Paid%1$sto merchant%2$s.\n" "%3$s(%4$s)\n" msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" -#: src/webex/pages/popup.tsx:398 +#: src/webex/pages/popup.tsx:400 #, c-format msgid "Merchant%1$sgave a refund over%2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:408 +#: src/webex/pages/popup.tsx:410 #, fuzzy, c-format msgid "" -"Merchant%1$sgave a%2$sof%3$s.\n" +"Merchant%1$sgave\n" +"a%2$sof%3$s.\n" "%4$s%5$s" msgstr "" "%1$s\n" " möchte einen Vertrag über %2$s\n" " mit Ihnen abschließen." -#: src/webex/pages/popup.tsx:417 +#: src/webex/pages/popup.tsx:420 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:460 +#: src/webex/pages/popup.tsx:463 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:485 +#: src/webex/pages/popup.tsx:488 #, c-format msgid "Your wallet has no events recorded." msgstr "Ihre Geldbörse verzeichnet keine Vorkommnisse." -#: src/webex/pages/return-coins.tsx:104 +#: src/webex/pages/return-coins.tsx:105 #, c-format msgid "Wire to bank account" msgstr "" -#: src/webex/pages/return-coins.tsx:172 +#: src/webex/pages/return-coins.tsx:173 #, fuzzy, c-format msgid "Confirm" msgstr "Bezahlung bestätigen" -#: src/webex/pages/return-coins.tsx:175 +#: src/webex/pages/return-coins.tsx:176 #, fuzzy, c-format msgid "Cancel" msgstr "Saldo" -#: src/webex/renderHtml.tsx:212 +#: src/webex/renderHtml.tsx:216 #, fuzzy, c-format msgid "Withdrawal fees:" msgstr "Abheben bei" -#: src/webex/renderHtml.tsx:213 +#: src/webex/renderHtml.tsx:217 #, c-format msgid "Rounding loss:" msgstr "" -#: src/webex/renderHtml.tsx:214 +#: src/webex/renderHtml.tsx:218 #, c-format msgid "Earliest expiration (for deposit): %1$s" msgstr "" -#: src/webex/renderHtml.tsx:220 +#: src/webex/renderHtml.tsx:224 #, c-format msgid "# Coins" msgstr "" -#: src/webex/renderHtml.tsx:221 +#: src/webex/renderHtml.tsx:225 #, c-format msgid "Value" msgstr "" -#: src/webex/renderHtml.tsx:222 +#: src/webex/renderHtml.tsx:226 #, fuzzy, c-format msgid "Withdraw Fee" msgstr "Abheben bei %1$s" -#: src/webex/renderHtml.tsx:223 +#: src/webex/renderHtml.tsx:227 #, c-format msgid "Refresh Fee" msgstr "" -#: src/webex/renderHtml.tsx:224 +#: src/webex/renderHtml.tsx:228 #, c-format msgid "Deposit Fee" msgstr "" diff --git a/src/i18n/en-US.po b/src/i18n/en-US.po index e42d81fb5..3307229b1 100644 --- a/src/i18n/en-US.po +++ b/src/i18n/en-US.po @@ -27,28 +27,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:70 +#: src/webex/pages/confirm-contract.tsx:73 #, c-format msgid "show more details\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:84 +#: src/webex/pages/confirm-contract.tsx:87 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:89 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:156 +#: src/webex/pages/confirm-contract.tsx:159 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:158 +#: src/webex/pages/confirm-contract.tsx:161 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,37 +56,37 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:214 +#: src/webex/pages/confirm-contract.tsx:217 #, c-format msgid "The merchant%1$s offers you to purchase:\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:235 +#: src/webex/pages/confirm-contract.tsx:238 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:121 +#: src/webex/pages/confirm-create-reserve.tsx:126 #, c-format msgid "Select" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:137 +#: src/webex/pages/confirm-create-reserve.tsx:142 #, c-format msgid "Error: URL may not be relative" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:205 +#: src/webex/pages/confirm-create-reserve.tsx:210 #, c-format msgid "The exchange is trusted by the wallet.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:211 +#: src/webex/pages/confirm-create-reserve.tsx:216 #, c-format msgid "The exchange is audited by a trusted auditor.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:217 +#: src/webex/pages/confirm-create-reserve.tsx:222 #, c-format msgid "" "Warning: The exchange is neither directly trusted nor audited by a trusted " @@ -94,7 +94,7 @@ msgid "" "If you withdraw from this exchange, it will be trusted in the future.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:226 +#: src/webex/pages/confirm-create-reserve.tsx:231 #, c-format msgid "" "Using exchange provider%1$s.\n" @@ -102,229 +102,230 @@ msgid "" " %2$s in fees.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:240 +#: src/webex/pages/confirm-create-reserve.tsx:245 #, c-format msgid "" "Waiting for a response from\n" " %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:257 +#: src/webex/pages/confirm-create-reserve.tsx:262 #, c-format msgid "" "Information about fees will be available when an exchange provider is " "selected." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:300 +#: src/webex/pages/confirm-create-reserve.tsx:307 #, c-format msgid "Accept fees and withdraw" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:305 +#: src/webex/pages/confirm-create-reserve.tsx:312 #, c-format msgid "Change Exchange Provider" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:357 +#: src/webex/pages/confirm-create-reserve.tsx:364 #, c-format msgid "You are about to withdraw %1$s from your bank account into your wallet." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:442 +#: src/webex/pages/confirm-create-reserve.tsx:449 #, c-format msgid "" "Oops, something went wrong. The wallet responded with error status (%1$s)." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:451 +#: src/webex/pages/confirm-create-reserve.tsx:458 #, c-format msgid "Checking URL, please wait ..." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:465 +#: src/webex/pages/confirm-create-reserve.tsx:472 #, c-format msgid "Can't parse amount: %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:472 +#: src/webex/pages/confirm-create-reserve.tsx:479 #, c-format msgid "Can't parse wire_types: %1$s" msgstr "" #. #-#-#-#-# - (PACKAGE VERSION) #-#-#-#-# #. TODO:generic error reporting function or component. -#: src/webex/pages/confirm-create-reserve.tsx:498 src/webex/pages/tip.tsx:148 +#: src/webex/pages/confirm-create-reserve.tsx:505 src/webex/pages/tip.tsx:155 #, c-format msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:160 +#: src/webex/pages/popup.tsx:162 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:163 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:166 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:246 +#: src/webex/pages/popup.tsx:248 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:251 +#: src/webex/pages/popup.tsx:253 #, c-format msgid "" "You have no balance to show. Need some\n" " %1$s getting started?\n" msgstr "" -#: src/webex/pages/popup.tsx:268 +#: src/webex/pages/popup.tsx:270 #, c-format msgid "%1$s incoming\n" msgstr "" -#: src/webex/pages/popup.tsx:281 +#: src/webex/pages/popup.tsx:283 #, c-format msgid "%1$s being spent\n" msgstr "" -#: src/webex/pages/popup.tsx:307 +#: src/webex/pages/popup.tsx:309 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:334 +#: src/webex/pages/popup.tsx:336 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:335 +#: src/webex/pages/popup.tsx:337 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:336 +#: src/webex/pages/popup.tsx:338 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:348 +#: src/webex/pages/popup.tsx:350 #, c-format msgid "" "Bank requested reserve (%1$s) for\n" " %2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:358 +#: src/webex/pages/popup.tsx:360 #, c-format msgid "" "Started to withdraw\n" " %1$s%2$sfrom%3$s(%4$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:367 +#: src/webex/pages/popup.tsx:369 #, c-format msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:378 +#: src/webex/pages/popup.tsx:380 #, c-format msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:388 +#: src/webex/pages/popup.tsx:390 #, c-format msgid "" "Paid%1$sto merchant%2$s.\n" "%3$s(%4$s)\n" msgstr "" -#: src/webex/pages/popup.tsx:398 +#: src/webex/pages/popup.tsx:400 #, c-format msgid "Merchant%1$sgave a refund over%2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:408 +#: src/webex/pages/popup.tsx:410 #, c-format msgid "" -"Merchant%1$sgave a%2$sof%3$s.\n" +"Merchant%1$sgave\n" +"a%2$sof%3$s.\n" "%4$s%5$s" msgstr "" -#: src/webex/pages/popup.tsx:417 +#: src/webex/pages/popup.tsx:420 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:460 +#: src/webex/pages/popup.tsx:463 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:485 +#: src/webex/pages/popup.tsx:488 #, c-format msgid "Your wallet has no events recorded." msgstr "" -#: src/webex/pages/return-coins.tsx:104 +#: src/webex/pages/return-coins.tsx:105 #, c-format msgid "Wire to bank account" msgstr "" -#: src/webex/pages/return-coins.tsx:172 +#: src/webex/pages/return-coins.tsx:173 #, c-format msgid "Confirm" msgstr "" -#: src/webex/pages/return-coins.tsx:175 +#: src/webex/pages/return-coins.tsx:176 #, c-format msgid "Cancel" msgstr "" -#: src/webex/renderHtml.tsx:212 +#: src/webex/renderHtml.tsx:216 #, c-format msgid "Withdrawal fees:" msgstr "" -#: src/webex/renderHtml.tsx:213 +#: src/webex/renderHtml.tsx:217 #, c-format msgid "Rounding loss:" msgstr "" -#: src/webex/renderHtml.tsx:214 +#: src/webex/renderHtml.tsx:218 #, c-format msgid "Earliest expiration (for deposit): %1$s" msgstr "" -#: src/webex/renderHtml.tsx:220 +#: src/webex/renderHtml.tsx:224 #, c-format msgid "# Coins" msgstr "" -#: src/webex/renderHtml.tsx:221 +#: src/webex/renderHtml.tsx:225 #, c-format msgid "Value" msgstr "" -#: src/webex/renderHtml.tsx:222 +#: src/webex/renderHtml.tsx:226 #, c-format msgid "Withdraw Fee" msgstr "" -#: src/webex/renderHtml.tsx:223 +#: src/webex/renderHtml.tsx:227 #, c-format msgid "Refresh Fee" msgstr "" -#: src/webex/renderHtml.tsx:224 +#: src/webex/renderHtml.tsx:228 #, c-format msgid "Deposit Fee" msgstr "" diff --git a/src/i18n/fr.po b/src/i18n/fr.po index 6b126178f..b955dc6a1 100644 --- a/src/i18n/fr.po +++ b/src/i18n/fr.po @@ -27,28 +27,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:70 +#: src/webex/pages/confirm-contract.tsx:73 #, c-format msgid "show more details\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:84 +#: src/webex/pages/confirm-contract.tsx:87 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:89 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:156 +#: src/webex/pages/confirm-contract.tsx:159 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:158 +#: src/webex/pages/confirm-contract.tsx:161 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,37 +56,37 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:214 +#: src/webex/pages/confirm-contract.tsx:217 #, c-format msgid "The merchant%1$s offers you to purchase:\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:235 +#: src/webex/pages/confirm-contract.tsx:238 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:121 +#: src/webex/pages/confirm-create-reserve.tsx:126 #, c-format msgid "Select" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:137 +#: src/webex/pages/confirm-create-reserve.tsx:142 #, c-format msgid "Error: URL may not be relative" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:205 +#: src/webex/pages/confirm-create-reserve.tsx:210 #, c-format msgid "The exchange is trusted by the wallet.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:211 +#: src/webex/pages/confirm-create-reserve.tsx:216 #, c-format msgid "The exchange is audited by a trusted auditor.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:217 +#: src/webex/pages/confirm-create-reserve.tsx:222 #, c-format msgid "" "Warning: The exchange is neither directly trusted nor audited by a trusted " @@ -94,7 +94,7 @@ msgid "" "If you withdraw from this exchange, it will be trusted in the future.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:226 +#: src/webex/pages/confirm-create-reserve.tsx:231 #, c-format msgid "" "Using exchange provider%1$s.\n" @@ -102,229 +102,230 @@ msgid "" " %2$s in fees.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:240 +#: src/webex/pages/confirm-create-reserve.tsx:245 #, c-format msgid "" "Waiting for a response from\n" " %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:257 +#: src/webex/pages/confirm-create-reserve.tsx:262 #, c-format msgid "" "Information about fees will be available when an exchange provider is " "selected." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:300 +#: src/webex/pages/confirm-create-reserve.tsx:307 #, c-format msgid "Accept fees and withdraw" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:305 +#: src/webex/pages/confirm-create-reserve.tsx:312 #, c-format msgid "Change Exchange Provider" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:357 +#: src/webex/pages/confirm-create-reserve.tsx:364 #, c-format msgid "You are about to withdraw %1$s from your bank account into your wallet." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:442 +#: src/webex/pages/confirm-create-reserve.tsx:449 #, c-format msgid "" "Oops, something went wrong. The wallet responded with error status (%1$s)." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:451 +#: src/webex/pages/confirm-create-reserve.tsx:458 #, c-format msgid "Checking URL, please wait ..." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:465 +#: src/webex/pages/confirm-create-reserve.tsx:472 #, c-format msgid "Can't parse amount: %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:472 +#: src/webex/pages/confirm-create-reserve.tsx:479 #, c-format msgid "Can't parse wire_types: %1$s" msgstr "" #. #-#-#-#-# - (PACKAGE VERSION) #-#-#-#-# #. TODO:generic error reporting function or component. -#: src/webex/pages/confirm-create-reserve.tsx:498 src/webex/pages/tip.tsx:148 +#: src/webex/pages/confirm-create-reserve.tsx:505 src/webex/pages/tip.tsx:155 #, c-format msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:160 +#: src/webex/pages/popup.tsx:162 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:163 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:166 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:246 +#: src/webex/pages/popup.tsx:248 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:251 +#: src/webex/pages/popup.tsx:253 #, c-format msgid "" "You have no balance to show. Need some\n" " %1$s getting started?\n" msgstr "" -#: src/webex/pages/popup.tsx:268 +#: src/webex/pages/popup.tsx:270 #, c-format msgid "%1$s incoming\n" msgstr "" -#: src/webex/pages/popup.tsx:281 +#: src/webex/pages/popup.tsx:283 #, c-format msgid "%1$s being spent\n" msgstr "" -#: src/webex/pages/popup.tsx:307 +#: src/webex/pages/popup.tsx:309 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:334 +#: src/webex/pages/popup.tsx:336 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:335 +#: src/webex/pages/popup.tsx:337 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:336 +#: src/webex/pages/popup.tsx:338 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:348 +#: src/webex/pages/popup.tsx:350 #, c-format msgid "" "Bank requested reserve (%1$s) for\n" " %2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:358 +#: src/webex/pages/popup.tsx:360 #, c-format msgid "" "Started to withdraw\n" " %1$s%2$sfrom%3$s(%4$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:367 +#: src/webex/pages/popup.tsx:369 #, c-format msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:378 +#: src/webex/pages/popup.tsx:380 #, c-format msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:388 +#: src/webex/pages/popup.tsx:390 #, c-format msgid "" "Paid%1$sto merchant%2$s.\n" "%3$s(%4$s)\n" msgstr "" -#: src/webex/pages/popup.tsx:398 +#: src/webex/pages/popup.tsx:400 #, c-format msgid "Merchant%1$sgave a refund over%2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:408 +#: src/webex/pages/popup.tsx:410 #, c-format msgid "" -"Merchant%1$sgave a%2$sof%3$s.\n" +"Merchant%1$sgave\n" +"a%2$sof%3$s.\n" "%4$s%5$s" msgstr "" -#: src/webex/pages/popup.tsx:417 +#: src/webex/pages/popup.tsx:420 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:460 +#: src/webex/pages/popup.tsx:463 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:485 +#: src/webex/pages/popup.tsx:488 #, c-format msgid "Your wallet has no events recorded." msgstr "" -#: src/webex/pages/return-coins.tsx:104 +#: src/webex/pages/return-coins.tsx:105 #, c-format msgid "Wire to bank account" msgstr "" -#: src/webex/pages/return-coins.tsx:172 +#: src/webex/pages/return-coins.tsx:173 #, c-format msgid "Confirm" msgstr "" -#: src/webex/pages/return-coins.tsx:175 +#: src/webex/pages/return-coins.tsx:176 #, c-format msgid "Cancel" msgstr "" -#: src/webex/renderHtml.tsx:212 +#: src/webex/renderHtml.tsx:216 #, c-format msgid "Withdrawal fees:" msgstr "" -#: src/webex/renderHtml.tsx:213 +#: src/webex/renderHtml.tsx:217 #, c-format msgid "Rounding loss:" msgstr "" -#: src/webex/renderHtml.tsx:214 +#: src/webex/renderHtml.tsx:218 #, c-format msgid "Earliest expiration (for deposit): %1$s" msgstr "" -#: src/webex/renderHtml.tsx:220 +#: src/webex/renderHtml.tsx:224 #, c-format msgid "# Coins" msgstr "" -#: src/webex/renderHtml.tsx:221 +#: src/webex/renderHtml.tsx:225 #, c-format msgid "Value" msgstr "" -#: src/webex/renderHtml.tsx:222 +#: src/webex/renderHtml.tsx:226 #, c-format msgid "Withdraw Fee" msgstr "" -#: src/webex/renderHtml.tsx:223 +#: src/webex/renderHtml.tsx:227 #, c-format msgid "Refresh Fee" msgstr "" -#: src/webex/renderHtml.tsx:224 +#: src/webex/renderHtml.tsx:228 #, c-format msgid "Deposit Fee" msgstr "" diff --git a/src/i18n/it.po b/src/i18n/it.po index 6b126178f..b955dc6a1 100644 --- a/src/i18n/it.po +++ b/src/i18n/it.po @@ -27,28 +27,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:70 +#: src/webex/pages/confirm-contract.tsx:73 #, c-format msgid "show more details\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:84 +#: src/webex/pages/confirm-contract.tsx:87 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:89 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:156 +#: src/webex/pages/confirm-contract.tsx:159 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:158 +#: src/webex/pages/confirm-contract.tsx:161 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,37 +56,37 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:214 +#: src/webex/pages/confirm-contract.tsx:217 #, c-format msgid "The merchant%1$s offers you to purchase:\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:235 +#: src/webex/pages/confirm-contract.tsx:238 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:121 +#: src/webex/pages/confirm-create-reserve.tsx:126 #, c-format msgid "Select" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:137 +#: src/webex/pages/confirm-create-reserve.tsx:142 #, c-format msgid "Error: URL may not be relative" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:205 +#: src/webex/pages/confirm-create-reserve.tsx:210 #, c-format msgid "The exchange is trusted by the wallet.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:211 +#: src/webex/pages/confirm-create-reserve.tsx:216 #, c-format msgid "The exchange is audited by a trusted auditor.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:217 +#: src/webex/pages/confirm-create-reserve.tsx:222 #, c-format msgid "" "Warning: The exchange is neither directly trusted nor audited by a trusted " @@ -94,7 +94,7 @@ msgid "" "If you withdraw from this exchange, it will be trusted in the future.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:226 +#: src/webex/pages/confirm-create-reserve.tsx:231 #, c-format msgid "" "Using exchange provider%1$s.\n" @@ -102,229 +102,230 @@ msgid "" " %2$s in fees.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:240 +#: src/webex/pages/confirm-create-reserve.tsx:245 #, c-format msgid "" "Waiting for a response from\n" " %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:257 +#: src/webex/pages/confirm-create-reserve.tsx:262 #, c-format msgid "" "Information about fees will be available when an exchange provider is " "selected." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:300 +#: src/webex/pages/confirm-create-reserve.tsx:307 #, c-format msgid "Accept fees and withdraw" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:305 +#: src/webex/pages/confirm-create-reserve.tsx:312 #, c-format msgid "Change Exchange Provider" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:357 +#: src/webex/pages/confirm-create-reserve.tsx:364 #, c-format msgid "You are about to withdraw %1$s from your bank account into your wallet." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:442 +#: src/webex/pages/confirm-create-reserve.tsx:449 #, c-format msgid "" "Oops, something went wrong. The wallet responded with error status (%1$s)." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:451 +#: src/webex/pages/confirm-create-reserve.tsx:458 #, c-format msgid "Checking URL, please wait ..." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:465 +#: src/webex/pages/confirm-create-reserve.tsx:472 #, c-format msgid "Can't parse amount: %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:472 +#: src/webex/pages/confirm-create-reserve.tsx:479 #, c-format msgid "Can't parse wire_types: %1$s" msgstr "" #. #-#-#-#-# - (PACKAGE VERSION) #-#-#-#-# #. TODO:generic error reporting function or component. -#: src/webex/pages/confirm-create-reserve.tsx:498 src/webex/pages/tip.tsx:148 +#: src/webex/pages/confirm-create-reserve.tsx:505 src/webex/pages/tip.tsx:155 #, c-format msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:160 +#: src/webex/pages/popup.tsx:162 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:163 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:166 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:246 +#: src/webex/pages/popup.tsx:248 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:251 +#: src/webex/pages/popup.tsx:253 #, c-format msgid "" "You have no balance to show. Need some\n" " %1$s getting started?\n" msgstr "" -#: src/webex/pages/popup.tsx:268 +#: src/webex/pages/popup.tsx:270 #, c-format msgid "%1$s incoming\n" msgstr "" -#: src/webex/pages/popup.tsx:281 +#: src/webex/pages/popup.tsx:283 #, c-format msgid "%1$s being spent\n" msgstr "" -#: src/webex/pages/popup.tsx:307 +#: src/webex/pages/popup.tsx:309 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:334 +#: src/webex/pages/popup.tsx:336 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:335 +#: src/webex/pages/popup.tsx:337 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:336 +#: src/webex/pages/popup.tsx:338 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:348 +#: src/webex/pages/popup.tsx:350 #, c-format msgid "" "Bank requested reserve (%1$s) for\n" " %2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:358 +#: src/webex/pages/popup.tsx:360 #, c-format msgid "" "Started to withdraw\n" " %1$s%2$sfrom%3$s(%4$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:367 +#: src/webex/pages/popup.tsx:369 #, c-format msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:378 +#: src/webex/pages/popup.tsx:380 #, c-format msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:388 +#: src/webex/pages/popup.tsx:390 #, c-format msgid "" "Paid%1$sto merchant%2$s.\n" "%3$s(%4$s)\n" msgstr "" -#: src/webex/pages/popup.tsx:398 +#: src/webex/pages/popup.tsx:400 #, c-format msgid "Merchant%1$sgave a refund over%2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:408 +#: src/webex/pages/popup.tsx:410 #, c-format msgid "" -"Merchant%1$sgave a%2$sof%3$s.\n" +"Merchant%1$sgave\n" +"a%2$sof%3$s.\n" "%4$s%5$s" msgstr "" -#: src/webex/pages/popup.tsx:417 +#: src/webex/pages/popup.tsx:420 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:460 +#: src/webex/pages/popup.tsx:463 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:485 +#: src/webex/pages/popup.tsx:488 #, c-format msgid "Your wallet has no events recorded." msgstr "" -#: src/webex/pages/return-coins.tsx:104 +#: src/webex/pages/return-coins.tsx:105 #, c-format msgid "Wire to bank account" msgstr "" -#: src/webex/pages/return-coins.tsx:172 +#: src/webex/pages/return-coins.tsx:173 #, c-format msgid "Confirm" msgstr "" -#: src/webex/pages/return-coins.tsx:175 +#: src/webex/pages/return-coins.tsx:176 #, c-format msgid "Cancel" msgstr "" -#: src/webex/renderHtml.tsx:212 +#: src/webex/renderHtml.tsx:216 #, c-format msgid "Withdrawal fees:" msgstr "" -#: src/webex/renderHtml.tsx:213 +#: src/webex/renderHtml.tsx:217 #, c-format msgid "Rounding loss:" msgstr "" -#: src/webex/renderHtml.tsx:214 +#: src/webex/renderHtml.tsx:218 #, c-format msgid "Earliest expiration (for deposit): %1$s" msgstr "" -#: src/webex/renderHtml.tsx:220 +#: src/webex/renderHtml.tsx:224 #, c-format msgid "# Coins" msgstr "" -#: src/webex/renderHtml.tsx:221 +#: src/webex/renderHtml.tsx:225 #, c-format msgid "Value" msgstr "" -#: src/webex/renderHtml.tsx:222 +#: src/webex/renderHtml.tsx:226 #, c-format msgid "Withdraw Fee" msgstr "" -#: src/webex/renderHtml.tsx:223 +#: src/webex/renderHtml.tsx:227 #, c-format msgid "Refresh Fee" msgstr "" -#: src/webex/renderHtml.tsx:224 +#: src/webex/renderHtml.tsx:228 #, c-format msgid "Deposit Fee" msgstr "" diff --git a/src/i18n/strings.ts b/src/i18n/strings.ts index d18368adc..9e78abc39 100644 --- a/src/i18n/strings.ts +++ b/src/i18n/strings.ts @@ -144,7 +144,7 @@ strings['de'] = { "Merchant%1$sgave a refund over%2$s.\n": [ "" ], - "Merchant%1$sgave a%2$sof%3$s.\n%4$s%5$s": [ + "Merchant%1$sgave\na%2$sof%3$s.\n%4$s%5$s": [ "%1$s\n möchte einen Vertrag über %2$s\n mit Ihnen abschließen." ], "Unknown event (%1$s)": [ @@ -333,7 +333,7 @@ strings['en-US'] = { "Merchant%1$sgave a refund over%2$s.\n": [ "" ], - "Merchant%1$sgave a%2$sof%3$s.\n%4$s%5$s": [ + "Merchant%1$sgave\na%2$sof%3$s.\n%4$s%5$s": [ "" ], "Unknown event (%1$s)": [ @@ -522,7 +522,7 @@ strings['fr'] = { "Merchant%1$sgave a refund over%2$s.\n": [ "" ], - "Merchant%1$sgave a%2$sof%3$s.\n%4$s%5$s": [ + "Merchant%1$sgave\na%2$sof%3$s.\n%4$s%5$s": [ "" ], "Unknown event (%1$s)": [ @@ -711,7 +711,7 @@ strings['it'] = { "Merchant%1$sgave a refund over%2$s.\n": [ "" ], - "Merchant%1$sgave a%2$sof%3$s.\n%4$s%5$s": [ + "Merchant%1$sgave\na%2$sof%3$s.\n%4$s%5$s": [ "" ], "Unknown event (%1$s)": [ diff --git a/src/i18n/taler-wallet-webex.pot b/src/i18n/taler-wallet-webex.pot index 6b126178f..b955dc6a1 100644 --- a/src/i18n/taler-wallet-webex.pot +++ b/src/i18n/taler-wallet-webex.pot @@ -27,28 +27,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/webex/pages/confirm-contract.tsx:70 +#: src/webex/pages/confirm-contract.tsx:73 #, c-format msgid "show more details\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:84 +#: src/webex/pages/confirm-contract.tsx:87 #, c-format msgid "Accepted exchanges:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:89 +#: src/webex/pages/confirm-contract.tsx:92 #, c-format msgid "Exchanges in the wallet:" msgstr "" -#: src/webex/pages/confirm-contract.tsx:156 +#: src/webex/pages/confirm-contract.tsx:159 #, c-format msgid "You have insufficient funds of the requested currency in your wallet." msgstr "" #. tslint:disable-next-line:max-line-length -#: src/webex/pages/confirm-contract.tsx:158 +#: src/webex/pages/confirm-contract.tsx:161 #, c-format msgid "" "You do not have any funds from an exchange that is accepted by this " @@ -56,37 +56,37 @@ msgid "" "wallet." msgstr "" -#: src/webex/pages/confirm-contract.tsx:214 +#: src/webex/pages/confirm-contract.tsx:217 #, c-format msgid "The merchant%1$s offers you to purchase:\n" msgstr "" -#: src/webex/pages/confirm-contract.tsx:235 +#: src/webex/pages/confirm-contract.tsx:238 #, c-format msgid "Confirm payment" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:121 +#: src/webex/pages/confirm-create-reserve.tsx:126 #, c-format msgid "Select" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:137 +#: src/webex/pages/confirm-create-reserve.tsx:142 #, c-format msgid "Error: URL may not be relative" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:205 +#: src/webex/pages/confirm-create-reserve.tsx:210 #, c-format msgid "The exchange is trusted by the wallet.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:211 +#: src/webex/pages/confirm-create-reserve.tsx:216 #, c-format msgid "The exchange is audited by a trusted auditor.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:217 +#: src/webex/pages/confirm-create-reserve.tsx:222 #, c-format msgid "" "Warning: The exchange is neither directly trusted nor audited by a trusted " @@ -94,7 +94,7 @@ msgid "" "If you withdraw from this exchange, it will be trusted in the future.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:226 +#: src/webex/pages/confirm-create-reserve.tsx:231 #, c-format msgid "" "Using exchange provider%1$s.\n" @@ -102,229 +102,230 @@ msgid "" " %2$s in fees.\n" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:240 +#: src/webex/pages/confirm-create-reserve.tsx:245 #, c-format msgid "" "Waiting for a response from\n" " %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:257 +#: src/webex/pages/confirm-create-reserve.tsx:262 #, c-format msgid "" "Information about fees will be available when an exchange provider is " "selected." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:300 +#: src/webex/pages/confirm-create-reserve.tsx:307 #, c-format msgid "Accept fees and withdraw" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:305 +#: src/webex/pages/confirm-create-reserve.tsx:312 #, c-format msgid "Change Exchange Provider" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:357 +#: src/webex/pages/confirm-create-reserve.tsx:364 #, c-format msgid "You are about to withdraw %1$s from your bank account into your wallet." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:442 +#: src/webex/pages/confirm-create-reserve.tsx:449 #, c-format msgid "" "Oops, something went wrong. The wallet responded with error status (%1$s)." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:451 +#: src/webex/pages/confirm-create-reserve.tsx:458 #, c-format msgid "Checking URL, please wait ..." msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:465 +#: src/webex/pages/confirm-create-reserve.tsx:472 #, c-format msgid "Can't parse amount: %1$s" msgstr "" -#: src/webex/pages/confirm-create-reserve.tsx:472 +#: src/webex/pages/confirm-create-reserve.tsx:479 #, c-format msgid "Can't parse wire_types: %1$s" msgstr "" #. #-#-#-#-# - (PACKAGE VERSION) #-#-#-#-# #. TODO:generic error reporting function or component. -#: src/webex/pages/confirm-create-reserve.tsx:498 src/webex/pages/tip.tsx:148 +#: src/webex/pages/confirm-create-reserve.tsx:505 src/webex/pages/tip.tsx:155 #, c-format msgid "Fatal error: \"%1$s\"." msgstr "" -#: src/webex/pages/popup.tsx:160 +#: src/webex/pages/popup.tsx:162 #, c-format msgid "Balance" msgstr "" -#: src/webex/pages/popup.tsx:163 +#: src/webex/pages/popup.tsx:165 #, c-format msgid "History" msgstr "" -#: src/webex/pages/popup.tsx:166 +#: src/webex/pages/popup.tsx:168 #, c-format msgid "Debug" msgstr "" -#: src/webex/pages/popup.tsx:246 +#: src/webex/pages/popup.tsx:248 #, c-format msgid "help" msgstr "" -#: src/webex/pages/popup.tsx:251 +#: src/webex/pages/popup.tsx:253 #, c-format msgid "" "You have no balance to show. Need some\n" " %1$s getting started?\n" msgstr "" -#: src/webex/pages/popup.tsx:268 +#: src/webex/pages/popup.tsx:270 #, c-format msgid "%1$s incoming\n" msgstr "" -#: src/webex/pages/popup.tsx:281 +#: src/webex/pages/popup.tsx:283 #, c-format msgid "%1$s being spent\n" msgstr "" -#: src/webex/pages/popup.tsx:307 +#: src/webex/pages/popup.tsx:309 #, c-format msgid "Error: could not retrieve balance information." msgstr "" -#: src/webex/pages/popup.tsx:334 +#: src/webex/pages/popup.tsx:336 #, c-format msgid "Payback" msgstr "" -#: src/webex/pages/popup.tsx:335 +#: src/webex/pages/popup.tsx:337 #, c-format msgid "Return Electronic Cash to Bank Account" msgstr "" -#: src/webex/pages/popup.tsx:336 +#: src/webex/pages/popup.tsx:338 #, c-format msgid "Manage Trusted Auditors and Exchanges" msgstr "" -#: src/webex/pages/popup.tsx:348 +#: src/webex/pages/popup.tsx:350 #, c-format msgid "" "Bank requested reserve (%1$s) for\n" " %2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:358 +#: src/webex/pages/popup.tsx:360 #, c-format msgid "" "Started to withdraw\n" " %1$s%2$sfrom%3$s(%4$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:367 +#: src/webex/pages/popup.tsx:369 #, c-format msgid "Merchant%1$soffered%2$scontract%3$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:378 +#: src/webex/pages/popup.tsx:380 #, c-format msgid "Withdrew%1$sfrom%2$s(%3$s).\n" msgstr "" -#: src/webex/pages/popup.tsx:388 +#: src/webex/pages/popup.tsx:390 #, c-format msgid "" "Paid%1$sto merchant%2$s.\n" "%3$s(%4$s)\n" msgstr "" -#: src/webex/pages/popup.tsx:398 +#: src/webex/pages/popup.tsx:400 #, c-format msgid "Merchant%1$sgave a refund over%2$s.\n" msgstr "" -#: src/webex/pages/popup.tsx:408 +#: src/webex/pages/popup.tsx:410 #, c-format msgid "" -"Merchant%1$sgave a%2$sof%3$s.\n" +"Merchant%1$sgave\n" +"a%2$sof%3$s.\n" "%4$s%5$s" msgstr "" -#: src/webex/pages/popup.tsx:417 +#: src/webex/pages/popup.tsx:420 #, c-format msgid "Unknown event (%1$s)" msgstr "" -#: src/webex/pages/popup.tsx:460 +#: src/webex/pages/popup.tsx:463 #, c-format msgid "Error: could not retrieve event history" msgstr "" -#: src/webex/pages/popup.tsx:485 +#: src/webex/pages/popup.tsx:488 #, c-format msgid "Your wallet has no events recorded." msgstr "" -#: src/webex/pages/return-coins.tsx:104 +#: src/webex/pages/return-coins.tsx:105 #, c-format msgid "Wire to bank account" msgstr "" -#: src/webex/pages/return-coins.tsx:172 +#: src/webex/pages/return-coins.tsx:173 #, c-format msgid "Confirm" msgstr "" -#: src/webex/pages/return-coins.tsx:175 +#: src/webex/pages/return-coins.tsx:176 #, c-format msgid "Cancel" msgstr "" -#: src/webex/renderHtml.tsx:212 +#: src/webex/renderHtml.tsx:216 #, c-format msgid "Withdrawal fees:" msgstr "" -#: src/webex/renderHtml.tsx:213 +#: src/webex/renderHtml.tsx:217 #, c-format msgid "Rounding loss:" msgstr "" -#: src/webex/renderHtml.tsx:214 +#: src/webex/renderHtml.tsx:218 #, c-format msgid "Earliest expiration (for deposit): %1$s" msgstr "" -#: src/webex/renderHtml.tsx:220 +#: src/webex/renderHtml.tsx:224 #, c-format msgid "# Coins" msgstr "" -#: src/webex/renderHtml.tsx:221 +#: src/webex/renderHtml.tsx:225 #, c-format msgid "Value" msgstr "" -#: src/webex/renderHtml.tsx:222 +#: src/webex/renderHtml.tsx:226 #, c-format msgid "Withdraw Fee" msgstr "" -#: src/webex/renderHtml.tsx:223 +#: src/webex/renderHtml.tsx:227 #, c-format msgid "Refresh Fee" msgstr "" -#: src/webex/renderHtml.tsx:224 +#: src/webex/renderHtml.tsx:228 #, c-format msgid "Deposit Fee" msgstr "" diff --git a/src/talerTypes.ts b/src/talerTypes.ts index 2ac2a5155..e83a0b6b6 100644 --- a/src/talerTypes.ts +++ b/src/talerTypes.ts @@ -630,3 +630,16 @@ export class TipToken { */ static checked: (obj: any) => TipToken; } + +/** + * Wire detail, arbitrary object that must at least + * contain a "type" key. + */ +export type WireDetail = object & { type: string }; + +/** + * Type guard for wire details. + */ +export function isWireDetail(x: any): x is WireDetail { + return x && typeof x === "object" && typeof x.type === "string"; +} diff --git a/src/wallet.ts b/src/wallet.ts index 41f8e7276..6ad9964c5 100644 --- a/src/wallet.ts +++ b/src/wallet.ts @@ -29,6 +29,7 @@ import { canonicalJson, canonicalizeBaseUrl, getTalerStampSec, + hash, } from "./helpers"; import { HttpRequestLibrary, @@ -62,6 +63,7 @@ import { RefreshPreCoinRecord, RefreshSessionRecord, ReserveRecord, + SenderWireRecord, TipRecord, WireFee, } from "./dbTypes"; @@ -79,6 +81,7 @@ import { RefundPermission, TipPlanchetDetail, TipResponse, + isWireDetail, } from "./talerTypes"; import { CheckPayResult, @@ -354,7 +357,7 @@ export const WALLET_PROTOCOL_VERSION = "2:0:0"; * In the future we might consider adding migration functions for * each version increment. */ -export const WALLET_DB_VERSION = 23; +export const WALLET_DB_VERSION = 24; const builtinCurrencies: CurrencyRecord[] = [ { @@ -533,7 +536,7 @@ function getWithdrawDenomList(amountAvailable: AmountJson, export namespace Stores { class ExchangeStore extends Store { constructor() { - super("exchanges", {keyPath: "baseUrl"}); + super("exchanges", { keyPath: "baseUrl" }); } pubKeyIndex = new Index(this, "pubKeyIndex", "masterPublicKey"); @@ -541,13 +544,13 @@ export namespace Stores { class NonceStore extends Store { constructor() { - super("nonces", {keyPath: "pub"}); + super("nonces", { keyPath: "pub" }); } } class CoinsStore extends Store { constructor() { - super("coins", {keyPath: "coinPub"}); + super("coins", { keyPath: "coinPub" }); } exchangeBaseUrlIndex = new Index(this, "exchangeBaseUrl", "exchangeBaseUrl"); @@ -566,7 +569,7 @@ export namespace Stores { class PurchasesStore extends Store { constructor() { - super("purchases", {keyPath: "contractTermsHash"}); + super("purchases", { keyPath: "contractTermsHash" }); } fulfillmentUrlIndex = new Index(this, @@ -590,25 +593,25 @@ export namespace Stores { class CurrenciesStore extends Store { constructor() { - super("currencies", {keyPath: "name"}); + super("currencies", { keyPath: "name" }); } } class ConfigStore extends Store { constructor() { - super("config", {keyPath: "key"}); + super("config", { keyPath: "key" }); } } class ExchangeWireFeesStore extends Store { constructor() { - super("exchangeWireFees", {keyPath: "exchangeBaseUrl"}); + super("exchangeWireFees", { keyPath: "exchangeBaseUrl" }); } } class ReservesStore extends Store { constructor() { - super("reserves", {keyPath: "reserve_pub"}); + super("reserves", { keyPath: "reserve_pub" }); } timestampCreatedIndex = new Index(this, "timestampCreatedIndex", "created"); timestampConfirmedIndex = new Index(this, "timestampConfirmedIndex", "timestamp_confirmed"); @@ -617,11 +620,17 @@ export namespace Stores { class TipsStore extends Store { constructor() { - super("tips", {keyPath: ["tipId", "merchantDomain"] as any as IDBKeyPath}); + super("tips", { keyPath: ["tipId", "merchantDomain"] as any as IDBKeyPath }); } coinPubIndex = new Index(this, "coinPubIndex", "coinPubs", { multiEntry: true }); } + class SenderWiresStore extends Store { + constructor() { + super("senderWires", { keyPath: "id" }); + } + } + export const coins = new CoinsStore(); export const coinsReturns = new Store("coinsReturns", {keyPath: "contractTermsHash"}); export const config = new ConfigStore(); @@ -636,6 +645,7 @@ export namespace Stores { export const reserves = new ReservesStore(); export const purchases = new PurchasesStore(); export const tips = new TipsStore(); + export const senderWires = new SenderWiresStore(); } /* tslint:enable:completed-docs */ @@ -1338,6 +1348,15 @@ export class Wallet { timestamp_depleted: 0, }; + const senderWire = req.senderWire; + if (isWireDetail(senderWire)) { + const rec = { + id: hash(senderWire), + senderWire, + }; + await this.q().put(Stores.senderWires, rec); + } + await this.updateExchangeUsedTime(req.exchange); const exchangeInfo = await this.updateExchangeFromUrl(req.exchange); const {isAudited, isTrusted} = await this.getExchangeTrust(exchangeInfo); @@ -2671,7 +2690,7 @@ export class Wallet { Object.keys(m).map((e) => { exchangeWireTypes[e] = Array.from(m[e]); }); const senderWiresSet = new Set(); - await this.q().iter(Stores.reserves).map((x) => { + await this.q().iter(Stores.senderWires).map((x) => { if (x.senderWire) { senderWiresSet.add(canonicalJson(x.senderWire)); } diff --git a/src/walletTypes.ts b/src/walletTypes.ts index cd0eee4cc..15c004c62 100644 --- a/src/walletTypes.ts +++ b/src/walletTypes.ts @@ -315,7 +315,7 @@ export interface SenderWireInfos { exchangeWireTypes: { [exchangeBaseUrl: string]: string[] }; /** - * Sender wire types stored in the wallet. + * Sender wire information stored in the wallet. */ senderWires: object[]; } diff --git a/src/webex/pages/return-coins.tsx b/src/webex/pages/return-coins.tsx index 26db52ef4..ff998d869 100644 --- a/src/webex/pages/return-coins.tsx +++ b/src/webex/pages/return-coins.tsx @@ -15,7 +15,7 @@ */ /** - * View and edit auditors. + * Return coins to own bank account. * * @author Florian Dold */ -- cgit v1.2.3