|
@ -150,7 +150,7 @@ func (s *lightClientStateProvider) State(ctx context.Context, height uint64) (sm |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
return sm.State{}, err |
|
|
return sm.State{}, err |
|
|
} |
|
|
} |
|
|
curLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height+1), time.Now()) |
|
|
|
|
|
|
|
|
currentLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height+1), time.Now()) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
return sm.State{}, err |
|
|
return sm.State{}, err |
|
|
} |
|
|
} |
|
@ -162,10 +162,10 @@ func (s *lightClientStateProvider) State(ctx context.Context, height uint64) (sm |
|
|
state.LastBlockHeight = lastLightBlock.Height |
|
|
state.LastBlockHeight = lastLightBlock.Height |
|
|
state.LastBlockTime = lastLightBlock.Time |
|
|
state.LastBlockTime = lastLightBlock.Time |
|
|
state.LastBlockID = lastLightBlock.Commit.BlockID |
|
|
state.LastBlockID = lastLightBlock.Commit.BlockID |
|
|
state.AppHash = curLightBlock.AppHash |
|
|
|
|
|
state.LastResultsHash = curLightBlock.LastResultsHash |
|
|
|
|
|
|
|
|
state.AppHash = currentLightBlock.AppHash |
|
|
|
|
|
state.LastResultsHash = currentLightBlock.LastResultsHash |
|
|
state.LastValidators = lastLightBlock.ValidatorSet |
|
|
state.LastValidators = lastLightBlock.ValidatorSet |
|
|
state.Validators = curLightBlock.ValidatorSet |
|
|
|
|
|
|
|
|
state.Validators = currentLightBlock.ValidatorSet |
|
|
state.NextValidators = nextLightBlock.ValidatorSet |
|
|
state.NextValidators = nextLightBlock.ValidatorSet |
|
|
state.LastHeightValidatorsChanged = nextLightBlock.Height |
|
|
state.LastHeightValidatorsChanged = nextLightBlock.Height |
|
|
|
|
|
|
|
@ -179,12 +179,13 @@ func (s *lightClientStateProvider) State(ctx context.Context, height uint64) (sm |
|
|
return sm.State{}, fmt.Errorf("unable to create RPC client: %w", err) |
|
|
return sm.State{}, fmt.Errorf("unable to create RPC client: %w", err) |
|
|
} |
|
|
} |
|
|
rpcclient := lightrpc.NewClient(primaryRPC, s.lc) |
|
|
rpcclient := lightrpc.NewClient(primaryRPC, s.lc) |
|
|
result, err := rpcclient.ConsensusParams(ctx, &nextLightBlock.Height) |
|
|
|
|
|
|
|
|
result, err := rpcclient.ConsensusParams(ctx, ¤tLightBlock.Height) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
return sm.State{}, fmt.Errorf("unable to fetch consensus parameters for height %v: %w", |
|
|
return sm.State{}, fmt.Errorf("unable to fetch consensus parameters for height %v: %w", |
|
|
nextLightBlock.Height, err) |
|
|
nextLightBlock.Height, err) |
|
|
} |
|
|
} |
|
|
state.ConsensusParams = result.ConsensusParams |
|
|
state.ConsensusParams = result.ConsensusParams |
|
|
|
|
|
state.LastHeightConsensusParamsChanged = currentLightBlock.Height |
|
|
|
|
|
|
|
|
return state, nil |
|
|
return state, nil |
|
|
} |
|
|
} |
|
|