基本上,我正在构建一个服务器,它有一个带有许多接收地址的比特币钱包。地址可以链接到不同的客户端。
如果您将硬币发送到任何地址,他们将最终进入服务器钱包。
问题是,我如何知道比特币发件人发送硬币的地址是什么?
我正在使用BitconJ。服务器是用Java编写的。
答案 0 :(得分:1)
我自己想通了。这是我的代码,用于确定发送金额的地址。
@Override
public void onCoinsReceived(Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) {
System.out.println("Received a transaction.");
for (int i = 0; i < tx.getOutputs().size(); i++) {
for (ECKey addr : wallet().getImportedKeys()) {
Address expectedAddr = addr.toAddress(Main.PARAMS);
for (int j = 0; j < tx.getOutputs().size(); j++)
String incoming = tx.getOutputs().get(i).getAddressFromP2PKHScript(Main.PARAMS)
.toBase58();
if (incoming.equals(expectedAddr)){
// Enter your code here
}
}
}
}
}
你可能会注意到我实际上需要知道我在交易输出中寻找什么。