如何获取发件人发送比特币的地址
How to get the address the sender sent bitcoin to
基本上,我正在构建一个服务器,它有一个带有许多接收地址的比特币钱包。地址可以链接到不同的客户端。
如果您将硬币发送到任何地址,它们最终都会进入服务器钱包。
问题是,我怎么知道比特币发件人发送硬币的地址是什么?
我正在使用 BitconJ。服务器写在Java.
我自己想出来了。这是我的代码,用于确定金额被发送到哪个地址。
@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
}
}
}
}
}
您可能会注意到我实际上需要知道我在交易输出中寻找什么。
基本上,我正在构建一个服务器,它有一个带有许多接收地址的比特币钱包。地址可以链接到不同的客户端。
如果您将硬币发送到任何地址,它们最终都会进入服务器钱包。
问题是,我怎么知道比特币发件人发送硬币的地址是什么?
我正在使用 BitconJ。服务器写在Java.
我自己想出来了。这是我的代码,用于确定金额被发送到哪个地址。
@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
}
}
}
}
}
您可能会注意到我实际上需要知道我在交易输出中寻找什么。