commit 93b73848f7cf47e21ec256094610c03f67659324
parent 049570567ceb4e625f197d719b328b93f4a487d2
Author: Florian Dold <florian@dold.me>
Date: Tue, 11 Feb 2025 15:57:48 +0100
webext: remove usage of deprecated wallet-core request
Diffstat:
2 files changed, 48 insertions(+), 41 deletions(-)
diff --git a/packages/taler-wallet-webextension/src/components/ShowFullContractTermPopup.stories.tsx b/packages/taler-wallet-webextension/src/components/ShowFullContractTermPopup.stories.tsx
@@ -18,6 +18,7 @@
*
* @author Sebastian Javier Marchano (sebasjm)
*/
+import { AmountString, ContractTerms } from "@gnu-taler/taler-util";
import * as tests from "@gnu-taler/web-util/testing";
import {
ErrorView,
@@ -25,42 +26,42 @@ import {
LoadingView,
ShowView,
} from "./ShowFullContractTermPopup.js";
-import { AmountString, WalletContractData } from "@gnu-taler/taler-util";
export default {
title: "ShowFullContractTermPopup",
};
-const cd: WalletContractData = {
+const cd: ContractTerms = {
+ products: [],
+ nonce: "123",
amount: "ARS:2" as AmountString,
- contractTermsHash:
- "92X0KSJPZ8XS2XECCGFWTCGW8XMFCXTT2S6WHZDP6H9Y3TSKMTHY94WXEWDERTNN5XWCYGW4VN5CF2D4846HXTW7P06J4CZMHCWKC9G",
- fulfillmentUrl: "",
- merchantBaseUrl: "https://merchant-backend.taler.ar/",
- merchantPub: "JZYHJ13M91GMSQMT75J8Q6ZN0QP8XF8CRHR7K5MMWYE8JQB6AAPG",
- merchantSig:
- "0YA1WETV15R6K8QKS79QA3QMT16010F42Q49VSKYQ71HVQKAG0A4ZJCA4YTKHE9EA5SP156TJSKZEJJJ87305N6PS80PC48RNKYZE08",
- orderId: "2022.220-0281XKKB8W7YE",
+ merchant_base_url: "https://merchant-backend.taler.ar/",
+ merchant_pub: "JZYHJ13M91GMSQMT75J8Q6ZN0QP8XF8CRHR7K5MMWYE8JQB6AAPG",
+ order_id: "2022.220-0281XKKB8W7YE",
summary: "w",
- payDeadline: {
+ pay_deadline: {
t_s: 1660002673,
},
- refundDeadline: {
+ refund_deadline: {
t_s: 1660002673,
},
- allowedExchanges: [
+ exchanges: [
{
- exchangeBaseUrl: "https://exchange.taler.ar/",
- exchangePub: "1C2EYE90PYDNVRTQ25A3PA0KW5W4WPAJNNQHVHV49PT6W5CERFV0",
+ master_pub: "1C2EYE90PYDNVRTQ25A3PA0KW5W4WPAJNNQHVHV49PT6W5CERFV0",
+ url: "https://exchange.taler.ar/",
+ priority: 1,
},
],
timestamp: {
t_s: 1659972710,
},
- wireMethod: "x-taler-bank",
- wireInfoHash:
+ wire_transfer_deadline: {
+ t_s: 1659972710,
+ },
+ wire_method: "x-taler-bank",
+ h_wire:
"QDT28374ZHYJ59WQFZ3TW1D5WKJVDYHQT86VHED3TNMB15ANJSKXDYPPNX01348KDYCX6T4WXA5A8FJJ8YWNEB1JW726C1JPKHM89DR",
- maxDepositFee: "ARS:1" as AmountString,
+ max_fee: "ARS:1" as AmountString,
merchant: {
name: "Default",
address: {
@@ -71,8 +72,8 @@ const cd: WalletContractData = {
},
},
// products: [],
- autoRefund: undefined,
- summaryI18n: undefined,
+ auto_refund: undefined,
+ summary_i18n: undefined,
// deliveryDate: undefined,
// deliveryLocation: undefined,
};
diff --git a/packages/taler-wallet-webextension/src/components/ShowFullContractTermPopup.tsx b/packages/taler-wallet-webextension/src/components/ShowFullContractTermPopup.tsx
@@ -15,12 +15,13 @@
*/
import {
AbsoluteTime,
+ ContractTerms,
Duration,
Location,
TransactionIdStr,
- WalletContractData,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
+import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { styled } from "@linaria/react";
import { Fragment, h, VNode } from "preact";
import { useState } from "preact/hooks";
@@ -29,14 +30,12 @@ import { Modal } from "../components/Modal.js";
import { Time } from "../components/Time.js";
import { alertFromError, useAlertContext } from "../context/alert.js";
import { useBackendContext } from "../context/backend.js";
-import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { HookError, useAsyncAsHook } from "../hooks/useAsyncAsHook.js";
import { ButtonHandler } from "../mui/handlers.js";
import { compose, StateViewMap } from "../utils/index.js";
import { Amount } from "./Amount.js";
import { ErrorAlertView } from "./CurrentAlerts.js";
import { Link } from "./styled/index.js";
-import { WxApiType } from "../wxApi.js";
const ContractTermsTable = styled.table`
width: 100%;
@@ -96,7 +95,7 @@ export namespace States {
export interface Show {
status: "show";
hideHandler: ButtonHandler;
- contractTerms: WalletContractData;
+ contractTerms: ContractTerms;
}
}
@@ -110,8 +109,9 @@ function useComponentState({ transactionId }: Props): State {
const { pushAlertOnError } = useAlertContext();
const hook = useAsyncAsHook(async () => {
if (!show) return undefined;
- return await api.wallet.call(WalletApiOperation.GetContractTermsDetails, {
+ return await api.wallet.call(WalletApiOperation.GetTransactionById, {
transactionId,
+ includeContractTerms: true,
});
}, [show]);
@@ -131,9 +131,15 @@ function useComponentState({ transactionId }: Props): State {
if (hook.hasError)
return { status: "error", transactionId, error: hook, hideHandler };
if (!hook.response) return { status: "loading", hideHandler };
+ if (
+ !("contractTerms" in hook.response) ||
+ hook.response.contractTerms == null
+ ) {
+ throw Error();
+ }
return {
status: "show",
- contractTerms: hook.response,
+ contractTerms: hook.response.contractTerms,
hideHandler,
};
}
@@ -195,7 +201,7 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
<td>
<i18n.Translate>Order Id</i18n.Translate>
</td>
- <td>{contractTerms.orderId}</td>
+ <td>{contractTerms.order_id}</td>
</tr>
<tr>
<td>
@@ -259,8 +265,8 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
<i18n.Translate>Merchant public key</i18n.Translate>
</td>
<td>
- <span title={contractTerms.merchantPub}>
- {contractTerms.merchantPub.substring(0, 6)}...
+ <span title={contractTerms.merchant_pub}>
+ {contractTerms.merchant_pub.substring(0, 6)}...
</span>
</td>
</tr>
@@ -320,7 +326,7 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
{
<Time
timestamp={AbsoluteTime.fromProtocolTimestamp(
- contractTerms.refundDeadline,
+ contractTerms.refund_deadline,
)}
format="dd MMMM yyyy, HH:mm"
/>
@@ -336,11 +342,11 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
<Time
timestamp={AbsoluteTime.addDuration(
createdAt,
- !contractTerms.autoRefund
+ !contractTerms.auto_refund
? Duration.getZero()
: Duration.fromTalerProtocolDuration(
- contractTerms.autoRefund,
- ),
+ contractTerms.auto_refund,
+ ),
)}
format="dd MMMM yyyy, HH:mm"
/>
@@ -355,7 +361,7 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
{
<Time
timestamp={AbsoluteTime.fromProtocolTimestamp(
- contractTerms.payDeadline,
+ contractTerms.pay_deadline,
)}
format="dd MMMM yyyy, HH:mm"
/>
@@ -366,13 +372,13 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
<td>
<i18n.Translate>Fulfillment URL</i18n.Translate>
</td>
- <td>{contractTerms.fulfillmentUrl}</td>
+ <td>{contractTerms.fulfillment_url}</td>
</tr>
<tr>
<td>
<i18n.Translate>Fulfillment message</i18n.Translate>
</td>
- <td>{contractTerms.fulfillmentMessage}</td>
+ <td>{contractTerms.fulfillment_message}</td>
</tr>
{/* <tr>
<td>Public reorder URL</td>
@@ -383,7 +389,7 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
<i18n.Translate>Max deposit fee</i18n.Translate>
</td>
<td>
- <Amount value={contractTerms.maxDepositFee} />
+ <Amount value={contractTerms.max_fee} />
</td>
</tr>
{/* <tr>
@@ -397,10 +403,10 @@ export function ShowView({ contractTerms, hideHandler }: States.Show): VNode {
<i18n.Translate>Exchanges</i18n.Translate>
</td>
<td>
- {(contractTerms.allowedExchanges || []).map((e) => (
- <Fragment key={e.exchangePub}>
- <a href={e.exchangeBaseUrl} title={e.exchangePub}>
- {e.exchangePub.substring(0, 6)}...
+ {(contractTerms.exchanges || []).map((e) => (
+ <Fragment key={e.master_pub}>
+ <a href={e.url} title={e.master_pub}>
+ {e.master_pub.substring(0, 6)}...
</a>
</Fragment>