commit 3e21c80180f9eb2ad6b4070db6354d46a7f19dfb
parent 4666bbfcbd2ec98e67d8aa8f2ce69b1237c74251
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Tue, 14 Jul 2026 18:42:46 +0200
mailbox/taldir: Fix incorrect contracts
Diffstat:
4 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/packages/taler-util/src/types-taler-wallet.ts b/packages/taler-util/src/types-taler-wallet.ts
@@ -1417,6 +1417,20 @@ export interface ContactListResponse {
contacts: ContactEntry[];
}
+export interface GetMailboxResponse {
+ mailboxConfiguration?: MailboxConfiguration;
+}
+
+
+export interface MailboxBaseUrl {
+ mailboxBaseUrl: string;
+}
+
+export const codecForMailboxBaseUrl = (): Codec<MailboxBaseUrl> =>
+ buildCodecForObject<MailboxBaseUrl>()
+ .property("mailboxBaseUrl", codecForString())
+ .build("MailboxBaseUrl");
+
export interface MailboxConfiguration {
mailboxBaseUrl: string;
privateKey: EddsaPrivateKeyString;
diff --git a/packages/taler-wallet-core/src/mailbox.ts b/packages/taler-wallet-core/src/mailbox.ts
@@ -26,8 +26,10 @@ import {
DeleteMailboxMessageRequest,
Duration,
EmptyObject,
+ GetMailboxResponse,
HttpStatusCode,
Logger,
+ MailboxBaseUrl,
MailboxConfiguration,
MailboxMessageRecord,
MailboxMessagesResponse,
@@ -175,10 +177,12 @@ export async function registerMailbox(
*/
export async function getMailbox(
wex: WalletExecutionContext,
- mailboxBaseUrl: string,
-): Promise<MailboxConfiguration | undefined> {
+ mailboxBaseUrl: MailboxBaseUrl,
+): Promise<GetMailboxResponse> {
return await wex.runLegacyWalletDbTx(async (tx) => {
- return await tx.mailboxConfigurations.get(mailboxBaseUrl);
+ return {
+ mailboxConfiguration: await tx.mailboxConfigurations.get(mailboxBaseUrl.mailboxBaseUrl),
+ }
});
}
@@ -188,7 +192,7 @@ export async function getMailbox(
*/
export async function createNewMailbox(
wex: WalletExecutionContext,
- mailboxBaseUrl: string,
+ mailboxBaseUrl: MailboxBaseUrl,
): Promise<MailboxConfiguration> {
const keys = createEddsaKeyPair();
const hpkeKey = encodeCrock(hpkeCreateSecretKey());
@@ -201,7 +205,7 @@ export async function createNewMailbox(
}),
);
const mailboxConf: MailboxConfiguration = {
- mailboxBaseUrl: mailboxBaseUrl,
+ mailboxBaseUrl: mailboxBaseUrl.mailboxBaseUrl,
privateKey: privKey,
privateEncryptionKey: hpkeKey,
hAddress: hAddress,
diff --git a/packages/taler-wallet-core/src/wallet-api-types.ts b/packages/taler-wallet-core/src/wallet-api-types.ts
@@ -112,6 +112,7 @@ import {
GetExchangeResourcesResponse,
GetExchangeTosRequest,
GetExchangeTosResult,
+ GetMailboxResponse,
GetMaxDepositAmountRequest,
GetMaxDepositAmountResponse,
GetMaxPeerPushDebitAmountRequest,
@@ -148,6 +149,7 @@ import {
MailboxConfiguration,
MailboxMessageRecord,
MailboxMessagesResponse,
+ MailboxBaseUrl,
PrepareBankIntegratedWithdrawalRequest,
PrepareBankIntegratedWithdrawalResponse,
PreparePayRequest,
@@ -558,7 +560,7 @@ export type RefreshMailboxOp = {
*/
export type InitializeMailboxOp = {
op: WalletApiOperation.InitializeMailbox;
- request: string;
+ request: MailboxBaseUrl;
response: MailboxConfiguration;
};
@@ -567,8 +569,8 @@ export type InitializeMailboxOp = {
*/
export type GetMailboxOp = {
op: WalletApiOperation.GetMailbox;
- request: string;
- response: MailboxConfiguration | undefined;
+ request: MailboxBaseUrl;
+ response: GetMailboxResponse;
};
/**
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts
@@ -259,7 +259,7 @@ import {
codecForSharePaymentRequest,
codecForStartExchangeWalletKycRequest,
codecForStartRefundQueryRequest,
- codecForString,
+ codecForMailboxBaseUrl,
codecForSuspendTransaction,
codecForTestPayArgs,
codecForTestingCorruptWithdrawalCoinSelRequest,
@@ -2290,11 +2290,11 @@ const handlers: { [T in WalletApiOperation]: HandlerWithValidator<T> } = {
handler: listContacts,
},
[WalletApiOperation.InitializeMailbox]: {
- codec: codecForString(),
+ codec: codecForMailboxBaseUrl(),
handler: createNewMailbox,
},
[WalletApiOperation.GetMailbox]: {
- codec: codecForString(),
+ codec: codecForMailboxBaseUrl(),
handler: getMailbox,
},
[WalletApiOperation.SendTalerUriMailboxMessage]: {