Using .call
to invoke a function on another contract,
address B = 0x4a915089aeC328Dac1F0b197Aba7EB8C1853882d;
bytes4 callSig = bytes4(sha3("foo()"));
B.call(callSig);
gives a warning,
Warning: Return value of low-level calls not used.
using
B public b;
b = B(0x4a915089aeC328Dac1F0b197Aba7EB8C1853882d);
b.foo();
gives no warning.
In what ways does b.foo()
know that the call is safe, while B.call(callSig)
does not ?