On BSC chain, i am facing this situation.
I am scaning mempool for a transactions ( nodejs and web3.eth.subscribe('pendingTransactions', ...) ) and when i find the one i am concerned, i fire a transaction with same params (gas, gasprice). The weird thing (in my opinion) is that in many cases my transaction is mined in the same block but BEFORE the one i am monitoring. (eg mine is at position 10 in the block, monitored transaction at position 20)
It is assumed that this can happen?
As far as i have understand how miners works, network shouldnt allow transactions (with same gasprice) to overrun existed transactions with same params. Or i am missing something here?