Bitcoinj

如何在bitcoinj中獲取發件人的地址

  • March 31, 2020

我正在嘗試修改簡單的錢包模板以獲取交易列表中的發件人地址。但是,由於 TransactionInput.getFromAddress() 現在不存在並且 getConnectedOutput().getAddressFromP2PKHScript() 已被棄用,我不知道哪種方法是正確的。

比特幣交易沒有發件人地址。

您所做的是推斷之前控制交易中涉及的部分或全部資金的地址。但:

  • 以前控制資金並不意味著您找到了發件人。如果硬幣由託管交易所持有,地址將是交易所,而不是資金的發送者。特別是,將硬幣寄回那裡不會使它們到達合適的人手中。
  • 交易可以由多個參與者共同建構。你只能猜測哪個是哪個。
  • 之前控制資金的腳本可能根本沒有關聯地址。

如果您想知道交易的發送者地址是什麼,請詢問發送者(例如,如果您需要退款地址,請在顯示付款地址之前詢問)。如果這不是您參與的交易,則可能與您無關。

public Address getFromAddress(TransactionInput txIn) {
   // get script from connected output
   TransactionOutput txOut = txIn.getConnectedOutput();
   Script txOutScript = txOut.getScriptPubKey();

   // get address from script
   Address fromAddress = txOutScript.getToAddress(MainNetParams.get());

   return fromAddress;
}

引用自:https://bitcoin.stackexchange.com/questions/84819