欢迎来到全天候!
注册
全天候首页
发布产品

广州杰肯狸网络科技有限公司

主营产品:软件开发

19927739756
全天候> 商务服务> 软件开发> LP质押代币系统开发
LP质押代币系统开发
LP质押代币系统开发

LP质押代币系统开发

2024年02月25日 13:00

  • 价格 面议 (起订量: 不限 | 可售数量:面议)
  • 店铺地址 广州天河区中山大道
立即咨询
查看联系方式
详情描述

这个智能合约该怎么实现呢?为了用智能合约实现,我们先把发行的积分token化,一个遵循ERC20标准的token。按照正常的思维,显然这个智能合约必须实现三个方法,也就是质押、赎回、分红。用户调用质押方法,将自己的token存入合约,合约中记录每个用户质押的token数量。用户通过赎回方法赎回之前质押的token。网店店主通过调用分红方法,传入用于分红的token,循环遍历所有质押的用户,按照质押数量比例分红。这里就有个问题,也就是前面提到的,***是昂贵的,里面不应该有大循环。因为gas费太高,甚至可能失败。所以我们应该思考一种没有循环的分红方式。

买过基金的童鞋们可能会发现,这里的质押跟买基金非常像。我们买入基金时,它会返回给你一定的份额。这个份额数量怎么来,就是用你买入的钱除以当前这只基金每份的价格。举个例子,假设有一只基金每份2元,你买入1000元,你将得到500份。过了一段时间,这只基金价格涨到了3元,你把手里的那500份卖掉得到1500元,赚了500。当然基金价格也有跌的时候,这时你卖掉就亏了。我们分析一下里面的逻辑,基金的价格怎么来。显然价格等于总价值除以总份额,价格是算出来的,只需记录基金的总价值和份额就可以了。我们买入基金时,总价值增加了,为了保证价格不变,份额也等比例增加了,这个比例就是价格。卖出时同理,份额减少,总价值等比例减少。为什么基金会有涨和跌,因为基金经理拿着基金的钱去投资,当然有赚有亏,也就是总价值变化 了,份额还是没变。

回到我们的质押分红合约,实际上就是一只基金,区别在于基金的钱是要拿去投资的,可能会亏损,而我们质押的token是躺在合约里面的。质押分红合约相当于一只只涨不跌的基金,质押相当于买入基金,赎回相当于卖出,分红就是把token转入合约,也就是总价值变大了。所以分红函数是不需要实现的,只需要往合约地址转账即可。

更进一步,我们还可以把份额设计成ERC20的token,命名为LP,这样LP也是可以转账的。所以核心的功能只剩下质押和赎回两个函数了。质押相当于铸造新的LP token,代码如下:function mint(uint tokenAmount) public { re > 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);

}

rerom(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 { re > 0, "invalid lpAmount"); re

免责声明:该产品“LP质押代币系统开发”由用户所提供。该公司介绍、产品等相关信息均由用户自行负责,商品内容真实性、准确性、合法性由用户完全承担,全天候对此不承担任何保证责任。
联系方式
  • 公司名称广州杰肯狸网络科技有限公司
  • 联系卖家何经理
  • 联系方式19927739756
  • 地址广州天河区中山大道
企业介绍
广州杰肯狸网络科技有限公司 主营产品:
软件开发
所在地区:
广州天河区中山大道
返回
顶部