Only display chain sync in progress if behind sync

Only display `chain sync in progress` if behind sync
This commit is contained in:
Phi 2023-08-08 10:06:19 +02:00
parent 884246677b
commit 826ef40626

View File

@ -3,11 +3,13 @@ package cli
import ( import (
"bufio" "bufio"
"bytes" "bytes"
"context"
"encoding/hex" "encoding/hex"
"encoding/json" "encoding/json"
"fmt" "fmt"
"os" "os"
"strings" "strings"
"time"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"golang.org/x/term" "golang.org/x/term"
@ -19,6 +21,7 @@ import (
"github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/crypto"
"github.com/filecoin-project/go-state-types/network" "github.com/filecoin-project/go-state-types/network"
"github.com/filecoin-project/lotus/api/v0api"
"github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/build"
"github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/lib/tablewriter" "github.com/filecoin-project/lotus/lib/tablewriter"
@ -206,7 +209,12 @@ var walletBalance = &cli.Command{
return err return err
} }
if balance.Equals(types.NewInt(0)) { behindSync, err := isSyncBehind(ctx, api)
if err != nil {
return err
}
if balance.Equals(types.NewInt(0)) && behindSync {
afmt.Printf("%s (warning: may display 0 if chain sync in progress)\n", types.FIL(balance)) afmt.Printf("%s (warning: may display 0 if chain sync in progress)\n", types.FIL(balance))
} else { } else {
afmt.Printf("%s\n", types.FIL(balance)) afmt.Printf("%s\n", types.FIL(balance))
@ -754,3 +762,16 @@ var walletMarketAdd = &cli.Command{
return nil return nil
}, },
} }
func isSyncBehind(ctx context.Context, fullapi v0api.FullNode) (bool, error) {
head, err := fullapi.ChainHead(ctx)
if err != nil {
return false, err
}
if time.Now().Unix()-int64(head.MinTimestamp()) >= int64(build.BlockDelaySecs*5) { // if more than 5 epochs
return true, nil
}
return false, nil
}