Skip to main content

PrivilegedYieldSkimmingTokenizedStrategy

Git Source

Inherits: YieldSkimmingTokenizedStrategy, Privileged

Title: Privileged Yield Skimming Tokenized Strategy

Author: Golem Foundation

YieldSkimmingTokenizedStrategy with privileged-gated deposits and mints.

Note: security-contact: [email protected]

Caller-based gate

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);