#solidity #remix
#надежность #ремикс
Вопрос:
Это смарт-контракт аукциона. Я хочу сделать аукцион таким. Если кто-то зарегистрирует свой продукт для выставления, любой, кто хочет купить, может присоединиться к этим торгам.
Но когда я тестирую на Remix, он даже не может быть выполнен. Я думаю, что мое кодирование является проблемой. Пожалуйста, помогите мне.
pragma solidity ^0.5.0;
contract Auction{
//product for auction
struct Product{
string name;
string description;
uint time;
}
//top bid
uint topMoney;
//presen owner of product
mapping (uint => address) productToOwner;
//owner of top bidder
mapping (uint => address) topMoneyOwner;
event Listed(uint id, string name, uint itme);
Product[] public products;
//register product
function listUp(string memory _name, string memory _description) public {
//time limit for bidding, 1 minutes;
uint time = now 1 minutes;
//index of product
uint id = products.push(Product(_name, _description, time)) - 1;
//initial bid = 0
topMoney=0;
//initial owner of product
productToOwner[id] = msg.sender;
emit Listed(id, _name, time);
}
//bidding
function bidOn() payable public {
if ( topMoney < msg.value){
topMoney = msg.value;
topMoneyOwner[topMoney] = msg.sender;
} else {
msg.sender.transfer(msg.value);
}
}
//bidding end? return (bool)
function _end(uint _id) private view returns (bool) {
require(now >= products[_id].time);
return true;
}
//who is winner? Then, transfer money to owner of product.
function winner(uint _id) public {
require( true == _end(_id));
address(uint160(productToOwner[_id])).transfer(topMoney);
productToOwner[_id] = topMoneyOwner[topMoney];
}
}
Комментарии:
1. «Когда я тестирую Remix, он даже не может быть выполнен». Этот точный код отлично компилируется для меня с помощью Remix и
0.5.7 commit.6da8b019.Emscripten.clang
компилятора.2. Ах, да, это работа, как вы сказали. Это была полностью моя ошибка… Спасибо за ваше время!!! Спасибо!!! 🙂