DisputeModule
The Dispute Module acts as an enforcement layer for IP assets that allows raising and resolving disputes through arbitration by judges. It enables users to challenge IP assets that may violate rules or infringe on other IP rights.
State Variables
name
Returns the name of the module.
IN_DISPUTE
Tag to represent the dispute is in dispute state waiting for judgement.
LICENSE_REGISTRY
Returns the protocol-wide license registry.
GROUP_IP_ASSET_REGISTRY
Returns the protocol-wide group IP asset registry.
IP_GRAPH_ACL
Returns the protocol-wide IP Graph Access Control List.
Functions
initialize
Initializer for this implementation contract.
Parameters:
accessManager
: The address of the protocol admin roles contract.
whitelistDisputeTag
Whitelists a dispute tag.
Parameters:
tag
: The dispute tag.allowed
: Indicates if the dispute tag is whitelisted or not.
whitelistArbitrationPolicy
Whitelists an arbitration policy.
Parameters:
arbitrationPolicy
: The address of the arbitration policy.allowed
: Indicates if the arbitration policy is whitelisted or not.
setArbitrationRelayer
Sets the arbitration relayer for a given arbitration policy.
Parameters:
arbitrationPolicy
: The address of the arbitration policy.arbPolicyRelayer
: The address of the arbitration relayer.
setBaseArbitrationPolicy
Sets the base arbitration policy.
Parameters:
arbitrationPolicy
: The address of the arbitration policy.
setArbitrationPolicyCooldown
Sets the arbitration policy cooldown.
Parameters:
cooldown
: The cooldown in seconds.
setArbitrationPolicy
Sets the arbitration policy for an ipId.
Parameters:
ipId
: The ipId.nextArbitrationPolicy
: The address of the arbitration policy.
raiseDispute
Raises a dispute on a given ipId.
Parameters:
targetIpId
: The ipId that is the target of the dispute.disputeEvidenceHash
: The hash pointing to the dispute evidence.targetTag
: The target tag of the dispute.data
: The data to initialize the policy.
Returns:
disputeId
: The id of the newly raised dispute.
setDisputeJudgement
Sets the dispute judgement on a given dispute. Only whitelisted arbitration relayers can call to judge.
Parameters:
disputeId
: The dispute id.decision
: The decision of the dispute.data
: The data to set the dispute judgement.
cancelDispute
Cancels an ongoing dispute.
Parameters:
disputeId
: The dispute id.data
: The data to cancel the dispute.
tagIfRelatedIpInfringed
Tags a derivative if a parent has been tagged with an infringement tag or a group ip if a group member has been tagged with an infringement tag.
Parameters:
ipIdToTag
: The ipId to tag.infringerDisputeId
: The dispute id that tagged the related infringing ipId.
resolveDispute
Resolves a dispute after it has been judged.
Parameters:
disputeId
: The dispute id.data
: The data to resolve the dispute.
updateActiveArbitrationPolicy
Updates the active arbitration policy for a given ipId.
Parameters:
ipId
: The ipId.
Returns:
arbitrationPolicy
: The address of the arbitration policy.
isIpTagged
Returns true if the ipId is tagged with any tag (meaning at least one dispute went through).
Parameters:
ipId
: The ipId.
Returns:
isTagged
: True if the ipId is tagged.
disputeCounter
Returns the dispute ID counter.
Returns:
uint256
: The current dispute counter value.
arbitrationPolicyCooldown
Returns the arbitration policy cooldown.
Returns:
uint256
: The cooldown in seconds.
baseArbitrationPolicy
Returns the address of the base arbitration policy.
Returns:
address
: The base arbitration policy address.
disputes
Returns the dispute information for a given dispute id.
Parameters:
disputeId
: The dispute id.
Returns:
targetIpId
: The ipId that is the target of the dispute.disputeInitiator
: The address of the dispute initiator.disputeTimestamp
: The timestamp of the dispute.arbitrationPolicy
: The address of the arbitration policy.disputeEvidenceHash
: The hash pointing to the dispute evidence.targetTag
: The target tag of the dispute.currentTag
: The current tag of the dispute.infringerDisputeId
: The infringer dispute id.
isWhitelistedDisputeTag
Indicates if a dispute tag is whitelisted.
Parameters:
tag
: The dispute tag.
Returns:
allowed
: True if the tag is whitelisted.
isWhitelistedArbitrationPolicy
Indicates if an arbitration policy is whitelisted.
Parameters:
arbitrationPolicy
: The address of the arbitration policy.
Returns:
allowed
: True if the policy is whitelisted.
arbitrationRelayer
Returns the arbitration relayer for a given arbitration policy.
Parameters:
arbitrationPolicy
: The address of the arbitration policy.
Returns:
address
: The arbitration relayer address.
arbitrationPolicies
Returns the arbitration policy for a given ipId.
Parameters:
ipId
: The ipId.
Returns:
policy
: The arbitration policy address.
nextArbitrationPolicies
Returns the next arbitration policy for a given ipId.
Parameters:
ipId
: The ipId.
Returns:
policy
: The next arbitration policy address.
nextArbitrationUpdateTimestamps
Returns the next arbitration update timestamp for a given ipId.
Parameters:
ipId
: The ipId.
Returns:
timestamp
: The update timestamp.