使用 importmulti 獲取新地址
我有一個關於比特幣核心錢包如何使用描述符的問題。
我正在使用該
createwallet
方法創建一個錢包並傳入一個名稱(所有其他參數都是預設值)。然後我使用
importmulti
和wsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum
當我執行
deriveaddresses
時,wsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum
我得到了預期的地址作為輸出,但是當我在執行getnewaddress
後執行命令時importmulti
,我得到一個地址,但沒有任何從deriveaddresses
.然後我注意到創建錢包時有一個
disable_private_keys
選項,所以我使用該標誌設置了一個新錢包。我在導入 multi 時再次完成設置過程,
keypool=true
但是當我執行時getnewaddress
我得到"Error: This wallet has no available keys"
. importmulti 呼叫返回,當我嘗試執行該命令兩次時success: true
,我進入了我的日誌。Already have script 522103b403e66...
getnewaddress
不適用於描述符?還是我設置的錢包不正確?我看到blank
創建錢包時有一個參數要傳入,但是當我嘗試並導入時,我也得到Error: This wallet has no available keys
了。我希望
getnewaddress
輸出從新deriveaddresses
錢包返回的第一個地址。我是否忽略了文件中的某些內容?我也查看了這些文件,我想我已經完全遵循了它們: https ://gist.github.com/achow101/a9cf757d45df56753fae9d65db4d6e1d
使用內部設置為 true 的 importmulti 不會添加任何更改鍵。我究竟做錯了什麼?
使用“importmulti”+描述符將多重簽名更改地址導入比特幣核心
創建帶有空白密鑰池的錢包然後向其中添加密鑰的最佳方法是什麼?
謝謝!
getnewaddress
在非描述符錢包上不適用於非單鍵的東西。廣告描述符錢包尚未發布,您沒有使用描述符錢包。當您使用importmulti
導入描述符時,它實際上並不導入描述符。相反,它使用描述符來構造一堆密鑰和腳本並將它們導入錢包。然而,這並不意味著這些腳本可以通過getnewaddress
. 他們只是在錢包裡被監視。你沒有做錯任何事,
getnewaddress
只是對非描述符錢包不起作用。如果您製作了一個
descriptor
錢包(使用 0.21.0 候選版本之一,或主分支的建構),那麼getnewaddress
它將按您的預期工作。