creationRules and triggeringRules Example
As explained earlier in this section, the
creationRules
and triggeringRules
contracts, representing key parts of governance rule-sets, are external contracts; they can be freely coded based on the needs of your organization.On this page are some examples of
creationRulesminate
and triggeringRules
contracts.Note
Keep in mind that, for them to work correctly, the
creationRulesminate
and triggeringRules
contracts must integrate the check
function of the IProposalChecker
interface, which is provided by the IProposalManager
interface.If you don't need
creationRules
and triggeringRules
you can pass them as address(0)
, in this way, everyone will be able to create and terminate Proposals.pragma solidity >=0.7.0;
import "../../base/model/IProposalsManager.sol";
import "../../core/model/IOrganization.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@ethereansos/items-v2/contracts/model/Item.sol";
import {TransferUtilities} from "@ethereansos/swissknife/contracts/lib/GeneralUtilities.sol";