|
|
- package types
-
- import (
- "bytes"
- "encoding/json"
-
- "github.com/tendermint/go-wire/data"
- cmn "github.com/tendermint/tmlibs/common"
- )
-
- //------------------------------------------------------------------------------
-
- // Validators is a list of validators that implements the Sort interface
- type Validators []*Validator
-
- func (v Validators) Len() int {
- return len(v)
- }
-
- // XXX: doesn't distinguish same validator with different power
- func (v Validators) Less(i, j int) bool {
- return bytes.Compare(v[i].PubKey, v[j].PubKey) <= 0
- }
-
- func (v Validators) Swap(i, j int) {
- v1 := v[i]
- v[i] = v[j]
- v[j] = v1
- }
-
- func ValidatorsString(vs Validators) string {
- s := make([]validatorPretty, len(vs))
- for i, v := range vs {
- s[i] = validatorPretty{v.PubKey, v.Power}
- }
- b, err := json.Marshal(s)
- if err != nil {
- cmn.PanicSanity(err.Error())
- }
- return string(b)
- }
-
- type validatorPretty struct {
- PubKey data.Bytes `json:"pub_key"`
- Power int64 `json:"power"`
- }
-
- //------------------------------------------------------------------------------
-
- // KVPairInt is a helper method to build KV pair with an integer value.
- func KVPairInt(key string, val int64) *KVPair {
- return &KVPair{
- Key: key,
- ValueInt: val,
- ValueType: KVPair_INT,
- }
- }
-
- // KVPairString is a helper method to build KV pair with a string value.
- func KVPairString(key, val string) *KVPair {
- return &KVPair{
- Key: key,
- ValueString: val,
- ValueType: KVPair_STRING,
- }
- }
|