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:
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()
);