-
Notifications
You must be signed in to change notification settings - Fork 0
/
ibc_adapter.go
70 lines (63 loc) · 1.81 KB
/
ibc_adapter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package coretypes
import (
"github.com/furyaxyz/fuxchain/libs/tendermint/types"
"github.com/furyaxyz/fuxchain/libs/tendermint/version"
)
type CM40ResultBlock struct {
BlockID types.IBCBlockID `json:"block_id"`
Block *types.CM40Block `json:"block"`
}
func (c CM40ResultBlock) ToCM39ResultBlock() *ResultBlock {
ret := ResultBlock{
BlockID: c.BlockID.ToBlockID(),
Block: &types.Block{
Header: c.Block.IBCHeader.ToCM39Header(),
Data: c.Block.Data,
Evidence: c.Block.Evidence,
LastCommit: c.Block.LastCommit.ToCommit(),
},
}
return &ret
}
// Commit and Header
type IBCResultCommit struct {
types.IBCSignedHeader `json:"signed_header"`
CanonicalCommit bool `json:"canonical"`
}
func NewIBCResultCommit(header *types.IBCHeader, commit *types.IBCCommit,
canonical bool) *IBCResultCommit {
return &IBCResultCommit{
IBCSignedHeader: types.IBCSignedHeader{
IBCHeader: header,
Commit: commit,
},
CanonicalCommit: canonical,
}
}
func (c *IBCResultCommit) ToCommit() *ResultCommit {
return &ResultCommit{
SignedHeader: types.SignedHeader{
Header: &types.Header{
Version: version.Consensus{
Block: version.Protocol(c.Version.Block),
App: version.Protocol(c.Version.App),
},
ChainID: c.ChainID,
Height: c.Height,
Time: c.Time,
LastBlockID: c.LastBlockID.ToBlockID(),
LastCommitHash: c.LastCommitHash,
DataHash: c.DataHash,
ValidatorsHash: c.ValidatorsHash,
NextValidatorsHash: c.NextValidatorsHash,
ConsensusHash: c.ConsensusHash,
AppHash: c.AppHash,
LastResultsHash: c.LastResultsHash,
EvidenceHash: c.EvidenceHash,
ProposerAddress: c.ProposerAddress,
},
Commit: c.Commit.ToCommit(),
},
CanonicalCommit: c.CanonicalCommit,
}
}