cosmos-sdk/client/grpc/cmtservice/util.go

48 lines
1.2 KiB
Go

package cmtservice
import (
cmtprototypes "github.com/cometbft/cometbft/api/cometbft/types/v1"
"cosmossdk.io/core/address"
)
// convertHeader converts CometBFT header to sdk header
func convertHeader(h cmtprototypes.Header, ac address.Codec) (Header, error) {
proposerAddr, err := ac.BytesToString(h.ProposerAddress)
if err != nil {
return Header{}, err
}
return Header{
Version: h.Version,
ChainID: h.ChainID,
Height: h.Height,
Time: h.Time,
LastBlockId: h.LastBlockId,
ValidatorsHash: h.ValidatorsHash,
NextValidatorsHash: h.NextValidatorsHash,
ConsensusHash: h.ConsensusHash,
AppHash: h.AppHash,
DataHash: h.DataHash,
EvidenceHash: h.EvidenceHash,
LastResultsHash: h.LastResultsHash,
LastCommitHash: h.LastCommitHash,
ProposerAddress: proposerAddr,
}, nil
}
// convertBlock converts CometBFT block to sdk block
func convertBlock(cmtblock *cmtprototypes.Block, ac address.Codec) (*Block, error) {
b := new(Block)
var err error
b.Header, err = convertHeader(cmtblock.Header, ac)
if err != nil {
return nil, err
}
b.LastCommit = cmtblock.LastCommit
b.Data = cmtblock.Data
b.Evidence = cmtblock.Evidence
return b, nil
}