Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ page. See [DEVELOPMENT_CYCLE.md](DEVELOPMENT_CYCLE.md) for more details.
- Fixed `warn!` messages, including the mainnet notice, being hidden unless `RUST_LOG` was set; warnings are now shown by default
- Added `hwi` feature with a hardware wallet `hwi` command to list connected devices, register a wallet policy, display a receive address, and sign PSBTs. Supports Ledger, Coldcard, BitBox02, Jade and Specter.
- Replaced plain `wallets` with `wallets list`, and added `wallets delete <wallet_name>` for unused saved wallet configurations.
- Changed unused address output to a list

## [4.0.0]

Expand Down
9 changes: 6 additions & 3 deletions src/handlers/offline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,12 +111,15 @@ impl AppCommand<AppContext<OfflineOperations<'_>>> for NewAddressCommand {
pub struct UnusedAddressCommand;

impl AppCommand<AppContext<OfflineOperations<'_>>> for UnusedAddressCommand {
type Output = AddressResult;
type Output = ListResult<AddressResult>;

fn execute(&self, ctx: &mut AppContext<OfflineOperations<'_>>) -> Result<Self::Output, Error> {
let wallet = &mut ctx.state.wallet;
let address_info = wallet.next_unused_address(KeychainKind::External);
Ok(AddressResult::from(address_info))
let address_info = wallet
.list_unused_addresses(KeychainKind::External)
.map(AddressResult::from)
.collect();
Ok(ListResult::new(address_info))
}
}

Expand Down
9 changes: 8 additions & 1 deletion tests/integration/offline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,20 @@ mod test_offline {
let (cli, mut cmd_init) = setup_wallet_config();
cmd_init.assert().success();

// `unused-address` before revealing an address
cli.wallet_cmd(&["--wallet", WALLET_NAME, "unused_address"])
.assert()
.success()
.stdout(predicate::str::contains("\"count\""))
.stdout(predicate::str::contains("\"items\": []"));

// new address
cli.wallet_cmd(&["--wallet", WALLET_NAME, "new_address"])
.assert()
.success()
.stdout(predicate::str::contains("\"address\":"));

// `unused-address`
// `unused-address` now returns the revealed, unused address
cli.wallet_cmd(&["--wallet", WALLET_NAME, "unused_address"])
.assert()
.success()
Expand Down