chore: functional removal of cost-voting (2/2) - #7565
Merged
brice-stacks merged 5 commits intoSep 4, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Pre-4.0 replay compatibility and breaking API disclosure must be addressed.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Removes SIP-006 cost-voting side effects after Epoch 4.0.
Changes:
- Removes dynamic cost replacement and contract-call short-circuiting.
- Removes cost-contract eligibility analysis and related APIs.
- Deletes obsolete tests and adds an Epoch 4.0 native-cost check.
File summaries
| File | Description |
|---|---|
stackslib/src/clarity_vm/tests/costs.rs |
Removes cost-voting tests; adds native-cost check. |
stackslib/src/chainstate/stacks/boot/contract_tests.rs |
Removes voting and arithmetic-only tests. |
stacks-node/src/tests/neon_integrations.rs |
Removes cost-voting integration test. |
stacks-common/src/types/tests.rs |
Removes epoch gate test. |
stacks-common/src/types/mod.rs |
Removes cost-voting support gate. |
clarity/src/vm/functions/database.rs |
Removes contract-call cost interception. |
clarity/src/vm/costs/mod.rs |
Removes voting-state loading and replacement logic. |
clarity/src/vm/contexts.rs |
Removes free-execution support. |
clarity/src/vm/ast/mod.rs |
Updates test cost tracker. |
clarity/src/vm/analysis/types.rs |
Removes eligibility metadata field. |
clarity/src/vm/analysis/type_checker/v2_1/mod.rs |
Updates cost tracker implementation. |
clarity/src/vm/analysis/type_checker/v2_05/mod.rs |
Updates cost tracker implementation. |
clarity/src/vm/analysis/mod.rs |
Removes arithmetic analysis pass. |
clarity/src/vm/analysis/contract_interface_builder/mod.rs |
Updates analysis destructuring. |
clarity/src/vm/analysis/arithmetic_checker/tests.rs |
Deletes checker tests. |
clarity/src/vm/analysis/arithmetic_checker/mod.rs |
Deletes arithmetic checker. |
changelog.d/7342-cost-voting-functional-removal.removed |
Adds removal notice. |
Review details
- Files reviewed: 17/17 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Coverage Report for CI Build 33595864648Coverage decreased (-0.03%) to 86.406%Details
Uncovered Changes
Coverage Regressions230 previously-covered lines in 32 files lost coverage.
Coverage Stats
💛 - Coveralls |
3 tasks
aaronb-stacks
approved these changes
Sep 4, 2026
Merged
via the queue into
stacks-network:main
with commit Sep 4, 2026
a16463f
734 of 740 checks passed
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.
Description
This PR fully removes the
SIP-006's.cost-votingcontract's functional side-effects.This was contingent on
SIP-044ratification and mainnet Epoch 4.0 activation, both of which have now occurred.Applicable issues
Additional info (benefits, drawbacks, caveats)
is_cost_contract_eligiblefromContractAnalysisis backwards-compatible asserde_jsonignores unknown fields during deserialization of previously stored analyses.Checklist
changelog.d/README.md)