Dispute
DisputeClient allows you to manage disputes within Story.
DisputeClient
Methods
- raiseDispute
- cancelDispute
- resolveDispute
- tagIfRelatedIpInfringed
- disputeAssertion
- disputeIdToAssertionId
raiseDispute
Raises a dispute on a given ipId
Method | Type |
---|---|
raiseDispute | (request: RaiseDisputeRequest) => Promise<RaiseDisputeResponse> |
Parameters:
request.targetIpId
: The IP ID that is the target of the dispute.request.targetTag
: The target tag of the dispute. See dispute tags. Example: “IMPROPER_REGISTRATION”request.cid
: Content Identifier (CID) for the dispute evidence. This should be obtained by uploading your dispute evidence (documents, images, etc.) to IPFS. Example: “QmX4zdp8VpzqvtKuEqMo6gfZPdoUx9TeHXCgzKLcFfSUbk”request.liveness
: The liveness is the time window (in seconds) in which a counter dispute can be presented (30days).request.bond
: [Optional] If not specified, it defaults to the minimum bond value. The amount of wrapper IP that the dispute initiator pays upfront into a pool. To counter that dispute the opposite party of the dispute has to place a bond of the same amount. The winner of the dispute gets the original bond back + 50% of the other party bond. The remaining 50% of the loser party bond goes to the reviewer.
UMA will be adjusting the minimum $IP bond size as the IP price fluctuates.
The correct way to obtain the current minimum bond size is via
getMinimumBond()
on OptimisticOracleV3.sol
(OOV3), found on our aeneid
testnet
and
mainnet.
request.wipOptions
: [Optional]request.wipOptions.enableAutoWrapIp
: [Optional]By default IP is converted to WIP if the current WIP balance does not cover the fees. Set this tofalse
to disable this behavior. Default: truerequest.wipOptions.enableAutoApprove
: [Optional]Automatically approve WIP usage when WIP is needed but current allowance is not sufficient. Set this tofalse
to disable this behavior. Default: true
cancelDispute
Cancels an ongoing dispute
Method | Type |
---|---|
cancelDispute | (request: CancelDisputeRequest) => Promise<CancelDisputeResponse> |
Parameters:
request.disputeId
: The ID of the dispute to be cancelled.request.data
: [Optional] Additional data used in the cancellation process. Defaults to “0x”.
resolveDispute
Resolves a dispute after it has been judged
Method | Type |
---|---|
resolveDispute | (request: ResolveDisputeRequest) => Promise<ResolveDisputeResponse> |
Parameters:
request.disputeId
: The ID of the dispute to be resolved.request.data
: [Optional] The data to resolve the dispute. Defaults to “0x”.
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.
Method | Type |
---|---|
tagIfRelatedIpInfringed | (request: TagIfRelatedIpInfringedRequest) => Promise<TransactionResponse[]> |
Parameters:
request.infringementTags[]
: An array of tags relating to the disputerequest.infringementTags[].ipId
: TheipId
to tagrequest.infringementTags[].disputeId
: The dispute id that tagged the related infringing parent IP
request.options
: [Optional]request.options.useMulticallWhenPossible
: [Optional] Use multicall to batch the calls into one transaction when possible. If only 1 infringementTag is provided, multicall will not be used. Default: true
disputeAssertion
Counters a dispute that was raised by another party on an IP using counter evidence.
This method can only be called by the IP’s owner to counter a dispute by providing counter evidence. The counter evidence (e.g., documents, images) should be uploaded to IPFS, and its corresponding CID is converted to a hash for the request.
If you only have a disputeId
, call disputeIdToAssertionId
to get the assertionId
needed here.
Method | Type |
---|---|
disputeAssertion | (request: DisputeAssertionRequest) => Promise<TransactionResponse> |
Parameters:
request.ipId
: The IP ID that is the target of the dispute.request.assertionId
: The identifier of the assertion that was disputed. You can get this from thedisputeId
by callingdispute.disputeIdToAssertionId
.request.counterEvidenceCID
: Content Identifier (CID) for the counter evidence. This should be obtained by uploading your dispute evidence (documents, images, etc.) to IPFS. Example: “QmX4zdp8VpzqvtKuEqMo6gfZPdoUx9TeHXCgzKLcFfSUbk”request.wipOptions
: [Optional]request.wipOptions.enableAutoWrapIp
: [Optional]By default IP is converted to WIP if the current WIP balance does not cover the fees. Set this tofalse
to disable this behavior. Default: truerequest.wipOptions.enableAutoApprove
: [Optional]Automatically approve WIP usage when WIP is needed but current allowance is not sufficient. Set this tofalse
to disable this behavior. Default: true
disputeIdToAssertionId
Maps a dispute id to an assertion id
Method | Type |
---|---|
disputeIdToAssertionId | (disputeId: number) => Promise<Hex> |
Parameters:
request.disputeId
: The dispute ID.