/* * mCaptcha is a PoW based DoS protection software. * This is the frontend web component of the mCaptcha system * Copyright © 2021 Aravinth Manivnanan . * * Use of this source code is governed by Apache 2.0 or MIT license. * You shoud have received a copy of MIT and Apache 2.0 along with * this program. If not, see for * MIT or for Apache. */ import genJsonPayload from "../utils/genJsonPayload"; import * as CONST from "./const"; type GetConfigPayload = { key: string; }; export type PoWConfig = { string: string; difficulty_factor: number; salt: string; }; /** * fetch proof-of-work configuration * @returns {PoWConfig} pow config * */ export const fetchPoWConfig = async (): Promise => { const payload: GetConfigPayload = { key: CONST.sitekey(), }; const res = await fetch(CONST.ROUTES.getConfig, genJsonPayload(payload)); if (res.ok) { const config: PoWConfig = await res.json(); return config; } else { const err = await res.json(); throw new Error(err); } }; export default fetchPoWConfig;