apollo_staking: implement get_previous_epoch in CairoStakingContract#12902
Open
dafnamatsry wants to merge 1 commit intodafna/mock-staking-get-previous-epoch-datafrom
Open
apollo_staking: implement get_previous_epoch in CairoStakingContract#12902dafnamatsry wants to merge 1 commit intodafna/mock-staking-get-previous-epoch-datafrom
dafnamatsry wants to merge 1 commit intodafna/mock-staking-get-previous-epoch-datafrom
Conversation
Collaborator
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
2f7280c to
fdb5152
Compare
fabaf19 to
e14599a
Compare
fdb5152 to
e2f4d77
Compare
e14599a to
d6ad6c9
Compare
e2f4d77 to
ef7e6b7
Compare
1b8eaa2 to
6611dda
Compare
6611dda to
afe3cc6
Compare
matanl-starkware
requested changes
Mar 8, 2026
Collaborator
matanl-starkware
left a comment
There was a problem hiding this comment.
@matanl-starkware reviewed 4 files and all commit messages, and made 2 comments.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on dafnamatsry).
crates/apollo_staking/src/contract_types.rs line 31 at r1 (raw file):
} impl TryFromIterator<Felt> for Felt {
I think this, and other "generic non staking related" stuff should be moved to a different location.
Code quote:
impl TryFromIterator<Felt> for Felt {crates/apollo_staking/src/contract_types_test.rs line 164 at r1 (raw file):
#[case::empty_retdata(vec![])] #[case::some_wrong_length(vec![Felt::ZERO, Felt::ONE])] #[case::none_wrong_length(vec![Felt::ONE, Felt::TWO])]
Missing case for "too many args"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Note
Medium Risk
Touches contract-call behavior and low-level retdata deserialization; a mismatch with the contract’s actual ABI/encoding would surface as runtime parsing errors or incorrect epoch handling.
Overview
CairoStakingContract.get_previous_epochis now implemented to call the on-chainget_previous_epoch_dataview and deserialize an optionalEpochresult instead oftodo!().To support this,
contract_typesadds reusable Cairo1 retdata deserialization helpers forFelt,Option<T>and aCairoOption<T>wrapper, refactorsEpoch/array parsing to use the iterator-based approach, and expands unit/integration tests to coverSome/None, invalid variants/lengths, and contract-level previous-epoch behavior.Written by Cursor Bugbot for commit afe3cc6. This will update automatically on new commits. Configure here.