交易所合约跟单带单系统开发技术成熟(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);

}
相关文章
|
6月前
|
前端开发 编译器 区块链
交易所开发(海外版)丨交易所系统开发(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 都是由用户自定义的函数,用于实现白名单等功能
|
存储 监控 安全
合约交易所开发详情丨合约交易所系统开发项目/成熟案例/方案逻辑/规则玩法/稳定版/源码部署
合约交易所系统开发是一个复杂的项目,它涉及多个方面,包括系统设计、规则制定、开发实现、部署和稳定运行等
|
资源调度 前端开发 数据可视化
去中心化交易所开发(演示源码)
去中心化交易所开发(演示源码)
|
安全 区块链
区块链交易所开发运营版丨区块链交易所系统开发规则详细/项目案例/设计功能/需求逻辑/源码部署
Blockchain exchange refers to an online platform built on blockchain technology for trading and managing digital assets, such as cryptocurrencies (such as Bitcoin, Ethereum, etc.) and other digital assets or tokens. Blockchain exchanges allow users to buy, sell, store, and manage digital assets.
|
存储 前端开发 安全
DAPP区块链商城系统开发(方案逻辑)丨区块链DAPP商城系统开发(案例设计)/开发项目/源码部署
 区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。从本质上看,区块链是通过去中心化和去信任化,集体维护、分布式存储的可靠数据库。
|
存储 前端开发 JavaScript
区块链交易所系统开发(正式版)丨DEX/DEFI/SWAP去中心化智能合约系统开发详细案例/方案项目/技术分析/源码功能
  去中心化存储技术是一种新型存储技术,它改变了传统的集中式存储技术,将数据从单一位置移到多个位置,这样就消除了存储数据的中心机构或服务器的责任,增加了安全性和数据的有效存储,确保用户的数据安全性。
|
监控 安全 Java
去中心化金融平台defi智能合约开发步骤及源码demo
去中心化金融平台defi的源码开发可以分为以下几个步骤: