gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: fix payto parsing


From: gnunet
Subject: [taler-wallet-core] branch master updated: fix payto parsing
Date: Wed, 19 Jun 2024 17:23:06 +0200

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

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

The following commit(s) were added to refs/heads/master by this push:
     new 0695533de fix payto parsing
0695533de is described below

commit 0695533de2354a3681ccc1d0627cbdb44eed9a75
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Wed Jun 19 12:22:57 2024 -0300

    fix payto parsing
---
 packages/taler-util/src/payto.test.ts |  6 ++++++
 packages/taler-util/src/payto.ts      | 17 ++++++++++++-----
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/packages/taler-util/src/payto.test.ts 
b/packages/taler-util/src/payto.test.ts
index 0802e1cd4..1b6907cbb 100644
--- a/packages/taler-util/src/payto.test.ts
+++ b/packages/taler-util/src/payto.test.ts
@@ -36,3 +36,9 @@ test("parsing payto and stringify again", (t) => {
 
   t.is(stringifyPaytoUri(parsePaytoUri(payto1)!), payto1);
 });
+test("parsing payto with % carh", (t) => {
+  const payto1 =
+    
"payto://iban/DE7763544441436?receiver-name=Test%20123%2B-%24%25%5E%3Cem%3Ehi%3C%2Fem%3E"
 as PaytoString;
+
+  t.is(stringifyPaytoUri(parsePaytoUri(payto1)!), payto1);
+});
diff --git a/packages/taler-util/src/payto.ts b/packages/taler-util/src/payto.ts
index 1d13fb502..2b55cdf64 100644
--- a/packages/taler-util/src/payto.ts
+++ b/packages/taler-util/src/payto.ts
@@ -23,7 +23,14 @@ import {
   codecForStringURL,
   renderContext,
 } from "./codec.js";
-import { AccessToken, bytesToString, codecForAccessToken, codecOptional, 
hashTruncate32, stringToBytes } from "./index.js";
+import {
+  AccessToken,
+  bytesToString,
+  codecForAccessToken,
+  codecOptional,
+  hashTruncate32,
+  stringToBytes,
+} from "./index.js";
 import { URLSearchParams } from "./url.js";
 
 export type PaytoUri =
@@ -164,7 +171,6 @@ export function addPaytoQueryParams(
     return paytoPfx + acct;
   }
   return paytoPfx + acct + "?" + createSearchParams(paramList);
-
 }
 
 /**
@@ -197,12 +203,12 @@ function createSearchParams(paramList: [string, 
string][]): string {
 export function stringifyPaytoUri(p: PaytoUri): PaytoString {
   const url = new URL(`${paytoPfx}${p.targetType}/${p.targetPath}`);
   const paramList = !p.params ? [] : Object.entries(p.params);
-  url.search = createSearchParams(paramList)
+  url.search = createSearchParams(paramList);
   return url.href as PaytoString;
 }
 
 export function hashPaytoUri(p: PaytoUri): string {
-  const paytoUri = stringifyPaytoUri(p)
+  const paytoUri = stringifyPaytoUri(p);
   return bytesToString(hashTruncate32(stringToBytes(paytoUri + "\0")));
 }
 
@@ -234,7 +240,8 @@ export function parsePaytoUri(s: string): PaytoUri | 
undefined {
   const searchParams = new URLSearchParams(search || "");
 
   searchParams.forEach((v, k) => {
-    params[k] = decodeURIComponent(v);
+    // URLSearchParams already decodes uri components
+    params[k] = v; //decodeURIComponent(v);
   });
 
   if (targetType === "x-taler-bank") {

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