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 old block info hint #11

Closed
wants to merge 17 commits into from
Closed

Add old block info hint #11

wants to merge 17 commits into from

Conversation

notlesh
Copy link

@notlesh notlesh commented Mar 5, 2024

Adds old block info hint. This is used shortly before txn execution in the OS

maciejka and others added 17 commits February 1, 2024 20:13
…e/mk/hints-stats-fix

Improve `hints_stats`
* walkthrough
* pin rust version, fix ci
* fix: chain id is expected to be a felt

* fix: add tests for chain id serialization

* chore: bump toolchain for unsupported attribute
* draft

* fmt

* fix small issues

* move to 0.13.1a0

* fixes

* fix tests

* remove orpahns

* fix clippy

* fixes

* disable breakpoint hint
This file is automatically generated when running tests.
* first iteration of is_n_ge_two hint

* refactor is_n_ge_two hint. remove unused dependencies. start test

* set vm memory in test

* remove unused macros

* fix test and remove debugging prints

* add EOF line

* add test cases

* use rstest cases. refactor hint code to avoid using match. rename hint tests module.

* apply formatter

* add case for n > two

* remove End of file line

* run fmt+nightly command

* run fmt+nightly command
* add hint in hint map and use ids map

* remove unused macro. makes hint constant public
* Add is_on_curve hint and basic test

* Improve test

* Add TODO

* Update Cargo.lock

* Attempt at better ids_data

* Set fp and add another segment

* Clean up

* fmt

* Fix clippy lints

* fmt

* fmt

* Add IS_ON_CURVE to hints map

* Use constants for ONE and ZERO

* fmt

* Clean up secp_p comments

* Use vars for var names

* Remove duplicate mod tests
Co-authored-by: Olivier Desenfans <[email protected]>
Co-authored-by: Herman Obst Demaestri <[email protected]>
Co-authored-by: Olivier Desenfans <[email protected]>
Co-authored-by: Olivier Desenfans <[email protected]>
Problem: Cairo structs are accessed in some hints. The Python VM has
abstractions to access fields by name that the Rust VM cannot implement.
This leads to accessing these structs by hardcoding the offset of each
field.

Solution: The new `CairoType` trait allows to read/write an entire
struct in one go. The derive implementation reads/writes fields one by
one according to their place in the struct definition. For cases where
reading/writing the whole struct is not appropriate, the new
`FieldOffsetGetters` macro implements a `get_<field>_offset()` method
for each field of the struct to avoid hardcoding values.
@notlesh notlesh closed this Mar 5, 2024
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.

5 participants