交易所合约跟单带单系统开发技术成熟(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
|
存储 前端开发 安全
DAPP区块链商城系统开发(方案逻辑)丨区块链DAPP商城系统开发(案例设计)/开发项目/源码部署
 区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。从本质上看,区块链是通过去中心化和去信任化,集体维护、分布式存储的可靠数据库。
|
存储 前端开发 JavaScript
区块链交易所系统开发(海外版)丨交易所系统开发详细规则/方案介绍/项目逻辑/源码平台
  区块链是一种基于分布式账本技术的去中心化数据库系统。它通过一系列的区块(blocks)来记录和存储交易和数据,形成一个连续的、不可篡改的链式结构。

热门文章

最新文章

下一篇
开通oss服务