Ich habe einen Vertrag bereitgestellt, der Storage
mithilfe des Truffle-Konsolencodes für benannt wurdeStorage.sol
pragma solidity ^0.4.8;
contract Storage {
struct EntityStruct {
string str_address;
uint entityData;
//more fields
}
EntityStruct[] public entityStructs;
function newEntity(string entityAddress, uint entityData) public returns(uint rowNumber) {
EntityStruct memory newEntity;
newEntity.str_address = entityAddress;
newEntity.entityData = entityData;
return entityStructs.push(newEntity)-1;
}
function getEntityCount() public constant returns(uint entityCount) {
return entityStructs.length;
}
function getEntityByRowNumber(uint rowNumber) public constant returns(string entity, uint data) {
string a = entityStructs[rowNumber].str_address;
uint b = entityStructs[rowNumber].entityData;
return (a,b);
}
}
Jetzt möchte ich auf die Funktionen dieses Vertrags von einem anderen Vertrag mit dem Namen zugreifenAccess1
Code fürAccess1.sol
pragma solidity ^0.4.8;
import 'storage.sol';
contract Access1{
address storgeContractAddress = "0xcd53170a761f024a0441eb15e2f995ae94634c06";
function createEntity(address entityAddress,uint entityData){
//Storage s = Storage(storgeContractAddress);
storgeContractAddress.newEntity.call(entityAddress,entityData);
}
function getEntityCount()public constant returns(uint entityCount){
//Storage s = Storage(storgeContractAddress);
uint count=storgeContractAddress.getEntityCount.call();
return count;
}
}
Das Problem, mit dem ich konfrontiert bin, ist beim Kompilieren Access1.sol
aus der Truffle-Verwendung
Trüffel kompilieren
Ich bekomme die Fehlermeldung
Error: Source "storage.sol" not found: File not supplied initially.
import 'storage.sol';
^-------------------^
Ich kann nicht verstehen, warum dies passiert, ich habe überprüft, ob der Vertragsspeicher erfolgreich bereitgestellt wurde und funktioniert, ich habe online viele Beispiele überprüft, die Verträge auf die gleiche Weise importieren.
Jede Hilfe wird sehr geschätzt, vielen Dank im Voraus
Befindet Storage.sol
sich im Standardvertragsordner für Trüffel? Wenn ja, musst du schreiben import "./Storage.sol"
. Achten Sie auch auf die korrekte Groß- und Kleinschreibung.
Sie müssen bereitgestellte Storage
Vertragsfunktionen verbinden.
pragma solidity ^0.4.8;
contract Storage {
function getEntityCount() public constant returns(uint entityCount);
}
contract Access1{
address storgeContractAddress = "0xcd53170a761f024a0441eb15e2f995ae94634c06";
Storage storage;
function Access1(){
storage = Storage(storgeContractAddress);
}
function getEntityCount()public constant returns(uint entityCount){
uint count=storage.getEntityCount.call();
return count;
}
}
SwapnilKumbhar
Basit Raza
Bharat Mallapur