Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add API to build a circuit from vamp-ir source #180

Merged
merged 11 commits into from
Jul 11, 2023

Conversation

paulcadman
Copy link
Contributor

@paulcadman paulcadman commented Jun 28, 2023

There is only vamp-ir API for creating circuits inputs from a JSON file. Taiga will
need to create inputs from note data stored in partial transactions. So
we'll need API in vamp-ir to do this.

This PR adds API on VampIRValidityPredicateCircuit, for compiling a vamp-ir file from source.

from_vamp_ir_source(
        vamp_ir_source: &str,
        named_field_assignments: HashMap<String, Fp>,
    ) -> Result<Self, VampIRCircuitError>

In vamp-ir_utils I've also added API missing from the vamp-ir library which we can add to vamp-ir later.

get_circuit_assignments(
    module: &Module,
    named_assignments: &HashMap<String, Fp>,
) -> Result<HashMap<VariableId, Fp>, VariableAssignmentError>

and

parse(unparsed_file: &str) -> Result<Module, String>

@paulcadman paulcadman marked this pull request as ready for review June 29, 2023 08:59
Copy link
Collaborator

@XuyangSong XuyangSong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

There is only vamp-ir API for creating circuits inputs from a JSON file. Taiga will
need to create inputs from note data stored in partial transactions. So
we'll need API in vamp-ir to do this.

The vamp-ir compile API could perhaps take a HashMap<String, Fp> of
named assignments?
The vamp_ir_utils module consists of definitions that will eventually be
incorporated into the vamp-ir library
When converting String->Fp assignments to VariableId->Fp assignments we
should ignore variables with no name that are present in the vamp-ir
module instead of panicing.
A user of from_vamp_ir_source may provide a named assigment that is not
present in the vamp_ir module. Callers may want to handle this error to
provide better feedback that panicing.
@paulcadman paulcadman merged commit fb1b762 into main Jul 11, 2023
@paulcadman paulcadman deleted the paul/vamp-ir-from-source branch July 11, 2023 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants