Calculate class_commitment from proof #460
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.
This works around an issue introduced when Pathfinder removed
class_commitment
from its class proof.The proofs we get back from
Pathfinder
(prior to v0.8 RPC) are in order. What that means is that the proof is a list of MPT nodes, ordered such that you can walk through the proof from top-to-bottom. This implies that the first node is always the root node, which is the same thing as thecommitment
. In other words, we can get the root/commitment by simply looking at the first node, and that's what this PR does.Note, however, that this is redundant --
verify_proof()
ultimately hashes the root node and compares that toclass_commitment
, which is exactly what this PR does. It would be just as good to makeclass_commitment
anOption
an only verify it then; but this PR at least makes the problem clear.Type
Description
Breaking changes?