From 6e04dfc60d1ec7d71a1c58aeb337a0287f555da4 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Thu, 23 Jun 2022 21:17:45 +0200 Subject: [PATCH] :sparkles: Implemented POW on each image upload --- frontend/src/lib/editor/card.svelte | 19 +++++++++++++++++++ frontend/src/lib/editor/uploader.svelte | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/frontend/src/lib/editor/card.svelte b/frontend/src/lib/editor/card.svelte index a7f7915..d6a43fd 100644 --- a/frontend/src/lib/editor/card.svelte +++ b/frontend/src/lib/editor/card.svelte @@ -4,17 +4,35 @@ import { dataSchema } from '$lib/yupSchemas'; import Spinner from '../Spinner.svelte'; import { fade } from 'svelte/transition'; + import { mint } from '$lib/hashcash'; export let data: EditorData; export let selected_question: number; export let edit_id: string; export let pow_data; + let pow_salt: string; const empty_answer: Answer = { right: false, answer: '' }; let uppyOpen = false; + const computePOW = async (salt: string) => { + console.log('Called!'); + if (pow_salt === undefined) { + return; + } + console.log('Computing POW'); + pow_data = await mint(salt, 17, '', 8, false); + pow_salt = undefined; + return; + }; + + $: { + pow_salt; + computePOW(pow_salt); + } + /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/ const correctTimeInput = (_) => { let time = data.questions[selected_question].time; @@ -82,6 +100,7 @@ bind:data bind:selected_question bind:pow_data + bind:pow_salt /> {/await} {/if} diff --git a/frontend/src/lib/editor/uploader.svelte b/frontend/src/lib/editor/uploader.svelte index 8c0367f..2d88b99 100644 --- a/frontend/src/lib/editor/uploader.svelte +++ b/frontend/src/lib/editor/uploader.svelte @@ -21,6 +21,7 @@ export let data: EditorData; export let selected_question: number; export let pow_data; + export let pow_salt: string; console.log(pow_data); const uppy = new Uppy() @@ -42,6 +43,9 @@ let image_id; uppy.on('upload-success', (file, response) => { image_id = response.body.id; + pow_salt = response.body.pow_data; + console.log(pow_salt, response.body); + pow_data = undefined; }); uppy.on('complete', (_) => { console.log(pow_data);