Git Source

Author: @mpetersoCode55, @ShaneDuncan602, @TJ-Everett, @VoR0220

SPDX-License-Identifier: BUSL-1.1

This interface is intended to be implemented by contracts that require rules evaluation and role management.

Interface for the Rules Engine Run Logic. This interface defines the core functions and data types required for evaluating rules and managing roles in a rules-enabled contract.

Functions

checkPolicies

Evaluates the conditions associated with all applicable rules and returns the result.

This function checks the rules associated with the provided contract address and arguments.

function checkPolicies(address contractAddress, bytes calldata arguments) external returns (uint256);

Parameters

NameTypeDescription
contractAddressaddressThe address of the rules-enabled contract, used to pull the applicable rules.
argumentsbytesAdditional context and global variables to pass in for evaluation, similar to msg.data.

Returns

NameTypeDescription
<none>uint256uint256 The result of the rules evaluation.

grantCallingContractRole

Grants the calling contract admin role to a specified account.

Call this function from your contract to assign the admin role for a specific calling contract.

function grantCallingContractRole(address _callingContract, address _account) external returns (bytes32);

Parameters

NameTypeDescription
_callingContractaddressThe address of the calling contract for which the admin role is being assigned.
_accountaddressThe address of the account to assign the admin role.

Returns

NameTypeDescription
<none>bytes32bytes32 The ID of the assigned admin role.

Enums

PT

enum PT {
    ADDR,
    STR,
    UINT,
    BOOL,
    VOID,
    BYTES
}