Skip to content

activator removal phase 7.1: remove user activate/reject/closeaccount instructions [DO NOT MERGE — gated on min_compatible_version >= 0.12.0] #3622

@elitegreg

Description

@elitegreg

⚠️ DO NOT MERGE until the onchain min_compatible_version has been bumped to ≥ 0.12.0. ⚠️

Part of the activator removal effort — see tracker #3607.

Phase / PR: Phase 7, PR 7.1

Gate: onchain ProgramConfig.min_compatible_version ≥ 0.12.0 (set via doublezero globalconfig setversion).

Goal

Remove the now-unreachable user-lifecycle instructions that were called only by the activator.

What is removed: the program-level instructions that the activator was the only client of, plus their SDK-method counterparts. The program dispatch entries stay (so discriminant numbers never shift); their handler bodies return DoubleZeroError::InstructionDeprecated immediately. No contributor-facing CLI commands are removed in this phase.

If the PR uncovers an internal CLI wrapper that exists solely to call one of the deleted SDK methods, that wrapper is cleaned up as part of the same PR. Such wrappers are not contributor-facing.

Files

  • programs/doublezero-serviceability/src/processors/user/{activate,reject,closeaccount}.rs — delete files (and their argument structs).
  • programs/doublezero-serviceability/src/processors/user/mod.rs — remove the module entries.
  • Top-level program dispatch (instruction enum + match) — keep the discriminant variants, change their handler bodies to return DoubleZeroError::InstructionDeprecated. Add a doc-comment on each variant explaining the deprecation.
  • smartcontract/sdk/rs/src/commands/user/{activate,reject,closeaccount}.rs — delete.
  • Program integration tests covering the removed instructions — rewrite to assert InstructionDeprecated is returned, or delete if redundant.

Acceptance

  • cargo test -p doublezero-serviceability passes.
  • Sending a user activate / user reject / user closeaccount instruction to the program returns InstructionDeprecated.

Risk

This is a hard removal. Any client running CLI < 0.12.0 against an upgraded program will be unable to perform user lifecycle operations. The min version bump must happen first.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions