diff --git a/package-lock.json b/package-lock.json index e0697a1..b3ad23a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@solarity/hardhat-zkit", - "version": "0.4.10", + "version": "0.4.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@solarity/hardhat-zkit", - "version": "0.4.10", + "version": "0.4.11", "license": "MIT", "workspaces": [ "test/fixture-projects/*" @@ -5751,6 +5751,10 @@ "resolved": "test/fixture-projects/hardhat-project-with-complex-circuits", "link": true }, + "node_modules/hardhat-project-with-constraint-simplification": { + "resolved": "test/fixture-projects/hardhat-project-with-constraint-simplification", + "link": true + }, "node_modules/hardhat/node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -9863,6 +9867,9 @@ }, "test/fixture-projects/hardhat-project-with-complex-circuits": { "version": "1.0.0" + }, + "test/fixture-projects/hardhat-project-with-constraint-simplification": { + "version": "1.0.0" } } } diff --git a/package.json b/package.json index 0f9f55b..4c9762e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@solarity/hardhat-zkit", - "version": "0.4.10", + "version": "0.4.11", "description": "The ultimate TypeScript environment for Circom development", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", diff --git a/src/cache/schemas/compile-schemas.ts b/src/cache/schemas/compile-schemas.ts index f710047..be4198e 100644 --- a/src/cache/schemas/compile-schemas.ts +++ b/src/cache/schemas/compile-schemas.ts @@ -63,6 +63,9 @@ export const CompileFlagsSchema = z.object({ sym: z.boolean(), json: z.boolean(), c: z.boolean(), + O0: z.boolean(), + O1: z.boolean(), + O2: z.boolean(), }); export const ResolvedFileDataSchema = z.object({ diff --git a/src/core/dependencies/parser/CircomTemplateInputsVisitor.ts b/src/core/dependencies/parser/CircomTemplateInputsVisitor.ts index c6957e2..4762378 100644 --- a/src/core/dependencies/parser/CircomTemplateInputsVisitor.ts +++ b/src/core/dependencies/parser/CircomTemplateInputsVisitor.ts @@ -111,6 +111,20 @@ export class CircomTemplateInputsVisitor extends CircomVisitor { } }; + visitSignalDeclaration = (ctx: SignalDeclarationContext) => { + const signalDefinition = ctx.signalDefinition(); + + let signalType = "intermediate"; + + if (signalDefinition.SIGNAL_TYPE()) { + signalType = signalDefinition.SIGNAL_TYPE().getText(); + } + + [signalDefinition.identifier(), ...ctx.identifier_list()].forEach((identifier) => + this._saveInputData(identifier, signalType), + ); + }; + visitVarDeclaration = (ctx: VarDeclarationContext) => { const vars = this._parseVarDefinition(ctx.varDefinition()); @@ -129,11 +143,11 @@ export class CircomTemplateInputsVisitor extends CircomVisitor { }); }; - _parseVarDefinition = (ctx: VarDefinitionContext): string[] => { + private _parseVarDefinition(ctx: VarDefinitionContext): string[] { return ctx.identifier_list().map((identifier) => identifier.ID(0).getText()); - }; + } - _parseRHSValue = (ctx: RhsValueContext): bigint[] => { + private _parseRHSValue(ctx: RhsValueContext): bigint[] { const expressionVisitor = new CircomExpressionVisitor(true, this.vars); /** @@ -183,21 +197,7 @@ export class CircomTemplateInputsVisitor extends CircomVisitor { } throw new HardhatZKitError(`RHS value as function call is not supported - ${ctx.getText()}`); - }; - - visitSignalDeclaration = (ctx: SignalDeclarationContext) => { - const signalDefinition = ctx.signalDefinition(); - - let signalType = "intermediate"; - - if (signalDefinition.SIGNAL_TYPE()) { - signalType = signalDefinition.SIGNAL_TYPE().getText(); - } - - [signalDefinition.identifier(), ...ctx.identifier_list()].forEach((identifier) => - this._saveInputData(identifier, signalType), - ); - }; + } private _saveInputData(identifier: IdentifierContext, signalType: string) { const parsedData = this._parseIdentifier(identifier);