Assume I request a transaction
A from a Ethereum Node (let's say Infura for simplicity) by using
getTransactionByHash shortly after the transaction was processed by the network (
currentBlockNumber = A.blockNumber).
After some time
x I want to determine if
A has reached enough confirmations (Let's say 12).
Is it enough to request the current block number and see if the difference of
currentBlockNumber - A.blockNumber is greater than or equal to 12? Can the block become an uncle and thus not be included in the current head of the blockchain? If so, how do I determine if the transaction is confirmed with 12 blocks safely?