Skip to content

Homogenize tweaks (#491)#533

Open
mmontin wants to merge 8 commits into
mainfrom
mm/homogenize-tweaks
Open

Homogenize tweaks (#491)#533
mmontin wants to merge 8 commits into
mainfrom
mm/homogenize-tweaks

Conversation

@mmontin

@mmontin mmontin commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

Address the three shortcomings of the tweak DSL described in #491:

  • Naming consistency: rename predicate-based removal tweaks to plural form (removeInputTweak -> removeInputsTweak, removeOutputTweak -> removeOutputsTweak, removeMintTweak -> removeMintsTweak) and add a singular addMintTweak.
  • Missing redeemer tweaks: introduce Cooked.Tweak.Redeemers with redeemer modification tweaks for all five redeemer positions (spending, minting, proposing, withdrawing, certifying), an all-position variant, and tamperRedeemerTweak / malformRedeemerTweak mirroring the datum tweaks. modifySpendRedeemersOfTypeTweak moves here from Cooked.Tweak.Inputs.
  • Branch vs apply-all clarity: document the naming and branching conventions in doc/TWEAKS.md and summarize them in the Cooked.Tweak.Common haddock.

Add tests for the new redeemer tweaks and update CHEATSHEET and CHANGELOG.

fixes #491

mmontin and others added 8 commits June 28, 2026 01:11
Address the three shortcomings of the tweak DSL described in #491:

- Naming consistency: rename predicate-based removal tweaks to plural form
  (removeInputTweak -> removeInputsTweak, removeOutputTweak ->
  removeOutputsTweak, removeMintTweak -> removeMintsTweak) and add a singular
  addMintTweak.
- Missing redeemer tweaks: introduce Cooked.Tweak.Redeemers with redeemer
  modification tweaks for all five redeemer positions (spending, minting,
  proposing, withdrawing, certifying), an all-position variant, and
  tamperRedeemerTweak / malformRedeemerTweak mirroring the datum tweaks.
  modifySpendRedeemersOfTypeTweak moves here from Cooked.Tweak.Inputs.
- Branch vs apply-all clarity: document the naming and branching conventions in
  doc/TWEAKS.md and summarize them in the Cooked.Tweak.Common haddock.

Add tests for the new redeemer tweaks and update CHEATSHEET and CHANGELOG.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add and export viewAnyTweak (branching counterpart of viewAllTweak)
- Remove unused iviewTweak, inlining its single use in combineModsTweak
- Reimplement overMaybeSelectingTweak via selectP + elementsOf, so its
  position-based focus selection no longer relies on a manual counter;
  its select predicate is now Int -> Bool (documented in CHANGELOG)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Move the all-positions redeemer traversal from Cooked.Tweak.Redeemers to
  Cooked.Skeleton, exported as txSkelRedeemersT.
- Reimplement txSkelInsReferenceInRedeemers on top of txSkelRedeemersT.
- Replace the three duplicated allCombinations helpers with sequence from
  base, whose list-monad instance computes the same Cartesian product.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rename three TxSkel fields and their lenses:
- txSkelIns -> txSkelInputs (txSkelInsL -> txSkelInputsL)
- txSkelInsReference -> txSkelReferenceInputs (txSkelInsReferenceL -> txSkelReferenceInputsL)
- txSkelOuts -> txSkelOutputs (txSkelOutsL -> txSkelOutputsL)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Certificate owners are stored with an IsEither kind, but several optics and
tweaks reached them through paths that forced IsScript, so their redeemers
were invisible. This fixes:

- txSkelRedeemersT's certifying branch (affecting
  txSkelReferenceInputsInRedeemers and malformRedeemerTweak),
- modifyCertificateRedeemersOfTypeTweak (affecting modifyRedeemersOfTypeTweak
  and tamperRedeemerTweak),
- autoFillReferenceScripts, which now also fills certifying reference scripts
  via the new txSkelRedeemedScriptsT traversal.

Adds regression tests for the certificate redeemer paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Homogenize tweaks

1 participant