# Requirements - Add `YmtOSProxy.sol` - Add a good calculation logic of `getScore(IYamato.Pledge _pledge, uint _at)` in `YmtOSV1.sol` - Add a gas compensation logic in the `distributeYMT()` of `YmtOSV1.sol` - As `distributeYMT()` is a automated function, add `feePool.withdrawFromProtocol` to compensate in ETH - `distributeYMT()` scans all voters storage and so be careful for the DoS-vector of cheaply-adding new voter - veYMT is min-1yr lock. And if we put min-amount for the voting, adding voter is not really cheap task.
Requirements
YmtOSProxy.solgetScore(IYamato.Pledge _pledge, uint _at)inYmtOSV1.soldistributeYMT()ofYmtOSV1.soldistributeYMT()is a automated function, addfeePool.withdrawFromProtocolto compensate in ETHdistributeYMT()scans all voters storage and so be careful for the DoS-vector of cheaply-adding new voter