From e74df97f26941c8b0746fc5f5c2830511b922305 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Thu, 25 Jan 2024 12:56:12 +0100 Subject: [PATCH] Instantiate noir only once --- packages/noir-ethereum-api/src/main.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/noir-ethereum-api/src/main.ts b/packages/noir-ethereum-api/src/main.ts index aaf92a2c2..82dfae9fc 100644 --- a/packages/noir-ethereum-api/src/main.ts +++ b/packages/noir-ethereum-api/src/main.ts @@ -9,6 +9,8 @@ import { decodeHexString, encodeHexString } from './noir/noir_js/encode.js'; import { abiEncode, type InputMap } from '@noir-lang/noirc_abi'; export const circuit = noir_ethereum_history_api as unknown as CompiledCircuit; +const backend = new BarretenbergBackend(circuit, { threads: os.cpus().length }); +const noir = new Noir(circuit, backend); export interface MainInputs extends InputMap { block_no: number; @@ -22,8 +24,6 @@ export async function recordStorageProof( oracles: Oracles = defaultOracles, name: string ): Promise { - const backend = new BarretenbergBackend(circuit, { threads: os.cpus().length }); - const noir = new Noir(circuit, backend); const proof = await noir.generateFinalProof(input, oracles); const proofHex = decodeHexString(proof.proof); @@ -37,8 +37,6 @@ export async function recordStorageProof( } export async function verifyStorageProof(proof: ProofData): Promise { - const backend = new BarretenbergBackend(circuit); - const noir = new Noir(circuit, backend); return await noir.verifyFinalProof(proof); }