Mini-instructions (MVP)#477
Open
metapileks wants to merge 26 commits into
Open
Conversation
…fields, errors, events
Contributor
|
Repository Guard
Repository GuardCargo dependency pinning
Cross-program Anchor/Solana version consistency
solana-program crate pin
Anchor.toml solana_version
Crate minimum age
Yarn package.json pinning
npm minimum age
Workflow toolchain consistency
GitHub Action SHA pinning
Sensitive program / config changes
Overall status: pass Lockfile freshness (Cargo.lock + yarn.lock) is checked by the workflow directly and cannot be bypassed. The sensitive-diff section is a review hint - CODEOWNERS handles the actual merge gate. |
metapileks
marked this pull request as ready for review
July 23, 2026 23:01
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.
Replaces futarchy v0.6's one-size-fits-all proposals with a fixed catalog of typed governance actions. For every type except the
execute_arbitrarycatch-all, futarchy builds the Squads vault transaction itself from a per-type template at create.The catalog
large_spend(amount)mint_tokens(amount, recipient)spending_limit_change(config)execute_arbitraryhostile_takeover(new_team, limit_action)hostile_liquidate(liquidator)Program changes
Added
initialize_*_proposal— permissionless creates that build the vault tx from the type's template (typed_create.rs).set_spending_limit— vault-signed writer of the on-DAO spending-limit record (replacesexecute_spending_limit_change, which bypassed the record)sync_spending_limit— permissionless dirty-gated crank projecting the record onto the SquadsSpendingLimit(futarchy signs as config authority)apply_liquidation— vault-signed and kind-checked (requires a passedHostileLiquidateproposal, so liquidation can't rideexecute_arbitrary): installs the liquidator, zeroes the limit record, sweeps the treasury's own AMM positionProposalActiononProposal(borsh tag doubles as the kind) + snapshotted signed threshold and blockable flag;Daogainsliquidator: Option<Pubkey>, per-hostile last-failed timestamps,spending_limit_dirty, andinitial_spending_limitpromoted to the authoritative spending-limit recordModified
initialize_proposalis now theexecute_arbitrarypath (externally supplied, unvalidated, at the stricter uniform 10d/+10%)launch_proposal— kind-aware sponsorship and cooldown checks alongside the DAO's existing anti-grief gatefinalize_proposal— uses the proposal's snapshotted threshold (not DAO config) and stamps hostile failure timestampsadmin_cancel_proposal— respects the blockable flag (council can cancel routine types mid-market, never hostile ones)update_dao— spending-limit-neutral;team_addressonly gates sponsorshipwithdraw_liquiditystays open); liquidated DAOs execute via a liquidator-gated enqueue → permissionless approve → ordinary Squads executionpass_threshold_bps/seconds_per_proposal/team_sponsored_pass_threshold_bpsbecome vestigialRemoved
initiate_vault_spend_optimistic_proposal,finalize_optimistic_proposal, and their special cases in create/launch/admin pathsexecute_spending_limit_changeMigration
resize_dao/resize_proposalcranks; legacy proposals snapshot toExecuteArbitraryfrom the vestigial per-DAO fields, optimistic values clearedSDK
v0.6.0, newv0.6.1IDL snapshot added alongside itFutarchyClientmethods and PDA helpers for every new instruction, including packingsync_spending_limitinto execution so the stale-limit window is zero in the normal pathGreptile Summary
Introduces typed futarchy governance actions and their fixed market parameters, replacing the previous one-size-fits-all proposal flow.
Confidence Score: 5/5
The PR appears safe to merge based on the reviewed typed-action bindings, migration behavior, liquidation lifecycle, and spending-limit synchronization.
The changed proposal templates bind action payloads and target accounts into their Squads transactions, liquidation is constrained to passed hostile-liquidation proposals with terminal replay protection, and spending-limit synchronization preserves atomic state through Solana transaction rollback.
Important Files Changed
Reviews (1): Last reviewed commit: "update idl, reduce cycles in tests" | Re-trigger Greptile