实体错误:无法构造包含嵌套映射的结构

问题描述

我的solc版本:

    "solc": "^0.7.1",

当我尝试构造一个包含映射的结构时,出现此错误: “无法构造包含(嵌套)映射的结构”

这是我的验证码。

Campaign.sol

contract Campaign {
struct Request {
    ...
// I guess this might cause an error
    mapping(address => bool) approvals;

}

constructor(uint256 minimum,address creator) {
    ...
}

function createRequest(
    string memory description,uint256 value,address payable recipient
) public onlyManager {
    Request memory newRequest = Request({ 
        // Here the compiler complains 
    });
}
...

如果我想在我的Request结构中放置一个映射,还有其他方法吗? 谢谢

解决方法

从 0.7.0 开始,请执行以下操作:

  ggplot(k[j])+
    ggtitle("Muestra 1") +
    geom_path(mapping = aes(Tiempo,td,colour = "Talón Derecho",group = 5))+
    geom_path(mapping = aes(Tiempo,pd,colour = "Puntera Derecha",group = 5)) +
    geom_path(mapping = aes(Tiempo,ti,colour = "Talón Izquierdo",pi,colour = "Puntera Izquierda",group = 5))
}
,

我想我找到了答案here

我将映射放在struct之外,错误消失了:

contract Campaign {
    struct Request {
        //...
    }
    mapping(address => bool) approvals;

我不确定它能否完全解决问题。如有其他问题,我会更新。