feat: add append-only holder registry per creator key (issue #831) - #845
Open
meem08 wants to merge 8 commits into
Open
feat: add append-only holder registry per creator key (issue #831)#845meem08 wants to merge 8 commits into
meem08 wants to merge 8 commits into
Conversation
…yerorg#831) - Reworked DataKey to store Vec<Address> per creator (holder_registry) - Added get_holder_registry view returning full list - Derived has_ever_held and get_historical_holder_count from registry - TTL bumped on every read and write (extend_key_ttl_to_full_window) - Circuit breaker fix: read CIRCUIT_BREAKER_THRESHOLD from storage, default 30% - Pre-existing formatting fixes to prelaunch_auction and staking_reward_claim tests
|
@meem08 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
added 4 commits
August 31, 2026 15:26
…yerorg#831) - Reworked DataKey to store Vec<Address> per creator (holder_registry) - Added get_holder_registry view returning full list - Derived has_ever_held and get_historical_holder_count from registry - TTL bumped on every read and write (extend_key_ttl_to_full_window) - Circuit breaker fix: read CIRCUIT_BREAKER_THRESHOLD from storage, default 30% - Pre-existing formatting fixes to prelaunch_auction, staking_reward_claim, events.rs, and test_staking_lifecycle.rs for cargo fmt compliance
Member
❌ CI Failed —
|
Merging upstream/main into feat/holder-registry-831 left duplicate FeeCollectedEvent/LockupBlockedEvent structs and FEE_COLLECTED_EVENT_NAME/ LOCKUP_BLOCKED_EVENT_NAME constants in events.rs, which failed to compile (E0428, "defined multiple times") and broke CI. Keep the canonical copies. Generated with Codebuff 🤖 Co-Authored-By: Codebuff <noreply@codebuff.com>
…merge The merge with upstream main left duplicate definitions in lib.rs that broke compilation (E0428): last_buy_timestamp x3 and holder_cap_bps x2 inside constants::storage, plus two conflicting top-level credit_staking_rewards_pool fns. Keep the canonical StakingRewardsState implementation and drop the stale bare-i128 variant and its reader. Generated with Codebuff 🤖 Co-Authored-By: Codebuff <noreply@codebuff.com>
…y-831 Resolve conflicts with upstream main: - events.rs: keep upstream auction events, drop duplicate fee event doc - lib.rs: keep holder_registry alongside staking/auction DataKey variants; single circuit-breaker threshold read from storage - test_issues_778_779_781_782.rs: use unwrapped client view results - delete staking_reward_claim.rs (incompatible 2-arg API; superseded by test_staking_lifecycle.rs) - fix clippy lint errors in holder_registry.rs tests 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
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.
Summary
closes #831
Testing
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspaceChecklist
creator-keysunit/integration tests for every changed contract behavior, including failure paths for new or reachableContractErrorvariantscargo fmt --all -- --check,cargo clippy --workspace --all-targets -- -D warnings, andcargo test --workspace, or explained exactly why a command was not rundocs/storage-key-invariants.md; any storage layout change includes a migration/backward-compatibility notedocs/contract-event-conventions.md, or documented the breaking change and versioning plan