diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/taler-wallet-webextension/src/wallet/DeveloperPage.tsx | 37 |
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 }}> |