48 lines
1.2 KiB
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
|
|
}
|