Meta-auditoría de mi propio trabajo (NPoS Paso A se shippeó en checkpoint sin
verificación adversarial). Verificado contra el source de pallet-staking 43.0.0
que la infra es REALMENTE inerte (on_initialize=weight-only; on_finalize no-op
con ActiveEra=None sin session) — cero regresión confirmada.
Mejora aplicada: la aritmetica constitucional de OriginEraPayout +
DealWithEraRemainder estaba escrita pero SIN tests (dormida, no se ejercita).
Antes de encenderla en Paso C/D conviene probar el split:
- era_remainder_split extraido a fn pura testeable (sin mock).
- 5 tests: era_payout preserva tasa lineal + split 70/30 exacto + cero perdida;
no overflow en era de 1 anio; remainder 20/10 del total; residual-al-subsidy
(el dust del redondeo favorece el pool anti-clasista #16); invariante en
montos reales.
Sin bugs encontrados en Paso A. cargo +1.88.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>