UnimplementedFeatureError: Tipo de codificación "struct BiddingContract.Bidder memory" aún no implementado

El código se rompe con la nueva actualización v0.5, usando Truffle v5.0.1 (núcleo: 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;

}

Y el mapeo como

mapping(uint => Product) product;

eliminó la venerabilidad del captador público, pero aún así, el error está llegando.

Este es mi código completo:

    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;
   }


}
El código que compartiste hasta ahora compila bien para mí. ¿Podrías compartir el código que tiene el error?
si seguro hecho
Eliminé publicde la declaración de product, eliminé todas las líneas que hacen referencia al AucSterscontrato (para el cual no proporcionó una definición). Convertí las referencias matemáticas seguras a operaciones matemáticas normales. Después de eso, el código se compiló bien.
Si desea obtener más ayuda, proporcione un código independiente (algo que se pueda copiar y pegar, sin referencias a archivos que no proporcionó) que muestre el problema. Preferiblemente, borre todo el código que no sea necesario para reproducir el error.
actualicé el código en cuestión sin funciones, todavía no funciona para mí
El código de la pregunta todavía se refiere a AucSters y SafeMath sin proporcionar código para ninguno de los dos. También sería útil saber qué versión de Solidity está utilizando. Su pragma permite muchas versiones diferentes.
Además, ¿qué línea de código te da ese error?
@smarx, lo hice funcionar, fue la variedad de productos los que causaron el lío. Gracias por la ayuda

Respuestas (1)

¡Tengo el problema resuelto!

La matriz declara productsForSale también proporciona un captador predeterminado, ya que es público, elimínelo publicy funcionará.

Product[] public productsForSale;

reemplazarlo por

 Product[] productsForSale;
En caso de que ayude, es porque contiene un struct( Bidder) y el getter "gratuito" solicitado publicno lo admite.