Released 2023-11-30
Full implementation of wallet TX lifecycle in core and UIs (DD37).
P2P KYC support.
Polishing and fixing of withdrawal 2FA flow for demobank-UI.
DD39 support in the WebExtension wallet.
Mobile wallet sqlite3 backend.
Webhook and template support.
PoS App working nicely.
  • 0006757: [wallet (WebExtension)] return scoped amounts in balances (Florian Dold)
  • 0007885: [Merchant frontends (Python3)] blog shop cookies interact badly with deleted orders (sebasjm)
  • 0007938: [Merchant frontends (Python3)] refund button not readable (sebasjm)
  • 0007744: [exchange] confusing error message when no denominations are configured correctly (Christian Grothoff)
  • 0007802: [exchange] wire fee signature not validated in libtalerexchange (Christian Grothoff)
  • 0007722: [mechant backend] installing merchant from debian package: fail db init (javier.sepulveda)
  • 0007898: [mechant backend] merchant httpd won't start when there is a file without extension in SPA dir (Christian Grothoff)
  • 0007936: [mechant backend] request "POST /instances/default/private/accounts" not idempotent (Christian Grothoff)
  • 0007965: [mechant backend] merchant puts only one exchange in contract terms despite multiple exchanges in the config (Florian Dold)
  • 0007275: [specification] debit_account / credit_account are highly redundant in bank-api transaction histories (Christian Grothoff)
  • 0007837: [specification] add option to disable tipping (Christian Grothoff)
  • 0007458: [libeufin-bank] allow configuration of another BIC number other than SANDBOXX (Antoine A)
  • 0007724: [libeufin-bank] demobank 0.9.2 generates valid but weird taler://withdraw URI (MS)
  • 0007300: [bank API (C)] Taler bank access API does not follow conventions (Florian Dold)
  • 0007414: [libeufin-bank] [security] Demonstration SPA stores password in plaintext in localstorage (Antoine A)
  • 0007464: [wallet (iOS App)] document minimal hardware and software required (MarcS)
  • 0007466: [libeufin-bank-ui (SPA)] should be mobile friendly (sebasjm)
  • 0007473: [wallet (Android App)] The app should navigate to the article after payment: (I need manually go back) (Christian Grothoff)
  • 0007504: [wallet-core] support for native logging in wallet-core (MarcS)
  • 0007572: [deployment and operations] migrate sandcastle containers to use systemd (Florian Dold)
  • 0007587: [libeufin-bank] General pass to potentially switch "200 OK" to "204 No Content". (Antoine A)
  • 0007694: [libeufin-bank] set currency conversion rates and fees in the configuration (Antoine A)
  • 0007734: [libeufin-bank] Track used IBANs. (Antoine A)
  • 0007781: [libeufin-bank] sandbox demobank should have endpoint for transaction volume / statistics info (Antoine A)
  • 0007789: [libeufin-bank] Can delete account when balance is 0 (Antoine A)
  • 0007797: [libeufin-bank] Integration API has the wrong error format. (Antoine A)
  • 0007810: [wallet-core] support conversion service URL and regex validation for /wire (Christian Grothoff)
  • 0007818: [wallet-core] fractionalBaseDigits of currencies (MarcS)
  • 0007821: [libeufin (general)] implementation of basic-auth on server is wrong (Antoine A)
  • 0007835: [challenger] exchange does not support challenger service yet (Christian Grothoff)
  • 0007844: [libeufin-bank] libeufin-sandbox tool should allow creating accounts (sebasjm)
  • 0007925: [merchant backoffice SPA] add support for x-talerbank (sebasjm)
  • 0007934: [exchange] ToS program, can't be executed from anywhere but from the .rst file is located + Other improvents (Christian Grothoff)
  • 0007940: [merchant backoffice SPA] template when fixed summary is set to empty string it should remove the fixed property (sebasjm)
  • 0007945: [documentation] Broken link in the taler-merchant-manual (Christian Grothoff)
  • 0007946: [documentation] Broken link: developers onboarding (Stefan)
  • 0007947: [specification] accepted currencies by merchant (Christian Grothoff)
  • 0007957: [exchange] integration test "denom-unoffered" causes exchange httpd to abort with unactionable assertion (Florian Dold)
  • 0007958: [exchange] fakebank doesn't implement the abort endpoint (Florian Dold)
  • 0007964: [wallet-core] DD51: CurrencySpecification should have a field for "group_separator" (MarcS)
  • 0007966: [mechant backend] external base URL of the merchant should be configurable (Christian Grothoff)
  • 0007968: [libeufin-bank] changes in the spec of core bank api (Antoine A)
  • 0007969: [wallet-core] When the server is down, wallet-core shouldn't throw a JSON error from downloadExchangeKeysInfo (Florian Dold)
  • 0007975: [challenger] HTML templates for challenger KYC are ugly, need styling (sebasjm)
  • 0007976: [libeufin-bank] server replied with 500 and sql in it (Antoine A)
  • 0007989: [wallet-core] add kyc/aml flags for getBalances response (Florian Dold)
  • 0007992: [libeufin-bank] get cashout channel and destination on cashout details (Antoine A)
  • 0007664: [documentation] merge api core documentation (Florian Dold)
  • 0006704: [libeufin-nexus] TWG facade gives unhelpful error message when payto URI is incorrect (MS)
  • 0007515: [libeufin (general)] Configuration should not impact the database. (MS)
  • 0007591: [documentation] Review Nexus native API specification. (MS)
  • 0007669: [documentation] Document data types used in libeufin REST calls. (Antoine A)
  • 0007735: [libeufin-bank] Avoid calculating balances based on the transactions history. (MS)
  • 0007833: [libeufin (general)] Implement programmatical DB migration. (MS)
  • 0005867: [wallet (WebExtension)] interaction between refunds and payment re-play unclear (sebasjm)
  •        0007475: [Merchant frontends (Python3)] can't pay refunded articles (sebasjm)
  • 0006016: [wallet-core] wallet should recover from payments where the exchange reports an invalid coin (Florian Dold)
  • 0006363: [mechant backend] allow merchants to query more information about the deposit status (Christian Grothoff)
  • 0006427: [libeufin-bank] EBICS errors need XML (MS)
  • 0006537: [wallet-core] have integration test for withdrawing "too late" (Florian Dold)
  • 0006591: [wallet (Android App)] Android wallet should support aborting partially failed payments (avalos)
  • 0006668: [wallet-core] wallet core should support sqlite3 as backend (Florian Dold)
  • 0006949: [documentation] inventory use-cases should be properly described in merchant backend manual (Christian Grothoff)
  • 0007013: [documentation] explain and index all $-substitutable variables (e.g., DATADIR) (Florian Dold)
  • 0007276: [exchange] improve wirewatch performance via multi-value insert (Christian Grothoff)
  • 0007322: [wallet-core] speed up integration tests by cloning environment (Florian Dold)
  • 0007373: [documentation] add a "project overview" section in the developer's manual (Christian Grothoff)
  • 0007435: [wallet-core] wallet doesn't notice aborted withdrawal in bank-integrated withdrawal (Florian Dold)
  • 0007440: [wallet (WebExtension)] cannot specify expiration for push payments in WebExtension (MarcS)
  • 0007446: [wallet-core] dev mode is not persisted after restart (sebasjm)
  • 0007455: [documentation] merchant backend tutorial is completely outdated on tipping (Christian Grothoff)
  • 0007502: [wallet-core] allowing http only in developer mode (sebasjm)
  • 0007505: [wallet-core] When incrementing AvailableAmount at coin withdraw, PendingAmount should be decremented (Florian Dold)
  • 0007510: [deployment and operations] buildmaster-builder NOT automatically reloading the Buildbot master configuration. (MS)
  • 0007517: [wallet (WebExtension)] offline indicator (sebasjm)
  • 0007796: [specification] store user type in merchant instance settings (sebasjm)
  • 0007580: [wallet-core] when adding an exchange, the wallet should check the /keys JSON for the canonical base URL (Florian Dold)
  • 0007585: [mechant backend] merchant build shows compiler warning (Christian Grothoff)
  • 0007583: [wallet-core] implement aborting p2p push payments (Florian Dold)
  • 0007584: [wallet-core] implement aborting p2p pull payments (Florian Dold)
  • 0007597: [exchange] exchange triggers MHD deprecation warning (Christian Grothoff)
  • 0007604: [deployment and operations] make reverting to the previous version of the base image easily possible (javier.sepulveda)
  • 0007606: [wallet (Android App)] TalerErrorInfo should get rendered with an option to expand the raw JSON (avalos)
  • 0007608: [wallet-core] money seems to be lost after trying to pay an expired order (Florian Dold)
  • 0007680: [sandcastle (containerized demo deployment)] demo survey tipping should be topped up automatically (javier.sepulveda)
  • 0007682: [wallet-core] withdrawal error message should be truncated after $N errors (Florian Dold)
  • 0007683: [wallet-core] remove deprecated auditor/exchange trust management (Florian Dold)
  • 0007686: [libeufin-nexus] Allow date range when asking transactions. (MS)
  • 0007692: [wallet-core] DB exported from browser can't be easily imported (Florian Dold)
  • 0007701: [wallet-core] implement abort semantics from DD37 for withdrawals (Florian Dold)
  • 0007705: [sandcastle (containerized demo deployment)] exchange ToS not properly configured in the sandcastle exchange (javier.sepulveda)
  • 0007713: [wallet-core] handle p2p purse expiration by going to tx state "failed" instead of pending with error (Florian Dold)
  • 0007716: [sandcastle (containerized demo deployment)] survey bank account does not allow high negative balance needed for tipping (javier.sepulveda)
  • 0007717: [wallet-core] version should be taking from package.json (sebasjm)
  • 0007723: [libeufin-bank-ui (SPA)] bank backend URL should be configurable in globalThis.talerDemobankSettings (sebasjm)
  • 0007725: [mechant backend] merchant logs regarding reserve queries are non-actionable (Christian Grothoff)
  • 0007740: [wallet-core] p2p push payments can't spend full balance (sebasjm)
  • 0007741: [wallet-core] "continue with mobile wallet" flow doesn't work for payments (sebasjm)
  • 0007747: [exchange] sample exchange ToS HTML is giant (Christian Grothoff)
  • 0007748: [merchant backoffice SPA] qr code for the template order (sebasjm)
  • 0007751: [merchant-pos-terminal (Android App)] Add free-form to add custom amounts to order (grote)
  • 0007756: [deployment and operations] move .deb packaging infra to non-root user, with user-local docker service enabled (Florian Dold)
  • 0007762: [libeufin-nexus] The libeufin-{nexus,sandcastle} Debian packages ask additional questions (Christian Grothoff)
  • 0007763: [deployment and operations] Netzbon - Terms of Service (Christian Grothoff)
  • 0007767: [libeufin-bank-ui (SPA)] negative balance not shown from admin panel (MS)
  • 0007768: [libeufin-bank-ui (SPA)] cash-out rates wrong when starting from fiat. (sebasjm)
  • 0007770: [libeufin-bank-ui (SPA)] typo (sebasjm)
  • 0007779: [wallet (Android App)] Add dev option to run integration test (grote)
  • 0007941: [documentation] expire_deposit missing in Exchange API Documentation for /keys (Stefan)
  • 0007792: [exchange] exchange responds with 500 to non-idempotent deposit (Florian Dold)
  • 0007793: [other] use token auth for SPAs instead of storing credentials plain-text in local storage (sebasjm)
  • 0007794: [exchange] Library not found despite correct LD_LIBRARY_PATH (Christian Grothoff)
  • 0007800: [libeufin-bank-ui (SPA)] Show payto:// URI in account info page (sebasjm)
  • 0007808: [exchange] wire transfer tracking endpoints should support long-polling (Christian Grothoff)
  • 0007809: [libeufin-nexus] regression: test_bank_api_with_nexus started to fail (Florian Dold)
  • 0007811: [documentation] spec and implement taler://withdraw-exchange/ URIs (sebasjm)
  • 0007816: [challenger] challenger service needs to be implemented (Christian Grothoff)
  • 0007817: [exchange] exchange twisted test skip (Christian Grothoff)
  • 0007820: [specification] /paid should signal if contract was refunded (Christian Grothoff)
  • 0007824: [specification] use more CRUD-like API to edit merchant instance accounts (sebasjm)
  • 0007825: [other] Taler OPS - Etckeeper (javier.sepulveda)
  • 0007826: [other] Taler OPS - Install PostgreSQL (javier.sepulveda)
  • 0007829: [Web site(s)] Suboptimal Link Previews for taler.net (Stefan)
  • 0007830: [mechant backend] support webhooks for refunds (sebasjm)
  • 0007840: [wallet-core] support new post-oec /keys format (Christian Grothoff)
  • 0007846: [specification] after creating a reserve for tipping, the list of account is empty (Christian Grothoff)
  • 0007849: [wallet-core] specify exchange state transitions in wallet-core (Florian Dold)
  • 0007853: [wallet-core] reduce wallet-core notifications (Florian Dold)
  • 0007856: [wallet-core] wallet-core sometimes doesn't emit notification when transitioning from pending to a pending with error state (Florian Dold)
  • 0007861: [wallet-core] withdrawal DD37 kyc transitions don't work properly (Florian Dold)
  • 0007863: [wallet-core] Aborted Withdrawal is still reported as pendingIncoming in GetBalances (Florian Dold)
  • 0007867: [wallet-core] CheckPeerPullCreditResponse should include numCoins (Florian Dold)
  • 0007870: [exchange] long-polling on /kyc-check/ should return early, instead waits for timeout_ms (Christian Grothoff)
  • 0007871: [wallet-core] emit balance-change notifications (Florian Dold)
  • 0007873: [wallet-core] allow initialization of wallet using a temporary database (Florian Dold)
  • 0007874: [exchange] doc/impl mismatch in purse status (Christian Grothoff)
  • 0007875: [wallet (WebExtension)] transaction details view should allow retrying (Florian Dold)
  • 0007876: [wallet (WebExtension)] transaction error details rendered incorrectly (Florian Dold)
  • 0007878: [sandcastle (containerized demo deployment)] sandcastle should limit max process run-time (javier.sepulveda)
  • 0007883: [exchange] exchange should signal in /keys if denomination key is not available (Christian Grothoff)
  • 0007890: [libeufin (general)] DB connection string needs ordinary postgres:// format. (MS)
  • 0007897: [deployment and operations] taler-exchange-offline: error reporting when rest query fails (Christian Grothoff)
  • 0007900: [exchange] taler-exchange-wirewatch --longpoll-timeout option is in microseconds (Christian Grothoff)
  • 0007901: [exchange] wallet-to-iban transfers take forever (Christian Grothoff)
  • 0007919: [other] Database initialisation error during install from packages (Christian Grothoff)
  • 0007923: [documentation] Merchant docs should rename "giving tips" to "giving rewards" (Christian Grothoff)
  • 0006860: [Merchant frontends (Python3)] avoid redirect loop in blog merchant frontend demo (MS)
  • 0006952: [documentation] document how public /pay handles refunded coins (Florian Dold)
  • 0007100: [wallet-core] Suggested exchange expected, in contrast to it being optional. (Florian Dold)
  • 0007325: [wallet-core] wallet-core should report whether the counterparty accepted p2p push payments (Florian Dold)
  • 0007327: [wallet-core] wallet-core responses should include the transaction ID of transaction it creates (Florian Dold)
  • 0007333: [wallet-core] introduce minimalistic JS API for wallet that can be used by SPAs (Florian Dold)
  • 0007334: [wallet (Android App)] UX Study: user fails to identify QR button (grote)
  • 0007367: [wallet (Android App)] Android wallet shows "confirm with bank" button even for confirmed withdrawals (Florian Dold)
  • 0007439: [wallet (Android App)] cannot specify expiration for push payments in Android wallet (avalos)
  • 0007516: [deployment and operations] TypeScript test harness fails at preparing the database. (MS)
  • 0007533: [wallet (WebExtension)] Unable to add a new bank account to wallet (sebasjm)
  • 0007539: [wallet (WebExtension)] Can't go back to bank when "Automatically open wallet based on page content" is enabled (sebasjm)
  • 0007685: [General] Allow date range when serving transactions over JSON (MS)
  • 0007568: [wallet (WebExtension)] implement the new semantic of aborting/cancel/forgetting/resuming a tx (sebasjm)
  • 0007576: [libeufin-bank-ui (SPA)] trying to withdraw more money than available silently fails (sebasjm)
  • 0007578: [wallet-core] rename wallet-core p2p payments requests (avalos)
  • 0007663: [General] sandbox does not allow patch as cors method (MS)
  • 0007667: [General] Unable to render counter part of the cashout (destination of the cashout) (MS)
  • 0007672: [documentation] spec wallet-core transaction lifecycle in a design document (Florian Dold)
  • 0007700: [wallet-core] implement abort semantics from DD37 for merchant payments (Florian Dold)
  • 0007703: [wallet (WebExtension)] store microsecond offset for transaction timestamps in wallet-core (Florian Dold)
  • 0007704: [wallet-core] implement feature flags for wallet core (sebasjm)
  • 0007714: [other] merchant-backend-ui should not use rollup but esbuild (sebasjm)
  • 0007720: [wallet-core] need automation to bump version numbers (Florian Dold)
  • 0007727: [wallet (Android App)] Refresh withdrawal detail screen after confirmation (avalos)
  • 0007728: [wallet (Android App)] "confirm with bank" button stays in transaction history even when withdrawal is complete (avalos)
  • 0007729: [libeufin-bank-ui (SPA)] demobank-ui expects "description" attribute in error details, fails otherwise (sebasjm)
  • 0007738: [libeufin-nexus] Creating a facade with a unavailable name responds 500. (MS)
  • 0007743: [libeufin-bank-ui (SPA)] "Confirm with bank" flow does not work with current demobank-ui (sebasjm)
  • 0007745: [other] pogen doesnt work with double quotes (sebasjm)
  • 0007746: [wallet (Android App)] Android wallet is rather fussy about which ToS it renders (Florian Dold)
  • 0007749: [wallet-core] wallet-core should forward offline payment TOTP to UIs (sebasjm)
  • 0007753: [libeufin-bank-ui (SPA)] take debit limit from the balance (sebasjm)
  • 0007754: [libeufin-bank-ui (SPA)] admin account should be able to transfer (sebasjm)
  • 0007758: [wallet (Android App)] Android wallet crash (java.lang.reflect.InvocationTargetException) (grote)
  • 0007760: [wallet (Android App)] making a deposit with lower case country (in the IBAN field) throws an error (grote)
  • 0007761: [wallet-core] coin spend is not rollback after deposit failed (Florian Dold)
  • 0007764: [libeufin-bank-ui (SPA)] remove restrictions on passwords in demobank-ui (sebasjm)
  • 0007765: [documentation] create taler:// wallet integration design document (Florian Dold)
  • 0007782: [auditor] nexus was dead, found "sorry, too many clients already" in the logs (MS)
  • 0007783: [wallet-core] wallet-core should long-poll P2P kyc status (Florian Dold)
  • 0007788: [auditor] account access is not possible for non-circuit accounts (MS)
  • 0007790: [merchant-pos-terminal (Android App)] Try again to get payment status, after connection fails (grote)
  • 0007933: [wallet (Android App)] QR codes for p2p transactions should only show after they're valid (registered with exchange) (avalos)
  • 0007791: [wallet (WebExtension)] wallet UI should show better error message when suggested exchange is not reachable (sebasjm)
  • 0007801: [deployment and operations] Deployment fails at last step (javier.sepulveda)
  • 0007803: [taler-harness] generate list of sample transactions that UIs can use to test their parsers (Florian Dold)
  • 0007804: [deployment and operations] Suggested tweaks to main.sh (javier.sepulveda)
  • 0007805: [General] Taler OPS - Domain name (javier.sepulveda)
  • 0007819: [libeufin-bank-ui (SPA)] clicking "abort" in demobank-ui does not abort the underlying withdrawal operation (sebasjm)
  • 0007832: [deployment and operations] Setting libeufin log level. (MS)
  • 0007842: [other] Buildbot doc-builder not updating project sources (dvn)
  • 0007852: [exchange] deposit endpoint idempotency regression (Florian Dold)
  • 0007891: [qtart] qtart does not support DELETE http requests (Florian Dold)
  • 0007921: [wallet-core] p2p coin selection uses linear scan of all coins (Florian Dold)
  • 0007929: [specification] extract totp from template (sebasjm)
202 issues View Issues