summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-03-07 11:55:26 +0100
committerFlorian Dold <florian@dold.me>2024-03-07 11:55:26 +0100
commit44b45c06a9aff1e28996dd7bce75ea3a0785dae0 (patch)
treed8c8786a5bbcec3c8e955cfda16464eb74949109
parent53120dfc3ec05d49fc6f94bb498c66238225dd6b (diff)
downloadwallet-core-44b45c06a9aff1e28996dd7bce75ea3a0785dae0.tar.gz
wallet-core-44b45c06a9aff1e28996dd7bce75ea3a0785dae0.tar.bz2
wallet-core-44b45c06a9aff1e28996dd7bce75ea3a0785dae0.zip
remove taler://auditor and taler://exchange URI support
-rw-r--r--packages/taler-util/src/taleruri.test.ts52
-rw-r--r--packages/taler-util/src/taleruri.ts92
-rw-r--r--packages/taler-wallet-webextension/src/NavigationBar.tsx2
-rw-r--r--packages/taler-wallet-webextension/src/platform/chrome.ts75
-rw-r--r--packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx4
5 files changed, 37 insertions, 188 deletions
diff --git a/packages/taler-util/src/taleruri.test.ts b/packages/taler-util/src/taleruri.test.ts
index 4ed97cec2..2ff401abc 100644
--- a/packages/taler-util/src/taleruri.test.ts
+++ b/packages/taler-util/src/taleruri.test.ts
@@ -15,10 +15,9 @@
*/
import test from "ava";
+import { AmountString } from "./taler-types.js";
import {
- parseAuditorUri,
parseDevExperimentUri,
- parseExchangeUri,
parsePayPullUri,
parsePayPushUri,
parsePayTemplateUri,
@@ -28,9 +27,7 @@ import {
parseRewardUri,
parseWithdrawExchangeUri,
parseWithdrawUri,
- stringifyAuditorUri,
stringifyDevExperimentUri,
- stringifyExchangeUri,
stringifyPayPullUri,
stringifyPayPushUri,
stringifyPayTemplateUri,
@@ -41,7 +38,6 @@ import {
stringifyWithdrawExchange,
stringifyWithdrawUri,
} from "./taleruri.js";
-import { AmountString } from "./taler-types.js";
/**
* 5.1 action: withdraw https://lsd.gnunet.org/lsd0006/#name-action-withdraw
@@ -401,52 +397,6 @@ test("taler pay template URI (stringify)", (t) => {
});
/**
- * 5.8 action: exchange https://lsd.gnunet.org/lsd0006/#name-action-exchange
- */
-
-test("taler exchange URI (parsing)", (t) => {
- const url1 = "taler://exchange/exchange.test/123";
- const r1 = parseExchangeUri(url1);
- if (!r1) {
- t.fail();
- return;
- }
- t.deepEqual(r1.exchangeBaseUrl, "https://exchange.test/");
- t.deepEqual(r1.exchangePub, "123");
-});
-
-test("taler exchange URI (stringify)", (t) => {
- const url1 = stringifyExchangeUri({
- exchangeBaseUrl: "https://exchange.test",
- exchangePub: "123",
- });
- t.deepEqual(url1, "taler://exchange/exchange.test/123");
-});
-
-/**
- * 5.9 action: auditor https://lsd.gnunet.org/lsd0006/#name-action-auditor
- */
-
-test("taler auditor URI (parsing)", (t) => {
- const url1 = "taler://auditor/auditor.test/123";
- const r1 = parseAuditorUri(url1);
- if (!r1) {
- t.fail();
- return;
- }
- t.deepEqual(r1.auditorBaseUrl, "https://auditor.test/");
- t.deepEqual(r1.auditorPub, "123");
-});
-
-test("taler auditor URI (stringify)", (t) => {
- const url1 = stringifyAuditorUri({
- auditorBaseUrl: "https://auditor.test",
- auditorPub: "123",
- });
- t.deepEqual(url1, "taler://auditor/auditor.test/123");
-});
-
-/**
* 5.10 action: restore https://lsd.gnunet.org/lsd0006/#name-action-restore
*/
test("taler restore URI (parsing, http with port)", (t) => {
diff --git a/packages/taler-util/src/taleruri.ts b/packages/taler-util/src/taleruri.ts
index 26d1a324a..15464b981 100644
--- a/packages/taler-util/src/taleruri.ts
+++ b/packages/taler-util/src/taleruri.ts
@@ -41,9 +41,7 @@ export type TalerUri =
| RefundUriResult
| RewardUriResult
| WithdrawUriResult
- | ExchangeUri
- | WithdrawExchangeUri
- | AuditorUri;
+ | WithdrawExchangeUri;
declare const __action_str: unique symbol;
export type TalerActionString = string & { [__action_str]: true };
@@ -105,18 +103,6 @@ export interface RewardUriResult {
merchantRewardId: string;
}
-export interface ExchangeUri {
- type: TalerUriAction.Exchange;
- exchangeBaseUrl: string;
- exchangePub: string;
-}
-
-export interface AuditorUri {
- type: TalerUriAction.Auditor;
- auditorBaseUrl: string;
- auditorPub: string;
-}
-
export interface PayPushUriResult {
type: TalerUriAction.PayPush;
exchangeBaseUrl: string;
@@ -206,8 +192,6 @@ export enum TalerUriAction {
PayPull = "pay-pull",
PayPush = "pay-push",
PayTemplate = "pay-template",
- Exchange = "exchange",
- Auditor = "auditor",
Restore = "restore",
DevExperiment = "dev-experiment",
WithdrawExchange = "withdraw-exchange",
@@ -250,8 +234,6 @@ const parsers: { [A in TalerUriAction]: Parser } = {
[TalerUriAction.Reward]: parseRewardUri,
[TalerUriAction.Withdraw]: parseWithdrawUri,
[TalerUriAction.DevExperiment]: parseDevExperimentUri,
- [TalerUriAction.Exchange]: parseExchangeUri,
- [TalerUriAction.Auditor]: parseAuditorUri,
[TalerUriAction.WithdrawExchange]: parseWithdrawExchangeUri,
};
@@ -296,15 +278,9 @@ export function stringifyTalerUri(uri: TalerUri): string {
case TalerUriAction.Withdraw: {
return stringifyWithdrawUri(uri);
}
- case TalerUriAction.Exchange: {
- return stringifyExchangeUri(uri);
- }
case TalerUriAction.WithdrawExchange: {
return stringifyWithdrawExchange(uri);
}
- case TalerUriAction.Auditor: {
- return stringifyAuditorUri(uri);
- }
}
}
@@ -458,31 +434,6 @@ export function parseRewardUri(s: string): RewardUriResult | undefined {
};
}
-export function parseExchangeUri(s: string): ExchangeUri | undefined {
- const pi = parseProtoInfo(s, "exchange");
- if (!pi) {
- return undefined;
- }
- const c = pi?.rest.split("?");
- const parts = c[0].split("/");
- if (parts.length < 2) {
- return undefined;
- }
- const host = parts[0].toLowerCase();
- const exchangePub = parts[parts.length - 1];
- const pathSegments = parts.slice(1, parts.length - 1);
- const hostAndSegments = [host, ...pathSegments].join("/");
- const exchangeBaseUrl = canonicalizeBaseUrl(
- `${pi.innerProto}://${hostAndSegments}/`,
- );
-
- return {
- type: TalerUriAction.Exchange,
- exchangeBaseUrl,
- exchangePub,
- };
-}
-
export function parseWithdrawExchangeUri(
s: string,
): WithdrawExchangeUri | undefined {
@@ -513,31 +464,6 @@ export function parseWithdrawExchangeUri(
};
}
-export function parseAuditorUri(s: string): AuditorUri | undefined {
- const pi = parseProtoInfo(s, "auditor");
- if (!pi) {
- return undefined;
- }
- const c = pi?.rest.split("?");
- const parts = c[0].split("/");
- if (parts.length < 2) {
- return undefined;
- }
- const host = parts[0].toLowerCase();
- const auditorPub = parts[parts.length - 1];
- const pathSegments = parts.slice(1, parts.length - 1);
- const hostAndSegments = [host, ...pathSegments].join("/");
- const auditorBaseUrl = canonicalizeBaseUrl(
- `${pi.innerProto}://${hostAndSegments}/`,
- );
-
- return {
- type: TalerUriAction.Auditor,
- auditorBaseUrl,
- auditorPub,
- };
-}
-
/**
* Parse a taler[+http]://refund URI.
* Return undefined if not passed a valid URI.
@@ -695,22 +621,6 @@ export function stringifyRewardUri({
return `${proto}://reward/${path}${merchantRewardId}/`;
}
-export function stringifyExchangeUri({
- exchangeBaseUrl,
- exchangePub,
-}: Omit<ExchangeUri, "type">): string {
- const { proto, path } = getUrlInfo(exchangeBaseUrl);
- return `${proto}://exchange/${path}${exchangePub}`;
-}
-
-export function stringifyAuditorUri({
- auditorBaseUrl,
- auditorPub,
-}: Omit<AuditorUri, "type">): string {
- const { proto, path } = getUrlInfo(auditorBaseUrl);
- return `${proto}://auditor/${path}${auditorPub}`;
-}
-
export function stringifyWithdrawUri({
bankIntegrationApiBaseUrl,
withdrawalOperationId,
diff --git a/packages/taler-wallet-webextension/src/NavigationBar.tsx b/packages/taler-wallet-webextension/src/NavigationBar.tsx
index 1837f0508..0f74963bc 100644
--- a/packages/taler-wallet-webextension/src/NavigationBar.tsx
+++ b/packages/taler-wallet-webextension/src/NavigationBar.tsx
@@ -152,8 +152,6 @@ const talerUriActionToPageName: {
[TalerUriAction.PayTemplate]: "ctaPayTemplate",
[TalerUriAction.WithdrawExchange]: "ctaWithdrawManual",
[TalerUriAction.DevExperiment]: undefined,
- [TalerUriAction.Exchange]: undefined,
- [TalerUriAction.Auditor]: undefined,
[TalerUriAction.Reward]: undefined,
};
diff --git a/packages/taler-wallet-webextension/src/platform/chrome.ts b/packages/taler-wallet-webextension/src/platform/chrome.ts
index 2cdc4d8b6..7b133969f 100644
--- a/packages/taler-wallet-webextension/src/platform/chrome.ts
+++ b/packages/taler-wallet-webextension/src/platform/chrome.ts
@@ -20,7 +20,7 @@ import {
TalerErrorCode,
TalerUri,
TalerUriAction,
- stringifyTalerUri
+ stringifyTalerUri,
} from "@gnu-taler/taler-util";
import { WalletOperations } from "@gnu-taler/taler-wallet-core";
import { BackgroundOperations } from "../wxApi.js";
@@ -33,7 +33,7 @@ import {
MessageFromFrontend,
MessageResponse,
Settings,
- defaultSettings
+ defaultSettings,
} from "./api.js";
const api: BackgroundPlatformAPI & ForegroundPlatformAPI = {
@@ -67,11 +67,10 @@ export default api;
const logger = new Logger("chrome.ts");
-
const WALLET_STORAGE_KEY = "wallet-settings";
function jsonParseOrDefault(unparsed: any, def: any) {
- if (!unparsed) return def
+ if (!unparsed) return def;
try {
return JSON.parse(unparsed);
} catch (e) {
@@ -83,7 +82,7 @@ async function getSettingsFromStorage(): Promise<Settings> {
const data = await chrome.storage.local.get(WALLET_STORAGE_KEY);
if (!data) return defaultSettings;
const settings = data[WALLET_STORAGE_KEY];
- return jsonParseOrDefault(settings, defaultSettings)
+ return jsonParseOrDefault(settings, defaultSettings);
}
function keepAlive(callback: any): void {
@@ -103,7 +102,6 @@ function isFirefox(): boolean {
return false;
}
-
export function containsClipboardPermissions(): Promise<boolean> {
return new Promise((res, rej) => {
res(false);
@@ -130,8 +128,6 @@ export async function requestClipboardPermissions(): Promise<boolean> {
});
}
-
-
export function removeClipboardPermissions(): Promise<boolean> {
return new Promise((res, rej) => {
res(true);
@@ -228,12 +224,6 @@ function openWalletURIFromPopup(uri: TalerUri): void {
case TalerUriAction.DevExperiment:
logger.warn(`taler://dev-experiment URIs are not allowed in headers`);
return;
- case TalerUriAction.Exchange:
- logger.warn(`taler://exchange not yet supported`);
- return;
- case TalerUriAction.Auditor:
- logger.warn(`taler://auditor not yet supported`);
- return;
case TalerUriAction.Reward:
logger.warn(`taler://reward not supported anymore`);
break;
@@ -261,7 +251,6 @@ function openWalletPageFromPopup(page: string): void {
chrome.tabs.create({ active: true, url }, () => {
window.close();
});
-
}
function openNewURLFromPopup(url: URL): void {
// const url = chrome.runtime.getURL(`/static/wallet.html#${page}`);
@@ -325,7 +314,6 @@ function listenToWalletBackground(listener: (m: any) => void): () => void {
const allPorts: chrome.runtime.Port[] = [];
-
function triggerWalletEvent(message: MessageFromBackend): void {
for (const notif of allPorts) {
// const message: MessageFromBackend = { type: msg.type };
@@ -372,12 +360,14 @@ function registerAllIncomingConnections(): void {
type: "web-extension",
notification: {
type: ExtensionNotificationType.SettingsChange,
- currentValue: jsonParseOrDefault(event[WALLET_STORAGE_KEY], defaultSettings)
- }
- })
+ currentValue: jsonParseOrDefault(
+ event[WALLET_STORAGE_KEY],
+ defaultSettings,
+ ),
+ },
+ });
}
- })
-
+ });
}
function listenToAllChannels(
@@ -424,7 +414,10 @@ async function redirectCurrentTabToWalletPage(page: string): Promise<void> {
return redirectTabToWalletPage(tab.id!, page);
}
-async function redirectTabToWalletPage(tabId: number, page: string): Promise<void> {
+async function redirectTabToWalletPage(
+ tabId: number,
+ page: string,
+): Promise<void> {
const url = chrome.runtime.getURL(`/static/wallet.html#${page}`);
logger.trace("redirecting tabId: ", tabId, " to: ", url);
await chrome.tabs.update(tabId, { url });
@@ -480,26 +473,26 @@ function setAlertedIcon(): void {
interface OffscreenCanvasRenderingContext2D
extends CanvasState,
- CanvasTransform,
- CanvasCompositing,
- CanvasImageSmoothing,
- CanvasFillStrokeStyles,
- CanvasShadowStyles,
- CanvasFilters,
- CanvasRect,
- CanvasDrawPath,
- CanvasUserInterface,
- CanvasText,
- CanvasDrawImage,
- CanvasImageData,
- CanvasPathDrawingStyles,
- CanvasTextDrawingStyles,
- CanvasPath {
+ CanvasTransform,
+ CanvasCompositing,
+ CanvasImageSmoothing,
+ CanvasFillStrokeStyles,
+ CanvasShadowStyles,
+ CanvasFilters,
+ CanvasRect,
+ CanvasDrawPath,
+ CanvasUserInterface,
+ CanvasText,
+ CanvasDrawImage,
+ CanvasImageData,
+ CanvasPathDrawingStyles,
+ CanvasTextDrawingStyles,
+ CanvasPath {
readonly canvas: OffscreenCanvas;
}
declare const OffscreenCanvasRenderingContext2D: {
prototype: OffscreenCanvasRenderingContext2D;
- new(): OffscreenCanvasRenderingContext2D;
+ new (): OffscreenCanvasRenderingContext2D;
};
interface OffscreenCanvas extends EventTarget {
@@ -512,7 +505,7 @@ interface OffscreenCanvas extends EventTarget {
}
declare const OffscreenCanvas: {
prototype: OffscreenCanvas;
- new(width: number, height: number): OffscreenCanvas;
+ new (width: number, height: number): OffscreenCanvas;
};
function createCanvas(size: number): OffscreenCanvas {
@@ -739,5 +732,5 @@ function listenNetworkConnectionState(
}
function runningOnPrivateMode(): boolean {
- return chrome.extension.inIncognitoContext
-} \ No newline at end of file
+ return chrome.extension.inIncognitoContext;
+}
diff --git a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
index f762121ab..4251a1632 100644
--- a/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
+++ b/packages/taler-wallet-webextension/src/popup/TalerActionFound.tsx
@@ -19,7 +19,7 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { parseTalerUri, stringifyTalerUri, TalerUri, TalerUriAction } from "@gnu-taler/taler-util";
+import { parseTalerUri, TalerUri, TalerUriAction } from "@gnu-taler/taler-util";
import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { Fragment, h, VNode } from "preact";
import { Title } from "../components/styled/index.js";
@@ -83,8 +83,6 @@ function ContentByUriType({
case TalerUriAction.PayPush:
case TalerUriAction.Restore:
case TalerUriAction.Reward:
- case TalerUriAction.Auditor:
- case TalerUriAction.Exchange:
return null;
default: {
const error: never = uri;