ExampleUserAccessControl
Inherits: [RulesEngineClient](/v2(/v2/reference/client/RulesEngineClient.sol/abstract.RulesEngineClient), AccessControl
Author: @mpetersoCode55, @ShaneDuncan602, @TJ-Everett, @VoR0220
SPDX-License-Identifier: BUSL-1.1
This contract is intended for testing and demonstration purposes to showcase the Rules Engine’s capabilities.
This contract demonstrates how to integrate the Rules Engine with an external contract. It provides an example
of using the Rules Engine to enforce policies on a generic transfer
function. The contract also includes
role-based access control using OpenZeppelin’s AccessControl.
State Variables
CALLING_CONTRACT_ADMIN
Functions
constructor
Constructor for the Example User Access Control contract.
Grants the Calling Contract Admin role to the specified address.
Parameters
Name | Type | Description |
---|---|---|
callingContractAdmin | address | The address to be assigned the Calling Contract Admin role. |
transfer
Demonstrates a generic transfer
function integrated with the Rules Engine.
This function sends custom arguments to the Rules Engine for policy enforcement. The Rules Engine determines whether the transfer is allowed based on the provided arguments.
Parameters
Name | Type | Description |
---|---|---|
to | address | The recipient address. |
value | uint256 | The amount to transfer. |
Returns
Name | Type | Description |
---|---|---|
<none> | bool | bool True if the transfer is allowed by the Rules Engine, false otherwise. |