Merge #818: Add derivation_index to GetAddressResult

33384c89b5cdaec9d4a477644609ff0d1508cf9f Add derivation_index to GetAddressResult (edouardparis)

Pull request description:

  My bad, i pushed my fixes in a rush in #815 and wrecked the PR.

ACKs for top commit:
  darosior:
    ACK 33384c89b5cdaec9d4a477644609ff0d1508cf9f

Tree-SHA512: 5f18506a84ff10fbe13757c2522b11a7ec005243f8698425f1d761d4b36378c256150d3d8337fefc1938232990004bbd629878b42b032b1dd0349d593a39386d
This commit is contained in:
Antoine Poinsot 2023-11-16 18:13:42 +01:00
commit 514535d8d6
No known key found for this signature in database
GPG Key ID: E13FC145CD3F4304
2 changed files with 14 additions and 12 deletions

View File

@ -306,7 +306,7 @@ impl DaemonControl {
.receive_descriptor()
.derive(index, &self.secp)
.address(self.config.bitcoin_config.network);
GetAddressResult::new(address)
GetAddressResult::new(address, index)
}
/// list addresses
@ -945,7 +945,17 @@ pub struct GetInfoResult {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetAddressResult {
#[serde(deserialize_with = "deser_addr_assume_checked")]
address: bitcoin::Address,
pub address: bitcoin::Address,
pub derivation_index: bip32::ChildNumber,
}
impl GetAddressResult {
pub fn new(address: bitcoin::Address, derivation_index: bip32::ChildNumber) -> Self {
Self {
address,
derivation_index,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
@ -953,16 +963,6 @@ pub struct GetLabelsResult {
pub labels: HashMap<String, String>,
}
impl GetAddressResult {
pub fn new(address: bitcoin::Address) -> Self {
Self { address }
}
pub fn address(&self) -> &bitcoin::Address {
&self.address
}
}
#[derive(Debug, Clone, Serialize, PartialEq, Eq)]
pub struct AddressInfo {
index: u32,

View File

@ -35,6 +35,8 @@ def test_getaddress(lianad):
assert "address" in res
# We'll get a new one at every call
assert res["address"] != lianad.rpc.getnewaddress()["address"]
# new address has derivation_index higher than the previous one
assert lianad.rpc.getnewaddress()["derivation_index"] == res["derivation_index"] + 2
def test_listaddresses(lianad):