forked from aergoio/aergo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
convChaininfo.go
58 lines (49 loc) · 1.42 KB
/
convChaininfo.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
package util
import (
"encoding/json"
"math/big"
"github.com/aergoio/aergo/consensus"
"github.com/aergoio/aergo/types"
)
type InOutChainId struct {
Magic string
Public bool
Mainnet bool
Consensus string
Version int32
}
type InOutChainInfo struct {
Chainid InOutChainId
BpNumber uint32
MaxBlockSize uint64
MaxTokens string
StakingMinimum string `json:",omitempty"`
StakingTotal string `json:",omitempty"`
GasPrice string `json:",omitempty"`
NamePrice string `json:",omitempty"`
}
func ConvChainInfoMsg(msg *types.ChainInfo) string {
jsonout, err := json.MarshalIndent(convChainInfo(msg), "", " ")
if err != nil {
return ""
}
return string(jsonout)
}
func convChainInfo(msg *types.ChainInfo) *InOutChainInfo {
out := &InOutChainInfo{}
out.Chainid.Magic = msg.Id.Magic
out.Chainid.Public = msg.Id.Public
out.Chainid.Mainnet = msg.Id.Mainnet
out.Chainid.Consensus = msg.Id.Consensus
out.Chainid.Version = msg.Id.Version
out.BpNumber = msg.BpNumber
out.MaxBlockSize = msg.Maxblocksize
out.MaxTokens = new(big.Int).SetBytes(msg.Maxtokens).String()
if consensus.IsDposName(msg.Id.Consensus) {
out.StakingMinimum = new(big.Int).SetBytes(msg.Stakingminimum).String()
out.StakingTotal = new(big.Int).SetBytes(msg.Totalstaking).String()
}
out.GasPrice = new(big.Int).SetBytes(msg.Gasprice).String()
out.NamePrice = new(big.Int).SetBytes(msg.Nameprice).String()
return out
}