写点什么

defi 质押挖矿 dapp 系统开发智能合约部署详解

  • 2022 年 8 月 30 日
    广东
  • 本文字数:1461 字

    阅读完需:约 5 分钟

什么是 DeFi? 让用户在无需依靠中心化机构的情况下,通过部署在智能合约平台上的去中心化应用(Dapp)完成一系列金融服务,系统 I34 开 I633 发 53I9 搭建

合约主要功能函数介绍

1.1 主要参数:

address private owner; //合约部署(拥有者)账号地址

address private profitor; //收益分配者账号地址,仅该地址有权分配收益

bool _isDIS = false; //质押合约功能状态,true 才可以进行质押

ERC20 _Token; //用于分配收益的 ERC20 资产

KeyFlag[] keys; //用于标记用户地址的质押状态

uint256 size; //质押者地址(用户)数量

uint256 _maxPledgeAmount; //最大质押(底层币)额度

uint256 _maxMiningAmount; //最大(ERC20 收益分配)额度

uint256 _leftMiningAmount; //剩余额度

uint256 _minAmount; //单次最少质押额度

uint256 _totalPledegAmount; //已质押总额度

uint256 _maxPreMiningAmount; //最大单次分配额度

uint256 _startTime; //开始时间,单位“秒”

uint256 _endTime; //结束时间,单位“秒”

uint256 _precentUp=100; //与_precentDown 一起设定每次收益提取比例

uint256 _precentDown=100; //与_precentUp 一起设定每次收益提取比例

struct PledgeOrder { //结构体,用于标记质押用户的各类状态


bool isExist;               //质押状态
uint256 token; //质押额度
uint256 profitToken; //收益额度
uint256 time; //最近一次提取收益时间
uint256 index; //质押地址序号}
复制代码


struct KeyFlag { //结构体,用于标记用户地址的质押状态


address key;                //地址
bool isExist; //质押状态}
复制代码


部署合约时,构造函数内的参数需要用户输入,以完成相应的参数设置并实现相应功能;1.2 质押函数 pledgeTokenfunction pledgeToken() public payable{


require(address(msg.sender) == address(tx.origin), "no contract");
require(_isDIS, "is disable");
require(_leftMiningAmount>0, "less token");
require(msg.value>=_minAmount, "less token");
require(_totalPledegAmount.add(msg.value)<=_maxPledgeAmount, "more token");
require(block.timestamp>=_startTime&&block.timestamp<=_endTime, "is disable");
复制代码


if(_orders[msg.sender].isExist==false){


    keys.push(KeyFlag(msg.sender,true));
size++;
createOrder(msg.value,keys.length.sub(1));
}else{
PledgeOrder storage order=_orders[msg.sender];
复制代码


order.token=order.token.add(msg.value);


    keys[order.index].isExist=true;
}
_totalPledegAmount=_totalPledegAmount.add(msg.value);
复制代码


}


功能说明:明显的,该函数具有接收底层币功能(payable);质押地址必须是账号地址,不能是合约地址;需要合约质押功能已经开始,且在活动限定时间内;剩余额度大于 0;进行质押的底层币额度不能少于最小值,质押后也不能超过限定的最大质押额度;如果该用户之前没有质押过,则建立档案(createOrder),否则仅修改档案;DeFi 的特点:消除可信第三方:依靠区块链的特性来创建信任,将传统交易中对政府和银行等信贷机构的信任转化为对机器的信任。智能合约:自动自主,降低成本,提高速度和精度,不受外力影响确保合约执行安全性、隐私性、透明性——区块链的本质优势项目开发欢迎随时咨询小编 hkkf5566

用户头像

还未添加个人签名 2022.05.23 加入

区块链项目开发,咨询weixin:hkkf5566

评论

发布
暂无评论
defi质押挖矿dapp系统开发智能合约部署详解_开发微hkkf5566_InfoQ写作社区