当前位置: 首页 > Web前端 > JavaScript

Defi质押挖矿系统开发智能合约部署功能介绍

时间:2023-03-27 11:37:53 JavaScript

什么是去中心化金融?允许用户通过部署在智能合约平台上的去中心化应用程序(Dapps)完成一系列的金融服务合约,而无需依赖中心化机构地址私有所有者;//合约部署(owner)账户地址addressprivateprofitor;//收益分配者的账户地址,只有这个地址才有权分配收益bool_isDIS=false;//质押合约功能状态,true可以质押ERC20_Token;//KeyFlag[]用于分配收益的ERC20资产密钥;//uint256大小,用于标记用户地址的质押状态;//质押者地址数(用户)uint256_maxPledgeAmount;//最大质押量(标的币种)Quotauint256_maxMiningAmount;//最大(ERC20收益分配)配额uint256_leftMiningAmount;//剩余额度uint256_minAmount;//单笔最低质押额度uint256_totalPledegAmount;//质押总量uint256_maxPreMiningAmount;//最大单次分配配额uint256_startTime;//开始时间,单位“秒”uint256_endTime;//结束时间,单位“秒”uint256_precentUp=100;//与_precentDown一起设置每次收益提现的比例uint256_precentDown=100;//与_precentUp一起设置每次收益提现的比例structPledgeOrder{//结构体,用于标记质押用户的各种状态boolisExist;//质押状态uint256token;//质押金额uint256profitToken;//收入金额uint256次;//最近一次提取收益的时间uint256index;//质押地址序号}structKeyFlag{//结构体,用于标记用户地址地址键的质押状态;//地址boolisExist;//质押状态}在部署合约时,需要用户输入构造函数中的参数,完成相应的参数设置,实现相应的功能;1.2质押函数pledgeTokenfunctionpledgeToken()publicpayable{require(address(msg.sender)==address(tx.origin),"nocontract");require(_isDIS,"isdisable");require(_leftMiningAmount>0,"更少的代币”);require(msg.value>=_minAmount,“更少的代币”);require(_totalPledegAmount.add(msg.value)<=_maxPledgeAmount,“更多的代币”);require(block.timestamp>=_startTime&&block.timestamp<=_endTime,"isdisable");if(_orders[msg.sender].isExist==false){keys.push(KeyFlag(msg.sender,true));尺码++;createOrder(msg.value,keys.length.sub(1));}else{PledgeOrder存储顺序=_orders[msg.sender];order.token=order.token.add(msg.value);keys[order.index].isExist=true;}_totalPledegAmount=_totalPledegAmount.add(msg.value);}函数说明:显然,该函数具有接收底层货币(payable)的功能;质押地址必须是账户地址,不能是合约地址;合约质押功能必须在活动限定时间内开启;剩余金额大于0;不能超过限定的最高质押金额;如果用户之前没有质押过,则创建文件(createOrder),否则只修改文件;DeFi特性:消除可信第三方:依靠区块链的特性来创造信任,传统的对政府、银行等信用机构的信任转化为交易中对机器的信任。智能合约:自动自主,降低成本,提高速度和准确性,不受外力影响,保证合约执行的安全、隐私、透明——区块链的本质优势