• asynchronous rob's avatar
    safe multi-era slashing for NPoS (#3846) · b853a4f9
    asynchronous rob authored
    
    
    * define slashing spans
    
    * tests and pruning for slashing-spans record
    
    * validators get slashed before nominators
    
    * apply slash to nominators as well
    
    * chill and end slashing spans
    
    * actually perform slashes
    
    * integration (tests failing)
    
    * prune metadata
    
    * fix compilation
    
    * some tests for slashing and metadata garbage collection
    
    * correctly pass session index to slash handler
    
    * test span-max property for nominators and validators
    
    * test that slashes are summed correctly
    
    * reward value computation
    
    * implement rewarding
    
    * add comment about rewards
    
    * do not adjust slash fraction in offences module
    
    * fix offences tests
    
    * remove unused new_offenders field
    
    * update runtime version
    
    * fix up some docs
    
    * fix some CI failures
    
    * remove no-std incompatible vec! invocation
    
    * try to fix span-max rounding error
    
    * Update srml/staking/src/slashing.rs
    
    Fix type: winow -> window
    
    Co-Authored-By: default avatarTomasz Drwięga <[email protected]>
    
    * slashes from prior spans don't kick validator again
    
    * more information for nominators, suppression
    
    * ensure ledger is consistent with itself post-slash
    
    * implement slash out of unlocking funds also
    
    * slashing: create records to be applied after-the-fact
    
    * queue slashes for a few eras later
    
    * method for canceling deferred slashes
    
    * attempt to fix test in CI
    
    * storage migration for `Nominators`
    
    * update node-runtime to use SlashDeferDuration
    
    * adjust migration entry-points somewhat
    
    * fix migration compilation
    
    * add manual Vec import to migration
    
    * enable migrations feature in node-runtime
    
    * bump runtime version
    
    * update to latest master crate renames
    
    * update to use ensure-origin
    
    * Apply suggestions from code review
    
    use `ensure!`
    
    Co-Authored-By: default avatarGavin Wood <[email protected]>
    
    * fix multi-slash removal
    
    * initialize storage version to current in genesis
    
    * add test for version initialization
    b853a4f9