package types import ( "github.com/tendermint/abci/types" ) // TM2PB is used for converting Tendermint types to protobuf types. // UNSTABLE var TM2PB = tm2pb{} type tm2pb struct{} func (tm2pb) Header(header *Header) *types.Header { return &types.Header{ ChainId: header.ChainID, Height: uint64(header.Height), Time: uint64(header.Time.Unix()), NumTxs: uint64(header.NumTxs), LastBlockId: TM2PB.BlockID(header.LastBlockID), LastCommitHash: header.LastCommitHash, DataHash: header.DataHash, AppHash: header.AppHash, } } func (tm2pb) BlockID(blockID BlockID) *types.BlockID { return &types.BlockID{ Hash: blockID.Hash, Parts: TM2PB.PartSetHeader(blockID.PartsHeader), } } func (tm2pb) PartSetHeader(partSetHeader PartSetHeader) *types.PartSetHeader { return &types.PartSetHeader{ Total: uint64(partSetHeader.Total), Hash: partSetHeader.Hash, } } func (tm2pb) Validator(val *Validator) *types.Validator { return &types.Validator{ PubKey: val.PubKey.Bytes(), Power: uint64(val.VotingPower), } } func (tm2pb) Validators(vals *ValidatorSet) []*types.Validator { validators := make([]*types.Validator, len(vals.Validators)) for i, val := range vals.Validators { validators[i] = TM2PB.Validator(val) } return validators }