拍卖合约
1.a出价100,最高价=a地址
2.b出价200,最高价=b地址
pragma solidity ^0.6.1;
contract auction_demo{
address payable public seller; // 卖方
address payable public buyer; // 最高价者
uint256 public highAmount; // 最高价
address payable public admin; // 平台方
string auctionName; // 拍品名字
bool isFinished; // 是否结束
uint256 outTime; // 拍卖时间
constructor(address payable _seller, string memory _name) public{
auctionName = _name;
seller = _seller;
admin = msg.sender;
isFinished = false;
outTime = now + 130;// 30秒拍卖时间
}
// 拍卖
function auction(uint256 amount) public payable{
require(amount > 0, "amount must > 0");
require(amount > highAmount, "amount must > highAmount");
require(amount == msg.value, "amount must = msg.value");
require(!isFinished, "must not Finished");
require(now <= outTime,"must not time out");
buyer.transfer(highAmount);
buyer = msg.sender;
highAmount = amount;
}
//结束拍卖
function endAuction() public payable {
require(msg.sender == admin, "only admin can do this");
require(now > outTime, "time is not ok");
require(!isFinished, "must not Finshed");
isFinished = true;
seller.transfer(highAmount*90/100); //90%打给拍卖方
admin.transfer(highAmount*10/100); // 平台抽佣10%
}
}