Newer
Older
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
71
package pipe
import (
"github.com/tendermint/tendermint/account"
csus "github.com/tendermint/tendermint/consensus"
ctypes "github.com/tendermint/tendermint/consensus/types"
sm "github.com/tendermint/tendermint/state"
"github.com/tendermint/tendermint/types"
)
const (
MaxUint8 = ^uint8(0)
MinUint8 = 0
MaxInt8 = int8(MaxUint8 >> 1)
MinInt8 = -MaxInt8 - 1
MaxUint16 = ^uint16(0)
MinUint16 = 0
MaxInt16 = int16(MaxUint16 >> 1)
MinInt16 = -MaxInt16 - 1
MaxUint = ^uint(0)
MinUint = 0
MaxInt = int(MaxUint >> 1)
MinInt = -MaxInt - 1
MaxUint64 = ^uint64(0)
MinUint64 = 0
MaxInt64 = int64(MaxUint64 >> 1)
MinInt64 = -MaxInt64 - 1
)
type (
// *********************************** Address ***********************************
// Accounts
AccountList struct {
Accounts []*account.Account `json:"accounts"`
}
// A contract account storage item.
StorageItem struct {
Key []byte `json:"key"`
Value []byte `json:"value"`
}
// Account storage
Storage struct {
StorageRoot []byte `json:"storage_root"`
StorageItems []*StorageItem `json:"storage_items"`
}
// *********************************** Blockchain ***********************************
// BlockchainInfo
BlockchainInfo struct {
ChainId string `json:"chain_id"`
GenesisHash []byte `json:"genesis_hash"`
LatestBlockHeight uint `json:"latest_block_height"`
LatestBlock *types.BlockMeta `json:"latest_block"`
}
// Genesis hash
GenesisHash struct {
Hash []byte `json:"hash"`
}
// Get the latest
LatestBlockHeight struct {
Height uint `json:"height"`
}
ChainId struct {
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
}
// GetBlocks
Blocks struct {
MinHeight uint `json:"min_height"`
MaxHeight uint `json:"max_height"`
BlockMetas []*types.BlockMeta `json:"block_metas"`
}
// *********************************** Consensus ***********************************
// ConsensusState
ConsensusState struct {
Height uint `json:"height"`
Round uint `json:"round"`
Step uint8 `json:"step"`
StartTime string `json:"start_time"`
CommitTime string `json:"commit_time"`
Validators []*sm.Validator `json:"validators"`
Proposal *ctypes.Proposal `json:"proposal"`
}
// Validators
ValidatorList struct {
BlockHeight uint `json:"block_height"`
BondedValidators []*sm.Validator `json:"bonded_validators"`
UnbondingValidators []*sm.Validator `json:"unbonding_validators"`
}
// *********************************** Events ***********************************
// EventSubscribe
EventSub struct {
SubId string `json:"sub_id"`
}
// EventUnsubscribe
EventUnsub struct {
Result bool `json:"result"`
}
// EventPoll
PollResponse struct {
Events []interface{} `json:"events"`
}
// *********************************** Network ***********************************
// NetworkInfo
NetworkInfo struct {
Moniker string `json:"moniker"`
Listening bool `json:"listening"`
Listeners []string `json:"listeners"`
Peers []*Peer `json:"peers"`
}
Moniker struct {
Moniker string `json:"moniker"`
}
Listening struct {
Listening bool `json:"listening"`
}
Listeners struct {
Listeners []string `json:"listeners"`
}
// used in Peers and BlockchainInfo
Peer struct {
nodeInfo *types.NodeInfo `json:"node_info"`
IsOutbound bool `json:"is_outbound"`
}
// *********************************** Transactions ***********************************
// Call or CallCode
Call struct {
Return string `json:"return"`
GasUsed uint64 `json:"gas_used"`
// TODO ...
}
// UnconfirmedTxs
UnconfirmedTxs struct {
Txs []types.Tx `json:"txs"`
}
// BroadcastTx or Transact
Receipt struct {
TxHash []byte `json:"tx_hash"`
CreatesContract uint8 `json:"creates_contract"`
ContractAddr []byte `json:"contract_addr"`
}
)
func FromRoundState(rs *csus.RoundState) *ConsensusState {
cs := &ConsensusState{
CommitTime: rs.CommitTime.String(),
Height: rs.Height,
Proposal: rs.Proposal,
Round: rs.Round,
StartTime: rs.StartTime.String(),
Step: uint8(rs.Step),
Validators: rs.Validators.Validators,
}
return cs
}