【发布时间】:2021-08-05 17:56:51
【问题描述】:
我看到了这段代码,但我不明白他是如何计算利率的。此合约铸造代币作为利息并将其转移给存入合约的用户(根据持有时间计算)如果有人可以提供帮助,我将不胜感激? https://github.com/dappuniversity/dbank/blob/master/src/contracts/dBank.sol
//check user's hodl time
uint depositTime = block.timestamp - depositStart[msg.sender];
**//31668017 - interest(10% APY) per second for min. deposit amount (0.01 ETH), cuz:
//1e15(10% of 0.01 ETH) / 31577600 (seconds in 365.25 days)
//(etherBalanceOf[msg.sender] / 1e16) - calc. how much higher interest will be (based on deposit), e.g.:
//for min. deposit (0.01 ETH), (etherBalanceOf[msg.sender] / 1e16) = 1 (the same, 31668017/s)
//for deposit 0.02 ETH, (etherBalanceOf[msg.sender] / 1e16) = 2 (doubled, (2*31668017)/s)
uint interestPerSecond = 31668017 * (etherBalanceOf[msg.sender] / 1e16);
uint interest = interestPerSecond * depositTime;**
//send funds to user
msg.sender.transfer(etherBalanceOf[msg.sender]); //eth back to user
token.mint(msg.sender, interest); //interest to user
【问题讨论】: