Skip to content
ClearClear
Docs
Protocol/Validator

Validator

Source: contracts/core/Validator.sol · Guide: validation-system · Upgradeable (UUPS proxy)

2 min readUpdated View source

On this page
Network
Chain id
Address
Base Sepolia
84532

Functions that change state

Function
Who can call
Also
addCompatibleDeedNFT(address _deedNFT)
onlyOwner
addWhitelistedToken(address token)
onlyRole(FEE_MANAGER_ROLE)
grantRole(bytes32 role, address account)
Checked inside the function
initialize(string _baseUri, string _defaultOperatingAgreementUri)
Once, when the proxy is initialised
registerOperatingAgreement(string uri, string name)
onlyRole(METADATA_ROLE)
removeCompatibleDeedNFT(address _deedNFT)
onlyOwner
removeOperatingAgreementName(string _uri)
onlyRole(METADATA_ROLE)
removeWhitelistedToken(address token)
onlyRole(FEE_MANAGER_ROLE)
renounceOwnership()
The owner
renounceRole(bytes32 role, address account)
Only the account renouncing its own role
revokeRole(bytes32 role, address account)
The role's admin role (DEFAULT_ADMIN_ROLE unless set otherwise)
setAssetTypeSupport(uint256 _assetTypeId, bool _isSupported)
onlyRole(CRITERIA_MANAGER_ROLE)
setBaseUri(string _newBaseUri)
onlyOwner
setDeedNFT(address _deedNFT)
onlyOwner
setDefaultOperatingAgreement(string _uri)
onlyOwner
setFundManager(address _fundManager)
onlyOwner
setOperatingAgreementName(string _uri, string _name)
onlyRole(METADATA_ROLE)
setPrimaryDeedNFT(address _deedNFT)
onlyOwner
setRoyaltyFeePercentage(uint96 percentage)
onlyRole(FEE_MANAGER_ROLE)
setRoyaltyReceiver(address receiver)
onlyRole(FEE_MANAGER_ROLE)
setServiceFee(address token, uint256 _serviceFee)
onlyRole(FEE_MANAGER_ROLE)
setupValidationCriteria(uint256 assetTypeId)
onlyRole(CRITERIA_MANAGER_ROLE)
setValidationCriteria(uint256 assetTypeId, string[] requiredTraits_, string additionalCriteria_, bool requireOperatingAgreement_, bool requireDefinition_)
onlyRole(CRITERIA_MANAGER_ROLE)
transferOwnership(address newOwner)
The owner
upgradeTo(address newImplementation)
onlyOwner (via _authorizeUpgrade)
upgradeToAndCall(address newImplementation, bytes data)
onlyOwner (via _authorizeUpgrade)
payable
validateDeed(uint256 _tokenId)
Checked inside the function
validateSubdivisionUnit(address subdivideContract, uint256 deedId, uint256 unitId)
Checked inside the function
withdrawRoyalties(address token)
Checked inside the function
nonReentrant
withdrawServiceFees(address token)
onlyRole(FEE_MANAGER_ROLE)

Read functions

Anyone can call these; they change nothing.

Function
Returns
ADMIN_ROLE()
bytes32
baseUri()
string
compatibleDeedNFTs(address)
bool
CRITERIA_MANAGER_ROLE()
bytes32
deedNFT()
address
DEFAULT_ADMIN_ROLE()
bytes32
defaultOperatingAgreement()
string
defaultOperatingAgreementUri()
string
FEE_MANAGER_ROLE()
bytes32
fundManager()
address
getBaseUri()
string
getRoleAdmin(bytes32 role)
bytes32
getRoyaltyBalance(address token)
uint256
getRoyaltyFeePercentage(uint256)
uint96
getRoyaltyReceiver()
address
getServiceFee(address token)
uint256
getValidationCriteria(uint256 assetTypeId)
string[] requiredTraits_, string additionalCriteria_, bool requireOperatingAgreement_, bool requireDefinition_
hasRole(bytes32 role, address account)
bool
isCompatibleDeedNFT(address _deedNFT)
bool
isTokenWhitelisted(address token)
bool
isWhitelisted(address)
bool
METADATA_ROLE()
bytes32
operatingAgreementName(string uri_)
string
operatingAgreements(string)
string
owner()
address
primaryDeedNFT()
address
proxiableUUID()
bytes32
registeredAgreements(string)
string
registeredAgreementURIs(uint256)
string
royaltyFeePercentage()
uint96
royaltyReceiver()
address
serviceFee(address)
uint256
serviceFeesBalance(address)
uint256
supportedAssetTypes(uint256)
bool
supportsAssetType(uint256 assetTypeId)
bool
supportsInterface(bytes4 interfaceId)
bool
validateOperatingAgreement(string operatingAgreement)
bool
validationCriteria(uint256)
string additionalCriteria, bool requireOperatingAgreement, bool requireDefinition
VALIDATOR_ROLE()
bytes32

Events

Event
AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded(address beacon indexed)
CompatibleDeedNFTUpdated(address deedNFTAddress indexed, bool isCompatible)
DeedNFTUpdated(address newDeedNFT indexed)
DeedValidated(uint256 tokenId indexed, bool isValid)
DefaultOperatingAgreementUpdated(string uri)
Initialized(uint8 version)
OperatingAgreementRegistered(string uri, string name)
OwnershipTransferred(address previousOwner indexed, address newOwner indexed)
PrimaryDeedNFTUpdated(address deedNFTAddress indexed)
RoleAdminChanged(bytes32 role indexed, bytes32 previousAdminRole indexed, bytes32 newAdminRole indexed)
RoleGranted(bytes32 role indexed, address account indexed, address sender indexed)
RoleRevoked(bytes32 role indexed, address account indexed, address sender indexed)
RoyaltyWithdrawn(address token indexed, uint256 amount, uint256 commissionAmount)
ServiceFeeUpdated(address token indexed, uint256 fee)
TokenWhitelistStatusUpdated(address token indexed, bool status)
Upgraded(address implementation indexed)
ValidationCriteriaUpdated(uint256 assetTypeId indexed, string[] requiredTraits, string additionalCriteria, bool requireOperatingAgreement, bool requireDefinition)
ValidationError(uint256 tokenId indexed, string errorMessage)

Errors

No custom errors; failures revert with a reason string.