diff options
author | Florian Dold <florian@dold.me> | 2024-03-07 11:55:26 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-03-07 11:55:26 +0100 |
commit | 44b45c06a9aff1e28996dd7bce75ea3a0785dae0 (patch) | |
tree | d8c8786a5bbcec3c8e955cfda16464eb74949109 | |
parent | 53120dfc3ec05d49fc6f94bb498c66238225dd6b (diff) | |
download | wallet-core-44b45c06a9aff1e28996dd7bce75ea3a0785dae0.tar.gz wallet-core-44b45c06a9aff1e28996dd7bce75ea3a0785dae0.tar.bz2 wallet-core-44b45c06a9aff1e28996dd7bce75ea3a0785dae0.zip |
remove taler://auditor and taler://exchange URI support
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; |