wallet-core: mock implementation of GetCurrencyInfo

This commit is contained in:
Florian Dold 2023-08-05 23:19:55 +02:00
parent 951d1b66fa
commit 308a4282cb
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
5 changed files with 39 additions and 3 deletions

View File

@ -26,7 +26,7 @@ import {
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { defaultCoinConfig } from "../harness/denomStructures.js";
import { GlobalTestState, WalletCli } from "../harness/harness.js";
import { GlobalTestState } from "../harness/harness.js";
import {
createSimpleTestkudosEnvironmentV2,
createWalletDaemonWithClient,
@ -106,7 +106,7 @@ export async function runAgeRestrictionsPeerTest(t: GlobalTestState) {
);
await wallet2.call(WalletApiOperation.ConfirmPeerPushCredit, {
peerPushPaymentIncomingId: checkResp.peerPushPaymentIncomingId,
transactionId: checkResp.transactionId,
});
const peerPullCreditDoneCond = wallet2.waitForNotificationCond(

View File

@ -379,6 +379,20 @@ export interface Balance {
requiresUserInput: boolean;
}
export interface GetCurrencyInfoRequest {
currency: string;
scope: ScopeInfo;
}
export interface GetCurrencyInfoResponse {
decimalSeparator: string;
numFractionalDigits: number;
/**
* Is the currency name leading or trailing?
*/
isCurrencyNameLeading: boolean;
}
export interface InitRequest {
skipDefaults?: boolean;
}

View File

@ -711,7 +711,10 @@ export interface RewardCoinSource {
coinIndex: number;
}
export type CoinSource = WithdrawCoinSource | RefreshCoinSource | RewardCoinSource;
export type CoinSource =
| WithdrawCoinSource
| RefreshCoinSource
| RewardCoinSource;
/**
* CoinRecord as stored in the "coins" data store

View File

@ -114,6 +114,8 @@ import {
WithdrawUriInfoResponse,
SharePaymentRequest,
SharePaymentResult,
GetCurrencyInfoRequest,
GetCurrencyInfoResponse,
} from "@gnu-taler/taler-util";
import { AuditorTrustRecord, WalletContractData } from "./db.js";
import {
@ -210,6 +212,7 @@ export enum WalletApiOperation {
ApplyDevExperiment = "applyDevExperiment",
ValidateIban = "validateIban",
TestingWaitTransactionsFinal = "testingWaitTransactionsFinal",
GetCurrencyInfo = "getCurrencyInfo",
}
// group: Initialization
@ -601,6 +604,12 @@ export type ListCurrenciesOp = {
response: WalletCurrencyInfo;
};
export type GetCurrencyInfoOp = {
op: WalletApiOperation.GetCurrencyInfo;
request: GetCurrencyInfoRequest;
response: GetCurrencyInfoResponse;
};
// group: Deposits
/**
@ -1072,6 +1081,7 @@ export type WalletOperations = {
[WalletApiOperation.ApplyDevExperiment]: ApplyDevExperimentOp;
[WalletApiOperation.ValidateIban]: ValidateIbanOp;
[WalletApiOperation.TestingWaitTransactionsFinal]: TestingWaitTransactionsFinal;
[WalletApiOperation.GetCurrencyInfo]: GetCurrencyInfoOp;
};
export type WalletCoreRequestType<

View File

@ -118,6 +118,7 @@ import {
sampleWalletCoreTransactions,
validateIban,
codecForSharePaymentRequest,
GetCurrencyInfoResponse,
} from "@gnu-taler/taler-util";
import {
HttpRequestLibrary,
@ -1395,6 +1396,14 @@ async function dispatchRequestInternal<Op extends WalletApiOperation>(
const resp = await getBackupRecovery(ws);
return resp;
}
case WalletApiOperation.GetCurrencyInfo: {
const resp: GetCurrencyInfoResponse = {
decimalSeparator: ",",
isCurrencyNameLeading: false,
numFractionalDigits: 2,
};
return resp;
}
case WalletApiOperation.ImportBackupRecovery: {
const req = codecForAny().decode(payload);
await loadBackupRecovery(ws, req);