LP质押代币系统开发
更新:2024-05-03 10:48 编号:19278896 发布IP:120.197.40.153 浏览:18次- 发布企业
- 广州杰肯狸网络科技有限公司商铺
- 认证
- 资质核验:已通过营业执照认证入驻顺企:第3年主体名称:广州杰肯狸网络科技有限公司组织机构代码:91440106MA9YBAQX7C
- 报价
- 请来电询价
- 关键词
- LP质押代币定制 LP质押分红 LP质押营销
- 所在地
- 广州天河区中山大道
- 联系电话
- 18125913365
- 手机
- 19927739756
- 联系人
- 何经理 请说明来自顺企网,优惠更多
- 请卖家联系我
- 18125913365
详细介绍
这个智能合约该怎么实现呢?
为了用智能合约实现,我们先把发行的积分token化,一个遵循ERC20标准的token。按照正常的思维,显然这个智能合约必须实现三个方法,也就是质押、赎回、分红。用户调用质押方法,将自己的token存入合约,合约中记录每个用户质押的token数量。用户通过赎回方法赎回之前质押的token。网店店主通过调用分红方法,传入用于分红的token,循环遍历所有质押的用户,按照质押数量比例分红。这里就有个问题,也就是前面提到的,***是昂贵的,里面不应该有大循环。因为gas费太高,甚至可能失败。我们应该思考一种没有循环的分红方式。
买过基金的童鞋们可能会发现,这里的质押跟买基金非常像。我们买入基金时,它会返回给你一定的份额。这个份额数量怎么来,就是用你买入的钱除以当前这只基金每份的价格。举个例子,假设有一只基金每份2元,你买入1000元,你将得到500份。过了一段时间,这只基金价格涨到了3元,你把手里的那500份卖掉得到1500元,赚了500。当然基金价格也有跌的时候,这时你卖掉就亏了。我们分析一下里面的逻辑,基金的价格怎么来。显然价格等于总价值除以总份额,价格是算出来的,只需记录基金的总价值和份额就可以了。我们买入基金时,总价值增加了,为了保证价格不变,份额也等比例增加了,这个比例就是价格。卖出时同理,份额减少,总价值等比例减少。为什么基金会有涨和跌,因为基金经理拿着基金的钱去投资,当然有赚有亏,也就是总价值变化了,份额还是没变。
回到我们的质押分红合约,实际上就是一只基金,区别在于基金的钱是要拿去投资的,可能会亏损,而我们质押的token是躺在合约里面的。质押分红合约相当于一只只涨不跌的基金,质押相当于买入基金,赎回相当于卖出,分红就是把token转入合约,也就是总价值变大了。分红函数是不需要实现的,只需要往合约地址转账即可。
更我们还可以把份额设计成ERC20的token,命名为LP,这样LP也是可以转账的。核心的功能只剩下质押和赎回两个函数了。质押相当于铸造新的LPtoken,代码如下:
function mint(uint tokenAmount) public { require(tokenAmount > 0, "invalid tokenAmount"); uint lpAmount = 0; if (m_totalSupply == 0 || totalToken() == 0) { lpAmount = tokenAmount; m_balances[msg.sender] = lpAmount; m_totalSupply = lpAmount; }else { lpAmount = m_totalSupply.mul(tokenAmount).div(totalToken()); m_balances[msg.sender] = m_balances[msg.sender].add(lpAmount); m_totalSupply = m_totalSupply.add(lpAmount); } require(IERC20(m_token).transferFrom(msg.sender, address(this), tokenAmount), "failed to Transfer token"); emit Transfer(address(0), msg.sender, lpAmount); emit Mint(msg.sender, lpAmount, tokenAmount);}第一次质押时,发行的LP数量和传入的token一样,之后按等比例发行。
赎回相当于销毁LP token,代码如下:
function burn(uint lpAmount) public { require(lpAmount > 0, "invalid lpAmount"); require(lpAmount <= m_balances[msg.sender], "lpAmount exceed range"); uint tokenAmount = totalToken().mul(lpAmount).div(m_totalSupply); m_balances[msg.sender] = m_balances[msg.sender].sub(lpAmount); m_totalSupply = m_totalSupply.sub(lpAmount); require(IERC20(m_token).transfer(msg.sender, tokenAmount), "failed to Transfer token"); emit Transfer(msg.sender, address(0), lpAmount); emit Burn(msg.sender, lpAmount, tokenAmount);}赎回的时候按等比例销毁LP即可。
成立日期 | 2022年03月04日 | ||
法定代表人 | 廖斌 | ||
注册资本 | 100 | ||
经营范围 | 动漫游戏开发;计算机系统服务;新材料技术研发;能量回收系统研发;物联网技术研发;广告设计、代理;广告制作;日用品销售;日用百货销售;信息技术咨询服务;互联网销售(除销售需要许可的商品);国内贸易代理;轨道交通通信信号系统开发;人工智能双创服务平台;互联网安全服务;互联网数据服务;物联网应用服务;远程健康管理服务;数字文化创意内容应用服务;区块技术相关软件和服务;5G通信技术服务;网络技术服务;生物质能资源数据库信息系统平台;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广;人工智能公共服务平台技术咨询服务;人工智能公共数据平台;人工智能基础资源与技术平台;大数据服务;人工智能基础软件开发;人工智能应用软件开发;智能水务系统开发;网络与信息安全软件开发;人工智能理论与算法软件开发;智能机器人的研发;软件外包服务;数字文化创意软件开发;集成电路设计;信息系统集成服务;智能控制系统集成;人工智能通用应用系统;人工智能行业应用系统集成服务;物联网技术服务;信息系统运行维护服务;数据处理和存储支持服务;数据处理服务;软件开发;; | ||
公司简介 | 杰肯狸科技自成立起始终致力于在高新软件技术开发与研究和服务,现拥有着业内顶尖的技术开发团队以及卓越的服务品质、专业安全的技术服务实力,融合深度行业分析、创意策划实施、丰富业内资源等多项优势,依托经验丰富的专业人才、更精准、更快速的读懂您的需求,专业团队,欢迎随时上门考察,联系电话18125913365。 ... |
- 为什么项目执行矿工费特别高!! Gas优化技术解决方案SolidityGas优化技术存储优化在Solidity中,存储优化对于管理和减... 2024-02-03
- 知识篇:怎么解决BTC上交易转账矿工费设置过低,导致交易迟迟不成交的问题比特币的手续费市场瞬息万变,可能会导致交易上链所需的手续费剧烈上升或下降,导致转... 2024-02-03
- Web3中的质押defi开发的选择Web3,作为互联网技术的新一代变革,已经迅速吸引了众多用户的关注。它不仅仅是一... 2024-02-03
- NFT代发服务开发时需要注意什么在当今数字化的时代,NFT(非同质化代币)的兴起成为了数字资产交易和保值增值的新... 2024-02-03
- 质押defi系统dapp开发流程作为广州杰肯狸网络科技有限公司的技术师,我们不仅致力于软件kaifa领域的创新和... 2024-02-03