Skip to main content
added 650 characters in body
Source Link
Manganese
  • 226
  • 1
  • 7

I have created a simple contract with Truffle to test things out. I am using testrpc with this.

pragma solidity ^0.4.11;

contract HelloSystem {

    address owner;

    function HelloSystem() {
        owner = msg.sender;
    }

    function remove() {
        if (msg.sender == owner) {
            selfdestruct(owner);
        }
    }
}

After deploying this contract, though I can call remove from truffle console, I am not able to call the owner which is set at the initiation of contract.

Have tried:

truffle(development)> HelloSystem.deployed().then(function(instance){HS = HelloSystem.at(instance.address)})
HS.owner.call().then(console.log)
HS.owner
HS.owner.call()

I am very well able to call remove function on my contract and remove it. But owner is not working. I am sure I am missing something simple, if any one can point it out, would be much wow many thanks.

I created another simple contract with numeric uint balance and made it public.

contract helloWorld {    
    uint public balance;    

    function helloWorld() {
        balance = 1000;
    }
} 

Now, my call to balance works fine.

truffle(development)> helloWorld.deployed().then(function(instance){HW = helloWorld.at(instance.address)})
truffle(development)> HW.balance
{ [Function]
  call: [Function],
  sendTransaction: [Function],
  request: [Function: bound ],
  estimateGas: [Function] }
truffle(development)>

Would this be because of the declaration public/ private?

Update Inline with my argument of public declaration, I tried declaring address public owner still doesn't work. Hence open to your guys. Please help.

I have created a simple contract with Truffle to test things out. I am using testrpc with this.

pragma solidity ^0.4.11;

contract HelloSystem {

    address owner;

    function HelloSystem() {
        owner = msg.sender;
    }

    function remove() {
        if (msg.sender == owner) {
            selfdestruct(owner);
        }
    }
}

After deploying this contract, though I can call remove from truffle console, I am not able to call the owner which is set at the initiation of contract.

Have tried:

truffle(development)> HelloSystem.deployed().then(function(instance){HS = HelloSystem.at(instance.address)})
HS.owner.call().then(console.log)
HS.owner
HS.owner.call()

I am very well able to call remove function on my contract and remove it. But owner is not working. I am sure I am missing something simple, if any one can point it out, would be much wow many thanks.

I have created a simple contract with Truffle to test things out. I am using testrpc with this.

pragma solidity ^0.4.11;

contract HelloSystem {

    address owner;

    function HelloSystem() {
        owner = msg.sender;
    }

    function remove() {
        if (msg.sender == owner) {
            selfdestruct(owner);
        }
    }
}

After deploying this contract, though I can call remove from truffle console, I am not able to call the owner which is set at the initiation of contract.

Have tried:

truffle(development)> HelloSystem.deployed().then(function(instance){HS = HelloSystem.at(instance.address)})
HS.owner.call().then(console.log)
HS.owner
HS.owner.call()

I am very well able to call remove function on my contract and remove it. But owner is not working. I am sure I am missing something simple, if any one can point it out, would be much wow many thanks.

I created another simple contract with numeric uint balance and made it public.

contract helloWorld {    
    uint public balance;    

    function helloWorld() {
        balance = 1000;
    }
} 

Now, my call to balance works fine.

truffle(development)> helloWorld.deployed().then(function(instance){HW = helloWorld.at(instance.address)})
truffle(development)> HW.balance
{ [Function]
  call: [Function],
  sendTransaction: [Function],
  request: [Function: bound ],
  estimateGas: [Function] }
truffle(development)>

Would this be because of the declaration public/ private?

Update Inline with my argument of public declaration, I tried declaring address public owner still doesn't work. Hence open to your guys. Please help.

Source Link
Manganese
  • 226
  • 1
  • 7

Call not working on declared variable in a contract with truffle

I have created a simple contract with Truffle to test things out. I am using testrpc with this.

pragma solidity ^0.4.11;

contract HelloSystem {

    address owner;

    function HelloSystem() {
        owner = msg.sender;
    }

    function remove() {
        if (msg.sender == owner) {
            selfdestruct(owner);
        }
    }
}

After deploying this contract, though I can call remove from truffle console, I am not able to call the owner which is set at the initiation of contract.

Have tried:

truffle(development)> HelloSystem.deployed().then(function(instance){HS = HelloSystem.at(instance.address)})
HS.owner.call().then(console.log)
HS.owner
HS.owner.call()

I am very well able to call remove function on my contract and remove it. But owner is not working. I am sure I am missing something simple, if any one can point it out, would be much wow many thanks.