✨ Implemented POW on each image upload
This commit is contained in:
@@ -4,17 +4,35 @@
|
|||||||
import { dataSchema } from '$lib/yupSchemas';
|
import { dataSchema } from '$lib/yupSchemas';
|
||||||
import Spinner from '../Spinner.svelte';
|
import Spinner from '../Spinner.svelte';
|
||||||
import { fade } from 'svelte/transition';
|
import { fade } from 'svelte/transition';
|
||||||
|
import { mint } from '$lib/hashcash';
|
||||||
|
|
||||||
export let data: EditorData;
|
export let data: EditorData;
|
||||||
export let selected_question: number;
|
export let selected_question: number;
|
||||||
export let edit_id: string;
|
export let edit_id: string;
|
||||||
export let pow_data;
|
export let pow_data;
|
||||||
|
let pow_salt: string;
|
||||||
const empty_answer: Answer = {
|
const empty_answer: Answer = {
|
||||||
right: false,
|
right: false,
|
||||||
answer: ''
|
answer: ''
|
||||||
};
|
};
|
||||||
let uppyOpen = false;
|
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": "^_" }]*/
|
/*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
|
||||||
const correctTimeInput = (_) => {
|
const correctTimeInput = (_) => {
|
||||||
let time = data.questions[selected_question].time;
|
let time = data.questions[selected_question].time;
|
||||||
@@ -82,6 +100,7 @@
|
|||||||
bind:data
|
bind:data
|
||||||
bind:selected_question
|
bind:selected_question
|
||||||
bind:pow_data
|
bind:pow_data
|
||||||
|
bind:pow_salt
|
||||||
/>
|
/>
|
||||||
{/await}
|
{/await}
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
export let data: EditorData;
|
export let data: EditorData;
|
||||||
export let selected_question: number;
|
export let selected_question: number;
|
||||||
export let pow_data;
|
export let pow_data;
|
||||||
|
export let pow_salt: string;
|
||||||
|
|
||||||
console.log(pow_data);
|
console.log(pow_data);
|
||||||
const uppy = new Uppy()
|
const uppy = new Uppy()
|
||||||
@@ -42,6 +43,9 @@
|
|||||||
let image_id;
|
let image_id;
|
||||||
uppy.on('upload-success', (file, response) => {
|
uppy.on('upload-success', (file, response) => {
|
||||||
image_id = response.body.id;
|
image_id = response.body.id;
|
||||||
|
pow_salt = response.body.pow_data;
|
||||||
|
console.log(pow_salt, response.body);
|
||||||
|
pow_data = undefined;
|
||||||
});
|
});
|
||||||
uppy.on('complete', (_) => {
|
uppy.on('complete', (_) => {
|
||||||
console.log(pow_data);
|
console.log(pow_data);
|
||||||
|
|||||||
Reference in New Issue
Block a user