this public key was generated by me from the lantern
as an example ... which is a hash from private.... from which you can get the address of the purse after dancing with a tambourine in the form of ripemd 160 and recode in base58
But the crux of the issue is: by what algorithm we can get these data .... the ones we pulled from UTXO?
you don't hash a private key to get the public key! you use the elliptic curve's generator point and multiply it by the private key value. and you don't "pull it from UTXO"! the only data that the transactions contain are the signature (ie. R and S value) and the public key and the scriptpubkey which can be used to obtain the address from.
so by having a raw transaction (i am assuming you are aware that UTXO is unspent transaction output) you can get the following:
1. sender's public key which you will have no way of turning into an address unless you also check the scriptpub of the transaction that it is spending by looking at the output's txid field and getting the raw transaction from your blockchain.
2. receiving address by simply taking the scriptpub of this transaction that you are parsing and converting it to its appropriate address.
the topic which was discussed here before ... as part of the decoding of UTXO data is obtained today is not relevant... either change the encoding algorithm or am I missing something!
so you are trying to decode the UTXO database that bitcoin core stores? in which case you have to check the latest version of bitcoin core to see how it is de/serializing them