-
Notifications
You must be signed in to change notification settings - Fork 199
/
configParser.go
136 lines (112 loc) · 3.64 KB
/
configParser.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
71
72
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
package common
import (
"fmt"
"github.com/ElrondNetwork/elrond-go-core/core"
"github.com/ElrondNetwork/elrond-go/config"
)
// LoadP2PConfig returns a P2PConfig by reading the config file provided
func LoadP2PConfig(filepath string) (*config.P2PConfig, error) {
cfg := &config.P2PConfig{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, err
}
return cfg, nil
}
// LoadMainConfig returns a Config by reading the config file provided
func LoadMainConfig(filepath string) (*config.Config, error) {
cfg := &config.Config{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, err
}
return cfg, nil
}
// LoadApiConfig returns a ApiRoutesConfig by reading the config file provided
func LoadApiConfig(filepath string) (*config.ApiRoutesConfig, error) {
cfg := &config.ApiRoutesConfig{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, err
}
return cfg, nil
}
// LoadEconomicsConfig returns a EconomicsConfig by reading the config file provided
func LoadEconomicsConfig(filepath string) (*config.EconomicsConfig, error) {
cfg := &config.EconomicsConfig{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, err
}
return cfg, nil
}
// LoadSystemSmartContractsConfig returns a SystemSmartContractsConfig by reading the config file provided
func LoadSystemSmartContractsConfig(filepath string) (*config.SystemSmartContractsConfig, error) {
cfg := &config.SystemSmartContractsConfig{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, err
}
return cfg, nil
}
// LoadRatingsConfig returns a RatingsConfig by reading the config file provided
func LoadRatingsConfig(filepath string) (*config.RatingsConfig, error) {
cfg := &config.RatingsConfig{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return &config.RatingsConfig{}, err
}
return cfg, nil
}
// LoadPreferencesConfig returns a Preferences by reading the config file provided
func LoadPreferencesConfig(filepath string) (*config.Preferences, error) {
cfg := &config.Preferences{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, err
}
return cfg, nil
}
// LoadExternalConfig returns a ExternalConfig by reading the config file provided
func LoadExternalConfig(filepath string) (*config.ExternalConfig, error) {
cfg := &config.ExternalConfig{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, fmt.Errorf("cannot load external config: %w", err)
}
return cfg, nil
}
// LoadGasScheduleConfig returns a map[string]uint64 of gas costs read from the provided config file
func LoadGasScheduleConfig(filepath string) (map[string]map[string]uint64, error) {
gasScheduleConfig, err := core.LoadTomlFileToMap(filepath)
if err != nil {
return nil, err
}
flattenedGasSchedule := make(map[string]map[string]uint64)
for libType, costs := range gasScheduleConfig {
flattenedGasSchedule[libType] = make(map[string]uint64)
costsMap := costs.(map[string]interface{})
for operationName, cost := range costsMap {
flattenedGasSchedule[libType][operationName] = uint64(cost.(int64))
}
}
return flattenedGasSchedule, nil
}
// LoadEpochConfig returns an EpochConfig by reading from the provided config file
func LoadEpochConfig(filepath string) (*config.EpochConfig, error) {
cfg := &config.EpochConfig{}
err := core.LoadTomlFile(cfg, filepath)
if err != nil {
return nil, err
}
return cfg, nil
}
// LoadRoundConfig returns a RoundConfig by reading from provided config file
func LoadRoundConfig(filePath string) (*config.RoundConfig, error) {
cfg := &config.RoundConfig{}
err := core.LoadTomlFile(cfg, filePath)
if err != nil {
return nil, err
}
return cfg, nil
}