Skip to content

Commit 8e9b393

Browse files
authored
Merge pull request #1056 from rocket-pool/network-state-provider
Add NetworkStateProvider
2 parents 1e9f6a8 + 136ac8d commit 8e9b393

25 files changed

Lines changed: 10404 additions & 106 deletions

rocketpool/node/node.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,18 @@ func run(c *cli.Command) error {
173173
errorLog := log.NewColorLogger(ErrorColor)
174174
updateLog := log.NewColorLogger(UpdateColor)
175175

176-
// Create the state manager
177-
m := state.NewNetworkStateManager(rp, cfg.Smartnode.GetStateManagerContracts(), bc, &updateLog)
176+
// Create the state provider. In live mode this is a NetworkStateManager
177+
// backed by the real EC/BC; in --network-state mode it is a
178+
// StaticNetworkStateProvider that serves from the pre-loaded snapshot.
179+
var m state.NetworkStateProvider
180+
if services.IsStaticStateMode(c) {
181+
m, err = services.GetNetworkStateProvider(c)
182+
if err != nil {
183+
return fmt.Errorf("error getting network state provider: %w", err)
184+
}
185+
} else {
186+
m = state.NewNetworkStateManager(rp, cfg.Smartnode.GetStateManagerContracts(), bc, &updateLog)
187+
}
178188
stateLocker := collectors.NewStateLocker()
179189

180190
// Initialize tasks
@@ -531,7 +541,7 @@ func removeLegacyFeeRecipientFiles(c *cli.Command) error {
531541
}
532542

533543
// Update the latest network state at each cycle
534-
func updateNetworkState(m *state.NetworkStateManager, log *log.ColorLogger, nodeAddress common.Address) (*state.NetworkState, error) {
544+
func updateNetworkState(m state.NetworkStateProvider, log *log.ColorLogger, nodeAddress common.Address) (*state.NetworkState, error) {
535545
// Get the state of the network
536546
state, err := m.GetHeadStateForNode(nodeAddress)
537547
if err != nil {

0 commit comments

Comments
 (0)