3

The ERC721 standard says the following:

The onERC721Received function specifically works around old deployed contracts which may inadvertently return 1 (true) in certain circumstances even if they don't implement a function (see Solidity DelegateCallReturnValue bug). By returning and checking for a magic value, we are able to distinguish actual affirmative responses versus these vacuous trues.

This rationale says that there are certain circumstances where old contracts will inadvertently return 1 (true) even when they don't implement a function that is called.

The rationale gives the DelegateCallReturnValue bug as one of these circumstances. I would really like to know, what are the other circumstances?

In what circumstances will an old contract inadvertently return a wrong bool value when a method is called on it that does not exist?

1
  • I am citing research and notes from /chrisetha /axic and /arachnid. Hopefully they can provide more notes on the topic. Commented Sep 19, 2018 at 14:53

0

Your Answer

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

Browse other questions tagged or ask your own question.