Skip to content

Commit 0ec064e

Browse files
committed
Use AddressInfo in private methods
1 parent 6b60914 commit 0ec064e

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/wallet/mod.rs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ where
227227
D: BatchDatabase,
228228
{
229229
// Return a newly derived address using the external descriptor
230-
fn get_new_address(&self) -> Result<(Address, u32), Error> {
230+
fn get_new_address(&self) -> Result<AddressInfo, Error> {
231231
let incremented_index = self.fetch_and_increment_index(KeychainKind::External)?;
232232

233233
let address_result = self
@@ -236,13 +236,16 @@ where
236236
.address(self.network);
237237

238238
address_result
239-
.map(|address| (address, incremented_index))
239+
.map(|address| AddressInfo {
240+
address,
241+
index: incremented_index,
242+
})
240243
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
241244
}
242245

243246
// Return the the last previously derived address if it has not been used in a received
244247
// transaction. Otherwise return a new address using [`Wallet::get_new_address`].
245-
fn get_unused_address(&self) -> Result<(Address, u32), Error> {
248+
fn get_unused_address(&self) -> Result<AddressInfo, Error> {
246249
let current_index = self.fetch_index(KeychainKind::External)?;
247250

248251
let derived_key = self.descriptor.as_derived(current_index, &self.secp);
@@ -261,44 +264,45 @@ where
261264
} else {
262265
derived_key
263266
.address(self.network)
264-
.map(|address| (address, current_index))
267+
.map(|address| AddressInfo {
268+
address,
269+
index: current_index,
270+
})
265271
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
266272
}
267273
}
268274

269275
// Return derived address for the external descriptor at a specific index
270-
fn peek_address(&self, index: u32) -> Result<(Address, u32), Error> {
276+
fn peek_address(&self, index: u32) -> Result<AddressInfo, Error> {
271277
self.descriptor
272278
.as_derived(index, &self.secp)
273279
.address(self.network)
274-
.map(|address| (address, index))
280+
.map(|address| AddressInfo { address, index })
275281
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
276282
}
277283

278284
// Return derived address for the external descriptor at a specific index and reset current
279285
// address index
280-
fn reset_address(&self, index: u32) -> Result<(Address, u32), Error> {
286+
fn reset_address(&self, index: u32) -> Result<AddressInfo, Error> {
281287
self.set_index(KeychainKind::External, index)?;
282288

283289
self.descriptor
284290
.as_derived(index, &self.secp)
285291
.address(self.network)
286-
.map(|address| (address, index))
292+
.map(|address| AddressInfo { address, index })
287293
.map_err(|_| Error::ScriptDoesntHaveAddressForm)
288294
}
289295

290296
/// Return a derived address using the external descriptor, see [`AddressIndex`] for
291297
/// available address index selection strategies. If none of the keys in the descriptor are derivable
292298
/// (ie. does not end with /*) then the same address will always be returned for any [`AddressIndex`].
293299
pub fn get_address(&self, address_index: AddressIndex) -> Result<AddressInfo, Error> {
294-
let result = match address_index {
300+
match address_index {
295301
AddressIndex::New => self.get_new_address(),
296302
AddressIndex::LastUnused => self.get_unused_address(),
297303
AddressIndex::Peek(index) => self.peek_address(index),
298304
AddressIndex::Reset(index) => self.reset_address(index),
299-
};
300-
301-
result.map(|(address, index)| AddressInfo { index, address })
305+
}
302306
}
303307

304308
/// Return whether or not a `script` is part of this wallet (either internal or external)

0 commit comments

Comments
 (0)