关于solidity:defi质押挖矿系统开发智能合约部署功能函数介绍

9次阅读

共计 1859 个字符,预计需要花费 5 分钟才能阅读完成。

什么是 DeFi? 让用户在无需依附中心化机构的状况下,通过部署在智能合约平台上的去中心化利用(Dapp) 实现一系列金融服务

合约次要性能函数介绍
1.1 主要参数 I34 开发 I633 搭建 53I9 定制

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 质押函数 pledgeToken

function 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 的特点:

打消可信第三方:依附区块链的个性来创立信赖,将传统交易中对政府和银行等信贷机构的信赖转化为对机器的信赖。

智能合约:主动自主,降低成本,进步速度和精度,不受外力影响确保合约执行

安全性、隐衷性、透明性——区块链的实质劣势

正文完
 0