Skip to content

Commit 7e141b6

Browse files
committed
Merge rust-bitcoin#261: add get raw change address
078ae14 get raw change address (thesimplekid) Pull request description: ACKs for top commit: apoelstra: ACK 078ae14 w0xlt: ACK rust-bitcoin@078ae14 Tree-SHA512: b7ca1c44ef6888caeaa7904c575bb10debc7a965cfba5b27f6bbbcb31239140184e613e755bda8408078f51ee370fb415bcc1bd7a36681ac090e22b4a5f548e0
2 parents 9e6dff7 + 078ae14 commit 7e141b6

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

client/src/client.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -886,6 +886,11 @@ pub trait RpcApi: Sized {
886886
self.call("getnewaddress", &[opt_into_json(label)?, opt_into_json(address_type)?])
887887
}
888888

889+
/// Generate new address for receiving change
890+
fn get_raw_change_address(&self, address_type: Option<json::AddressType>) -> Result<Address> {
891+
self.call("getrawchangeaddress", &[opt_into_json(address_type)?])
892+
}
893+
889894
fn get_address_info(&self, address: &Address) -> Result<json::GetAddressInfoResult> {
890895
self.call("getaddressinfo", &[address.to_string().into()])
891896
}

integration_test/src/main.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ fn main() {
136136
test_get_mining_info(&cl);
137137
test_get_blockchain_info(&cl);
138138
test_get_new_address(&cl);
139+
test_get_raw_change_address(&cl);
139140
test_dump_private_key(&cl);
140141
test_generate(&cl);
141142
test_get_balance_generate_to_address(&cl);
@@ -241,6 +242,17 @@ fn test_get_new_address(cl: &Client) {
241242
assert_eq!(addr.address_type(), Some(bitcoin::AddressType::P2sh));
242243
}
243244

245+
fn test_get_raw_change_address(cl: &Client) {
246+
let addr = cl.get_raw_change_address(Some(json::AddressType::Legacy)).unwrap();
247+
assert_eq!(addr.address_type(), Some(bitcoin::AddressType::P2pkh));
248+
249+
let addr = cl.get_raw_change_address(Some(json::AddressType::Bech32)).unwrap();
250+
assert_eq!(addr.address_type(), Some(bitcoin::AddressType::P2wpkh));
251+
252+
let addr = cl.get_raw_change_address(Some(json::AddressType::P2shSegwit)).unwrap();
253+
assert_eq!(addr.address_type(), Some(bitcoin::AddressType::P2sh));
254+
}
255+
244256
fn test_dump_private_key(cl: &Client) {
245257
let addr = cl.get_new_address(None, Some(json::AddressType::Bech32)).unwrap();
246258
let sk = cl.dump_private_key(&addr).unwrap();

0 commit comments

Comments
 (0)