@@ -8,7 +8,7 @@ import { HardhatPluginError } from "hardhat/plugins";
88import { HardhatConfig } from "hardhat/types" ;
99import { NoirCache } from "./cache" ;
1010import { installNargo } from "./install" ;
11- import { getTarget , ProofFlavor } from "./Noir" ;
11+ import { getTarget } from "./Noir" ;
1212import { makeRunCommand , PLUGIN_NAME } from "./utils" ;
1313
1414task ( TASK_COMPILE , "Compile and generate circuits and contracts" ) . setAction (
@@ -40,12 +40,7 @@ task(TASK_COMPILE, "Compile and generate circuits and contracts").setAction(
4040 return ;
4141 }
4242
43- for ( const flavor of Object . values ( ProofFlavor ) as ProofFlavor [ ] ) {
44- if ( ! config . noir . flavor . includes ( flavor ) ) {
45- continue ;
46- }
47- await generateSolidityVerifier ( file , targetDir , flavor ) ;
48- }
43+ await generateSolidityVerifier ( file , targetDir ) ;
4944 await cache . saveJsonFileHash ( file ) ;
5045 } ) ,
5146 ) ;
@@ -102,43 +97,26 @@ task(
10297 } ,
10398) ;
10499
105- async function generateSolidityVerifier (
106- file : string ,
107- targetDir : string ,
108- flavor : ProofFlavor ,
109- ) {
100+ async function generateSolidityVerifier ( file : string , targetDir : string ) {
110101 const path = await import ( "path" ) ;
111102 const fs = await import ( "fs" ) ;
112103 const { UltraHonkBackend } = await import ( "@aztec/bb.js" ) ;
113104
114- let verifier : string ;
115105 const program = JSON . parse ( fs . readFileSync ( file , "utf-8" ) ) ;
116- switch ( flavor ) {
117- case "ultra_keccak_honk" : {
118- const backend = new UltraHonkBackend ( program . bytecode ) ;
119- const vk = await backend . getVerificationKey ( { keccakZK : true } ) ;
120- verifier = await backend . getSolidityVerifier ( vk ) ;
121- break ;
122- }
123- default : {
124- flavor satisfies never ;
125- throw new HardhatPluginError (
126- PLUGIN_NAME ,
127- `Unsupported Noir proof flavor: ${ flavor } ` ,
128- ) ;
129- }
130- }
106+
107+ const backend = new UltraHonkBackend ( program . bytecode ) ;
108+ const vk = await backend . getVerificationKey ( { keccakZK : true } ) ;
109+ let verifier = await backend . getSolidityVerifier ( vk ) ;
110+
131111 if ( typeof verifier !== "string" ) {
132112 // bug in bb types
133113 verifier = new TextDecoder ( ) . decode ( verifier ) ;
134114 }
135115
136116 const name = path . basename ( file , ".json" ) ;
137- console . log ( `Generating Solidity ${ flavor } verifier for ${ name } ...` ) ;
138- const nameSuffix =
139- flavor === ProofFlavor . ultra_keccak_honk ? "" : `_${ flavor } ` ;
140- fs . writeFileSync ( path . join ( targetDir , `${ name } ${ nameSuffix } .sol` ) , verifier ) ;
141- console . log ( `Generated Solidity ${ flavor } verifier for ${ name } ` ) ;
117+ console . log ( `Generating Solidity verifier for ${ name } ...` ) ;
118+ fs . writeFileSync ( path . join ( targetDir , `${ name } .sol` ) , verifier ) ;
119+ console . log ( `Generated Solidity verifier for ${ name } ` ) ;
142120}
143121
144122async function checkNargoWorkspace ( config : HardhatConfig ) {
0 commit comments