분쟁 모듈은 IP 자산에 대한 집행 계층으로 작용하여 판사들의 중재를 통해 분쟁을 제기하고 해결할 수 있게 합니다. 이를 통해 사용자들은 규칙을 위반하거나 다른 IP 권리를 침해할 수 있는 IP 자산에 대해 이의를 제기할 수 있습니다.

상태 변수

name

string public constant override name = DISPUTE_MODULE_KEY

모듈의 이름을 반환합니다.

IN_DISPUTE

bytes32 public constant IN_DISPUTE = bytes32("IN_DISPUTE")

분쟁이 판결을 기다리는 분쟁 상태임을 나타내는 태그입니다.

LICENSE_REGISTRY

ILicenseRegistry public immutable LICENSE_REGISTRY

프로토콜 전체의 라이선스 레지스트리를 반환합니다.

GROUP_IP_ASSET_REGISTRY

IGroupIPAssetRegistry public immutable GROUP_IP_ASSET_REGISTRY

프로토콜 전체의 그룹 IP 자산 레지스트리를 반환합니다.

IP_GRAPH_ACL

IPGraphACL public immutable IP_GRAPH_ACL

프로토콜 전체의 IP 그래프 접근 제어 목록을 반환합니다.

함수

initialize

function initialize(address accessManager) external initializer

이 구현 계약의 초기화 함수입니다.

Parameters:

  • accessManager: 프로토콜 관리자 역할 계약의 주소입니다.

whitelistDisputeTag

function whitelistDisputeTag(bytes32 tag, bool allowed) external restricted

분쟁 태그를 화이트리스트에 등록합니다.

Parameters:

  • tag: 분쟁 태그입니다.
  • allowed: 분쟁 태그가 화이트리스트에 등록되었는지 여부를 나타냅니다.

whitelistArbitrationPolicy

function whitelistArbitrationPolicy(address arbitrationPolicy, bool allowed) external restricted

중재 정책을 화이트리스트에 등록합니다.

Parameters:

  • arbitrationPolicy: 중재 정책의 주소입니다.
  • allowed: 중재 정책이 화이트리스트에 등록되었는지 여부를 나타냅니다.

setArbitrationRelayer

function setArbitrationRelayer(address arbitrationPolicy, address arbPolicyRelayer) external restricted

주어진 중재 정책에 대한 중재 릴레이어를 설정합니다.

Parameters:

  • arbitrationPolicy: 중재 정책의 주소입니다.
  • arbPolicyRelayer: 중재 릴레이어의 주소입니다.

setBaseArbitrationPolicy

function setBaseArbitrationPolicy(address arbitrationPolicy) external restricted

기본 중재 정책을 설정합니다.

Parameters:

  • arbitrationPolicy: 중재 정책의 주소.

setArbitrationPolicyCooldown

function setArbitrationPolicyCooldown(uint256 cooldown) external restricted

중재 정책 쿨다운을 설정합니다.

Parameters:

  • cooldown: 초 단위의 쿨다운.

setArbitrationPolicy

function setArbitrationPolicy(
    address ipId,
    address nextArbitrationPolicy
) external whenNotPaused verifyPermission(ipId)

ipId에 대한 중재 정책을 설정합니다.

Parameters:

  • ipId: ipId.
  • nextArbitrationPolicy: 중재 정책의 주소.

raiseDispute

function raiseDispute(
    address targetIpId,
    bytes32 disputeEvidenceHash,
    bytes32 targetTag,
    bytes calldata data
) external nonReentrant whenNotPaused returns (uint256)

주어진 ipId에 대해 분쟁을 제기합니다.

Parameters:

  • targetIpId: 분쟁의 대상이 되는 ipId.
  • disputeEvidenceHash: 분쟁 증거를 가리키는 해시.
  • targetTag: 분쟁의 대상 태그.
  • data: 정책을 초기화하기 위한 데이터.

Returns:

  • disputeId: 새로 제기된 분쟁의 ID.

setDisputeJudgement

function setDisputeJudgement(
    uint256 disputeId,
    bool decision,
    bytes calldata data
) external nonReentrant whenNotPaused

주어진 분쟁에 대한 판결을 설정합니다. 화이트리스트에 등록된 중재 중계자만이 판결을 내릴 수 있습니다.

Parameters:

  • disputeId: 분쟁 ID.
  • decision: 분쟁에 대한 결정.
  • data: 분쟁 판결을 설정하기 위한 데이터.

cancelDispute

function cancelDispute(uint256 disputeId, bytes calldata data) external nonReentrant whenNotPaused

진행 중인 분쟁을 취소합니다.

Parameters:

  • disputeId: 분쟁 ID.
  • data: 분쟁을 취소하기 위한 데이터.

tagIfRelatedIpInfringed

function tagIfRelatedIpInfringed(address ipIdToTag, uint256 infringerDisputeId) external whenNotPaused

부모가 침해 태그로 태그되었거나 그룹 구성원이 침해 태그로 태그된 경우 파생물이나 그룹 IP에 태그를 지정합니다.

Parameters:

  • ipIdToTag: 태그할 ipId.
  • infringerDisputeId: 관련된 침해 ipId에 태그를 지정한 분쟁 ID.

resolveDispute

function resolveDispute(uint256 disputeId, bytes calldata data) external nonReentrant whenNotPaused

판결이 내려진 후 분쟁을 해결합니다.

Parameters:

  • disputeId: 분쟁 ID.
  • data: 분쟁을 해결하기 위한 데이터.

updateActiveArbitrationPolicy

function updateActiveArbitrationPolicy(address ipId) external whenNotPaused returns (address arbitrationPolicy)

주어진 ipId에 대한 활성 중재 정책을 업데이트합니다.

Parameters:

  • ipId: ipId.

Returns:

  • arbitrationPolicy: 중재 정책의 주소.

isIpTagged

function isIpTagged(address ipId) external view returns (bool)

ipId가 어떤 태그로든 태그되어 있으면(최소 하나의 분쟁이 진행되었음을 의미) true를 반환합니다.

Parameters:

  • ipId: ipId.

Returns:

  • isTagged: ipId가 태그되어 있으면 true.

disputeCounter

function disputeCounter() external view returns (uint256)

분쟁 ID 카운터를 반환합니다.

Returns:

  • uint256: 현재 분쟁 카운터 값.

arbitrationPolicyCooldown

function arbitrationPolicyCooldown() external view returns (uint256)

중재 정책 쿨다운을 반환합니다.

Returns:

  • uint256: 초 단위의 쿨다운.

baseArbitrationPolicy

function baseArbitrationPolicy() external view returns (address)

기본 중재 정책의 주소를 반환합니다.

Returns:

  • address: 기본 중재 정책 주소.

disputes

function disputes(
    uint256 disputeId
)
    external
    view
    returns (
        address targetIpId,
        address disputeInitiator,
        uint256 disputeTimestamp,
        address arbitrationPolicy,
        bytes32 disputeEvidenceHash,
        bytes32 targetTag,
        bytes32 currentTag,
        uint256 infringerDisputeId
    )

주어진 분쟁 ID에 대한 분쟁 정보를 반환합니다.

Parameters:

  • disputeId: 분쟁 ID.

Returns:

  • targetIpId: 분쟁의 대상이 되는 ipId.
  • disputeInitiator: 분쟁 제기자의 주소.
  • disputeTimestamp: 분쟁의 타임스탬프.
  • arbitrationPolicy: 중재 정책의 주소.
  • disputeEvidenceHash: 분쟁 증거를 가리키는 해시.
  • targetTag: 분쟁의 대상 태그.
  • currentTag: 분쟁의 현재 태그.
  • infringerDisputeId: 침해자 분쟁 ID.

isWhitelistedDisputeTag

function isWhitelistedDisputeTag(bytes32 tag) external view returns (bool allowed)

분쟁 태그가 화이트리스트에 등록되어 있는지 나타냅니다.

Parameters:

  • tag: 분쟁 태그.

Returns:

  • allowed: 태그가 화이트리스트에 등록되어 있으면 true.

isWhitelistedArbitrationPolicy

function isWhitelistedArbitrationPolicy(address arbitrationPolicy) external view returns (bool allowed)

중재 정책이 화이트리스트에 등록되어 있는지 나타냅니다.

Parameters:

  • arbitrationPolicy: 중재 정책의 주소.

Returns:

  • allowed: 정책이 화이트리스트에 등록되어 있으면 true.

arbitrationRelayer

function arbitrationRelayer(address arbitrationPolicy) external view returns (address)

주어진 중재 정책에 대한 중재 중계자를 반환합니다.

Parameters:

  • arbitrationPolicy: 중재 정책의 주소.

Returns:

  • address: 중재 중계자 주소.

arbitrationPolicies

function arbitrationPolicies(address ipId) external view returns (address policy)

주어진 ipId에 대한 중재 정책을 반환합니다.

Parameters:

  • ipId: ipId.

Returns:

  • policy: 중재 정책 주소.

nextArbitrationPolicies

function nextArbitrationPolicies(address ipId) external view returns (address policy)

주어진 ipId에 대한 다음 중재 정책을 반환합니다.

Parameters:

  • ipId: ipId.

Returns:

  • policy: 다음 중재 정책 주소.

nextArbitrationUpdateTimestamps

function nextArbitrationUpdateTimestamps(address ipId) external view returns (uint256 timestamp)

주어진 ipId에 대한 다음 중재 업데이트 타임스탬프를 반환합니다.

Parameters:

  • ipId: ipId.

Returns:

  • timestamp: 업데이트 타임스탬프.