java - 收到交易后如何在BitcoinJ中找到发件人比特币地址

标签 java bitcoin 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 只是我的 java 框架中的一个文本区域,它为我显示一些文本输出。我现在需要做的是在这一点上找到发件人的地址,我可以用交易对象 tx 做到这一点吗?任何帮助将不胜感激。

最佳答案

找到解决方案!不幸的是,它使用了一种贬值的方法。我只是在适当的位置添加了以下内容。

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

关于java - 收到交易后如何在BitcoinJ中找到发件人比特币地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39073780/

相关文章:

java - 为什么使用 PDFBOX 受密码保护的 PDF 在 Microsoft Edge 浏览器中无需密码即可打开?

bitcoin - 是否有使用 WebAssembly 挖掘比特币的开源解决方案?

java - 如何在 Bitcoinj (java) 中查看某个地址的交易?

java - Maven Plugin子模块的集成测试

java - 在 Java 中通过给定的最大汉明距离(不匹配数)获取所有字符串组合

java - NetworkInterface 的 getNetworkInterfaces() 到 JComboBox

c++ - Ruby FFI 找不到某些功能?

node.js - 验证交易时出错。输入总和小于输出。比特核

java - BitcoinJ 和消息验证