We found that this transaction 0xf35238b1ef440e2a04576c8264ca8288100091a3d4c71069f0336c72078f366b was included into the following three different blocks :
Could you explain the reason why this happened ?
Substrate and Polkadot Stack Exchange is a question and answer site for developers building blockchains with the Substrate SDK. It only takes a minute to sign up.Sign up to join this community
In substrate what uniquely identifies an extrinsic is the block# + its index in that block, not the call hash.
So in this case, the call you are referring to would be identified by
(note that the index here are the same just by chance)
The hash is the same in all those blocks because is the same extrinsic with the very same arguments in all of them.
These are 3 different transactions. The hash that you shared does not uniquely identify a transaction.
As Alejandro mentioned, the unique identifier of a transaction is what you see in the column Extrinsic ID which includes the Block number and the Extrinsic Index. If you check the blocks that you shared you will see that the extrinsic IDs are different (10218427-2, 10219254-2, 10219793-2) even though the hash (0xf352....8f366b) is the same.
You can also check that there were 3 different transactions by looking at the transfers of the destination address and confirm that there were 3 different transfers of 10 DOT to this account.
So, in general to retrieve details of an extrinsic you need the extrinsic hash but also the block number in which it was included.
This is a common misunderstanding so that is why we have a dedicated section (Jaco already mentioned it in the comment) that clarifies it in our wiki page Unique Identifiers for Extrinsics
Adding here some extra resources that can be helpful