I've deployed the following contract to Ethereum testnet.

contract demo {
  string public name = "someString"; 

  function returnValue() constant returns (string){ 
      return name;    

I am trying to retrieve the contract's string and this won't work

var contract = web3.eth.contract(contractAddress, abi); //contractAddress+abi known

returns undefined

If I use this code:

var asdf = web3.eth.contract(abi).at(contractAddress);

I get `function(){[native code]} How can i get the string "name" from my solidity contract to my javascript? Thank you


Try this:

var contract = web3.eth.contract(abiArray).at(contractAddress);
contract.returnValue.call().then(function(v) {
    var strName= v.toString();
    console.log("Name: "+ strName);   

This is how I do using truffle:

import demo_artifacts from './../../build/contracts/demo.json';  
var Demo = contract(demo_artifacts);

    Demo.deployed().then(function(contractInstance) {  
        contractInstance.returnValue.call().then(function(v) {  
            var strName= v.toString();  
            console.log("Name: "+ strName);

Try this one:

var abiDef = "(provide the abi)";   
var contractAddress = "(provide the contract address)";  
var objWeb3 = new Web3(new
var democontract = objWeb3.eth.contract( JSON.parse(abiDef)).at(contractAddress);  
var callData=democontract.returnValue.call();
console.log(callData); // Printed: BigNumber {s: 1, e: 3, c: Array[1]}  
console.log(callData.c[0]); // Printed: the value in my case 1000  
  • this is what I get Uncaught TypeError: Cannot read property 'call' of undefined – PetrosM Apr 3 '17 at 17:29
  • Try updated code – Susmit Apr 3 '17 at 18:22
  • I am not using truffle. I use the web3 Javascript API, that probably why the call() function won't work – PetrosM Apr 3 '17 at 19:54
  • Added another version try that – Susmit Apr 4 '17 at 5:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.