Repository navigation
feat: add keeper rewards, oracle heartbeats, vault deposit cap, propo… - #854
Merged
Merged
Conversation
…sal status index - Add KeeperRewardPool and per-key payer helpers to drip_common::ttl (conduit-protocol#851) - Add per-asset heartbeat configuration to the oracle (conduit-protocol#850) - Cap single vault deposits at MAX_VAULT_DEPOSIT (conduit-protocol#849) - Index governor proposals by status (conduit-protocol#848) closes conduit-protocol#851 closes conduit-protocol#850 closes conduit-protocol#849 closes conduit-protocol#848
|
@thegreatfeez 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.
closes #851
closes #850
closes #849
closes #848
Added a keeper reward pool with per-key payouts, per-asset oracle heartbeat configuration, a single-deposit ceiling in the token vault, and status-indexed proposal pagination in the governor.
Verification
cargo test -p drip-common --lib— 44 passed.cargo test -p drip-governor --lib— 16 passed.cargo test -p drip-oracle --lib— 86 passed.cargo test -p token-vault --lib— 80 passed.cargo clippy -p drip-common -p drip-governor -p drip-oracle -p token-vault --all-targets -- -D warnings— clean.cargo fmt -p drip-common -p drip-governor -p drip-oracle -p token-vault— applied.#851 — Keeper reward pool
Added
KeeperRewardPool,configure_keeper_reward_pool,fund_keeper_reward_pool, andbump_persistent_with_rewardtodrip_common::ttl. A successful persistent TTL bump pays the keeperreward_per_keyfrom the escrowed pool balance.#850 — Per-asset heartbeat timeout
Added
AssetOracleConfig { heartbeat_timeout_seconds }and the persistentDataKey::AssetOracleConfig(Address)mapping, with admin-gatedset_asset_oracle_configandasset_oracle_config. Address-pair aggregation now uses the base token's configured heartbeat, falling back to the global staleness setting and then the legacy pair window.#849 — Maximum single deposit
Added
MAX_VAULT_DEPOSIT(10^30 stroops) andError::DepositExceedsMax. The ceiling is enforced indeposit,deposit_with_fee,batch_deposit, anddeposit_token.#848 — Proposal status index
Added
DataKey::ProposalsByStatus(ProposalStatus)and maintenance helpers.proposeindexesPending, the first vote moves a proposal toActive, and execution/cancellation move it toExecuted/Cancelled. Added theproposals_by_statusread view.Judgement calls
Stringimport,Optionmisuse, over-longsymbol_short!, over-long enum variant, and invalidmap_erron SDK 21's unit-returning tokentransfer).Defeatedis added toProposalStatusfor the requested index set but no current transition produces it — the governor does not reject proposals on vote outcome.cargo fmt --all -- --checkis blocked by a pre-existing unclosed delimiter incontracts/stream/src/lib.rs; formatting was run per touched package instead.