Git Source

Inherits: AppAdministratorOrOwnerOnlyDiamondVersion, HandlerUtils, HandlerTokenMaxSupplyVolatility, HandlerTokenMaxTradingVolume, HandlerTokenMinTxSize, HandlerTokenMinHoldTime, HandlerTokenMaxDailyTrades

Functions

checkNonTaggedRules

This function uses the protocol’s ruleProcessorto perform the actual rule checks.

function checkNonTaggedRules(
    ActionTypes action,
    address _from,
    address _to,
    address _sender,
    uint256 _amount,
    uint256 _tokenId
) external onlyOwner;

Parameters

NameTypeDescription
actionActionTypesif selling or buying (of ActionTypes type)
_fromaddressaddress of the from account
_toaddressaddress of the to account
_senderaddressaddress of the caller
_amountuint256number of tokens transferred
_tokenIduint256id of the NFT being transferred

_checkTokenMinTxSizeRule

Call to the Oracle Rules Facet for Oracle Rule processing tokenMaxTradingVolume Burn tokenMinTxSize Burn tokenMaxDailyTrades BURN tokenMaxTradingVolume Mint tokenMinTxSize Mint tokenMaxDailyTrades MINT tokenMaxTradingVolume P2P_TRANSFER tokenMinTxSize P2P_TRANSFER tokenMaxDailyTrades P2P_TRANSFER non custodial buy tokenMaxTradingVolume BUY tokenMaxTradingVolume uses single rule id for all actions so check if Buy has rule id set ELSE check if sell has ruleId set else if conditional used for tokenMaxTrading as there is only one ruleId used for this rule tokenMinTxSize SELL Side tokenMaxDailyTrades SELL Side custodial buy tokenMinTxSize BUY tokenMaxDailyTrades BUY non custodial sell tokenMaxTradingVolume SELL tokenMaxTradingVolume uses single rule id for all actions so check if Sell has rule id set ELSE check if sell has ruleId set else if conditional used for tokenMaxTrading as there is only one ruleId used for this rule tokenMinTxSize BUY Side tokenMaxDailyTrades BUY Side custodial sell tokenMaxTradingVolume SELL tokenMinTxSize SELL tokenMaxDailyTrades SELL

Internal function to check the Token Min Transaction Size rule

function _checkTokenMinTxSizeRule(uint256 _amount, ActionTypes action, address handlerBase) internal view;

Parameters

NameTypeDescription
_amountuint256number of tokens transferred
actionActionTypesif selling or buying (of ActionTypes type)
handlerBaseaddressaddress of the handler proxy

_checkTokenMaxTradingVolumeRule

Internal function to check the Token Max Trading Volume rule

function _checkTokenMaxTradingVolumeRule(uint256 _amount, address handlerBase) internal;

Parameters

NameTypeDescription
_amountuint256number of tokens transferred
handlerBaseaddressaddress of the handler proxy

_checkTokenMaxSupplyVolatilityRule

Internal function to check the Token Max Supply Volatility rule

function _checkTokenMaxSupplyVolatilityRule(address _to, uint256 _amount, address handlerBase) internal;

Parameters

NameTypeDescription
_toaddressaddress of the to account
_amountuint256number of tokens transferred
handlerBaseaddressaddress of the handler proxy

_checkTokenMaxDailyTradesRule

rule requires ruleID and either to or from address be zero address (mint/burn)

Internal function to check the TokenMaxDailyTrades rule

function _checkTokenMaxDailyTradesRule(ActionTypes action, uint256 _tokenId) internal;

Parameters

NameTypeDescription
actionActionTypesif selling or buying (of ActionTypes type)
_tokenIduint256id of the NFT being transferred

_checkMinHoldTimeRules

This function uses the protocol’s ruleProcessor to perform the Min Hold Time Rule Check.

function _checkMinHoldTimeRules(
    ActionTypes _action,
    uint256 _tokenId,
    address handlerBase,
    address _from,
    address _to,
    address _sender
) internal;

Parameters

NameTypeDescription
_actionActionTypesaction to be checked
_tokenIduint256the specific token to check
handlerBaseaddressaddress of the handler proxy
_fromaddress
_toaddress
_senderaddress