[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] 04/04: handle unsupported payto://taler
From: |
gnunet |
Subject: |
[taler-wallet-core] 04/04: handle unsupported payto://taler |
Date: |
Mon, 06 Jan 2025 23:57:01 +0100 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository wallet-core.
commit 8965ef07c3ca06e3c53060968352e9ca683013dd
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Mon Jan 6 19:56:39 2025 -0300
handle unsupported payto://taler
---
.../bank-ui/src/pages/OperationState/views.tsx | 4 ++++
.../bank-ui/src/pages/PaytoWireTransferForm.tsx | 18 +++++++++-----
.../src/pages/WithdrawalConfirmationQuestion.tsx | 4 ++++
packages/kyc-ui/src/pages/TriggerKyc.tsx | 28 +++++++++++-----------
.../src/components/modal/index.tsx | 8 ++++---
.../src/paths/instance/accounts/list/Table.tsx | 3 ++-
.../src/components/BankDetailsByPaytoType.tsx | 8 ++++++-
.../src/wallet/DestinationSelection/views.tsx | 3 +++
8 files changed, 51 insertions(+), 25 deletions(-)
diff --git a/packages/bank-ui/src/pages/OperationState/views.tsx
b/packages/bank-ui/src/pages/OperationState/views.tsx
index 0569ea6eb..3894d646e 100644
--- a/packages/bank-ui/src/pages/OperationState/views.tsx
+++ b/packages/bank-ui/src/pages/OperationState/views.tsx
@@ -240,6 +240,10 @@ export function NeedConfirmationView({
);
}
switch (details.account.targetType) {
+ case "taler": {
+ // FIXME: support wire transfer to wallet
+ return <div>not yet supported</div>;
+ }
case "iban": {
const name = details.account.params["receiver-name"];
return (
diff --git a/packages/bank-ui/src/pages/PaytoWireTransferForm.tsx
b/packages/bank-ui/src/pages/PaytoWireTransferForm.tsx
index 7c7a7f99d..c36e9a921 100644
--- a/packages/bank-ui/src/pages/PaytoWireTransferForm.tsx
+++ b/packages/bank-ui/src/pages/PaytoWireTransferForm.tsx
@@ -166,11 +166,13 @@ export function PaytoWireTransferForm({
? undefined
: p.targetType === "iban"
? p.iban
- : p.targetType === "bitcoin"
- ? p.address
- : p.targetType === "x-taler-bank"
- ? p.account
- : assertUnreachable(p);
+ : p.targetType === "taler"
+ ? undefined // FIXME: unsupported payto://
+ : p.targetType === "bitcoin"
+ ? p.address
+ : p.targetType === "x-taler-bank"
+ ? p.account
+ : assertUnreachable(p);
} else {
if (!account || !subject) return;
let payto;
@@ -317,6 +319,10 @@ export function PaytoWireTransferForm({
onChange={() => {
if (parsed && parsed.isKnown) {
switch (parsed.targetType) {
+ case "taler": {
+ // FIXME: unsupported payto
+ break;
+ }
case "iban": {
setAccount(parsed.iban);
break;
@@ -543,7 +549,7 @@ export function PaytoWireTransferForm({
<b style={{ color: "red" }}> *</b>
</label>
<div class="mt-2">
- <textarea
+ <textarea
type="textarea"
rows={3}
class="block w-full rounded-md border-0 py-1.5
text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300
placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600
sm:text-sm sm:leading-6"
diff --git a/packages/bank-ui/src/pages/WithdrawalConfirmationQuestion.tsx
b/packages/bank-ui/src/pages/WithdrawalConfirmationQuestion.tsx
index 143b47647..04ca88988 100644
--- a/packages/bank-ui/src/pages/WithdrawalConfirmationQuestion.tsx
+++ b/packages/bank-ui/src/pages/WithdrawalConfirmationQuestion.tsx
@@ -272,6 +272,10 @@ export function WithdrawalConfirmationQuestion({
);
}
switch (details.account.targetType) {
+ case "taler": {
+ // FIXME: support wire transfer to wallet
+ return <div>not yet supported</div>;
+ }
case "iban": {
const name =
details.account.params["receiver-name"];
diff --git a/packages/kyc-ui/src/pages/TriggerKyc.tsx
b/packages/kyc-ui/src/pages/TriggerKyc.tsx
index c2a132138..4c4f4f95b 100644
--- a/packages/kyc-ui/src/pages/TriggerKyc.tsx
+++ b/packages/kyc-ui/src/pages/TriggerKyc.tsx
@@ -74,7 +74,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
{
id: ".amount" as UIHandlerId,
type: "amount",
- currency: config.currency,
+ currency: config.config.currency,
label: i18n.str`Amount`,
required: true,
converterId: "Taler.Amount",
@@ -113,7 +113,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
const [form, state] = useFormState<FormType>(
shape,
{
- amount: Amounts.parseOrThrow(`${config.currency}:1000000`),
+ amount: Amounts.parseOrThrow(`${config.config.currency}:1000000`),
},
(st) => {
const partialErrors = undefinedIfEmpty<FormErrors<FormType>>({});
@@ -322,7 +322,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000000`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000000`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -334,7 +334,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000010`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000010`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -346,7 +346,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000020`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000020`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -358,7 +358,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000030`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000030`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -370,7 +370,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000040`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000040`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -382,7 +382,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000050`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000050`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -394,7 +394,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000060`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000060`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -406,7 +406,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000070`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000070`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -418,7 +418,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000080`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000080`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -430,7 +430,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000090`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000090`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -442,7 +442,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000100`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000100`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
@@ -454,7 +454,7 @@ export function TriggerKyc({ onKycStarted }: Props): VNode {
<Button
type="submit"
handler={triggerAmount(
- Amounts.parseOrThrow(`${config.currency}:1000110`),
+ Amounts.parseOrThrow(`${config.config.currency}:1000110`),
)}
// disabled={!submitHandler}
class="disabled:opacity-50 disabled:cursor-default rounded-md
bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm
hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2
focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
diff --git a/packages/merchant-backoffice-ui/src/components/modal/index.tsx
b/packages/merchant-backoffice-ui/src/components/modal/index.tsx
index a0c5f5044..a5157068b 100644
--- a/packages/merchant-backoffice-ui/src/components/modal/index.tsx
+++ b/packages/merchant-backoffice-ui/src/components/modal/index.tsx
@@ -461,9 +461,11 @@ export function ValidBankAccount({
? origin.targetPath
: origin.targetType === "iban"
? origin.iban
- : origin.targetType === "bitcoin"
- ? `${origin.address.substring(0, 8)}...`
- : origin.account;
+ : origin.targetType === "taler"
+ ? origin.reservePub
+ : origin.targetType === "bitcoin"
+ ? `${origin.address.substring(0, 8)}...`
+ : origin.account;
return (
<ConfirmModal
diff --git
a/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/Table.tsx
b/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/Table.tsx
index 1cf3483df..55da0a5da 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/Table.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/accounts/list/Table.tsx
@@ -107,12 +107,13 @@ function Table({ accounts, onDelete, onSelect }:
TableProps): VNode {
const emptyList: Record<
PaytoType | "unknown",
{ parsed: PaytoUri; acc: Entity }[]
- > = { bitcoin: [], "x-taler-bank": [], iban: [], unknown: [] };
+ > = { bitcoin: [], "x-taler-bank": [], iban: [], taler: [], unknown: [] };
const accountsByType = accounts.reduce((prev, acc) => {
const parsed = parsePaytoUri(acc.payto_uri);
if (!parsed) return prev; //skip
if (
parsed.targetType !== "bitcoin" &&
+ parsed.targetType !== "taler" &&
parsed.targetType !== "x-taler-bank" &&
parsed.targetType !== "iban"
) {
diff --git
a/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx
b/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx
index 65368fd81..346272ccb 100644
---
a/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx
+++
b/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx
@@ -20,6 +20,7 @@ import {
AmountString,
parsePaytoUri,
PaytoUriIBAN,
+ PaytoUriTaler,
PaytoUriTalerBank,
PaytoUriUnknown,
segwitMinAmount,
@@ -156,7 +157,7 @@ function IBANAccountInfoTable({
subject,
}: {
subject: string;
- payto: PaytoUriUnknown | PaytoUriIBAN | PaytoUriTalerBank;
+ payto: PaytoUriUnknown | PaytoUriIBAN | PaytoUriTalerBank | PaytoUriTaler;
}) {
const { i18n } = useTranslationContext();
const api = useBackendContext();
@@ -195,6 +196,11 @@ function IBANAccountInfoTable({
) : undefined}
<Row name={i18n.str`IBAN`} value={payto.iban} />
</Fragment>
+ ) : payto.targetType === "taler" ? (
+ <Fragment>
+ <Row name={i18n.str`Exchange`} value={payto.exchange} />
+ <Row name={i18n.str`Reserve Pub`} value={payto.reservePub} />
+ </Fragment>
) : undefined;
const receiver =
diff --git
a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx
b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx
index 1b34ad4e9..dbd21ee8d 100644
---
a/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx
+++
b/packages/taler-wallet-webextension/src/wallet/DestinationSelection/views.tsx
@@ -400,6 +400,9 @@ function describeAccount(paytoUri: string): string {
case "iban": {
return p.iban;
}
+ case "taler": {
+ return p.reservePub;
+ }
case "x-taler-bank": {
return `${p.host}/${p.account}`;
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.