分投趣借貸系統dapp開發丨分投趣Fintoch瘋狂功能丨系統技術開發分投趣

I76搭2o72建9II9發表於2023-04-13

分投趣的理財功能允許使用者將自己的數字資產投入到平臺上的各種理財產品中分投趣(Fintoch),透過獲取固定的收益來增

值自己的資產。是一個基於區塊鏈技術的金融服務平臺 。使用者可以選擇不同的理財產品來滿足自己的風險偏好和收益預期。


智慧合約流動性質押挖礦的程式碼示例:

phpCopy code// SPDX-License-Identifier: MITpragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract LiquidityMining {
    IERC20 public token;
    uint256 public rewardRate;
    uint256 public lastUpdateTime;
    uint256 public rewardPerTokenStored; 
       mapping(address => uint256) public userRewardPerTokenPaid;  
      mapping(address => uint256) public rewards;
    uint256 private _totalSupply; 
       mapping(address => uint256) private _balances; 
       constructor(address _token) {
        token = IERC20(_token);
    }    
    function totalSupply() public view returns (uint256) {   
         return _totalSupply;
    }    
    function balanceOf(address account) public view returns (uint256) {   
         return _balances[account];
    }   
     function earned(address account) public view returns (uint256) {   
         return _balances[account] * (rewardPerToken() - userRewardPerTokenPaid[account]) + rewards[account];
    } 
       function deposit(uint256 amount) public {
        _totalSupply += amount;
        _balances[msg.sender] += amount;
        token.transferFrom(msg.sender, address(this), amount);
    }   
     function withdraw(uint256 amount) public {
        _totalSupply -= amount;
        _balances[msg.sender] -= amount;
        token.transfer(msg.sender, amount);
    }   
     function getReward() public {
        uint256 reward = earned(msg.sender);   
             if (reward > 0) {
            rewards[msg.sender] = 0;
            token.transfer(msg.sender, reward);
        }
        userRewardPerTokenPaid[msg.sender] = rewardPerToken();
    }    
    function exit() external {      
      withdraw(_balances[msg.sender]);   
           getReward();
    }    
    function rewardPerToken() public view returns (uint256) {      
      if (_totalSupply == 0) {        
          return rewardPerToken


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027509/viewspace-2945490/,如需轉載,請註明出處,否則將追究法律責任。

相關文章