I am trying to obtain the addresses of entry of a transaction when I receive money, but I have not found the way. I have tried to create an address with the bytes obtained by calling TransactionInput.getScriptSig().getPubKey()
, but I've only obtained a ScriptException. If I call TransactionInput.getFromAddress()
(deprecated) the code is frozen. I don't want to have to make a call to the API of block explorer, it is too cumbersome. Is there any way of doing this? As it parses the transaction blockhain.info to get that kind of information?
1 Answer
You should get the list of inputs, this is a snippet code using BitcoinJ to get input and outputs addresses:
List<TransactionInput> inputs = tx.getInputs();
List<TransactionOutput> outputs = tx.getOutputs();
for (TransactionOutput out : outputs) {
System.out.println("addresses in output " + out.getAddressFromP2PKHScript(params));
}
for (TransactionInput in : inputs) {
System.out.println("addresses in input " + in.getFromAddress());
}