Browse Source

types: compile time assert to, and document sort.Interface

Fixes #212

Declare the purpose of the Less, Len, Swap methods
so that readers can see why they are defined.

Raised by an auditor in their report, as it looked like a security
concern but actually sort.Interface requires those methods implemented.
pull/1780/head
Emmanuel T Odeke 6 years ago
parent
commit
121f0d3fcf
No known key found for this signature in database GPG Key ID: 410DDC670CF9BFD7
1 changed files with 9 additions and 0 deletions
  1. +9
    -0
      types/util.go

+ 9
- 0
types/util.go View File

@ -3,6 +3,7 @@ package types
import (
"bytes"
"encoding/json"
"sort"
)
//------------------------------------------------------------------------------
@ -10,6 +11,14 @@ import (
// Validators is a list of validators that implements the Sort interface
type Validators []Validator
var _ sort.Interface = (Validators)(nil)
// All these methods for Validators:
// Len, Less and Swap
// are for Validators to implement sort.Interface
// which will be used by the sort package.
// See Issue https://github.com/tendermint/abci/issues/212
func (v Validators) Len() int {
return len(v)
}


Loading…
Cancel
Save