I'm trying to write software in Elixir to do it. I have the source code for BitcoinJ, but it's quite laborious figuring out what it does. If I look on bitcoin.info, I can see this block
https://blockchain.info/block/00000000000000000028d1186d6dc9191a6ec93624141031e31814e22e75e0c5
has transactions including 2c1a83d5a511399f151571ff26925764ef73081251c239dd2eb6904304d7bcba
from which blockchain.info has deduced
1PSfpNCcY9uNh1QEitLLLGaDX5LicnBJhx sent 12 BTC to
3PK9abqzd2oK3yWgESSZ6Ps1wPBBu222VW and 0.0789 BTC to
12AE3fQj1CsSGL9c3aZpkSDz991KUxntvB
I want to find out how it deduced it. Thanks for any information.