taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 8f6fb55041d02b0dfac41f4e3cc08a0485ed23f2
parent c7511e51416acba5fbc16bfb9264bb675e4d0695
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Sat, 31 Oct 2026 15:32:43 +0100

[wallet] mailbox: fix subject hint storage

Diffstat:
Mpackages/taler-wallet-core/src/db/sqlite/transaction.ts | 9++++++---
Mpackages/taler-wallet-core/src/mailbox.ts | 6++++++
2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/packages/taler-wallet-core/src/db/sqlite/transaction.ts b/packages/taler-wallet-core/src/db/sqlite/transaction.ts @@ -4766,14 +4766,16 @@ export class SqliteWalletTransaction implements WalletDbTransaction { async upsertMailboxMessage(message: MailboxMessageRecord): Promise<void> { await this.run( "INSERT INTO mailbox_messages" + - " (origin_mailbox_base_url, taler_uri, downloaded_at)" + - " VALUES ($url, $uri, $at)" + + " (origin_mailbox_base_url, taler_uri, downloaded_at, subject_hint)" + + " VALUES ($url, $uri, $at, $sh)" + " ON CONFLICT(origin_mailbox_base_url, taler_uri) DO UPDATE SET" + - " downloaded_at = excluded.downloaded_at", + " downloaded_at = excluded.downloaded_at," + + " subject_hint = COALESCE(excluded.subject_hint, mailbox_messages.subject_hint)", { url: message.originMailboxBaseUrl, uri: message.talerUri, at: timestampProtocolToDb(message.downloadedAt), + sh: message.subjectHint ?? null, }, ); } @@ -4795,6 +4797,7 @@ export class SqliteWalletTransaction implements WalletDbTransaction { originMailboxBaseUrl: str(row.origin_mailbox_base_url), talerUri: str(row.taler_uri), downloadedAt: timestampProtocolFromDb(dbTimestamp(row.downloaded_at)), + subjectHint: row.subject_hint != null ? str(row.subject_hint) : undefined, })); } diff --git a/packages/taler-wallet-core/src/mailbox.ts b/packages/taler-wallet-core/src/mailbox.ts @@ -84,6 +84,12 @@ export function mailboxMetadataMatchesAddress( mailboxAddress: string, metadata: MailboxMetadata, ): boolean { + + logger.warn(`expecting ${mailboxAddress}`); + logger.warn(`info signing key ${metadata.signing_key}`); + logger.warn(`info signing key decoded ${decodeCrock(metadata.signing_key)}`); + logger.warn(`info signing key sha512 ${sha512(decodeCrock(metadata.signing_key))}`); + logger.warn(`info signing key sha512 base32 ${encodeCrock(sha512(decodeCrock(metadata.signing_key)))}`); return ( encodeCrock(sha512(decodeCrock(metadata.signing_key))) === mailboxAddress.toUpperCase() );