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
// Owner approves operator
node.setOperator(operatorAddress, true);
// Operator can then manage redemptions
function requestRedeem(uint256 shares, address controller, address owner) external {
// Operator can call with controller = owner
}
function withdraw(uint256 assets, address receiver, address controller) external {
// Operator can claim with controller = owner
}
Note: Operators cannot be set as self, and permissions can be revoked by setting approved to false.
Last updated