Imagine that we have a contract that implements a custom cryptocurrency on top of Ethereum. There is no way to specify amount when the coins are transferred, the whole balance is sent to another account.
Now look at the following transactions:
1. Alice sends all her coins to Bob.
2. Bob sends all his coins to Charlie.
Depending on order these transactions are processed Charlie gets different number of coins to his account.
Is it possible to specify the order without waiting for Alice's transaction becoming visible to Bob (for referencing it explicitly)?
Does Ethereum define a canonical ordering of transactions (not influenced by miners) in the same block?