diff options
author | Florian Dold <florian@dold.me> | 2021-03-27 14:35:58 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-03-27 14:36:08 +0100 |
commit | d44740b787c974c5388811a2989557d93923c49a (patch) | |
tree | 39db4f910a3714f2337b1dca4a7b4f1a3c67f053 /packages/taler-wallet-webextension | |
parent | 14d48836397f5f52ed686fbffeaaf50a3f5a4577 (diff) |
fix build issues
Diffstat (limited to 'packages/taler-wallet-webextension')
12 files changed, 95 insertions, 223 deletions
diff --git a/packages/taler-wallet-webextension/package.json b/packages/taler-wallet-webextension/package.json index b9a35eb1b..69c504006 100644 --- a/packages/taler-wallet-webextension/package.json +++ b/packages/taler-wallet-webextension/package.json @@ -14,6 +14,7 @@ "dependencies": { "moment": "^2.29.1", "@gnu-taler/taler-wallet-core": "workspace:*", + "@gnu-taler/taler-util": "workspace:*", "tslib": "^2.1.0" }, "devDependencies": { diff --git a/packages/taler-wallet-webextension/src/browserHttpLib.ts b/packages/taler-wallet-webextension/src/browserHttpLib.ts index c71e34174..5c27becb2 100644 --- a/packages/taler-wallet-webextension/src/browserHttpLib.ts +++ b/packages/taler-wallet-webextension/src/browserHttpLib.ts @@ -26,7 +26,7 @@ import { Headers, bytesToString, } from "@gnu-taler/taler-wallet-core"; -import { TalerErrorCode } from "@gnu-taler/taler-wallet-core"; +import { TalerErrorCode } from "@gnu-taler/taler-util"; const logger = new Logger("browserHttpLib"); diff --git a/packages/taler-wallet-webextension/src/pages/pay.tsx b/packages/taler-wallet-webextension/src/pages/pay.tsx index b5da04e31..9c6b10951 100644 --- a/packages/taler-wallet-webextension/src/pages/pay.tsx +++ b/packages/taler-wallet-webextension/src/pages/pay.tsx @@ -29,16 +29,16 @@ import * as wxApi from "../wxApi"; import React, { useState, useEffect } from "react"; +import { getJsonI18n } from "@gnu-taler/taler-wallet-core"; import { - Amounts, - AmountJson, PreparePayResult, + ConfirmPayResult, + AmountJson, PreparePayResultType, + Amounts, ContractTerms, ConfirmPayResultType, - ConfirmPayResult, - getJsonI18n, -} from "@gnu-taler/taler-wallet-core"; +} from "@gnu-taler/taler-util"; function TalerPayDialog({ talerPayUri }: { talerPayUri: string }): JSX.Element { const [payStatus, setPayStatus] = useState<PreparePayResult | undefined>(); @@ -67,7 +67,9 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }): JSX.Element { if (payStatus.status === PreparePayResultType.PaymentPossible) { let amountRaw = Amounts.parseOrThrow(payStatus.amountRaw); - let amountEffective: AmountJson = Amounts.parseOrThrow(payStatus.amountEffective); + let amountEffective: AmountJson = Amounts.parseOrThrow( + payStatus.amountEffective, + ); totalFees = Amounts.sub(amountEffective, amountRaw).amount; } @@ -141,13 +143,16 @@ function TalerPayDialog({ talerPayUri }: { talerPayUri: string }): JSX.Element { if (payResult.contractTerms.fulfillment_message) { const obj = { fulfillment_message: payResult.contractTerms.fulfillment_message, - fulfillment_message_i18n: payResult.contractTerms.fulfillment_message_i18n, + fulfillment_message_i18n: + payResult.contractTerms.fulfillment_message_i18n, }; - const msg = getJsonI18n(obj, "fulfillment_message") - return <div> - <p>Payment succeeded.</p> - <p>{msg}</p> - </div>; + const msg = getJsonI18n(obj, "fulfillment_message"); + return ( + <div> + <p>Payment succeeded.</p> + <p>{msg}</p> + </div> + ); } else { return <span>Redirecting ...</span>; } diff --git a/packages/taler-wallet-webextension/src/pages/popup.tsx b/packages/taler-wallet-webextension/src/pages/popup.tsx index 9071e46fd..4d12d9a83 100644 --- a/packages/taler-wallet-webextension/src/pages/popup.tsx +++ b/packages/taler-wallet-webextension/src/pages/popup.tsx @@ -38,7 +38,8 @@ import { TransactionType, AmountString, Timestamp, -} from "@gnu-taler/taler-wallet-core"; + amountFractionalBase, +} from "@gnu-taler/taler-util"; import { abbrev, renderAmount, PageLink } from "../renderHtml"; import * as wxApi from "../wxApi"; @@ -160,7 +161,7 @@ class WalletNavBar extends React.Component<any, any> { * Render an amount as a large number with a small currency symbol. */ function bigAmount(amount: AmountJson): JSX.Element { - const v = amount.value + amount.fraction / Amounts.fractionalBase; + const v = amount.value + amount.fraction / amountFractionalBase; return ( <span> <span style={{ fontSize: "5em", display: "block" }}>{v}</span>{" "} diff --git a/packages/taler-wallet-webextension/src/pages/refund.tsx b/packages/taler-wallet-webextension/src/pages/refund.tsx index 572aba8ed..bfeec0aa3 100644 --- a/packages/taler-wallet-webextension/src/pages/refund.tsx +++ b/packages/taler-wallet-webextension/src/pages/refund.tsx @@ -23,7 +23,11 @@ import React, { useEffect, useState } from "react"; import * as wxApi from "../wxApi"; import { AmountView } from "../renderHtml"; -import { PurchaseDetails, ApplyRefundResponse, Amounts } from "@gnu-taler/taler-wallet-core"; +import { + PurchaseDetails, + ApplyRefundResponse, + Amounts, +} from "@gnu-taler/taler-util"; function RefundStatusView(props: { talerRefundUri: string }): JSX.Element { const [applyResult, setApplyResult] = useState<ApplyRefundResponse>(); @@ -57,15 +61,20 @@ function RefundStatusView(props: { talerRefundUri: string }): JSX.Element { <> <h2>Refund Status</h2> <p> - The product <em>{applyResult.info.summary}</em> has - received a total effective refund of{" "} + The product <em>{applyResult.info.summary}</em> has received a total + effective refund of{" "} <AmountView amount={applyResult.amountRefundGranted} />. </p> - {applyResult.pendingAtExchange ? <p>Refund processing is still in progress.</p> : null} - {!Amounts.isZero(applyResult.amountRefundGone) ? <p> - The refund amount of <AmountView amount={applyResult.amountRefundGone} /> - could not be applied. - </p> : null} + {applyResult.pendingAtExchange ? ( + <p>Refund processing is still in progress.</p> + ) : null} + {!Amounts.isZero(applyResult.amountRefundGone) ? ( + <p> + The refund amount of{" "} + <AmountView amount={applyResult.amountRefundGone} /> + could not be applied. + </p> + ) : null} </> ); } diff --git a/packages/taler-wallet-webextension/src/pages/tip.tsx b/packages/taler-wallet-webextension/src/pages/tip.tsx index 29c07cfe9..b1ac27228 100644 --- a/packages/taler-wallet-webextension/src/pages/tip.tsx +++ b/packages/taler-wallet-webextension/src/pages/tip.tsx @@ -22,7 +22,7 @@ import * as React from "react"; import { useEffect, useState } from "react"; -import { PrepareTipResult } from "@gnu-taler/taler-wallet-core"; +import { PrepareTipResult } from "@gnu-taler/taler-util"; import { AmountView } from "../renderHtml"; import * as wxApi from "../wxApi"; @@ -65,8 +65,8 @@ function TalerTipDialog({ talerTipUri }: { talerTipUri: string }): JSX.Element { if (prepareTipResult.accepted) { return ( <span> - Tip from <code>{prepareTipResult.merchantBaseUrl}</code> accepted. - Check your transactions list for more details. + Tip from <code>{prepareTipResult.merchantBaseUrl}</code> accepted. Check + your transactions list for more details. </span> ); } else { @@ -75,8 +75,10 @@ function TalerTipDialog({ talerTipUri }: { talerTipUri: string }): JSX.Element { <p> The merchant <code>{prepareTipResult.merchantBaseUrl}</code> is offering you a tip of{" "} - <strong><AmountView amount={prepareTipResult.tipAmountEffective} /></strong> via the - exchange <code>{prepareTipResult.exchangeBaseUrl}</code> + <strong> + <AmountView amount={prepareTipResult.tipAmountEffective} /> + </strong>{" "} + via the exchange <code>{prepareTipResult.exchangeBaseUrl}</code> </p> <button onClick={doAccept}>Accept tip</button> <button onClick={doIgnore}>Ignore</button> diff --git a/packages/taler-wallet-webextension/src/pages/welcome.tsx b/packages/taler-wallet-webextension/src/pages/welcome.tsx index fb4af573d..dd10ac13c 100644 --- a/packages/taler-wallet-webextension/src/pages/welcome.tsx +++ b/packages/taler-wallet-webextension/src/pages/welcome.tsx @@ -26,7 +26,7 @@ import { PageLink } from "../renderHtml"; import * as wxApi from "../wxApi"; import { getPermissionsApi } from "../compat"; import { extendedPermissions } from "../permissions"; -import { WalletDiagnostics } from "@gnu-taler/taler-wallet-core"; +import { WalletDiagnostics } from "@gnu-taler/taler-util"; function Diagnostics(): JSX.Element | null { const [timedOut, setTimedOut] = useState(false); diff --git a/packages/taler-wallet-webextension/src/pages/withdraw.tsx b/packages/taler-wallet-webextension/src/pages/withdraw.tsx index 02758fd93..c4a02817c 100644 --- a/packages/taler-wallet-webextension/src/pages/withdraw.tsx +++ b/packages/taler-wallet-webextension/src/pages/withdraw.tsx @@ -23,7 +23,7 @@ import * as i18n from "../i18n"; -import { WithdrawDetailView, renderAmount } from "../renderHtml"; +import { renderAmount } from "../renderHtml"; import React, { useState, useEffect } from "react"; import { @@ -31,7 +31,7 @@ import { onUpdateNotification, getWithdrawalDetailsForUri, } from "../wxApi"; -import { WithdrawUriInfoResponse } from "@gnu-taler/taler-wallet-core"; +import { WithdrawUriInfoResponse } from "@gnu-taler/taler-util"; function WithdrawalDialog(props: { talerWithdrawUri: string }): JSX.Element { const [details, setDetails] = useState<WithdrawUriInfoResponse | undefined>(); diff --git a/packages/taler-wallet-webextension/src/renderHtml.tsx b/packages/taler-wallet-webextension/src/renderHtml.tsx index c18c5c199..3e66e5c5d 100644 --- a/packages/taler-wallet-webextension/src/renderHtml.tsx +++ b/packages/taler-wallet-webextension/src/renderHtml.tsx @@ -23,9 +23,12 @@ /** * Imports. */ -import { AmountJson, Amounts, stringifyTimestamp, ExchangeWithdrawDetails } from "@gnu-taler/taler-wallet-core"; -import * as i18n from "./i18n"; import React from "react"; +import { + AmountJson, + Amounts, + amountFractionalBase, +} from "@gnu-taler/taler-util"; /** * Render amount as HTML, which non-breaking space between @@ -41,7 +44,7 @@ export function renderAmount(amount: AmountJson | string): JSX.Element { if (!a) { return <span>(invalid amount)</span>; } - const x = a.value + a.fraction / Amounts.fractionalBase; + const x = a.value + a.fraction / amountFractionalBase; return ( <span> {x} {a.currency} @@ -125,164 +128,6 @@ export class Collapsible extends React.Component< } } -function WireFee(props: { - s: string; - rci: ExchangeWithdrawDetails; -}): JSX.Element { - return ( - <> - <thead> - <tr> - <th colSpan={3}>Wire Method {props.s}</th> - </tr> - <tr> - <th>Applies Until</th> - <th>Wire Fee</th> - <th>Closing Fee</th> - </tr> - </thead> - <tbody> - {props.rci.wireFees.feesForType[props.s].map((f) => ( - <tr key={f.sig}> - <td>{stringifyTimestamp(f.endStamp)}</td> - <td>{renderAmount(f.wireFee)}</td> - <td>{renderAmount(f.closingFee)}</td> - </tr> - ))} - </tbody> - </> - ); -} - -function AuditorDetailsView(props: { - rci: ExchangeWithdrawDetails | null; -}): JSX.Element { - const rci = props.rci; - console.log("rci", rci); - if (!rci) { - return ( - <p> - Details will be displayed when a valid exchange provider URL is entered. - </p> - ); - } - if ((rci.exchangeInfo.details?.auditors ?? []).length === 0) { - return <p>The exchange is not audited by any auditors.</p>; - } - return ( - <div> - {(rci.exchangeInfo.details?.auditors ?? []).map((a) => ( - <div key={a.auditor_pub}> - <h3>Auditor {a.auditor_url}</h3> - <p> - Public key: <ExpanderText text={a.auditor_pub} /> - </p> - <p> - Trusted:{" "} - {rci.trustedAuditorPubs.indexOf(a.auditor_pub) >= 0 ? "yes" : "no"} - </p> - <p> - Audits {a.denomination_keys.length} of {rci.numOfferedDenoms}{" "} - denominations - </p> - </div> - ))} - </div> - ); -} - -function FeeDetailsView(props: { - rci: ExchangeWithdrawDetails | null; -}): JSX.Element { - const rci = props.rci; - if (!rci) { - return ( - <p> - Details will be displayed when a valid exchange provider URL is entered. - </p> - ); - } - - const denoms = rci.selectedDenoms; - const withdrawFee = renderAmount(rci.withdrawFee); - const overhead = renderAmount(rci.overhead); - - return ( - <div> - <h3>Overview</h3> - <p> - Public key:{" "} - <ExpanderText - text={rci.exchangeInfo.details?.masterPublicKey ?? "??"} - /> - </p> - <p> - {i18n.str`Withdrawal fees:`} {withdrawFee} - </p> - <p> - {i18n.str`Rounding loss:`} {overhead} - </p> - <p>{i18n.str`Earliest expiration (for deposit): ${stringifyTimestamp( - rci.earliestDepositExpiration, - )}`}</p> - <h3>Coin Fees</h3> - <div style={{ overflow: "auto" }}> - <table className="pure-table"> - <thead> - <tr> - <th>{i18n.str`# Coins`}</th> - <th>{i18n.str`Value`}</th> - <th>{i18n.str`Withdraw Fee`}</th> - <th>{i18n.str`Refresh Fee`}</th> - <th>{i18n.str`Deposit Fee`}</th> - </tr> - </thead> - <tbody> - {denoms.selectedDenoms.map((ds) => { - return ( - <tr key={ds.denom.denomPub}> - <td>{ds.count + "x"}</td> - <td>{renderAmount(ds.denom.value)}</td> - <td>{renderAmount(ds.denom.feeWithdraw)}</td> - <td>{renderAmount(ds.denom.feeRefresh)}</td> - <td>{renderAmount(ds.denom.feeDeposit)}</td> - </tr> - ); - })} - </tbody> - </table> - </div> - <h3>Wire Fees</h3> - <div style={{ overflow: "auto" }}> - <table className="pure-table"> - {Object.keys(rci.wireFees.feesForType).map((s) => ( - <WireFee key={s} s={s} rci={rci} /> - ))} - </table> - </div> - </div> - ); -} - -/** - * Shows details about a withdraw request. - */ -export function WithdrawDetailView(props: { - rci: ExchangeWithdrawDetails | null; -}): JSX.Element { - const rci = props.rci; - return ( - <div> - <Collapsible initiallyCollapsed={true} title="Fee and Spending Details"> - <FeeDetailsView rci={rci} /> - </Collapsible> - <Collapsible initiallyCollapsed={true} title="Auditor Details"> - <AuditorDetailsView rci={rci} /> - </Collapsible> - </div> - ); -} - interface ExpanderTextProps { text: string; } diff --git a/packages/taler-wallet-webextension/src/wxApi.ts b/packages/taler-wallet-webextension/src/wxApi.ts index 3c01dfe96..c14047cf0 100644 --- a/packages/taler-wallet-webextension/src/wxApi.ts +++ b/packages/taler-wallet-webextension/src/wxApi.ts @@ -22,21 +22,21 @@ * Imports. */ import { + CoreApiResponse, ConfirmPayResult, BalancesResponse, + TransactionsResponse, + ApplyRefundResponse, PreparePayResult, AcceptWithdrawalResponse, WalletDiagnostics, - CoreApiResponse, - OperationFailedError, GetWithdrawalDetailsForUriRequest, WithdrawUriInfoResponse, - TransactionsResponse, - ApplyRefundResponse, PrepareTipRequest, PrepareTipResult, AcceptTipRequest, -} from "@gnu-taler/taler-wallet-core"; +} from "@gnu-taler/taler-util"; +import { OperationFailedError } from "@gnu-taler/taler-wallet-core"; export interface ExtendedPermissionsResponse { newValue: boolean; diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts b/packages/taler-wallet-webextension/src/wxBackend.ts index 64dd25fb8..62cedc9a9 100644 --- a/packages/taler-wallet-webextension/src/wxBackend.ts +++ b/packages/taler-wallet-webextension/src/wxBackend.ts @@ -25,22 +25,23 @@ */ import { isFirefox, getPermissionsApi } from "./compat"; import { extendedPermissions } from "./permissions"; - import { Wallet, OpenedPromise, openPromise, openTalerDatabase, Database, - classifyTalerUri, - TalerUriType, + Stores, makeErrorDetails, - TalerErrorCode, +} from "@gnu-taler/taler-wallet-core"; +import { + classifyTalerUri, CoreApiResponse, - WalletDiagnostics, CoreApiResponseSuccess, - Stores, -} from "@gnu-taler/taler-wallet-core"; + TalerErrorCode, + TalerUriType, + WalletDiagnostics, +} from "@gnu-taler/taler-util"; import { BrowserHttpLib } from "./browserHttpLib"; import { BrowserCryptoWorkerFactory } from "./browserCryptoWorkerFactory"; diff --git a/packages/taler-wallet-webextension/tsconfig.json b/packages/taler-wallet-webextension/tsconfig.json index 4b1bb19be..417a73b1b 100644 --- a/packages/taler-wallet-webextension/tsconfig.json +++ b/packages/taler-wallet-webextension/tsconfig.json @@ -1,22 +1,30 @@ { - "compilerOptions": { - "composite": true, - "lib": ["es6", "DOM"], - "jsx": "react", - "moduleResolution": "Node", - "reactNamespace": "React", - "module": "ESNext", - "target": "ES6", - "noImplicitAny": true, - "outDir": "lib", - "noEmitOnError": true, - "strict": true, - "incremental": true, - "sourceMap": true, - "esModuleInterop": true, - "importHelpers": true, - "rootDir": "./src", - "typeRoots": ["./node_modules/@types"] + "compilerOptions": { + "composite": true, + "lib": ["es6", "DOM"], + "jsx": "react", + "moduleResolution": "Node", + "reactNamespace": "React", + "module": "ESNext", + "target": "ES6", + "noImplicitAny": true, + "outDir": "lib", + "noEmitOnError": true, + "strict": true, + "incremental": true, + "sourceMap": true, + "esModuleInterop": true, + "importHelpers": true, + "rootDir": "./src", + "typeRoots": ["./node_modules/@types"] + }, + "references": [ + { + "path": "../taler-wallet-core/" }, - "include": ["src/**/*"] + { + "path": "../taler-util/" + } + ], + "include": ["src/**/*"] } |