Dapp链上代币合约质押模式系统开发详情

84 阅读2分钟

  “Web3.0”是对“Web2.0”的改进,【18I链上合约-259l开发系统3365】在此环境下,用户不必在不同中心化的平台创建多种身份,而是能打造一个去中心化的通用数字身份体系,通行各个平台。“Web3”指的是“基于区块链的去中心化在线生态系统”

  Web3.0被用来描述互联网潜在的下一阶段,一个运行在“区块链”技术之上的“去中心化”的互联网。

  Web3.0是网站内的信息可以直接和其他网站相关信息进行交互,能通过第三方信息平台同时对多家网站的信息进行整合使用;用户在互联网上拥有自己的数据,并能在不同网站上使用;完全基于web,用浏览器即可实现复杂系统程序才能实现的系统功能;用户数据审计后,同步于网络数据。 pragma solidity ^0.8.4;

//安全的远程购买,Remix编写 contract Purchase{ uint public value;//商品价值 address payable public seller;//卖家地址 address payable public buyer;//买家地址

//枚举类型,不用加分号,用于标记交易状态
enum State{Created,Locked,Release,Inactive}

State public state;//定义枚举类型变量

//modifier类似于一个可以通用的函数供其他function重复调用,减少代码量
//_;可以放在modifier结构体{}内的任何位置来运行调用modifier的function代码
modifier condition(bool condition_){
    require(condition_);
    _;
}

//error用于解释操作失败的原因,可以继承,参数列表可以只定义数据类型或为空
//不能重载,不能作为控制流的一种手段,合约内部和外部均可定义。
//调用时必须用revert修饰,revert用于回退error中数据给调用者并回退当前调用中所有更改。
error OnlyBuyer();//仅有买家可以调用
error OnlySeller();//仅有卖家可以调用
error InvalidState();//当前交易状态为Invalid,不能调用
error ValueNotEven();//商品价格为不为偶数,需中止交易

modifier onlyBuyer(){
    if(msg.sender != buyer)
        revert OnlyBuyer();
    _;
}

modifier onlySeller(){
    if(msg.sender != seller)
        revert OnlySeller();
    _;
}

modifier inState(State state_){
    if(state != state_)
        revert InvalidState();
    _;
}