Hey Guys, I’m working on a project where I need to do some validation before removing a link from the DHT, so if I do a validation process the validation passes but the data is just published on the agent local chain and not published on the DHT, now, If I remove the validation it gets published on the DHT without any problem.
Ive also seen this behavior when committing entries.
This is my case:
This is a validation link:
to!(
"member",
link_type: "multisig->members",
validation_package:|| {
hdk::ValidationPackageDefinition::Entry
},
validation: | validation_data: hdk::LinkValidationData | {
match validation_data {
LinkValidationData::LinkRemove { link, .. } => {
let multisig_address = link.link.base();
let multisig = get_multisig(multisig_address.clone())?;
let links = hdk::get_links_count(
&multisig_address,
LinkMatch::Exactly("multisig->members"),
LinkMatch::Any
)?;
if multisig.required > (links.count as u64 - 1) {
return Err(String::from("Requirement exceeds number of members"));
}
Ok(())
},
_ => Ok(())
}
}
)
As you can see, I’m fetching some data to validate the removing of the link, but the problem is that when it gets called, it only removes the link from the agent source chain and it doesn’t remove the link from DHT.
And if I remove the validation, the link gets removed from DHT without any problem.
Is there a solution to this, or something I’m doing wrong?
Thank you