Token staking contract that rewards stakers with an exact number of ERC20 tokens per period for every token staked. On deployment, the owner specifies a reward rate, and an address that tokens will be pulled from. Neither of these can be changed. The per token rate stays the same even when the total number of staked tokens increases/decreases. A common usecase is for blockchain-based games, where holding tokens rewards a certain number of lives per day.