UnimplementedFeatureError: тип кодирования "struct BiddingContract.Bidder memory" еще не реализован

Код сломан с новым обновлением v0.5 с использованием Truffle v5.0.1 (ядро: 5.0.1)

struct Bidder {
    address bidders_address;
    uint productId;
    uint bidValue;
}

struct Product {
    uint productId;
    uint bidStartPrice;
    uint32 bidStartTime;
    Bidder latestBid;
    string productName;
    bool isAvailable;
    uint32 bidSession;

}

И отображение как

mapping(uint => Product) product;

удалил общедоступный геттер, но все же ошибка возникает.

Это мой полный код:

    pragma solidity >=0.4.21 <0.6.0;

    import "./AucSters.sol";
    import "../libraries/SafeMath.sol";

    contract BiddingContract {

    using SafeMath for uint; 

    address admin;
    AucSters public tokenContract;
    uint256 public tokenPrice;
    uint256 public tokensSold;

    //structs
    struct Seller {
        uint256 sellerId;
        string sellerName;
        bool isValidSeller;
    }
    struct Bidder {
        address bidders_address;
        uint productId;
        uint bidValue;
    }
    struct Product {
        uint productId;
        uint bidStartPrice;
        uint32 bidStartTime;
        Bidder latestBid;
        string productName;
        bool isAvailable;
        uint32 bidSession;

    }

    mapping(address => Seller) registeredSeller;
    mapping(uint => address) public productIdToOwner;
    mapping(address => uint) public productCount;
    mapping(uint => Product) product;
    mapping(address => mapping(uint => uint)) public latestBidStore;

    //ARRAYS
    address[] public regSellers;
    Product[] public productsForSale;
    address[] public bidders;


    constructor(AucSters _tokenContract, uint _tokenPrice) public {
        //Assign an admin
        admin = msg.sender;

        // token Contract 
        tokenContract = _tokenContract;

        //Token price
        tokenPrice = _tokenPrice;
   }


}
Код, которым вы поделились до сих пор, отлично компилируется для меня. Не могли бы вы поделиться кодом с ошибкой?
да конечно, сделано
Я удалил publicиз объявления product, я удалил все строки, которые ссылаются на AucStersконтракт (для которого вы не предоставили определение). Я преобразовал безопасные математические ссылки в обычные математические операции. После этого код скомпилировался нормально.
Если вам нужна дополнительная помощь, предоставьте автономный фрагмент кода (что-то, что можно просто скопировать/вставить, без ссылок на файлы, которые вы не предоставили), который демонстрирует проблему. Желательно удалить весь код, который не нужен для воспроизведения ошибки.
обновил код, о котором идет речь, никаких функций, все еще не работает для меня
Код в вопросе по-прежнему относится к AucSters и SafeMath, не предоставляя кода ни для того, ни для другого. Также было бы полезно узнать, какую версию Solidity вы используете. Ваша прагма допускает множество разных версий.
Кроме того, какая строка кода дает вам эту ошибку?
@smarx, у меня все заработало, это был набор продуктов, создающих беспорядок. Спасибо за помощь

Ответы (1)

Я решил проблему!

Массив объявляет productsForSale также дает геттер по умолчанию, поскольку он общедоступен, удалите, publicи он будет работать

Product[] public productsForSale;

заменить его на

 Product[] productsForSale;
В случае, если это помогает, это потому, что он содержит struct( Bidder), а запрошенный «бесплатный» геттер publicне поддерживает это.