chore: stronger typing and DG1 type #70
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
I noticed that there were alot of operations that operated over the DG1, however they were often all over the codebase in different libraries.
This change introduces a DG1 type
Beforehand, in any place that was slicing from DG1, it would convert it into MRZ and then perform byte slices. Each place where this was done used magic numbers for the size of data being returned. This PR types those magic numbers.
e.g.
DG1Data = [u8; 95]
rather than [u8; 95] appearing over the codebase we use the type.This array slicing is now performed in one single place, utils::dg1 rather than in many different files.
The generated circuits should end up being exactly the same. (currently checking)
In upcoming PRs ill make the same typing changes to other parts of the proof, to avoid the magic numbers in array definitions.