Solidity - 错误:标识符未找到或唯一

时间:2020-12-25 12:02:39

标签: arrays mapping blockchain solidity

我试图编译这段代码,但它给了我一个错误(标识符未找到或不唯一)为什么?请帮我!! 代码的概念是在结构数组内的数组中添加一个元素,然后搜索元素是否存在 我用的是编译器 0.4.0

pragma solidity ^0.4.0;
contract Ballot {
  struct EntityStruct {
    uint[] entityData;
    bool isEntity;
    bool iscontent;
    uint vote;
    uint predata;
    string isrep;
  }

    mapping(address => EntityStruct) public entityStructs;
    mapping(uint => entityData) public enitiyinfo;
    uint[] public datalist;
    address[] public entityList;

function newEntity(address entityAddress, uint entityDataa) public returns(uint rowNumber) {
   bytes32 datahash;
   uint counter = 0;
   datahash = keccak256(abi.encodePacked(entityDataa));
   for (uint i=0; i<entityList.length; i++)
   {
       for (uint y=0; y<datalist.length; y++)
       {
           
       if (datahash == keccak256(abi.encodePacked(entityStructs[entityList[i]].entityData[datalist[y]])))
       {
       counter = counter+1;
       }
   }
   }
 //  if (counter >0)
  // {
   require(counter == 0,"not aloowed!!");
   entityStructs[entityAddress].entityData.push(entityDataa);
  // entityStructs[entityAddress].entityData = entityDataa;
   entityStructs[entityAddress].isEntity = true;
   return entityList.push(entityAddress)-1;
   
   

}

function SearchForContent( uint data) public{
    uint rr = 0;
           for (uint i=0; i<entityList.length; i++) {
               for (uint y=0; y<5; y++)
               {
                   
               
               if ( data == entityStructs[entityList[i]].entityData[y])
               rr = rr+1;
           }
           require(rr >0,"not available data");
              // result = "available data";
               //else
            //require(data == entityStructs[entityList[i]].entityData,"notexsists data!!");
                          
}
}
}

1 个答案:

答案 0 :(得分:0)

错误来自第 13 行:

mapping(uint => entityData) public enitiyinfo;

您的 entityData 类型仅在 EntityStruct 结构的范围内定义:程序的其余部分不知道它是什么。但是,您似乎从未真正使用过相关映射,因此您可以删除该行。

然后您的代码使用 v0.4.26 编译得很好。不过,一些较早的 0.4.x 版本不支持您使用的某些功能,因此您可能需要在 pragma 语句中反映这一点。

相关问题