aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx37
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx b/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx
index ee0986076..2db2041d4 100644
--- a/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx
@@ -171,6 +171,7 @@ export function View({
[exchange_name: string]: CalculatedCoinfInfo[];
},
);
+ const exchanges = Object.keys(money_by_exchange);
const [tagName, setTagName] = useState("");
const [logLevel, setLogLevel] = useState("info");
@@ -317,6 +318,42 @@ export function View({
>
<i18n.Translate>Remove ext+taler:// handler</i18n.Translate>
</Button>
+ </Grid>
+ <Grid item>
+ <Button
+ variant="contained"
+ onClick={async () => {
+ const result = await Promise.all(
+ exchanges.map(async (ex) => {
+ const oldKeys = JSON.stringify(
+ await (await fetch(`${ex}keys`)).json(),
+ );
+ const oldWire = JSON.stringify(
+ await (await fetch(`${ex}wire`)).json(),
+ );
+ const newKeys = JSON.stringify(
+ await (
+ await fetch(`${ex}keys`, { cache: "no-cache" })
+ ).json(),
+ );
+ const newWire = JSON.stringify(
+ await (
+ await fetch(`${ex}wire`, { cache: "no-cache" })
+ ).json(),
+ );
+ return oldKeys !== newKeys || newWire !== oldWire;
+ }),
+ );
+ const ex = exchanges.filter((e, i) => result[i]);
+ if (!ex.length) {
+ alert("no exchange was outdated");
+ } else {
+ alert(`found some exchange out of date: ${result.join(", ")}`);
+ }
+ }}
+ >
+ <i18n.Translate>Clear exchange key cache</i18n.Translate>
+ </Button>
</Grid>{" "}
</Grid>
<Paper style={{ padding: 10, margin: 10 }}>