Is there a reasonable way (as in, not parsing the entire blockchain) for a smart contract to see whether a particular transaction took place? This is assuming that you wouldn't know in which block a transaction occurred.
For example, did account_x transfer ETH to account_y?
And to take it further, could a similar function look at smart contract interactions?
For example, did account_x call smart_contract_hello? If so, what parameters did they provide?