Вопрос кодирования смарт-контракта аукциона

#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. Ах, да, это работа, как вы сказали. Это была полностью моя ошибка… Спасибо за ваше время!!! Спасибо!!! 🙂