gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: anastasis: no more currencies


From: gnunet
Subject: [taler-wallet-core] branch master updated: anastasis: no more currencies per country
Date: Thu, 14 Apr 2022 21:00:10 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new 3957f529 anastasis: no more currencies per country
3957f529 is described below

commit 3957f529bf4afd96b9bee802e20693fc076968c9
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Apr 14 21:00:03 2022 +0200

    anastasis: no more currencies per country
---
 packages/anastasis-core/src/anastasis-data.ts | 238 +++++++++++++++-----------
 packages/anastasis-core/src/index.ts          |  85 +++++----
 packages/anastasis-core/src/reducer-types.ts  |   6 -
 packages/anastasis-webui/src/utils/index.tsx  |   3 +-
 packages/taler-util/src/taler-error-codes.ts  | 131 +++++++++++---
 5 files changed, 302 insertions(+), 161 deletions(-)

diff --git a/packages/anastasis-core/src/anastasis-data.ts 
b/packages/anastasis-core/src/anastasis-data.ts
index 924f4103..cac4dc6c 100644
--- a/packages/anastasis-core/src/anastasis-data.ts
+++ b/packages/anastasis-core/src/anastasis-data.ts
@@ -1,7 +1,6 @@
 // This file is auto-generated, do not modify.
-// Generated from v0.2.0-4-g61ea83c on Tue, 05 Oct 2021 10:40:32 +0200
+// Generated from v0.2.0-151-g2ae958d on Thu, 14 Apr 2022 20:38:58 +0200
 // To re-generate, run contrib/gen-ts.sh from the main anastasis code base.
-// XXX: Modified for demo, allowing demo providers for EUR
 
 export const anastasisData = {
   providersList: {
@@ -9,44 +8,36 @@ export const anastasisData = {
     "SPDX-License-Identifier": "GPL3.0-or-later",
     anastasis_provider: [
       {
-        url: "https://anastasis.demo.taler.net/";,
-        currency: "KUDOS",
+        url: "https://v1.anastasis.taler.net/";,
+        name: "Bern University of Applied Sciences, Switzerland",
       },
       {
-        url: "https://kudos.demo.anastasis.lu/";,
-        currency: "KUDOS",
+        url: "https://v1.anastasis.codeblau.de/";,
+        name: "Codeblau GmbH, Germany",
       },
       {
-        url: "https://anastasis.demo.taler.net/";,
-        currency: "EUR",
+        url: "https://v1.anastasis.openw3b.org/";,
+        name: "Openw3b Foundation, India",
       },
       {
-        url: "https://kudos.demo.anastasis.lu/";,
-        currency: "EUR",
-      },
-      {
-        url: "https://anastasis.demo.taler.net/";,
-        currency: "CHF",
-      },
-      {
-        url: "https://kudos.demo.anastasis.lu/";,
-        currency: "CHF",
+        url: "https://v1.anastasis.lu/";,
+        name: "Anastasis SARL, Luxembourg",
       },
       {
         url: "http://localhost:8086/";,
-        currency: "TESTKUDOS",
+        restricted: "xx",
       },
       {
         url: "http://localhost:8087/";,
-        currency: "TESTKUDOS",
+        restricted: "xx",
       },
       {
         url: "http://localhost:8088/";,
-        currency: "TESTKUDOS",
+        restricted: "xx",
       },
       {
         url: "http://localhost:8089/";,
-        currency: "TESTKUDOS",
+        restricted: "xx",
       },
     ],
   },
@@ -62,7 +53,6 @@ export const anastasisData = {
           de_DE: "Albanien",
           en_UK: "Albania",
         },
-        currency: "ALL",
         call_code: "+355",
       },
       {
@@ -73,7 +63,6 @@ export const anastasisData = {
           de_DE: "Belgien",
           en_UK: "Belgium",
         },
-        currency: "EUR",
         call_code: "+32",
       },
       {
@@ -86,7 +75,6 @@ export const anastasisData = {
           fr_FR: "Suisse",
           en_UK: "Swiss",
         },
-        currency: "CHF",
         call_code: "+41",
       },
       {
@@ -96,7 +84,6 @@ export const anastasisData = {
         name_i18n: {
           en_UK: "Czech Republic",
         },
-        currency: "CZK",
         call_code: "+420",
       },
       {
@@ -110,7 +97,6 @@ export const anastasisData = {
           fr_FR: "Allemagne",
           en_UK: "Germany",
         },
-        currency: "EUR",
         call_code: "+49",
       },
       {
@@ -121,7 +107,6 @@ export const anastasisData = {
         name_i18n: {
           en_UK: "Denmark",
         },
-        currency: "DKK",
         call_code: "+45",
       },
       {
@@ -132,9 +117,18 @@ export const anastasisData = {
         name_i18n: {
           es_ES: "España",
         },
-        currency: "EUR",
         call_code: "+44",
       },
+      {
+        code: "fr",
+        name: "France",
+        continent: "Europe",
+        name_i18n: {
+          de_DE: "Frankreich",
+          fr_FR: "La France",
+        },
+        call_code: "+33",
+      },
       {
         code: "in",
         name: "India",
@@ -146,7 +140,6 @@ export const anastasisData = {
           fr_FR: "l'Inde",
           en_UK: "India",
         },
-        currency: "INR",
         call_code: "+91",
       },
       {
@@ -157,7 +150,6 @@ export const anastasisData = {
           de_DE: "Italien",
           en_UK: "Italy",
         },
-        currency: "EUR",
         call_code: "+39",
       },
       {
@@ -170,17 +162,26 @@ export const anastasisData = {
           de_CH: "Japan",
           en_UK: "Japan",
         },
-        currency: "JPY",
         call_code: "+81",
       },
       {
-        code: "sl",
+        code: "nl",
+        name: "Netherlands",
+        continent: "Europe",
+        name_i18n: {
+          de_DE: "Niederlande",
+          nl_NL: "Nederland",
+          en_UK: "Netherlands",
+        },
+        call_code: "+31",
+      },
+      {
+        code: "sk",
         name: "Slovakia",
         continent: "Europe",
         name_i18n: {
           en_UK: "Slovakia",
         },
-        currency: "EUR",
         call_code: "+421",
       },
       {
@@ -194,37 +195,20 @@ export const anastasisData = {
           fr_FR: "États-Unis d'Amérique (USA)",
           en_UK: "United States of America (USA)",
         },
-        currency: "USD",
         call_code: "+1",
       },
       {
         code: "xx",
         name: "Testland",
-        continent: "Testcontinent",
-        continent_i18n: { de_DE: "Testkontinent" },
+        continent: "Demoworld",
         name_i18n: {
           de_DE: "Testlandt",
           de_CH: "Testlandi",
           fr_FR: "Testpais",
           en_UK: "Testland",
         },
-        currency: "TESTKUDOS",
         call_code: "+00",
       },
-      {
-        code: "xy",
-        name: "Demoland",
-        continent: "Testcontinent",
-        continent_i18n: { de_DE: "Testkontinent" },
-        name_i18n: {
-          de_DE: "Demolandt",
-          de_CH: "Demolandi",
-          fr_FR: "Demopais",
-          en_UK: "Demoland",
-        },
-        currency: "KUDOS",
-        call_code: "+01",
-      },
     ],
   },
   countryDetails: {
@@ -337,9 +321,9 @@ export const anastasisData = {
           widget: "anastasis_gtk_ia_ahv",
           uuid: "1da87570-ba16-4f62-8a7e-cbda92f51591",
           "validation-regex":
-            "^(756).[0-9]{4}.[0-9]{4}.[0-9]{2}|(756)[0-9]{10}$",
+            "^(756)\\.[0-9]{4}\\.[0-9]{4}\\.[0-9]{2}|(756)[0-9]{10}$",
           "validation-logic": "CH_AHV_check",
-          autocomplete: "???.????.????.??"
+          autocomplete: "???.????.????.??",
         },
       ],
     },
@@ -402,19 +386,6 @@ export const anastasisData = {
           widget: "anastasis_gtk_ia_birthplace",
           uuid: "4c822e8e-89c6-11eb-95c4-8b077ad8489f",
         },
-        {
-          type: "string",
-          name: "tax_number",
-          label: "Taxpayer identification number",
-          label_i18n: {
-            de_DE: "Steuerliche Identifikationsnummer",
-            en: "German taxpayer identification number",
-          },
-          widget: "anastasis_gtk_ia_tax_de",
-          uuid: "dae48f85-e3ff-47a4-a4a3-ed981ed8c3c6",
-          "validation-regex": "^[0-9]{11}$",
-          "validation-logic": "DE_TIN_check",
-        },
         {
           type: "string",
           name: "social_security_number",
@@ -429,6 +400,19 @@ export const anastasisData = {
           "validation-logic": "DE_SVN_check",
           optional: true,
         },
+        {
+          type: "string",
+          name: "tax_number",
+          label: "Taxpayer identification number",
+          label_i18n: {
+            de_DE: "Steuerliche Identifikationsnummer",
+            en: "German taxpayer identification number",
+          },
+          widget: "anastasis_gtk_ia_tin_de",
+          uuid: "dae48f85-e3ff-47a4-a4a3-ed981ed8c3c6",
+          "validation-regex": "^[0-9]{11}$",
+          "validation-logic": "DE_TIN_check",
+        },
       ],
     },
     dk: {
@@ -514,6 +498,46 @@ export const anastasisData = {
         },
       ],
     },
+    fr: {
+      license: "GPLv3+",
+      "SPDX-License-Identifier": "GPL3.0-or-later",
+      required_attributes: [
+        {
+          type: "string",
+          name: "full_name",
+          label: "Full name",
+          widget: "anastasis_gtk_ia_full_name",
+          uuid: "9e8f463f-575f-42cb-85f3-759559997331",
+        },
+        {
+          type: "date",
+          name: "birthdate",
+          label: "Birthdate",
+          widget: "anastasis_gtk_ia_birthdate",
+          uuid: "83d655c7-bdb6-484d-904e-80c1058c8854",
+        },
+        {
+          type: "string",
+          name: "birthplace",
+          label: "Birthplace",
+          widget: "anastasis_gtk_ia_birthplace",
+          uuid: "4c822e8e-89c6-11eb-95c4-8b077ad8489f",
+        },
+        {
+          type: "string",
+          name: "social_security_number",
+          label: "Code Insee",
+          label_i18n: {
+            fr_FR: "Code Insee",
+            en: "INSEE code",
+          },
+          widget: "anastasis_gtk_ia_insee_fr",
+          uuid: "2f36a81c-3f6d-41f3-97ee-9c885bc41873",
+          "validation-regex": "^[0-9]{15}$",
+          "validation-logic": "FR_INSEE_check",
+        },
+      ],
+    },
     in: {
       license: "GPLv3+",
       "SPDX-License-Identifier": "GPL3.0-or-later",
@@ -626,6 +650,46 @@ export const anastasisData = {
         },
       ],
     },
+    nl: {
+      license: "GPLv3+",
+      "SPDX-License-Identifier": "GPL3.0-or-later",
+      required_attributes: [
+        {
+          type: "string",
+          name: "full_name",
+          label: "Full name",
+          widget: "anastasis_gtk_ia_full_name",
+          uuid: "9e8f463f-575f-42cb-85f3-759559997331",
+        },
+        {
+          type: "date",
+          name: "birthdate",
+          label: "Birthdate",
+          widget: "anastasis_gtk_ia_birthdate",
+          uuid: "83d655c7-bdb6-484d-904e-80c1058c8854",
+        },
+        {
+          type: "string",
+          name: "birthplace",
+          label: "Birthplace",
+          widget: "anastasis_gtk_ia_birthplace",
+          uuid: "4c822e8e-89c6-11eb-95c4-8b077ad8489f",
+        },
+        {
+          type: "string",
+          name: "social_security_number",
+          label: "Citizen Service Number",
+          label_i18n: {
+            nl_NL: "Burgerservicenummer (BSN)",
+            en: "Citizen Service Number",
+          },
+          widget: "anastasis_gtk_ia_ssn_nl",
+          uuid: "b6bf1f14-1f85-4afb-af21-f54b88490bdc",
+          "validation-regex": "^[1-9][0-9]{8}$",
+          "validation-logic": "NL_BSN_check",
+        },
+      ],
+    },
     sk: {
       license: "GPLv3+",
       "SPDX-License-Identifier": "GPL3.0-or-later",
@@ -702,35 +766,7 @@ export const anastasisData = {
     xx: {
       license: "GPLv3+",
       "SPDX-License-Identifier": "GPL3.0-or-later",
-      required_attributes: [
-        {
-          type: "string",
-          name: "full_name",
-          label: "Full name",
-          widget: "anastasis_gtk_ia_full_name",
-          uuid: "9e8f463f-575f-42cb-85f3-759559997331",
-        },
-        {
-          type: "date",
-          name: "birthdate",
-          label: "Birthdate",
-          widget: "anastasis_gtk_ia_birthdate",
-          uuid: "83d655c7-bdb6-484d-904e-80c1058c8854",
-        },
-        {
-          type: "string",
-          name: "sq_number",
-          label: "Square number",
-          widget: "anastasis_gtk_xx_square",
-          uuid: "ed790bca-89bf-11eb-96f2-233996cf644e",
-          "validation-regex": "^[0-9]+$",
-          "validation-logic": "XX_SQUARE_check",
-        },
-      ],
-    },
-    xy: {
-      license: "GPLv3+",
-      "SPDX-License-Identifier": "GPL3.0-or-later",
+      restricted: "xx",
       required_attributes: [
         {
           type: "string",
@@ -754,6 +790,16 @@ export const anastasisData = {
           uuid: "39190a95-cacb-4412-8bae-1f7da3f980b4",
           "validation-regex": "^[0-9]+$",
           "validation-logic": "XY_PRIME_check",
+          optional: true,
+        },
+        {
+          type: "string",
+          name: "sq_number",
+          label: "Square number",
+          widget: "anastasis_gtk_xx_square",
+          uuid: "ed790bca-89bf-11eb-96f2-233996cf644e",
+          "validation-regex": "^[0-9]+$",
+          "validation-logic": "XX_SQUARE_check",
         },
       ],
     },
diff --git a/packages/anastasis-core/src/index.ts 
b/packages/anastasis-core/src/index.ts
index 01266787..5dd560a2 100644
--- a/packages/anastasis-core/src/index.ts
+++ b/packages/anastasis-core/src/index.ts
@@ -142,23 +142,13 @@ const logger = new Logger("anastasis-core:index.ts");
 
 const ANASTASIS_HTTP_HEADER_POLICY_META_DATA = "Anastasis-Policy-Meta-Data";
 
-function getContinents(
-  opts: { requireProvider?: boolean } = {},
-): ContinentInfo[] {
-  const currenciesWithProvider = new Set<string>();
-  anastasisData.providersList.anastasis_provider.forEach((x) => {
-    currenciesWithProvider.add(x.currency);
-  });
+function getContinents(): ContinentInfo[] {
   const continentSet = new Set<string>();
   const continents: ContinentInfo[] = [];
   for (const country of anastasisData.countriesList.countries) {
     if (continentSet.has(country.continent)) {
       continue;
     }
-    if (opts.requireProvider && !currenciesWithProvider.has(country.currency)) 
{
-      // Country's currency doesn't have any providers => skip
-      continue;
-    }
     continentSet.add(country.continent);
     continents.push({
       ...{ name_i18n: country.continent_i18n },
@@ -191,23 +181,14 @@ export class ReducerError extends Error {
  * Get countries for a continent, abort with ReducerError
  * exception when continent doesn't exist.
  */
-function getCountries(
-  continent: string,
-  opts: { requireProvider?: boolean } = {},
-): CountryInfo[] {
-  const currenciesWithProvider = new Set<string>();
-  anastasisData.providersList.anastasis_provider.forEach((x) => {
-    currenciesWithProvider.add(x.currency);
-  });
+function getCountries(continent: string): CountryInfo[] {
   const countries = anastasisData.countriesList.countries.filter(
-    (x) =>
-      x.continent === continent &&
-      (!opts.requireProvider || currenciesWithProvider.has(x.currency)),
+    (x) => x.continent === continent,
   );
   if (countries.length <= 0) {
     throw new ReducerError({
       code: TalerErrorCode.ANASTASIS_REDUCER_INPUT_INVALID,
-      hint: "continent not found",
+      hint: `continent ${continent} not found`,
     });
   }
   return countries;
@@ -217,9 +198,7 @@ export async function getBackupStartState(): 
Promise<ReducerStateBackup> {
   return {
     reducer_type: "backup",
     backup_state: BackupStates.ContinentSelecting,
-    continents: getContinents({
-      requireProvider: true,
-    }),
+    continents: getContinents(),
   };
 }
 
@@ -227,9 +206,7 @@ export async function getRecoveryStartState(): 
Promise<ReducerStateRecovery> {
   return {
     reducer_type: "recovery",
     recovery_state: RecoveryStates.ContinentSelecting,
-    continents: getContinents({
-      requireProvider: true,
-    }),
+    continents: getContinents(),
   };
 }
 
@@ -238,7 +215,6 @@ async function selectCountry(
   args: ActionArgsSelectCountry,
 ): Promise<Partial<ReducerStateBackup> & Partial<ReducerStateRecovery>> {
   const countryCode = args.country_code;
-  const currencies = args.currencies;
   const country = anastasisData.countriesList.countries.find(
     (x) => x.code === countryCode,
   );
@@ -258,7 +234,10 @@ async function selectCountry(
 
   const providers: { [x: string]: AuthenticationProviderStatus } = {};
   for (const prov of anastasisData.providersList.anastasis_provider) {
-    if (currencies.includes(prov.currency)) {
+    let shouldAdd =
+      country.code === prov.restricted ||
+      (country.code !== "xx" && !prov.restricted);
+    if (shouldAdd) {
       providers[prov.url] = {
         status: "not-contacted",
       };
@@ -270,7 +249,6 @@ async function selectCountry(
 
   return {
     selected_country: countryCode,
-    currencies,
     required_attributes: ra,
     authentication_providers: providers,
   };
@@ -1223,9 +1201,7 @@ async function backupSelectContinent(
   state: ReducerStateBackup,
   args: ActionArgsSelectContinent,
 ): Promise<ReducerStateBackup | ReducerStateError> {
-  const countries = getCountries(args.continent, {
-    requireProvider: true,
-  });
+  const countries = getCountries(args.continent);
   if (countries.length <= 0) {
     return {
       reducer_type: "error",
@@ -1245,9 +1221,7 @@ async function recoverySelectContinent(
   state: ReducerStateRecovery,
   args: ActionArgsSelectContinent,
 ): Promise<ReducerStateRecovery | ReducerStateError> {
-  const countries = getCountries(args.continent, {
-    requireProvider: true,
-  });
+  const countries = getCountries(args.continent);
   return {
     ...state,
     recovery_state: RecoveryStates.CountrySelecting,
@@ -1540,6 +1514,40 @@ async function nextFromChallengeSelecting(
   };
 }
 
+async function syncProviders(
+  state: ReducerStateRecovery,
+  args: void,
+): Promise<ReducerStateRecovery | ReducerStateError> {
+  const escrowMethods = state.verbatim_recovery_document?.escrow_methods ?? [];
+  if (escrowMethods.length === 0) {
+    return {
+      reducer_type: "error",
+      code: TalerErrorCode.ANASTASIS_REDUCER_ACTION_INVALID,
+      hint: "Can't sync, no escrow methods in recovery doc.",
+    };
+  }
+  for (const x of escrowMethods) {
+    const pi = state.authentication_providers?.[x.url];
+    if (pi?.status === "ok") {
+      logger.info(`provider ${x.url} is synced`);
+      continue;
+    }
+    const newPi = await getProviderInfo(x.url);
+    return {
+      ...state,
+      authentication_providers: {
+        ...state.authentication_providers,
+        [x.url]: newPi,
+      },
+    };
+  }
+  return {
+    reducer_type: "error",
+    code: TalerErrorCode.ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED,
+    hint: "all providers are already synced",
+  };
+}
+
 async function enterSecretName(
   state: ReducerStateBackup,
   args: ActionArgsEnterSecretName,
@@ -1714,6 +1722,7 @@ const recoveryTransitions: Record<
     ),
     ...transition("poll", codecForAny(), pollChallenges),
     ...transition("next", codecForAny(), nextFromChallengeSelecting),
+    ...transition("sync_providers", codecForAny(), syncProviders),
   },
   [RecoveryStates.ChallengeSolving]: {
     ...transitionRecoveryJump("back", RecoveryStates.ChallengeSelecting),
diff --git a/packages/anastasis-core/src/reducer-types.ts 
b/packages/anastasis-core/src/reducer-types.ts
index bb06ea7c..a0af2f86 100644
--- a/packages/anastasis-core/src/reducer-types.ts
+++ b/packages/anastasis-core/src/reducer-types.ts
@@ -41,7 +41,6 @@ export interface CountryInfo {
   code: string;
   name: string;
   continent: string;
-  currency: string;
 }
 
 export interface Policy {
@@ -77,8 +76,6 @@ export interface ReducerStateBackup {
 
   backup_state: BackupStates;
 
-  currencies?: string[];
-
   continents?: ContinentInfo[];
 
   countries?: CountryInfo[];
@@ -201,7 +198,6 @@ export interface ReducerStateRecovery {
 
   selected_continent?: string;
   selected_country?: string;
-  currencies?: string[];
 
   required_attributes?: UserAttributeSpec[];
 
@@ -406,7 +402,6 @@ export const codecForActionArgSelectContinent = () =>
 
 export interface ActionArgsSelectCountry {
   country_code: string;
-  currencies: string[];
 }
 
 export interface ActionArgsSelectChallenge {
@@ -551,5 +546,4 @@ export const codecForActionArgsSelectChallenge = () =>
 export const codecForActionArgSelectCountry = () =>
   buildCodecForObject<ActionArgsSelectCountry>()
     .property("country_code", codecForString())
-    .property("currencies", codecForList(codecForString()))
     .build("ActionArgSelectCountry");
diff --git a/packages/anastasis-webui/src/utils/index.tsx 
b/packages/anastasis-webui/src/utils/index.tsx
index 51a074fe..d2b64e31 100644
--- a/packages/anastasis-webui/src/utils/index.tsx
+++ b/packages/anastasis-webui/src/utils/index.tsx
@@ -3,6 +3,7 @@ import {
   BackupStates,
   RecoveryStates,
   ReducerState,
+  ReducerStateRecovery,
 } from "@gnu-taler/anastasis-core";
 import { FunctionalComponent, h, VNode } from "preact";
 import { AnastasisProvider } from "../context/anastasis";
@@ -222,7 +223,7 @@ export const reducerStatesExample = {
   challengeSolving: {
     ...base,
     recovery_state: RecoveryStates.ChallengeSolving,
-  } as ReducerState,
+  } as ReducerStateRecovery,
   challengePaying: {
     ...base,
     recovery_state: RecoveryStates.ChallengePaying,
diff --git a/packages/taler-util/src/taler-error-codes.ts 
b/packages/taler-util/src/taler-error-codes.ts
index 53928986..83ac7c1b 100644
--- a/packages/taler-util/src/taler-error-codes.ts
+++ b/packages/taler-util/src/taler-error-codes.ts
@@ -416,6 +416,13 @@ export enum TalerErrorCode {
    */
   EXCHANGE_GENERIC_GLOBAL_FEES_MISSING = 1022,
 
+  /**
+   * The exchange was not properly configured with wire fees.
+   * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR 
(500).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_GENERIC_WIRE_FEES_MISSING = 1023,
+
   /**
    * The exchange did not find information about the specified transaction in 
the database.
    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
@@ -1179,6 +1186,55 @@ export enum TalerErrorCode {
    */
   EXCHANGE_CREATE_PURSE_NEGATIVE_VALUE_AFTER_FEE = 1860,
 
+  /**
+   * The purse to be merged is not known.
+   * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_MERGE_PURSE_NOT_FOUND = 1875,
+
+  /**
+   * The signature using the merge key is invalid.
+   * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_PURSE_MERGE_INVALID_MERGE_SIGNATURE = 1876,
+
+  /**
+   * The signature using the reserve key is invalid.
+   * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_PURSE_MERGE_INVALID_RESERVE_SIGNATURE = 1877,
+
+  /**
+   * The targeted purse is not yet full and thus cannot be merged. Retrying 
the request later may succeed.
+   * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_PURSE_NOT_FULL = 1878,
+
+  /**
+   * The signature from the exchange over the confirmation is invalid.
+   * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_PURSE_MERGE_EXCHANGE_SIGNATURE_INVALID = 1879,
+
+  /**
+   * The exchange of the target account is not a partner of this exchange.
+   * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN = 1880,
+
+  /**
+   * The amount in the purse is lower than the wad fee. So the request was 
accepted, but no transfer is expected to take place. FIXME-DOLD: good HTTP 
status. Suggestion: no error, make variant of 200 OK.
+   * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_PURSE_MERGE_WAD_FEE_EXCEEDS_PURSE_VALUE = 1881,
+
   /**
    * The auditor signature over the denomination meta data is invalid.
    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
@@ -1235,6 +1291,41 @@ export enum TalerErrorCode {
    */
   EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED = 1930,
 
+  /**
+   * The exchange does not know a contract under the given contract public key.
+   * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_CONTRACTS_UNKNOWN = 1950,
+
+  /**
+   * The URL does not encode a valid exchange public key in its path.
+   * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_CONTRACTS_INVALID_CONTRACT_PUB = 1951,
+
+  /**
+   * The returned encrypted contract did not decrypt.
+   * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_CONTRACTS_DECRYPTION_FAILED = 1952,
+
+  /**
+   * The signature on the encrypted contract did not validate.
+   * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_CONTRACTS_SIGNATURE_INVALID = 1953,
+
+  /**
+   * The decrypted contract was malformed.
+   * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  EXCHANGE_CONTRACTS_DECODING_FAILED = 1954,
+
   /**
    * The backend could not find the merchant instance specified in the request.
    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
@@ -2418,13 +2509,6 @@ export enum TalerErrorCode {
    */
   ANASTASIS_TRUTH_CHALLENGE_UNKNOWN = 8112,
 
-  /**
-   * A challenge is already active, the service is thus not issuing a new one.
-   * Returned with an HTTP status code of #MHD_HTTP_ALREADY_REPORTED (208).
-   * (A value of 0 indicates that the error is generated client-side).
-   */
-  ANASTASIS_TRUTH_CHALLENGE_ACTIVE = 8113,
-
   /**
    * The backend failed to initiate the authorization process.
    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR 
(500).
@@ -2481,13 +2565,6 @@ export enum TalerErrorCode {
    */
   ANASTASIS_TRUTH_RATE_LIMITED = 8121,
 
-  /**
-   * The authentication process did not yet complete. The user should try 
again later.
-   * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
-   * (A value of 0 indicates that the error is generated client-side).
-   */
-  ANASTASIS_TRUTH_AUTH_TIMEOUT = 8122,
-
   /**
    * A request to issue a challenge is not valid for this authentication 
method.
    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
@@ -2511,7 +2588,7 @@ export enum TalerErrorCode {
 
   /**
    * The provided phone number is not an acceptable number.
-   * Returned with an HTTP status code of #MHD_HTTP_EXPECTATION_FAILED (417).
+   * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    * (A value of 0 indicates that the error is generated client-side).
    */
   ANASTASIS_SMS_PHONE_INVALID = 8200,
@@ -2532,7 +2609,7 @@ export enum TalerErrorCode {
 
   /**
    * The provided email address is not an acceptable address.
-   * Returned with an HTTP status code of #MHD_HTTP_EXPECTATION_FAILED (417).
+   * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    * (A value of 0 indicates that the error is generated client-side).
    */
   ANASTASIS_EMAIL_INVALID = 8210,
@@ -2553,7 +2630,7 @@ export enum TalerErrorCode {
 
   /**
    * The provided postal address is not an acceptable address.
-   * Returned with an HTTP status code of #MHD_HTTP_EXPECTATION_FAILED (417).
+   * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    * (A value of 0 indicates that the error is generated client-side).
    */
   ANASTASIS_POST_INVALID = 8220,
@@ -2574,21 +2651,28 @@ export enum TalerErrorCode {
 
   /**
    * The provided IBAN address is not an acceptable IBAN.
-   * Returned with an HTTP status code of #MHD_HTTP_EXPECTATION_FAILED (417).
+   * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    * (A value of 0 indicates that the error is generated client-side).
    */
   ANASTASIS_IBAN_INVALID = 8230,
 
+  /**
+   * The provider has not yet received the IBAN wire transfer authorizing the 
disclosure of the key share.
+   * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  ANASTASIS_IBAN_MISSING_TRANSFER = 8231,
+
   /**
    * The backend did not find a TOTP key in the data provided.
-   * Returned with an HTTP status code of #MHD_HTTP_EXPECTATION_FAILED (417).
+   * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    * (A value of 0 indicates that the error is generated client-side).
    */
   ANASTASIS_TOTP_KEY_MISSING = 8240,
 
   /**
    * The key provided does not satisfy the format restrictions for an 
Anastasis TOTP key.
-   * Returned with an HTTP status code of #MHD_HTTP_EXPECTATION_FAILED (417).
+   * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    * (A value of 0 indicates that the error is generated client-side).
    */
   ANASTASIS_TOTP_KEY_INVALID = 8241,
@@ -2775,6 +2859,13 @@ export enum TalerErrorCode {
    */
   ANASTASIS_REDUCER_INTERNAL_ERROR = 8419,
 
+  /**
+   * The reducer already synchronized with all providers.
+   * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
+   * (A value of 0 indicates that the error is generated client-side).
+   */
+  ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED = 8420,
+
   /**
    * A generic error happened in the LibEuFin nexus.  See the enclose details 
JSON for more information.
    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]