Repository navigation
Add proposal execution tracking and quorum tests for governance - #852
Merged
Jaydbrown merged 2 commits intoOct 18, 2026
Merged
Conversation
## Summary Implements four critical contract validation improvements: ### conduit-protocol#785 - StreamCancelled event includes remaining deposit - Added remaining_deposit parameter to cancelled() and force_cancelled() events - Provides complete financial breakdown in event logs - Updated lib.rs calls to pass refund_to_sender as remaining_deposit ### conduit-protocol#786 - SEP-0041 transfer return value validation - Validates return values from all tk.transfer() calls in token-vault - Maps transfer errors to appropriate contract errors - Catches transfer failures before state mutations - Affects 5 transfer points in lib.rs ### conduit-protocol#787 - Duplicate stream ID validation in batch cancel - Added DuplicateStreamId error code (33) to factory errors - Validates non-duplicate stream addresses before batch processing - Uses Map-backed set for O(log n) duplicate detection - Rejects batch early if duplicates detected ### conduit-protocol#788 - WASM hash registry verification - Validates WASM hash exists in Soroban ledger before deployment - Uses env.ledger().get_wasm() to verify registry - Prevents deployment failures from stale/invalid hashes - Early validation in deploy_stream() Closes conduit-protocol#785 Closes conduit-protocol#786 Closes conduit-protocol#787 Closes conduit-protocol#788
…d Stellar asset staleness threshold - Fix conduit-protocol#773: Add ProposalExecutionQueued event emitted with execution time when proposals are queued - Fix conduit-protocol#774: Store proposal execution bytecode hash in DataKey for verification purposes - Fix conduit-protocol#775: Add three comprehensive unit tests for quorum calculation edge cases with fractional tokens - Fix conduit-protocol#776: Add StellarAssetStalenessThresholdSecs DataKey for independent Stellar asset price feed staleness configuration These changes improve proposal governance tracking, execution verification, quorum validation with edge cases, and oracle price feed staleness management for Stellar assets.
|
@opeaceooo 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! 🚀 |
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
Implements four enhancements to governance proposal execution tracking and oracle staleness management:
Changes
contracts/governor/src/events.rs
proposal_execution_queued()function to emit execution queue event with proposal ID and execution time timestampcontracts/governor/src/storage.rs
ProposalExecutionBytecodeHash(u64)to DataKey enum for storing and retrieving proposal bytecode hashescontracts/governor/src/tests.rs
test_quorum_calculation_with_fractional_tokens(): Tests 45% quorum threshold on 11-token supplytest_quorum_calculation_with_100_percent_threshold(): Tests strict 100% quorum on 7-token supplytest_quorum_calculation_with_small_supply_and_low_threshold(): Tests minimum 1-vote quorum on 3-token supplycontracts/oracle/src/lib.rs
StellarAssetStalenessThresholdSecsto DataKey enum for independent Stellar asset price feed staleness configurationTesting
All new test cases verify correct quorum enforcement with rounding behavior and edge cases:
Closes #773
Closes #774
Closes #775
Closes #776