diff --git a/cmd/blsync/main.go b/cmd/blsync/main.go index 39a94073045..6c8001c6a45 100644 --- a/cmd/blsync/main.go +++ b/cmd/blsync/main.go @@ -20,6 +20,7 @@ import ( "context" "fmt" "os" + "path/filepath" "slices" "github.com/ethereum/go-ethereum/beacon/blsync" @@ -44,7 +45,7 @@ func main() { utils.BeaconGenesisTimeFlag, utils.BeaconCheckpointFlag, utils.BeaconCheckpointFileFlag, - //TODO datadir for optional permanent database + utils.DataDirFlag, utils.MainnetFlag, utils.SepoliaFlag, utils.HoleskyFlag, @@ -87,11 +88,18 @@ func makeRPCClient(ctx *cli.Context) *rpc.Client { log.Warn("No engine API target specified, performing a dry run") return nil } - if !ctx.IsSet(utils.BlsyncJWTSecretFlag.Name) { - utils.Fatalf("JWT secret parameter missing") //TODO use default if datadir is specified - } - engineApiUrl, jwtFileName := ctx.String(utils.BlsyncApiFlag.Name), ctx.String(utils.BlsyncJWTSecretFlag.Name) + engineApiUrl := ctx.String(utils.BlsyncApiFlag.Name) + var jwtFileName string + if ctx.IsSet(utils.BlsyncJWTSecretFlag.Name) { + jwtFileName = ctx.String(utils.BlsyncJWTSecretFlag.Name) + } else if ctx.IsSet(utils.DataDirFlag.Name) { + // Use default JWT secret path in datadir + datadir := ctx.String(utils.DataDirFlag.Name) + jwtFileName = filepath.Join(datadir, "jwtsecret") + } else { + utils.Fatalf("JWT secret parameter missing") + } var jwtSecret [32]byte if jwt, err := node.ObtainJWTSecret(jwtFileName); err == nil { copy(jwtSecret[:], jwt)