We determined that this is not allowed as the derivative contracts cannot store that one payout has taken place for a certain token holder but not the other payout. Consider for example
If tokenID=1 calls pay() after one day, they would get 1 DAI per token 1 that they owned. But there would be no way of storing the fact that they already did get the payout when they called it later as they would still have their tokens of ID 1 as it would be eligible for a later payout. Thus this was determined to be illegal.
We determined that this is not allowed as the derivative contracts cannot store that one payout has taken place for a certain token holder but not the other payout. Consider for example
If
tokenID=1
callspay()
after one day, they would get 1 DAI per token 1 that they owned. But there would be no way of storing the fact that they already did get the payout when they called it later as they would still have their tokens of ID 1 as it would be eligible for a later payout. Thus this was determined to be illegal.