Rebound from economy-transition-v5 to economy-transition-v6, which merged in #170. The contract the direction does not supersede now exists, so this is unblocked against a settled target.
Why this comes before the C++ codec
The repository's own lesson rather than a preference. M3.9a implemented a version-four codec and M3.9b found that two implementations agreed perfectly about a message neither could construct, because a codec never asks where a transaction gets its arguments. The execution model is the first step that runs a transition, and version six has more transitions with more state behind them than any predecessor.
What it must exercise
- The recovery path end to end. A person with an identity, no signer, and an escrow that holds value assigns a new signer under scheme 2, pays the fee from that escrow, and then transacts with the new key. That is the path version four disabled and version five could not fund.
- Registration as one atomic execution. Identity, escrow zero, first signer, and the entry airdrop, with a fee-exempt envelope and a zero nonce — and the same registration past the millionth identity, which must still succeed with a zero balance.
- A transfer refused for its recipient, immediately after the accepted version-one bytes are admitted, so the byte identity and the execution divergence appear in one trace.
- Both directions of a posture change, including a mixed change that tightens one field and relaxes another and therefore needs the HUB signature.
- A block that commits a root. Everything recorded so far establishes that values encode, not that a block executes, charges a fee, and commits.
Then
M3.10c: the C++20 kernel codec for version six, which is requirement 10. Replace src/v4/ rather than adding src/v6/ beside it, and record the decision either way — the codec is the only place in the repository where a superseded contract would still be compiled.
Rebound from
economy-transition-v5toeconomy-transition-v6, which merged in #170. The contract the direction does not supersede now exists, so this is unblocked against a settled target.Why this comes before the C++ codec
The repository's own lesson rather than a preference. M3.9a implemented a version-four codec and M3.9b found that two implementations agreed perfectly about a message neither could construct, because a codec never asks where a transaction gets its arguments. The execution model is the first step that runs a transition, and version six has more transitions with more state behind them than any predecessor.
What it must exercise
Then
M3.10c: the C++20 kernel codec for version six, which is requirement 10. Replace
src/v4/rather than addingsrc/v6/beside it, and record the decision either way — the codec is the only place in the repository where a superseded contract would still be compiled.