Erwarteter Bezeichner, habe 'LParen' erhalten

Ich versuche es anhand IterableMappingdieses Beispiels . Ich habe einen Fehler beim Kompilieren des Vertrags nach Truffle:

Erwarteter Bezeichner, habe 'LParen' erhalten

Das ist mein Code:

pragma solidity ^0.4.15;

import "./itMapsLib.sol";

contract User
{
  using itMaps for itMaps.itMapUintAddress;

  itMaps.itMapAddressUint im_myAddressUintMap;

 function addOwner(address _key, uint value) returns (bool){
   im_myAddressUintMap.insert(_key, value);
   return true;
 }

  function allSum() returns (uint sum) 
  { 
  }
}

Geben Sie hier die Bildbeschreibung ein

Sie scheinen im_myUintUintMapnirgendwo definiert zu haben (es sei denn, es ist an einer anderen Stelle im Code, die nicht in Ihrem Snippet enthalten ist).
Ich definiere 'im_myAddressUintMap' als Beispiel für 'itMaps.itMapAddressUint', aber ich verstehe nicht, warum es nicht funktioniert.
Sie versuchen, ein Schlüssel/Wert-Paar in eine Variable namens einzufügen im_myUintUintMap. Diese Variable existiert nicht. im_myUintUintMap.insert()Sie müssen zu ändern im_myAddressUintMap.insert().
(Entweder das, oder die richtige Variable deklarieren: itMaps.itMapUintUint im_myUintUintMap;)
Ok, danke, ich korrigiere meinen Fehler, aber das Problem lässt sich nicht lösen.
Okay, das nächste: was ist _keyund value? Sie übergeben sie an insert(), aber sie existieren nicht.
Schlüssel ist die Adresse des Besitzers Beispiel 0xC0222fBf1773A5e157e4d25Bf634E99C73C0637F , Wert ist die Menge von etwas (Token oder beides). Ich schreibe meinen Code um.

Antworten (1)

Es gibt mehrere Probleme mit Ihrem Code.

Sie kopieren den Funktionsprototyp und fügen ihn ein, anstatt ihn aufzurufen, den Sie verwenden solltenim_myAddressUintMap.insert( key, value);

Und Sie müssen diese Einfügung innerhalb einer Funktion oder innerhalb des Konstruktors vornehmen (Funktion mit dem Namen des Vertrags).

function insert( address key, uint value ) public {
    im_myAddressUintMap.insert( key, value );
}

Also sollte der Vertrag so aussehen

zweiter import ist auf remix zu testen

pragma solidity ^0.4.15;

import "./itMapsLib.sol";  
//import "https://github.com/szerintedmi/solidity-itMapsLib/itMapsLib.sol";    

contract User
{
  using itMaps for itMaps.itMapAddressUint;

  itMaps.itMapAddressUint im_myAddressUintMap;

  function insert ( address key, uint value) public {
    im_myAddressUintMap.insert( key, value);
  }
}

Bearbeiten : Sie haben Ihren Vertrag bearbeitet. Der letzte Fehler, den Sie haben, ist der falsche Import von using itMaps for itMaps.itMapUintAddress;IhnenitMapAddressUint