-
Notifications
You must be signed in to change notification settings - Fork 5
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.
7cf9747
to
d4e7163
Compare
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…y creation. - Update reward handling to use `from_stake_key_hash` with `NetworkId`. - Implement `From<NetworkId>` for `AddressNetwork` for easier conversion.
…nt-with-stake-address' into lowhung/163-replace-reward-account-with-stake-address # Conflicts: # common/src/address.rs
…dling across modules. - Update reward processing, delegation, and state management to use `StakeAddress`. - Simplify APIs and adjust implementations to process `StakeAddress` directly. - Refactor tests to reflect new `StakeAddress`-based structure. - Enhance error logging to include full stake address information.
ff594da
to
497214e
Compare
…pansion, and minor documentation fixes - Rename `stake_addresses` function parameters for clarity and consistency (`stake_addresses` -> `stake_keys`). - Adjust test cases to include comprehensive workflows for registration, delegation, withdrawal, and state updates. - Add new utility test modules to validate delegation and reward processes. - Minor improvements in comment documentation for public functions.
Description of Changes
RewardAccount
withStakeAddress
across modules for consistency.StakeAddress
.