-
Notifications
You must be signed in to change notification settings - Fork 199
/
common.go
108 lines (103 loc) · 4.55 KB
/
common.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
package bootstrap
import (
"fmt"
"github.com/ElrondNetwork/elrond-go-core/core/check"
"github.com/ElrondNetwork/elrond-go/epochStart"
)
const baseErrorMessage = "error with epoch start bootstrapper arguments"
func checkArguments(args ArgsEpochStartBootstrap) error {
if check.IfNil(args.GenesisShardCoordinator) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilShardCoordinator)
}
if check.IfNil(args.Messenger) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilMessenger)
}
if check.IfNil(args.EconomicsData) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilEconomicsData)
}
if check.IfNil(args.CoreComponentsHolder) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilCoreComponentsHolder)
}
if check.IfNil(args.CryptoComponentsHolder) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilCryptoComponentsHolder)
}
if check.IfNil(args.CryptoComponentsHolder.PublicKey()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilPubKey)
}
if check.IfNil(args.CoreComponentsHolder.Hasher()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilHasher)
}
if check.IfNil(args.CoreComponentsHolder.InternalMarshalizer()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilMarshalizer)
}
if check.IfNil(args.CryptoComponentsHolder.BlockSignKeyGen()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilBlockKeyGen)
}
if check.IfNil(args.CryptoComponentsHolder.TxSignKeyGen()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilKeyGen)
}
if check.IfNil(args.CryptoComponentsHolder.TxSingleSigner()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilSingleSigner)
}
if check.IfNil(args.CryptoComponentsHolder.BlockSigner()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilBlockSingleSigner)
}
if check.IfNil(args.CoreComponentsHolder.TxMarshalizer()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilTxSignMarshalizer)
}
if check.IfNil(args.CoreComponentsHolder.PathHandler()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilPathManager)
}
if args.GenesisNodesConfig == nil {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilGenesisNodesConfig)
}
if check.IfNil(args.Rater) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilRater)
}
if check.IfNil(args.CoreComponentsHolder.AddressPubKeyConverter()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilPubkeyConverter)
}
if check.IfNil(args.RoundHandler) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilRoundHandler)
}
if check.IfNil(args.StorageUnitOpener) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilStorageUnitOpener)
}
if check.IfNil(args.LatestStorageDataProvider) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilLatestStorageDataProvider)
}
if check.IfNil(args.CoreComponentsHolder.Uint64ByteSliceConverter()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilUint64Converter)
}
if check.IfNil(args.NodeShuffler) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilShuffler)
}
if args.GeneralConfig.EpochStartConfig.MinNumOfPeersToConsiderBlockValid < minNumPeersToConsiderMetaBlockValid {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNotEnoughNumOfPeersToConsiderBlockValid)
}
if args.GeneralConfig.EpochStartConfig.MinNumConnectedPeersToStart < minNumConnectedPeers {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNotEnoughNumConnectedPeers)
}
if check.IfNil(args.ArgumentsParser) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilArgumentsParser)
}
if check.IfNil(args.StatusHandler) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilStatusHandler)
}
if check.IfNil(args.HeaderIntegrityVerifier) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilHeaderIntegrityVerifier)
}
if check.IfNil(args.CoreComponentsHolder.TxSignHasher()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilHasher)
}
if check.IfNil(args.CoreComponentsHolder.EpochNotifier()) {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrNilEpochNotifier)
}
if args.GeneralConfig.TrieSync.MaxHardCapForMissingNodes < 1 {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrInvalidMaxHardCapForMissingNodes)
}
if args.GeneralConfig.TrieSync.NumConcurrentTrieSyncers < 1 {
return fmt.Errorf("%s: %w", baseErrorMessage, epochStart.ErrInvalidNumConcurrentTrieSyncers)
}
return nil
}