Skip to content

Release: develop -> main#4126

Merged
TaprootFreak merged 7 commits into
mainfrom
develop
Jul 7, 2026
Merged

Release: develop -> main#4126
TaprootFreak merged 7 commits into
mainfrom
develop

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

…#4125)

* feat(balance): value RealUnit shares at the official yearly tax value

* refactor(balance): source RealUnit tax values from Config instead of an inline map

* fix(balance): read RealUnit tax values from the nested blockchain.realunit config

* test(balance): cover the RealUnit tax-value override and its fail-closed path
…e PDF (#4127)

Render a committed RealUnit portfolio-statement example (docs/examples/realunit-balance/,
DE + EN) straight from BalancePdfService — the same code path the
POST /v1/realunit/balance/pdf endpoint uses. The example shows an account holding
350 REALU reported on the 31.12.2025 record date, valued at the official 2025 tax
value (CHF 1.37 → CHF 479.50): REALU-only (a stray ZCHF dust balance is filtered
out), a hashed address, issuer attribution and a date without a clock time.

Regenerate with: GENERATE_RECEIPT_EXAMPLES=true npx jest realunit-balance-example
* refactor(realunit): render the collective receipt as one flat transaction table

Merge the separate buy/sell/transfer sections of the RealUnit multi-receipt into
a single chronological table. The description column is reduced to the trade
direction (buy/sell) — the RealUnit share is implicit on a RealUnit document —
while plain wallet-to-wallet transfers stay labelled as transfers so no trade is
claimed.

Drop the per-section subtotal, fee and payment-method rows from the collective
overview; those settlement details remain on the individual single receipts.
Update the example test expectations to match the new layout.

* refactor(realunit): tidy the transaction-history layout

- Drop the receipt number from the title (now just "Transaction History").
- Zero-pad day and month in RealUnit receipt dates (DD.MM.YYYY).
- Right-align the total-amount column.
- Remove the transaction-details / buyer block from the collective history; it
  stays on the individual single receipts.
- Regenerate the committed example PDFs and update the example test expectations.

* fix(realunit): right-align the multi-receipt subtotal amount

Keep the total column consistent: the header and data rows were right-aligned,
so the sectioned-layout subtotal cell is now right-aligned too.

* refactor(realunit): drop the dead non-RealUnit multi-receipt branch

generateMultiPdfInvoice is only ever called for RealUnit, so the sectioned
buy/sell/transfer fallback was unreachable. Remove it and the now-unused
invoice.section.* translations (and the emptyCol helper); the single flat table
is the sole layout. The invoice.table.position_row.* keys stay — the single
receipt still uses them.

* chore(realunit): drop timestamp-only churn on unchanged example receipts

The two transaction-confirmation example PDFs have no visible change (their date
is already two-digit, so the zero-padding does not apply); only the embedded
generation timestamp differed. Keep them at their committed state so the diff
carries only the example receipts that actually changed.
…4130)

The sale confirmation and the plain-transfer receipt only shipped a German
example PDF. Add the English variants so every RealUnit receipt type ships a DE
and EN sample, matching the existing buy-confirmation and transaction-history
examples. No production code change — example coverage only.
…design (#4128)

* feat(realunit): render the portfolio statement in the receipt letter design

* style(realunit): prettier-format the balance statement renderer

* fix(realunit): fail-closed on unpriced statement holdings and drop dead report branches

* test(realunit): drop the superseded report-style statement example (replaced by the letter-design example)

* test(realunit): commit the portfolio-statement example reference PDFs

* fix(realunit): localize statement title, document the 400, and stabilize the wallet reference casing

* chore(realunit): format the controller and refresh the statement example PDFs

* fix(realunit): normalize the statement reference date to the Swiss calendar day

* fix(realunit): cap the normalized statement reference date at the current instant

* fix(realunit): reject future statement reference dates and cover the balance controller
… receipt (#4131)

* refactor(realunit): remove the buyer/holder line from the transaction receipt

The recipient name is already shown in the letter address block, so the
separate "Buyer / Holder" detail line is redundant. Drop it from the
single-receipt details section and remove the now-unused buyerName
plumbing and buyer_label translations.

* test(realunit): regenerate receipt examples without the buyer/holder line
…olio statement (#4132)

* refactor(realunit): drop the redundant details section from the portfolio statement

Holder, reference date and total value already appear in the recipient address
block, the date header and the table total row, so repeating them in the
statement details section was redundant (same rationale as the #4131 receipt
cleanup). Keep only the wallet reference there and drop the "generated by
RealUnit Schweiz AG" footer — the issuer name stays in the sender address block.
Remove the now-unused holder_label, reference_date_label and generated_by_realunit
translations.

* test(realunit): regenerate statement examples without the details section

* refactor(realunit): fix stale createBalanceStatement doc comment
@TaprootFreak TaprootFreak merged commit 6dfc26d into main Jul 7, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant