Questions about contract calling another contract
Need help with two related Solidity questions. Question 1. Say, I have a contract calling another one: contract B { function f1() { ... } } contract A { B b; function f() { b.f1(); } } Will msg.sender for f1 be same as for f() ? Of will it be an address of a contract A ? Question 2. Say, I have contracts A and B. I want to have contract A { B b; A(address addr) { b = B(addr); } } In other language, I would use B b = null; in declaration, to avoid double initialization, but it does not work in Solidity. So how do I declare a member variable and then initialize it by address? Will msg.sender for