⛏
流动性挖矿
当前 DODO 平台下的流动性挖矿合约,包括两种版本实现。下面将会介绍相应的合约接口,以及在各个网络下进行的挖矿项目
第一版的挖矿合约,可以灵活添加删除质押代币,通过设置各个质押代币的权重,划分整体的 DODO 代币奖励,同时第一版合约主要是针对 DODO V1 类型的池子,对单币提供流动性的 LP,进行 DODO 代币奖励。
合约主要的写操作接口,包括质押
deposit
, 提取 withdraw
&& withdrawAll
, 提取奖励 claim
&& claimAll
。对于质押函数
deposit
,需要传入质押代币的地址,以及用户质押的数量。在调用前,需要确保用户的质押代币授权给挖矿合约,挖矿合约内部通过 transferFrom
方法将用户账户的质押代币转移至挖矿合约中。同时调用 deposit
, 合约也会将用户当前已获得奖励自动提取并转移至用户账户内function deposit(address _lpToken, uint256 _amount) public;
对于提取功能,合约包括两种实现方法
withdraw
&& withdrawAll
。对于 withdraw
函数来说,需要传入提取的代币地址,以及指定提取的代币数量,而对于 withdrawAll
函数,只需要传入提取的代币地址即可,合约内部会将当前用户质押的全部代币提取至其账户下。同时,调用这两个函数,合约也会将用户当前已获得的奖励自动提取并转移至其账户内function withdraw(address _lpToken, uint256 _amount) public;
function withdrawAll(address _lpToken) public;
对于提取奖励函数
claim
&& claimAll
。前者需要传入提取奖励代币所对应的质押代币地址。而后者会将当前用户所参加的全部挖矿奖励提取出来,但该函数会消耗更多的 gas,请谨慎使用function claim(address _lpToken) public;
function claimAll() public;
第一版挖矿合约还涉及到一些读函数,包括:
获取用户质押的代币数量函数
getUserLpBalance
, 需要传入质押的代币地址以及用户地址function getUserLpBalance(
address _lpToken,
address _user
) public view returns (uint256);
获取当前用户的奖励代币数量
getPendingReward
&& getAllPendingReward
, 前者需要传入质押的代币地址以及用户地址,获取当前质押对应的用户奖励数量。后者只需要传入用户地址,返回当前用户参与的所有挖矿项目的代币奖励总和function getPendingReward(address _lpToken, address _user) external view returns (uint256);
function getAllPendingReward(address _user) external view returns (uint256);
- 需要注意:当前第一版的挖矿活动,奖励调整会较为灵活,并非不可修改 *
流动性池 | 奖励(DODO/区块) |
---|---|
0.25 | |
0.5 | |
2.2 |
流动性池 | 奖励(DODO/区块) |
---|---|
0.44 | |
0.1 |
流动性池 | 奖励(DODO/区块) |
---|---|
0.2 | |
0.5 |
流动性池 | 奖励(DODO/区块) |
---|---|
0.32 |
流动性池 | 奖励(DODO/区块) |
---|---|
0.3 |
- MoonRiver(Mining Contract Address: 0x6b3518E0260aE1515976A30FA67513C760De2570)(当前每区块释放 0.0015 WMOVR 奖励)
流动性池 | 奖励(WMOVR/区块) |
---|---|
0.0015 |
第二版挖矿合约,一个质押代币对应一个合约,并支持多挖。
合约主要的写操作接口,包括质押
deposit
, 提取 withdraw
, 提取挖矿奖励 claimReward
&& claimAllRewards
对于质押函数
deposit
, 传入的参数为质押的代币数量,同时保证在质押前,用户的代币授权给当前挖矿合约,挖矿合约内部通过调用 transferFrom
函数将用户质押代币转移至挖矿合约内function deposit(uint256 amount) external
对于提取质押代币函数
withdraw
,传入提取的质押代币数量function withdraw(uint256 amount) external
对于提取挖矿奖励函数
claimReward
&& claimAllRewards
, 前者需要传入奖励代币对应的序号,只提取相应的奖励代币;后者会将多挖下的全部奖励代币提取出来function claimReward(uint256 i) publicfunction claimAllRewards() external
第二版挖矿合约还涉及到一些读函数,包括:
获取用户未领取的奖励代币数量
getPendingReward
&& getPendingRewardByToken
, 前者需要传入用户地址以及对应的奖励代币序号,后者传入用户地址以及奖励代币地址function getPendingReward(address user, uint256 i) public view returns (uint256);
function getPendingRewardByToken(address user, address rewardToken) external view returns (uint256);
需要注意:当前第二版的挖矿活动,奖励调整会较为灵活,并非不可修改
- 质押代币 DAI-USDT DLP (0x3058ef90929cb8180174d74c507176cca6835d73)
- 挖矿合约 0x1A4F8705E1C0428D020e1558A371b7E6134455A2
- 奖励代币 DODO (每区块 1.25)
- 质押代币 DODO-BNB DLP (0xd534fae679f7f02364d177e9d44f1d15963c0dd7)
- 挖矿合约 0x322B43e406D1B4Df9Bc36d058317Dd1cd3b0385F
- 奖励代币 DODO (每区块 0.3)
- 质押代币 DODO-USDC DLP (0x6a58c68ff5c4e4d90eb6561449cc74a64f818da5)
- 挖矿合约 0x38Dbb42C4972116c88E27edFacD2451cf1b14255
- 奖励代币 DODO (每区块 0.15)
Aurora
- 质押代币 DODO-USDC DLP (0xc7689e5315a8b237ac7ab62119df299dd8c4b6d5)
- 挖矿合约 0x10353A2e2EeAE8369c685526FC724137002BBDF9
- 奖励代币 DODO (每区块 0.02)
- 奖励代币 NEAR (每区块 0.003)
- 质押代币 DODO-USDT DLP (0x581c7DB44F2616781C86C331d31c1F09db87A746)
- 挖矿合约 0x738aba1389C5e37d24b5B669F07CBEa594c733E4
- 奖励代币 DODO (每个区块 0.05)
- 质押代币 DODO-USDC DLP (0x558a4aD0480840206012CE866c24eEF62BD11f82)
- 挖矿合约 0x93AEa1647717cdc39D0dB4913C568421b60212eb
- 奖励代币 WMOVR (每个区块 0.001)
- 质押代币 WMOVR-USDC DLP (0x05D7c97bb346bd9f7DBE777096DDe6d9D040f63c)
- 挖矿合约 0x8C50536225939B2619b722E1C304D04Ffe046B00
- 奖励代币 DODO (每个区块 0.25)
- 质押代币 ETH-WMOVR DLP (0xF5cEc162c7266f6C819AE14d2d1E01D327aBc01B)
- 挖矿合约 0x470df91B14637b5afA3a3d54868f125D29673463
- 奖励代币 DODO (每个区块 0.25)
最近更新 9mo ago