智能合约:重点合约-farm-pool

平台方会设立不同的池子,每个池子的比重,也就是含金量不一样

如果按照单位时间获取的代币这样的计算方式,会有技术难点:因为每时每刻都有用户在进行提取或者存入操作,每进行一次提取或者存入操作都会影响分配的比例;时间的变化也会影响用户的分配。因此,很难计算收益。

于是,采用单位token获取的奖励计算方式

管理员:

add pool():设置总奖励,每秒奖励,分配点

fund(): 管理员注入奖励资金,同时,通过延长奖励时间达到吸引更多用户

set():设置奖励速率等等

用户:

deposit():存入

withdraw():提取

用户的存入或者是提取操作,都会影响acc的更新操作

某用户的存入或者是提取操作,会影响这个用户的reward更新操作

nrOfSeconds:上一次计算奖励到这一次计算奖励的间隔时间

rewardPerSecond:奖励发放速率,也就是每秒奖励代币数N。若每一秒奖励代币数是1的话,哪奖励发放速率就是1

pool.allocPoint.div(totalAllocPoint):每一个池子占的份额。比如图上,就是0.2N

erc20Reward:这一段时间这个池子总的发放的奖励

erc20Reward.mul(1e36).div(lpSupply):奖励除以质押(代币)的总数

add:做一个累加

acc计算:历史的+这段时间,每个代币产生的收益

reward计算:质押的代币数 * acc - 初始的reward值

(若是存入操作,就不用减去初始的reward值)

比如第3秒,A进行提款操作

触发acc操作 : acc = 0.2 + 【(0.2 *2 )/2】 = 0.4

因为是A进行提款操作,所以只需要对A进行reward操作:

rewardA:1 * 0.4 - 0 = 0.4

(rewardA的初始值就是A一开始存入的值,也就是0)

相关推荐
阿恩.7704 小时前
2026年1月最新计算机、人工智能、经济管理国际会议:选对会议 = 论文成功率翻倍
人工智能·经验分享·笔记·计算机网络·金融·区块链
百***35484 小时前
区块链在金融中的Polygon
金融·区块链
软件工程小施同学4 小时前
区块链论文速读 CCF A--FAST 2025 优化区块链存储的超额收费
区块链
TechubNews5 小时前
十年转折,务实为新:从 Devconnect 2025 解析以太坊的「新思路」
区块链
MicroTech20257 小时前
微算法科技(NASDAQ:MLGO)以区块链技术重塑信任生态,驱动数字化变革
科技·区块链
学术小白人9 小时前
EI会议!早鸟优惠!2026年能源与基础设施人工智能国际会议(AIEI 2026)
人工智能·区块链·能源·艺术·工程·rdlink研发家
焦点链创研究所9 小时前
以太坊十年:从理想主义到实用主义
区块链
想ai抽13 小时前
web3区块链-小镇店铺的 “借力办事”:call 与 delegatecall 的区别与联系
web3·区块链·智能合约
光影少年13 小时前
web3学习路线
前端·学习·前端框架·web3
想ai抽13 小时前
web3区块链-加密小镇的 “十年庆典徽章”:ERC-721 全流程故事(含所有核心接口)
web3·区块链·nft