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

Local devnet: fix block less than 10 #426

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

ftheirs
Copy link
Collaborator

@ftheirs ftheirs commented Nov 6, 2024

Until block 10, contract_data field from storage_proof delivered by Pathfinder is None. Handle this situation with a default value.

Issue Number: N/A

Type

  • feature
  • bugfix
  • dev (no functional changes, no API changes)
  • fmt (formatting, renaming)
  • build
  • docs
  • testing

Description

Breaking changes?

  • yes
  • no

@@ -147,8 +147,11 @@ pub(crate) fn format_commitment_facts<H: HashFunctionType>(
impl PerContractStorage for ProverPerContractStorage {
async fn compute_commitment(&mut self) -> Result<CommitmentInfo, CommitmentInfoError> {
// TODO: error code
Copy link
Collaborator

Choose a reason for hiding this comment

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

@ftheirs please add a comment that explain the motivation of this fix.
In general storage_proofs needs to have this field.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Specifically which contracts are and why the start having contract_data in block 10

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

In pathfinder, the structure from the requested type is defined with Opt:
https://github.com/Moonsong-Labs/pathfinder/blob/c45b23d2d6407079ad19f84ef0b23f913063d7cd/crates/rpc/src/pathfinder/methods/get_proof.rs#L182-L199
Besides, when we work with a devnet, we're returning in an early part of the function. We get a None when we retrieve the contract_state_hash from the DB, and this leads to the early return where most of the fields are empty/none
https://github.com/Moonsong-Labs/pathfinder/blob/c45b23d2d6407079ad19f84ef0b23f913063d7cd/crates/rpc/src/pathfinder/methods/get_proof.rs#L283-L294

When we bump into this condition, the fix just create a default ContractData structure with all fields in zero

@ftheirs ftheirs marked this pull request as ready for review November 26, 2024 20:12
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.

3 participants