mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-11 12:22:39 -03:00
[rpc] [wallet] Add 'hdmasterkeyid' alias return values.
Restores the return value in getwalletinfo() and getaddressinfo() RPC methods for backwards compatibility
This commit is contained in:
parent
c75c351419
commit
79053a5f2b
3 changed files with 11 additions and 1 deletions
|
@ -2926,6 +2926,7 @@ static UniValue getwalletinfo(const JSONRPCRequest& request)
|
|||
" \"unlocked_until\": ttt, (numeric) the timestamp in seconds since epoch (midnight Jan 1 1970 GMT) that the wallet is unlocked for transfers, or 0 if the wallet is locked\n"
|
||||
" \"paytxfee\": x.xxxx, (numeric) the transaction fee configuration, set in " + CURRENCY_UNIT + "/kB\n"
|
||||
" \"hdseedid\": \"<hash160>\" (string, optional) the Hash160 of the HD seed (only present when HD is enabled)\n"
|
||||
" \"hdmasterkeyid\": \"<hash160>\" (string, optional) alias for hdseedid retained for backwards-compatibility. Will be removed in V0.18.\n"
|
||||
"}\n"
|
||||
"\nExamples:\n"
|
||||
+ HelpExampleCli("getwalletinfo", "")
|
||||
|
@ -2957,8 +2958,10 @@ static UniValue getwalletinfo(const JSONRPCRequest& request)
|
|||
obj.pushKV("unlocked_until", pwallet->nRelockTime);
|
||||
}
|
||||
obj.pushKV("paytxfee", ValueFromAmount(pwallet->m_pay_tx_fee.GetFeePerK()));
|
||||
if (!seed_id.IsNull())
|
||||
if (!seed_id.IsNull()) {
|
||||
obj.pushKV("hdseedid", seed_id.GetHex());
|
||||
obj.pushKV("hdmasterkeyid", seed_id.GetHex());
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
@ -3955,6 +3958,7 @@ UniValue getaddressinfo(const JSONRPCRequest& request)
|
|||
" \"timestamp\" : timestamp, (number, optional) The creation time of the key if available in seconds since epoch (Jan 1 1970 GMT)\n"
|
||||
" \"hdkeypath\" : \"keypath\" (string, optional) The HD keypath if the key is HD and available\n"
|
||||
" \"hdseedid\" : \"<hash160>\" (string, optional) The Hash160 of the HD seed\n"
|
||||
" \"hdmasterkeyid\" : \"<hash160>\" (string, optional) alias for hdseedid maintained for backwards compatibility. Will be removed in V0.18.\n"
|
||||
" \"labels\" (object) Array of labels associated with the address.\n"
|
||||
" [\n"
|
||||
" { (json object of label data)\n"
|
||||
|
@ -4015,6 +4019,7 @@ UniValue getaddressinfo(const JSONRPCRequest& request)
|
|||
if (!meta->hdKeypath.empty()) {
|
||||
ret.pushKV("hdkeypath", meta->hdKeypath);
|
||||
ret.pushKV("hdseedid", meta->hd_seed_id.GetHex());
|
||||
ret.pushKV("hdmasterkeyid", meta->hd_seed_id.GetHex());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ class WalletHDTest(BitcoinTestFramework):
|
|||
|
||||
# Make sure we use hd, keep masterkeyid
|
||||
masterkeyid = self.nodes[1].getwalletinfo()['hdseedid']
|
||||
assert_equal(masterkeyid, self.nodes[1].getwalletinfo()['hdmasterkeyid'])
|
||||
assert_equal(len(masterkeyid), 40)
|
||||
|
||||
# create an internal key
|
||||
|
@ -55,6 +56,7 @@ class WalletHDTest(BitcoinTestFramework):
|
|||
hd_info = self.nodes[1].getaddressinfo(hd_add)
|
||||
assert_equal(hd_info["hdkeypath"], "m/0'/0'/"+str(i)+"'")
|
||||
assert_equal(hd_info["hdseedid"], masterkeyid)
|
||||
assert_equal(hd_info["hdmasterkeyid"], masterkeyid)
|
||||
self.nodes[0].sendtoaddress(hd_add, 1)
|
||||
self.nodes[0].generate(1)
|
||||
self.nodes[0].sendtoaddress(non_hd_add, 1)
|
||||
|
@ -84,6 +86,7 @@ class WalletHDTest(BitcoinTestFramework):
|
|||
hd_info_2 = self.nodes[1].getaddressinfo(hd_add_2)
|
||||
assert_equal(hd_info_2["hdkeypath"], "m/0'/0'/"+str(i)+"'")
|
||||
assert_equal(hd_info_2["hdseedid"], masterkeyid)
|
||||
assert_equal(hd_info_2["hdmasterkeyid"], masterkeyid)
|
||||
assert_equal(hd_add, hd_add_2)
|
||||
connect_nodes_bi(self.nodes, 0, 1)
|
||||
self.sync_all()
|
||||
|
|
|
@ -16,6 +16,7 @@ class KeyPoolTest(BitcoinTestFramework):
|
|||
addr_before_encrypting = nodes[0].getnewaddress()
|
||||
addr_before_encrypting_data = nodes[0].getaddressinfo(addr_before_encrypting)
|
||||
wallet_info_old = nodes[0].getwalletinfo()
|
||||
assert_equal(wallet_info_old['hdseedid'], wallet_info_old['hdmasterkeyid'])
|
||||
assert(addr_before_encrypting_data['hdseedid'] == wallet_info_old['hdseedid'])
|
||||
|
||||
# Encrypt wallet and wait to terminate
|
||||
|
@ -26,6 +27,7 @@ class KeyPoolTest(BitcoinTestFramework):
|
|||
addr = nodes[0].getnewaddress()
|
||||
addr_data = nodes[0].getaddressinfo(addr)
|
||||
wallet_info = nodes[0].getwalletinfo()
|
||||
assert_equal(wallet_info['hdseedid'], wallet_info['hdmasterkeyid'])
|
||||
assert(addr_before_encrypting_data['hdseedid'] != wallet_info['hdseedid'])
|
||||
assert(addr_data['hdseedid'] == wallet_info['hdseedid'])
|
||||
assert_raises_rpc_error(-12, "Error: Keypool ran out, please call keypoolrefill first", nodes[0].getnewaddress)
|
||||
|
|
Loading…
Reference in a new issue