title: Can transaction fail but the calling contract will think it was successful?
body: <p>When making an ERC20 transfer it is a standard practice to wrap it in require statement so if it fails the tx will revert like this:</p>
  <pre><code>require(token.transfer(...));
  </code></pre>
  <p>What if I'm calling an external contract that doesn't return a boolean and the transaction fails.</p>
  <p>Is it possible that the tx will fail(not revert) but the contract that called that function will think that it was successful?</p>
  <p>Thanks. If the question isn't clear I'm happy to provide more context.</p>