PrivilegedYieldDonatingTokenizedStrategy
Inherits: YieldDonatingTokenizedStrategy, Privileged
Title: Privileged Yield Donating Tokenized Strategy
Author: Golem Foundation
YieldDonatingTokenizedStrategy with privileged-gated deposits and mints.
Note: security-contact: [email protected]
Deposits and mints are gated by msg.sender, not by the receiver. A privileged caller can deposit on behalf of another receiver; frontend max functions still return 0 for non-privileged receivers.
Functions
setPrivileged
Grant or revoke privileged status for a single account.
function setPrivileged(address _account, bool _status) external onlyManagement;
setPrivilegedBatch
Grant or revoke privileged status for a batch of accounts.
function setPrivilegedBatch(address[] calldata _accounts, bool _status) external onlyManagement;
deposit
Deposit assets from a privileged caller. The receiver does not need to be privileged.
Only the caller is gated. A receiver-side check would be redundant because ERC-20 transfers are ungated, so once shares are minted they can move to any address. Restricting to caller-only unblocks legitimate mint-to-contract flows (splitters, aggregators, integrator vaults) while preserving the real trust boundary: who can initiate new share issuance.
function deposit(uint256 assets, address receiver) public override returns (uint256);
mint
Mint shares from a privileged caller. The receiver does not need to be privileged.
Caller-only gate; see deposit for the rationale.
function mint(uint256 shares, address receiver) public override returns (uint256);
maxDeposit
Returns 0 for non-privileged receivers so front-ends steer users toward the privileged path; a privileged caller may still deposit on their behalf.
function maxDeposit(address receiver) public view override returns (uint256);
maxMint
Returns 0 for non-privileged receivers so front-ends steer users toward the privileged path; a privileged caller may still mint on their behalf.
function maxMint(address receiver) public view override returns (uint256);