Как найти биткойн-адрес отправителя в BitcoinJ после получения транзакции

Итак, в моем приложении у меня есть следующие функции для получения биткойнов.

kit.wallet().addCoinsReceivedEventListener(new WalletCoinsReceivedEventListener() {
            @Override
            public void onCoinsReceived(Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) {
                txtLog.append("-----> coins resceived: " + tx.getHashAsString() + "\n");
                txtLog.append("received: " + tx.getValue(wallet) + "\n");  

            Futures.addCallback(tx.getConfidence().getDepthFuture(1), new FutureCallback<TransactionConfidence>() {
                @Override
                public void onSuccess(TransactionConfidence result) {
                    txtLog.append("\nSuccess! Recieved: " + tx.getValue(wallet) + "\n");
                    //Find address of sender here
                }

                @Override
                public void onFailure(Throwable t) {
                    throw new RuntimeException(t);
                }
            });
        }
    });

Это прекрасно работает, OnSuccess срабатывает правильно, как только транзакция подтверждается и добавляется в мой кошелек. txtLog - это просто textArea в моем java-фрейме, который отображает для меня некоторый текстовый вывод. Что мне нужно сделать сейчас, так это найти адрес отправителя на данный момент, могу ли я сделать это с помощью объекта транзакции tx? Любая помощь будет оценена по достоинству.


person tantonj    schedule 22.08.2016    source источник


Ответы (1)


Решение найдено! К сожалению, он использует устаревший метод. Я просто добавил следующее в соответствующем месте.

String address = "";
for (TransactionInput txin : tx.getInputs()){
    address = txin.getFromAddress().toString();
}
person tantonj    schedule 22.08.2016