What are the technical differences between offchain views vs onchain entry points? I know one of the differences is that onchain entry points mutate while offchain views don't. Are there any other differences or guarantees?
The reason I'm asking is because I'm trying to figure out whether something like this would work:
Currently I have 2 contracts. 1 FA2 token one and the other 1 that manages data based on the ownership of a specific token. My particular concern is about potential race conditions that happen while the ownership of a token is transferred.
Scenario where Owner A sells token to Owner B. At the same time owner A invokes a function in the other contract which calls an offchain view to check the ownership. Is it possible for the other contract to continue with the operation if by that point the token had already changed hands? Also, is there a better way of checking for ownership in such a scenario?