Skip to content

Conversation

@m2ux
Copy link

@m2ux m2ux commented Jan 20, 2026

Summary

Add interactive contract selection prompts to the setup-main-chain-state wizard command, enabling operators to selectively deploy smart contracts for mainnet without legacy Haskell D-parameter contracts.

🎫 Ticket


Motivation

The wizard currently deploys all partnership smart contracts including the legacy Haskell versions. For mainnet launch, we must NOT deploy the legacy Haskell D-parameter contracts. Only the new Aiken-migrated contracts should exist on-chain.

Deploying legacy contracts to mainnet creates:

  • Confusion about which contracts are the source of truth
  • Risk that legacy contracts could be reused for unintended purposes
  • Chain history pollution with deprecated contracts

Changes

  • Interactive prompts - Users are now asked which contracts to deploy via yes/no prompts:
    • "Do you want to deploy/update the D-parameter contract?" (default: yes)
    • "Do you want to deploy/update the Permissioned Candidates contract?" (default: yes)
  • Configuration - ContractDeploymentConfig struct manages contract selection state
  • Execution - Conditionally skip contract deployments based on user selection with deployment summary output
  • Graceful exit - Selecting neither contract exits with informational message (no error)
  • Tests - 9 tests covering all contract selection combinations
  • Changelog - Added feature entry under "Unreleased"

📌 Submission Checklist

  • Changes are backward-compatible (or flagged if breaking)
  • Pull request description explains why the change is needed
  • Self-reviewed the diff
  • I have included a change file, or skipped for this reason: Updated changelog.md
  • If the changes introduce a new feature, I have bumped the node minor version
  • Update documentation (if relevant)
  • No new todos introduced

🔱 Fork Strategy

  • Node Runtime Update
  • Node Client Update
  • Other
  • N/A

🗹 TODO before merging

  • Ready for review

This work package enables the wizard to selectively deploy only
permissioned candidate contracts, excluding legacy Haskell partnership
contracts.

JIRA: PM-21261
@m2ux m2ux self-assigned this Jan 20, 2026
m2ux added 2 commits January 20, 2026 12:14
…n-state

Add --skip-d-parameter and --skip-permissioned-candidates flags to the
setup-main-chain-state wizard command. These flags enable mainnet
deployments to exclude legacy Haskell D-parameter contracts while
retaining the option to deploy permissioned candidates contracts.

Changes:
- Add ContractDeploymentConfig struct for managing skip flags
- Add clap CLI flags for --skip-d-parameter and --skip-permissioned-candidates
- Modify run() to conditionally skip contract deployments
- Display deployment summary when contracts are skipped
- Return error when both contracts are skipped (nothing to deploy)
- Add unit tests for all skip flag combinations

JIRA: PM-21261
@m2ux m2ux marked this pull request as ready for review January 20, 2026 13:54
…on prompts

Replace --skip-d-parameter and --skip-permissioned-candidates CLI flags
with interactive yes/no prompts for contract selection.

Users are now prompted to choose which contracts to deploy:
- D-parameter contract (default: yes)
- Permissioned Candidates contract (default: yes)

Selecting neither contract now exits gracefully instead of erroring.

PM-21261
@m2ux m2ux changed the title feat(partner-chains-cli): enable selective contract deployment in wizard feat(partner-chains-cli): add interactive contract selection to setup wizard Jan 20, 2026
Update the governance-authority entrypoint.sh expect script to handle
the new interactive contract selection prompts added to the wizard.
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.

3 participants