今天来介绍第二个案例。今天的案例就以拍卖为情境设定
假设要制定一定拍卖场的合约,到底要怎麽定义呢?首先需要三个角色
再来需要一个竞标的功能,可以让买家出价,并且要在时间限定内,价钱最高者得到。下面我们来看看范例
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;
contract auction {
//纪录卖家
address payable public seller;
//纪录最高买家
address payable public buyer;
//纪录最高出价金额
uint public auctionAmount;
//拍卖结束时间
uint auctionEndTime;
//拍卖是否结束
bool isFinish;
constructor(address payable _seller,uint _duration) {
seller = _seller;
sellet = payable(msg.sender);
auctionEndTime = _duration + block.timestamp;
isFinish = false;
}
//竞拍功能
function bid() public payable{
//确认拍卖还在执行中
require(!isFinish);
//确认拍卖还在时间范围内
require(block.timestamp<auctionEndTime);
//确认你送的值有大於目前的拍卖最高价
require(msg.value>auctionAmount);
//退钱给上一个买家
if(auctionAmount>0) {
buyer.transfer(auctionAmount);
}
buyer = payable(msg.sender);
auctionAmount = msg.value;
}
//结束拍卖
function auctionEnd() public payable{
//确认现在时间大於拍卖结束时间
require(block.timestamp>=auctionEndTime);
//确认拍卖是否结束
require(!isFinish);
//把拍卖开关关掉
isFinish = true;
//把钱送给卖家
seller.transfer(auctionAmount);
}
}
>>: Day13 开发套件 - 范例程序码介绍02 Android 端
设计 Launch Screen 会需要用到两个档案,分别是: Main.storyboard(用途...
工具介绍 今天要体验的工具是hydra,有别於先前体验过的其他工具,虽然也是透过字典档的形式,但它支...
曾经做过一个专案,顾客把商品加入购物车後,可以同时选择要加入几笔商品,然後在结帐页的时候需要根据商品...
在玩AR APP时都有一个拍照功能,本次章节会介绍如何撰写Unity的截图功能 先在Project新...
Mbed Simulator Importance of Mbed platform in rapi...