From 65304319957d7ede184336cffdcc3c8eeb50bce8 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 20 Oct 2020 23:54:35 +0200 Subject: [PATCH] MinerGetBaseInfo: if miner is not found in lookback, check current If miner is found in current state, just return nil base info as miner cannot mine if he is not found in the lookback. Signed-off-by: Jakub Sztandera --- chain/stmgr/utils.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/chain/stmgr/utils.go b/chain/stmgr/utils.go index de4f947df19..d573f385b81 100644 --- a/chain/stmgr/utils.go +++ b/chain/stmgr/utils.go @@ -461,12 +461,21 @@ func MinerGetBaseInfo(ctx context.Context, sm *StateManager, bcs beacon.Schedule return nil, xerrors.Errorf("getting lookback miner actor state: %w", err) } + // TODO: load the state instead of computing it? lbst, _, err := sm.TipSetState(ctx, lbts) if err != nil { return nil, err } act, err := sm.LoadActorRaw(ctx, maddr, lbst) + if xerrors.Is(err, types.ErrActorNotFound) { + _, err := sm.LoadActor(ctx, maddr, ts) + if err != nil { + return nil, xerrors.Errorf("loading miner in current state: %w", err) + } + + return nil, nil + } if err != nil { return nil, xerrors.Errorf("failed to load miner actor: %w", err) }