From 91eedaf4230f4db266fec9fde34753d72526020c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pedro=20Sousa?= Date: Wed, 14 Feb 2024 09:07:42 +0000 Subject: [PATCH] refactor finished --- vite-hardhat/components/index.tsx | 6 ++++-- .../hooks/useOffChainVerification.tsx | 19 +++++++++++++++++++ vite-hardhat/hooks/useOnChainVerification.tsx | 1 - vite-hardhat/hooks/useProofGeneration.tsx | 12 ++++-------- vite-hardhat/utils/addresses.json | 2 +- 5 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 vite-hardhat/hooks/useOffChainVerification.tsx diff --git a/vite-hardhat/components/index.tsx b/vite-hardhat/components/index.tsx index 6fb7c9a..32cbbde 100644 --- a/vite-hardhat/components/index.tsx +++ b/vite-hardhat/components/index.tsx @@ -3,11 +3,13 @@ import React from 'react'; import { useOnChainVerification } from '../hooks/useOnChainVerification.jsx'; import { useProofGeneration } from '../hooks/useProofGeneration.jsx'; +import { useOffChainVerification } from '../hooks/useOffChainVerification.jsx'; function Component() { const [input, setInput] = useState<{ x: string; y: string } | undefined>(); - const { proofData } = useProofGeneration(input); - // useOnChainVerification(proofData); + const { noir, proofData } = useProofGeneration(input); + useOffChainVerification(noir, proofData); + useOnChainVerification(proofData); const submit = (e: React.FormEvent) => { e.preventDefault(); diff --git a/vite-hardhat/hooks/useOffChainVerification.tsx b/vite-hardhat/hooks/useOffChainVerification.tsx new file mode 100644 index 0000000..abbaf80 --- /dev/null +++ b/vite-hardhat/hooks/useOffChainVerification.tsx @@ -0,0 +1,19 @@ +'use client'; + +import { ProofData } from '@noir-lang/types'; +import { useEffect } from 'react'; +import { toast } from 'react-toastify'; +import { BarretenbergBackend } from '@noir-lang/backend_barretenberg'; +import { Noir } from '@noir-lang/noir_js'; + +export function useOffChainVerification(noir?: Noir, proofData?: ProofData) { + useEffect(() => { + if (!proofData || !noir) return; + + toast.promise(noir.verifyFinalProof(proofData), { + pending: 'Verifying proof off-chain', + success: 'Proof verified off-chain', + error: 'Error verifying proof off-chain', + }); + }, [proofData]); +} diff --git a/vite-hardhat/hooks/useOnChainVerification.tsx b/vite-hardhat/hooks/useOnChainVerification.tsx index 45b86f3..16091e2 100644 --- a/vite-hardhat/hooks/useOnChainVerification.tsx +++ b/vite-hardhat/hooks/useOnChainVerification.tsx @@ -39,7 +39,6 @@ export function useOnChainVerification(proofData?: ProofData) { }, [isConnected]); useEffect(() => { - console.log(data); if (data) { toast.update(onChainToast, { type: 'success', diff --git a/vite-hardhat/hooks/useProofGeneration.tsx b/vite-hardhat/hooks/useProofGeneration.tsx index 4c32f07..080f9b2 100644 --- a/vite-hardhat/hooks/useProofGeneration.tsx +++ b/vite-hardhat/hooks/useProofGeneration.tsx @@ -6,6 +6,7 @@ import { Noir } from '@noir-lang/noir_js'; export function useProofGeneration(inputs?: { [key: string]: string }) { const [proofData, setProofData] = useState(); + const [noir, setNoir] = useState(); const proofGeneration = async () => { if (!inputs) return; @@ -25,13 +26,8 @@ export function useProofGeneration(inputs?: { [key: string]: string }) { error: 'Error generating proof', }); - const res = await toast.promise(noir.verifyFinalProof(data), { - pending: 'Verifying proof off-chain', - success: 'Proof verified off-chain', - error: 'Error verifying proof off-chain', - }); - - console.log(res); + setProofData(data); + setNoir(noir); }; useEffect(() => { @@ -39,5 +35,5 @@ export function useProofGeneration(inputs?: { [key: string]: string }) { proofGeneration(); }, [inputs]); - return { proofData }; + return { noir, proofData }; } diff --git a/vite-hardhat/utils/addresses.json b/vite-hardhat/utils/addresses.json index c372855..87e1ffb 100644 --- a/vite-hardhat/utils/addresses.json +++ b/vite-hardhat/utils/addresses.json @@ -1 +1 @@ -{"chainId":31337,"verifier":"0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1"} \ No newline at end of file +{"chainId":31337,"verifier":"0x322813fd9a801c5507c9de605d63cea4f2ce6c44"} \ No newline at end of file