Part of #4865 (decentralized moderation teams). Item F1 of the PR split. Wave 1: no dependency, can start now. A bug fix in its own right.
Summary
RecheckTx must re-validate $actionFeeAgreement. Today a document transition whose agreed action fee no longer matches the contract's amounts stays in the mempool and fails only at block execution. Once moderators amounts can change while transactions wait (F2), this becomes routine.
Decisions implemented: D45, D65 in #4865.
Current behaviour
#4858 validates $actionFeeAgreement (declared amounts per pot, multiplier, increase tolerance) in the batch transition's structure and state checks at CheckTx. RecheckTx does not rerun it, so a transition accepted under old amounts is only rejected when the block is built.
Scope
- Re-run the agreement validation on RecheckTx, so a transition whose agreement no longer covers the current amounts (beyond its increase tolerance) is dropped from the mempool with the existing agreement error.
- No consensus change: block execution already refuses such a transition.
Tests
- A transition accepted at CheckTx, then a contract update that raises the amounts beyond the tolerance, then RecheckTx refuses it. Within the tolerance it stays.
Part of #4865 (decentralized moderation teams). Item F1 of the PR split. Wave 1: no dependency, can start now. A bug fix in its own right.
Summary
RecheckTx must re-validate
$actionFeeAgreement. Today a document transition whose agreed action fee no longer matches the contract's amounts stays in the mempool and fails only at block execution. Once moderators amounts can change while transactions wait (F2), this becomes routine.Decisions implemented: D45, D65 in #4865.
Current behaviour
#4858 validates
$actionFeeAgreement(declared amounts per pot, multiplier, increase tolerance) in the batch transition's structure and state checks at CheckTx. RecheckTx does not rerun it, so a transition accepted under old amounts is only rejected when the block is built.Scope
Tests