zl程序教程

您现在的位置是:首页 >  系统

当前栏目

NFT铸造拍卖竞拍交易平台dapp开发系统demo

系统开发 Demo NFT DApp 拍卖 交易平台 铸造
2023-06-13 09:15:27 时间

我们模拟一个拍卖合约,其中在这个程序中,并且初始便定义了商品信息,跟拍卖时间和起拍价,对于这三个东西,我们都是可以直接修改的,自己根据需求定义一个函数,用于推送商品等。

pragma solidity ^0.8.7;

//定义合约名为auction contract auction{

//定义拍卖行
address payable public Auctioneer;

//定义商品基本信息
mapping(uint256 => string) commodity;

//定义商品处于的状态
mapping(uint256 => string) state;

//状态池
mapping(uint256 => uint256) Astate;

//定义商品的归属人
mapping(uint256 => address) belong;

//定义买方交易金额的买方地址
mapping(uint256 => address payable) maxAdd;

//定义买方支付的交易金额
mapping(uint256 => uint256) bond;

//定义拍卖开始时间
uint256 timeStamp;

//定义拍卖结束时间
uint256 endtime;

//定义起拍价
uint256 StartPrice;

//定义拍卖时长
uint256 AuctionTime;

//定义出价记录的结构体
struct Bidder {
    address addr; //出价者地址
    uint256 amount; //出价金额
    uint256 bidAt; //出价时间
}

//定义映射,用于记录不同编号商品对应的出价记录
mapping(uint256 => Bidder[]) record;

//单个出价记录
Bidder bidder;

//出价记录数组
Bidder[] bidders;

//变量初始化
constructor (address _owner){
    //拍卖发起人(拍卖行)
    Auctioneer = payable(_owner);

    //商品信息初始化
    commodity[0] = "xuperchain Lamborghini";
    commodity[1] = "xuperchain Benz";
    commodity[2] = "xuperchain BMW";

    //商品的状态初始化
    state[0] = "To be auctioned";          //定义待拍卖状态
    state[1] = "Under auction";            //定义拍卖中状态
    state[2] = "Successfully Sold";        //定义成功出售状态
    state[3] = "Flow beat";                //定义流拍状态
    
    //拍卖时长初始化
    AuctionTime = 10 minutes;
    
    //商品价格初始化
    StartPrice = 100;
}