合约源码:https://github.com/Uniswap/liquidity-staker
在本博客第 39 篇,介绍了一种通过质押底层币(以太坊)资产获取收益的一般逻辑及其合约实现方法;
本文介绍一种通过质押 ERC20 资产获取收益的合约实现方法;
1. interfaces \ IStakingRewards.sol
接口文件,定义了质押合约的 StakingRewards
需要实现的一些函数;
pragma solidity >=0.4.24;
interface IStakingRewards {
// Views
function lastTimeRewardApplicable() external view returns (uint256); // 最近一次的奖励时间
function rewardPerToken() external view returns (uint256); // 每个 token 的奖励额度
function earned(address account) external view returns (uint256); // 用户已获得但未提取的奖励额度
function getRewardForDuration() external view returns (uint256); // 挖矿奖励总额
function totalSupply() external view returns (uint256); // 质押总额
function balanceOf(address account) external view ret
版权声明:本文为wonderBlock原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。