Operator Permissions

Node Operators

The Node implements the ERC-7540 operator system to allow delegation of redemption management. Operators can request and claim redemptions on behalf of share owners.

Setting Operators

function setOperator(address operator, bool approved) external returns (bool) {
    if (msg.sender == operator) revert ErrorsLib.CannotSetSelfAsOperator();
    isOperator[msg.sender][operator] = approved;
    emit OperatorSet(msg.sender, operator, approved);
    return true;
}

Operator Permissions

Operators can:

  • Request redemptions for owner

  • Withdraw/claim assets for owner

function _validateController(address controller) internal view {
    if (controller == address(0)) revert ErrorsLib.ZeroAddress();
    if (controller != msg.sender && !isOperator[controller][msg.sender]) 
        revert ErrorsLib.InvalidController();
}

Usage Example

Note: Operators cannot be set as self, and permissions can be revoked by setting approved to false.

Last updated