Implementé un contrato llamado Storage
usando el código de la consola de trufas paraStorage.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);
}
}
Ahora quiero acceder a las funciones de este contrato desde otro contrato llamadoAccess1
código paraAccess1.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;
}
}
El problema al que me enfrento es al compilar Access1.sol
desde truffle usando
compilación de trufas
me sale el mensaje de error
Error: Source "storage.sol" not found: File not supplied initially.
import 'storage.sol';
^-------------------^
No puedo entender por qué sucede esto, verifiqué que el contrato de almacenamiento se implementó y funcionó correctamente, revisé muchos ejemplos en línea que importan el contrato de la misma manera.
Cualquier ayuda es muy apreciada, gracias de antemano
¿Está Storage.sol
en la carpeta de contratos predeterminada para la trufa? Si es así, debe escribir import "./Storage.sol"
. También asegúrese de que esté en mayúsculas correctamente.
Debe interconectar Storage
las funciones de contrato implementadas.
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
base raza
Bharat Mallapur