Bitcoin-Core

如何從可用的 xPub 密鑰創建觀看地址

  • December 24, 2021

Watch-only 錢包只能接收付款,但不能花費可用的硬幣。我正在使用 bitcoinj(在 Java 中)。

誰能告訴我如何從可用的 xPub 密鑰創建觀看地址?錢包在哪裡可以接收付款?以及如何檢查與特定 xPub 密鑰相關的觀看地址列表。提前致謝

要從擴展公鑰生成僅限手錶錢包的地址,首先您需要先使用該擴展公鑰創建僅限手錶錢包。然後您可以簡單地從中一一推導出地址。

範常式式碼如下所示:

// 指定主網或測試網的網路參數
NetworkParameters 參數 = NetworkParameters.prodNet();

// 提供要從中派生地址的公鑰
字元串 xPub = "xpub6Cw8YA6Mko3xfkYpMQDZjGjgDTWUrJr87NBSiDPXqcmcSJTgxLXm3VCw3iQs4iC5ZrwpY3M21a43DZmiMzDXWzzhF1n7yxSXDnEHjJN6jwK";

// 在 Wallet 類的幫助下創建監視錢包
錢包錢包 = Wallet.fromWatchingKeyB58(params, xPub, DeterministicHierarchy.BIP32_STANDARDISATION_TIME_SECS);

// 從提供的公鑰列印第一個派生地址
System.out.println("收款地址:" + wallet.currentReceiveAddress());

輸出將是:

1L23PHmL38qjqbs75doB1VTSL3CKPwkPbC

您可以從https://iancoleman.io/bip39/及其所有特定派生地址獲取公鑰。您可以從那裡比較您第一個生成的地址,以確保您獲得正確的地址。

如果要獲取前 20 個或 30 個地址,則可以在循環中使用給定行。提供高達 20 或 30(您想要的)的循環限制。

// Run this statement in a loop, where i is the loop variable.
System.out.println(i + " : " + wallet.freshReceiveAddress());

您可以再次從https://iancoleman.io/bip39/比較這些地址

祝你好運!

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