I've got two contracts, A and B, I set them up in a truffle test separately.


A has a function bar, which sets a public boolean boo to true that is never read anywhere. B has a function, foo, that calls bar on a previously instantiated A.

contract A(){
    bool public boo = false;
    function bar() public {
        boo = true;
contract B(){
    A public myA;
    function setA(address addr){
       myA = A(addr);
    function foo() public {

Now in my truffle test, I call bar two ways, directly, and thru b.foo().


The first call to bar works fine. The second call thru foo throws out of gas no matter how much gas I give it. What am I doing wrong?

  • I should add that I can read A.boo from B, just not write.
    – syzygy
    Commented Mar 1, 2017 at 21:37

1 Answer 1


Turns out the out of gas exception really was an out of gas exception this time...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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