I understand this leaves it open for a contract or other entity to add for the member, however, shouldn't line 153 (red) be 'member' to avoid the caller being added instead?
Seems unlikely to happen and also a minimal problem as it doesn't map to weight or anything like that, but worth asking!
Line 159 (yellow) i can't see a problem with as this would be in the event that some contract or person is adding on behalf of the member.
I guess we could also just change this function to internal which would force it to be called by DAO.deposit() which would force the member to be the msg.sender but then it would close the 'forMember' aspect
Also can we change to the below to force the harvest if the member is not a dao member but is a bond member? (Also see below where we ensure they are added as a dao member on bond())
calcCurrentReward()
Here we require the user is a member to harvest; but if they have only ever bonded, I think they are not a member of the dao? Possible solution in the next section but might be an issue if you are a member of the dao but have 0 daoWeight (only bondWeight?)
bond()
We don't add the bonder as a daoMember nor do we force a harvest()
Change it to something like this? Note also change '!asset' to '!amount' or '!balance':
Just running through and wondering a few things!
DAO.depositLPForMember()
calcCurrentReward()
bond()