Repository navigation
fix(builders): run constitution guardrail script in propose() - #595
Merged
solidsnakedev merged 4 commits intoOct 6, 2026
Merged
Conversation
ProposeParams takes an optional redeemer and label. The redeemer is tracked under the propose purpose, keyed by the proposal's position in proposalProcedures, and is indexed, evaluated and balanced like the other script redeemers. The guardrail script is supplied with attachScript() or readFrom(). The build fails early when a proposal with a Plutus policyHash has no redeemer, or when a redeemer is supplied for a proposal that runs no guardrail. Redeemers for native-script guardrails are dropped. The devnet ConwayGenesis type accepts constitution.script, and a devnet test submits TreasuryWithdrawals and ParameterChange proposals against an always-succeeding guardrail, with the script attached and via a reference input. Closes IntersectMBO#594
… propose() Review follow-ups: - A self redeemer has no input to resolve against for a proposal, so propose() now fails with a clear message instead of a resolution error. - A redeemer for a Plutus guardrail now requires the script to be attached or available from a reference or spent input, so a missing script fails at build time rather than at submission. - Unit tests cover propose next to mint redeemers with distinct ExUnits, two guardrail proposals, compose(), reference input scripts, batch redeemers, an unexpected evaluator index and label enrichment on script failure. - Docs note redeemer data and supported redeemer modes.
…ten propose() docs
solidsnakedev
approved these changes
Oct 6, 2026
solidsnakedev
left a comment
Collaborator
There was a problem hiding this comment.
Thanks, this is a clean fix. Checked against the ledger: the propose redeemer index and the spent-input scripts both match what the node expects, and the devnet tests pass locally. One small follow-up on the fee estimate is tracked in #596; it does not block this.
This was referenced Oct 6, 2026
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.
.propose()accepts a redeemer and label, so proposals checked by the constitution guardrail can be built and submittedCloses #594