diff --git a/src/lib/consensus/proof_of_stake.ml b/src/lib/consensus/proof_of_stake.ml index b573e442180e..ba4e6cb20d5e 100644 --- a/src/lib/consensus/proof_of_stake.ml +++ b/src/lib/consensus/proof_of_stake.ml @@ -461,7 +461,7 @@ module Make_str (A : Wire_types.Concrete) = struct let create_epoch_ledger ~config ~context:(module Context : CONTEXT) ~genesis_epoch_ledger = let open Context in - if Mina_ledger.Ledger.Root.Config.exists_backing config then ( + if Mina_ledger.Ledger.Root.Config.exists_any_backing config then ( [%log info] ~metadata: [ ("config", Mina_ledger.Ledger.Root.Config.to_yojson config) ] diff --git a/src/lib/mina_ledger/root.ml b/src/lib/mina_ledger/root.ml index a13d7602c551..41e37d278d94 100644 --- a/src/lib/mina_ledger/root.ml +++ b/src/lib/mina_ledger/root.ml @@ -86,6 +86,12 @@ struct | Converting_db_config { primary_directory; converting_directory } -> file_exists primary_directory && file_exists converting_directory + let exists_any_backing = function + | Stable_db_config path -> + file_exists path + | Converting_db_config { primary_directory; converting_directory = _ } -> + file_exists primary_directory + let with_directory ~backing_type ~directory_name = match backing_type with | Stable_db -> diff --git a/src/lib/mina_ledger/root.mli b/src/lib/mina_ledger/root.mli index 5e0447ecde7a..2f9d370b573d 100644 --- a/src/lib/mina_ledger/root.mli +++ b/src/lib/mina_ledger/root.mli @@ -90,6 +90,10 @@ module Make (** Test if a root ledger backing already exists with this config *) val exists_backing : t -> bool + (** Test if a root ledger backing already exists with this config, ignoring + the specific backing type of the root *) + val exists_any_backing : t -> bool + (** Delete a backing of any type that might exist with this config, if present. this function will try any backing type even if it didn't match up with one provided in the config *) diff --git a/src/lib/mina_ledger/test/test_mina_ledger.ml b/src/lib/mina_ledger/test/test_mina_ledger.ml index db82fa44f787..0aabf21e55a2 100644 --- a/src/lib/mina_ledger/test/test_mina_ledger.ml +++ b/src/lib/mina_ledger/test/test_mina_ledger.ml @@ -115,7 +115,7 @@ module Root_test = struct in L.Root.Config.move_backing_exn ~src:config ~dst:config_moved ; assert ( - (not (L.Root.Config.exists_backing config)) + (not (L.Root.Config.exists_any_backing config)) && L.Root.Config.exists_backing config_moved || failwith "Config is not moved" ) ; let root_moved =