Default to full payload status if the payload has been received

This commit is contained in:
Eitan Seri- Levi
2026-03-31 07:26:02 -07:00
parent 9f08f48880
commit 367972bb6e

View File

@@ -1431,11 +1431,24 @@ impl ProtoArray {
.nodes
.get(node.proto_node_index)
.ok_or(Error::InvalidNodeIndex(node.proto_node_index))?;
let mut children = vec![(node.with_status(PayloadStatus::Empty), proto_node.clone())];
// The FULL virtual child only exists if the payload has been received.
if proto_node.payload_received().is_ok_and(|received| received) {
children.push((node.with_status(PayloadStatus::Full), proto_node.clone()));
}
// TODO(gloas) this is the actual change we want to keep once PTC is implemented
// let mut children = vec![(node.with_status(PayloadStatus::Empty), proto_node.clone())];
// // The FULL virtual child only exists if the payload has been received.
// if proto_node.payload_received().is_ok_and(|received| received) {
// children.push((node.with_status(PayloadStatus::Full), proto_node.clone()));
// }
// TODO(gloas) remove this and uncomment the code above once we implement PTC
// Skip Empty/Full split: go straight to Full when payload received,
// giving full payload weight 100% without PTC votes.
let children = if proto_node.payload_received().is_ok_and(|received| received) {
vec![(node.with_status(PayloadStatus::Full), proto_node.clone())]
} else {
vec![(node.with_status(PayloadStatus::Empty), proto_node.clone())]
};
// TODO(gloas) delete up to here
Ok(children)
} else {
let child_indices = children_index