gnunet-svn
[Top][All Lists]
Advanced

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

[taler-typescript-core] branch master updated: fix #10065


From: Admin
Subject: [taler-typescript-core] branch master updated: fix #10065
Date: Wed, 04 Jun 2025 20:21:48 +0200

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

sebasjm pushed a commit to branch master
in repository taler-typescript-core.

The following commit(s) were added to refs/heads/master by this push:
     new a72a55653 fix #10065
a72a55653 is described below

commit a72a556539edb00e773e559d6283c5fc719375e2
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Wed Jun 4 15:21:39 2025 -0300

    fix #10065
---
 .../aml-backoffice-ui/src/pages/decision/Rules.tsx | 31 ++++++++++++++++++----
 packages/taler-util/src/http-client/exchange.ts    |  2 +-
 packages/taler-util/src/types-taler-exchange.ts    | 11 ++++++++
 3 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx 
b/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx
index dfae4183c..09b8ab998 100644
--- a/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx
+++ b/packages/aml-backoffice-ui/src/pages/decision/Rules.tsx
@@ -126,6 +126,7 @@ export function Rules({
 }): VNode {
   const { i18n } = useTranslationContext();
   const { config } = useExchangeApiContext();
+  const [request] = useCurrentDecisionRequest()
 
   let newPaytoParsed: PaytoUri | undefined;
   const isNewAccountAWallet =
@@ -137,20 +138,30 @@ export function Rules({
           (newPaytoParsed.targetType === "taler-reserve" ||
             newPaytoParsed.targetType === "taler-reserve-http");
 
+  // info may be undefined if this is a new account
+  // for which we use the payto:// parameter
+  const isWallet = request.original?.is_wallet ?? isNewAccountAWallet;
+
   const measures = useServerMeasures();
   const rootMeasures =
     !measures || measures instanceof TalerError || measures.type === "fail"
       ? undefined
       : measures.body.roots;
-  const [request] = useCurrentDecisionRequest()
 
-  // info may be undefined if this is a new account
-  // for which we use the payto:// parameter
-  const isWallet = request.original?.is_wallet ?? isNewAccountAWallet;
+  const defaultRules =
+    (!measures || measures instanceof TalerError || measures.type === "fail"
+      ? []
+      : measures.body.default_rules).filter((r) => {
+      return isWallet
+        ? WALLET_RULES.includes(r.operation_type)
+        : BANK_RULES.includes(r.operation_type);
+    });
+
   return (
     <div>
       <UpdateRulesForm
         rootMeasures={rootMeasures}
+        defaultRules={defaultRules}
         config={config.config}
         isWallet={isWallet ?? false}
         limits={request.original?.limits ?? DEFAULT_LIMITS_WHEN_NEW_ACCOUNT}
@@ -240,12 +251,14 @@ function UpdateRulesForm({
   config,
   limits,
   rootMeasures,
+  defaultRules,
   isWallet,
 }: {
   config: ExchangeVersionResponse;
   limits: LegitimizationRuleSet;
   isWallet: boolean | undefined;
   rootMeasures: AvailableMeasureSummary["roots"] | undefined;
+  defaultRules: KycRule[]
 }): VNode {
   const { i18n } = useTranslationContext();
   const [request, updateRequest] =
@@ -402,7 +415,15 @@ function UpdateRulesForm({
         }}
         class="m-4  rounded-md w-fit border-0 px-3 py-2 text-center text-sm 
bg-indigo-700 text-white shadow-sm hover:bg-indigo-700 disabled:bg-gray-600"
       >
-        <i18n.Translate>Reset rules</i18n.Translate>
+        <i18n.Translate>Reset rules to current state</i18n.Translate>
+      </button>
+      <button
+        onClick={() => {
+          setRules(defaultRules);
+        }}
+        class="m-4  rounded-md w-fit border-0 px-3 py-2 text-center text-sm 
bg-indigo-700 text-white shadow-sm hover:bg-indigo-700 disabled:bg-gray-600"
+      >
+        <i18n.Translate>Set rules to default</i18n.Translate>
       </button>
       <button
         onClick={() => {
diff --git a/packages/taler-util/src/http-client/exchange.ts 
b/packages/taler-util/src/http-client/exchange.ts
index 31b42b0ce..3aa49afe0 100644
--- a/packages/taler-util/src/http-client/exchange.ts
+++ b/packages/taler-util/src/http-client/exchange.ts
@@ -122,7 +122,7 @@ export type KycProcessClientInformationWithEtag =
  * However, we should merge it with the other exchange client implementation.
  */
 export class TalerExchangeHttpClient {
-  public static readonly PROTOCOL_VERSION = "27:0:2";
+  public static readonly PROTOCOL_VERSION = "28:0:2";
   private httpLib: HttpRequestLibrary;
   private cacheEvictor: CacheEvictor<TalerExchangeCacheEviction>;
   private preventCompression: boolean;
diff --git a/packages/taler-util/src/types-taler-exchange.ts 
b/packages/taler-util/src/types-taler-exchange.ts
index cd0feba9b..73f696839 100644
--- a/packages/taler-util/src/types-taler-exchange.ts
+++ b/packages/taler-util/src/types-taler-exchange.ts
@@ -1671,6 +1671,16 @@ export interface AvailableMeasureSummary {
 
   // Available KYC checks.
   checks: { [check_name: string]: KycCheckInformation };
+
+  // Default KYC rules. This is the set of KYC rules that
+  // applies by default to new "accounts".  Note that some
+  // rules only apply to wallets, while others only apply to
+  // bank accounts. The returned array is the union of all
+  // possible rules, applications should consider the
+  // operation_type to filter for rules that actually
+  // apply to a specific situation.
+  // @since protocol **v28**.
+  default_rules: KycRule[];
 }
 
 export interface MeasureInformation {
@@ -2598,6 +2608,7 @@ export const codecForAvailableMeasureSummary =
       .property("checks", codecForMap(codecForKycCheckInformation()))
       .property("programs", codecForMap(codecForAmlProgramRequirement()))
       .property("roots", codecForMap(codecForMeasureInformation()))
+      .property("default_rules", codecForList(codecForKycRules()))
       .build("TalerExchangeApi.AvailableMeasureSummary");
 
 export const codecForAmlProgramRequirement = (): Codec<AmlProgramRequirement> 
=>

-- 
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]