Have been looking into different contracts for high-yield farming and still can't understand one thing. APY depends on total pooled tokens and when that number grows - APY decreases.
User gets his rewards only via withdraw/unstake call where current APY applies. Does it mean that user can miss higher rewards from previous blocks (with higher APY) if he makes withdrawal when APY already dropped?
I understand that distributing rewards per every block is too gas-consuming but I am curious if there are any techniques which introduce "dynamic" rewards? Or maybe I am missing something and that concept was already implemented in such contracts?