Electrum
如何將 Electrum 錢包導入 BitcoinJ?
我正在嘗試創建一個基於 BitcoinJ 的應用程序,該應用程序可以監視現有錢包(在 Electrum 中創建)並在針對該錢包進行交易時執行操作。
據我了解,我需要通過將我的 Electrum 錢包的“監視密鑰”提供給它來創建一個 BitcoinJ 錢包,看來,要做到這一點,我需要以某種方式將我的 Electrum 錢包載入到 BitcoinJ 中,以便我可以呼叫
getWatchingKey()
它。問題是我無法弄清楚如何將我的 Electrum 錢包導入 BitcoinJ - 我有 BIP32 格式的公鑰和私鑰字元串(來自測試網,因此它們分別以
tpub
和開頭tpriv
),但我根本無法弄清楚如何將這些字元串轉換為BitcoinJ 中的錢包對象。任何幫助將不勝感激。編輯
或者,我可以使用種子導入密鑰……但我應該提供種子的創建時間(以 Unix 形式)……該資訊用於什麼?我沒有它,所以我一直在假設我不能使用種子的情況下工作。
如<https://bitcoinj.github.io/working-with-the-wallet>所述:
“在這種情況下,‘監視密鑰’是 BIP32 帳戶零密鑰的公開形式,即它是從主節點派生的第一個密鑰。”
我還認為它是主公鑰,但它是第一個(或第 0 個)派生密鑰。
希望這可以幫助。
編輯:
為了回答您的最後一個問題,種子的創建時間被用作 BitcoinJ 何時開始搜尋交易的提示。如果您可以訪問 Electrum 錢包上的第一筆交易,請使用該大致時間。
當我試圖通過 BitcoinJ 應用程序訪問我的錢包時,我遇到了同樣的問題(仍然無法達到我的餘額)。
儘管我的比特幣地址已經從我的私鑰成功創建,但我仍然無法訪問我的資金。我不知道為什麼。
這是我的程式碼,希望對你有幫助:
//create my ECKey DumpedPrivateKey dumpPrivKey = null; try { dumpPrivKey = new DumpedPrivateKey(params, "your private key. You can reach it by calling the dumpprivkey RPC command in Bitcoin-Core console"); } catch (AddressFormatException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } ECKey myKey=dumpPrivKey.getKey(); Address bitcoinAddress=myKey.toAddress(params); System.out.println("My bitcoin address is : " +bitcoinAddress); //the Main network address Coin coin =wallet.getBalance(); System.out.println("My bitcoin balance is: " +coin); //the balance