交易所合约跟单带单系统开发技术成熟(Demo)源码搭建

简介: 此智能合约包含关键参数如拥有者、收益分配者、状态变量和ERC20资产信息,用于管理质押功能。用户可通过`pledgeToken`函数质押,条件包括:功能开启、剩余额度充足、达到最低质押额且在时间范围内。结构体`PledgeOrder`和`KeyFlag`跟踪用户状态。构造函数需用户输入以初始化参数。

合约主要功能函数介绍

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

}
相关文章
|
8月前
|
前端开发 编译器 区块链
交易所开发(海外版)丨交易所系统开发(Demo)交易所项目系统开发[方案部署]
智能合约是编程实现的不可篡改的电子合同,Dapp是结合前端、智能合约和通证经济的分布式应用。Web3.0作为区块链基础网络,以太坊(ETH)推动其发展。智能合约在ETH区块链上运行,依赖EVM。Solidity合约代码有多种导入机制,编译器通过文件前缀映射处理导入路径,如solc编译器支持命令行命名空间映射。
|
安全 Go
dapp丨defi代币合约系统开发详情说明丨案例分析丨需求设计丨成熟案例丨源码平台
Before developing the DApp pledge mining system, it is necessary to clarify the entire development process. Firstly, determine requirements and functional planning, including user interface design, contract writing, etc. Secondly, design the system architecture to determine the relationships and dat
合约交易所系统开发(开发模板)丨合约交易所系统开发稳定版及成熟案例源码
最先运行的 _beforeTokenTransfers 和最后运行的 _afterTokenTransfers 都是由用户自定义的函数,用于实现白名单等功能
|
存储 监控 安全
合约交易所开发详情丨合约交易所系统开发项目/成熟案例/方案逻辑/规则玩法/稳定版/源码部署
合约交易所系统开发是一个复杂的项目,它涉及多个方面,包括系统设计、规则制定、开发实现、部署和稳定运行等
|
供应链 区块链
秒合约系统开发|源码搭建|方案与需求
展望未来,随着区块链技术的不断发展和完善,供应链管理将迎来更加智能化、高效化和透明化的新时代
IPPswap交易所系统开发详细指南丨需求设计丨教程方案丨源码项目
Based on the development of the IPPSwap exchange exchange exchange bottom pool LP pledge mining system you mentioned, the following is an overview of its basic process and elements
|
安全
秒合约时间盘丨源码搭建丨秒合约交易所系统开发技术源码搭建开发方案
秒合约时间盘丨源码搭建丨秒合约交易所系统开发技术源码搭建开发方案
220 0
|
存储 前端开发 安全
defi丨dapp丨ippswap代币发行合约项目系统开发规则方案及开发案例源码
  智能合约是一种基于区块链技术的自动执行代码。它是一种可以在区块链上自动执行、不可篡改的协议。智能合约能够有效地执行预定义好的规则和条款,并且在满足预设条件的情况下自动执行。这种合约大大降低了交易成本,提高了交易的可靠性。
|
监控 安全 Java
去中心化金融平台defi智能合约开发步骤及源码demo
去中心化金融平台defi的源码开发可以分为以下几个步骤: