diff --git a/codex/slots/builder/builder.nim b/codex/slots/builder/builder.nim index ce0de057..a6dd1c58 100644 --- a/codex/slots/builder/builder.nim +++ b/codex/slots/builder/builder.nim @@ -354,6 +354,14 @@ proc new*( error "Failed to build slot roots tree", err = err.msg return failure(err) + without expectedRoot =? manifest.verifyRoot.fromVerifyCid(), err: + error "Unable to convert manifest verifyRoot to hash", error = err.msg + return failure(err) + + if verifyRoot =? tree.root: + if verifyRoot != expectedRoot: + return failure "Existing slots root doesn't match reconstructed root." + self.slotRoots = slotRoots self.verifyTree = some tree diff --git a/tests/codex/slots/testslotbuilder.nim b/tests/codex/slots/testslotbuilder.nim index fcf866f3..8022e07a 100644 --- a/tests/codex/slots/testslotbuilder.nim +++ b/tests/codex/slots/testslotbuilder.nim @@ -361,7 +361,7 @@ suite "Slot builder": verifyManifest, cellSize = cellSize).isErr - test "Should not build from verifiable manifest with slots root": + test "Should not build from verifiable manifest with invalid verify root": let slotBuilder = SlotsBuilder.new( localStore,