-
Notifications
You must be signed in to change notification settings - Fork 4
Refactor reward account handling to use StakeAddress #250
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
base: main
Are you sure you want to change the base?
Refactor reward account handling to use StakeAddress #250
Conversation
- Replace `RewardAccount` with `StakeAddress` across modules for consistency. - Adapt serialization, deserialization, and encoding/decoding logic for `StakeAddress`. - Adjust related tests, helpers, and comments to align with the refactor.
- Simplify `reward_account` handling by utilizing `StakeAddress::from_binary`. - Adjust `StakeAddress` default implementation for consistency.
…tion - Replace `reward_account` field with `StakeAddress::default()` for consistency. - Remove redundant `StakeAddressPayload` in test cases. - Clean up unused imports and redundant code across modules.
…t` initialization
- Replace `RewardAccount` with `StakeAddress` across modules for consistency. - Adapt serialization, deserialization, and encoding/decoding logic for `StakeAddress`. - Adjust related tests, helpers, and comments to align with the refactor. # Conflicts: # modules/accounts_state/src/rewards.rs # modules/accounts_state/src/snapshot.rs # modules/accounts_state/src/state.rs
- Simplify `reward_account` handling by utilizing `StakeAddress::from_binary`. - Adjust `StakeAddress` default implementation for consistency.
…tion - Replace `reward_account` field with `StakeAddress::default()` for consistency. - Remove redundant `StakeAddressPayload` in test cases. - Clean up unused imports and redundant code across modules.
…t` initialization
- Replace `StakeAddress::from_binary` usage with `reward_account.get_hash` for simplicity and consistency. - Update all modules to align with the updated `StakeAddress` handling. - Remove redundant error handling and simplify logging where applicable.
…nt-with-stake-address' into lowhung/163-replace-reward-account-with-stake-address # Conflicts: # modules/accounts_state/src/rewards.rs # modules/accounts_state/src/snapshot.rs # modules/accounts_state/src/state.rs
5b75210
to
7e1fe2c
Compare
…ify related logic - Update `RewardDetail` and reward handling logic to use `StakeAddress` directly. - Replace `reward_account` field with `.get_hash()` where necessary.
7e1fe2c
to
c90a1c1
Compare
…eded. - Update imports and logic across modules to use `StakeAddress` exclusively.
507f8ec
to
f625171
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the codebase to replace the RewardAccount
type (which was a Vec<u8>
) with the more structured StakeAddress
type for improved type safety and consistency across the application.
Key Changes:
- Replaced
RewardAccount
type alias withStakeAddress
throughout the codebase - Updated serialization/deserialization logic to use
StakeAddress
methods - Modified test fixtures to use
StakeAddress::default()
instead of empty vectors
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
modules/tx_unpacker/src/map_parameters.rs | Updated certificate and proposal mapping to deserialize reward accounts using StakeAddress::from_binary() |
modules/spo_state/src/state.rs | Updated test fixtures to use StakeAddress::default() instead of vec![0] and added import |
modules/rest_blockfrost/src/handlers/pools.rs | Changed reward account conversion from to_bech32_with_hrp() to to_string() method |
modules/accounts_state/src/verifier.rs | Updated verifier to use StakeAddress::get_hash() for comparisons and logging |
modules/accounts_state/src/state.rs | Refactored SPO retirement logic to use StakeAddress directly, updated reward processing to use get_hash() , and fixed comment grammar |
modules/accounts_state/src/snapshot.rs | Simplified reward account registration check by removing error handling and using StakeAddress directly |
modules/accounts_state/src/rewards.rs | Updated reward calculation to work with StakeAddress , replaced hash comparisons with get_hash() calls |
common/src/types.rs | Removed RewardAccount type alias and updated PoolRegistration and ProposalProcedure to use StakeAddress |
common/src/address.rs | Added CBOR encoding/decoding implementations, Default trait, reorganized methods, and added comprehensive tests for StakeAddress |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
}; | ||
|
||
let payload = match (header >> 4) & 0x0F { | ||
let payload = match (header >> 4) & 0x0Fu8 { |
Copilot
AI
Oct 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The explicit u8
type suffix on 0x0Fu8
is unnecessary since the expression (header >> 4) & 0x0F
already produces a u8
result. The original 0x0F
without suffix is clearer and follows Rust conventions for bitwise operations.
let payload = match (header >> 4) & 0x0Fu8 { | |
let payload = match (header >> 4) & 0x0F { |
Copilot uses AI. Check for mistakes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, that's what I thought as well...but my editor does not seem happy about that!
No implementation for `u8 & i32` [E0369]
7cf9747
to
d4e7163
Compare
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Description of Changes
RewardAccount
withStakeAddress
across modules for consistency.StakeAddress
.