Saving query disputes that were accepted by the arbitrator would allow smart contracts to use subgraph-generated data on-chain with security derived from the DisputeManager smart contract.
In it’s current state, DisputeManager deletes disputes once resolved. This means other smart contracts have no way of knowing the outcome of a dispute. There’s a comment about reentrancy, but I’m not sure how that’s a factor here. Why do disputes need to be deleted?
/**
* @dev Resolve a dispute by removing it from storage and returning a memory copy.
* @param _disputeID ID of the dispute to resolve
* @return Dispute
*/
function _resolveDispute(bytes32 _disputeID) private returns (Dispute memory) {
require(isDisputeCreated(_disputeID), "Dispute does not exist");
Dispute memory dispute = disputes[_disputeID];
// Resolve dispute
delete disputes[_disputeID]; // Re-entrancy
return dispute;
}