use all fields in abci types

This commit is contained in:
Ethan Buchman 2018-06-06 13:07:17 -07:00
parent 2897685c57
commit 2edc68c59b

View File

@ -32,20 +32,26 @@ type tm2pb struct{}
func (tm2pb) Header(header *Header) abci.Header { func (tm2pb) Header(header *Header) abci.Header {
return abci.Header{ return abci.Header{
ChainID: header.ChainID, ChainID: header.ChainID,
Height: header.Height, Height: header.Height,
Time: header.Time.Unix(),
NumTxs: int32(header.NumTxs), // XXX: overflow Time: header.Time.Unix(),
NumTxs: int32(header.NumTxs), // XXX: overflow
TotalTxs: header.NumTxs,
LastBlockHash: header.LastBlockID.Hash, LastBlockHash: header.LastBlockID.Hash,
ValidatorsHash: header.ValidatorsHash, ValidatorsHash: header.ValidatorsHash,
AppHash: header.AppHash, AppHash: header.AppHash,
// Proposer: TODO
} }
} }
func (tm2pb) Validator(val *Validator) abci.Validator { func (tm2pb) Validator(val *Validator) abci.Validator {
return abci.Validator{ return abci.Validator{
PubKey: TM2PB.PubKey(val.PubKey), Address: val.PubKey.Address(),
Power: val.VotingPower, PubKey: TM2PB.PubKey(val.PubKey),
Power: val.VotingPower,
} }
} }
@ -101,28 +107,24 @@ func (tm2pb) Evidence(ev Evidence, valSet *ValidatorSet, evTime time.Time) abci.
panic(val) panic(val)
} }
abciEvidence := abci.Evidence{
Validator: abci.Validator{
Address: ev.Address(),
PubKey: TM2PB.PubKey(val.PubKey),
Power: val.VotingPower,
},
Height: ev.Height(),
Time: evTime.Unix(),
TotalVotingPower: valSet.TotalVotingPower(),
}
// set type // set type
var evType string
switch ev.(type) { switch ev.(type) {
case *DuplicateVoteEvidence: case *DuplicateVoteEvidence:
abciEvidence.Type = ABCIEvidenceTypeDuplicateVote evType = ABCIEvidenceTypeDuplicateVote
case *MockGoodEvidence, MockGoodEvidence: case *MockGoodEvidence, MockGoodEvidence:
abciEvidence.Type = ABCIEvidenceTypeMockGood evType = ABCIEvidenceTypeMockGood
default: default:
panic(fmt.Sprintf("Unknown evidence type: %v %v", ev, reflect.TypeOf(ev))) panic(fmt.Sprintf("Unknown evidence type: %v %v", ev, reflect.TypeOf(ev)))
} }
return abciEvidence return abci.Evidence{
Type: evType,
Validator: TM2PB.Validator(val),
Height: ev.Height(),
Time: evTime.Unix(),
TotalVotingPower: valSet.TotalVotingPower(),
}
} }
func (tm2pb) ValidatorFromPubKeyAndPower(pubkey crypto.PubKey, power int64) abci.Validator { func (tm2pb) ValidatorFromPubKeyAndPower(pubkey crypto.PubKey, power int64) abci.Validator {