Skip to content
Closed
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
5 changes: 4 additions & 1 deletion crates/wallet/src/wallet/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -670,8 +670,11 @@ impl Wallet {
/// # let changeset = ChangeSet::default();
/// # let mut wallet = Wallet::load_from_changeset(changeset).expect("load wallet");
/// let next_address = wallet.reveal_next_address(KeychainKind::External);
/// if let Some(changeset) = wallet.take_staged() {
/// if let Some(changeset) = wallet.staged() {
/// // write staged wallet changes to db
/// db.write(&changeset)?;
/// // remove staged changes from wallet
/// wallet.take_staged();
/// }
///
/// // Now it's safe to show the user their next address!
Expand Down
10 changes: 6 additions & 4 deletions crates/wallet/tests/wallet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,9 @@ fn load_recovers_wallet() -> anyhow::Result<()> {

// persist new wallet changes
let mut db = create_new(&file_path).expect("must create db");
if let Some(changeset) = wallet.take_staged() {
write(&mut db, &changeset)?;
if let Some(changeset) = wallet.staged() {
write(&mut db, changeset)?;
wallet.take_staged();
}
wallet.spk_index().clone()
};
Expand Down Expand Up @@ -171,8 +172,9 @@ fn new_or_load() -> anyhow::Result<()> {
let wallet = &mut Wallet::new_or_load(desc, change_desc, None, Network::Testnet)
.expect("must init wallet");
let mut db = new_or_load(&file_path).expect("must create db");
if let Some(changeset) = wallet.take_staged() {
write(&mut db, &changeset)?;
if let Some(changeset) = wallet.staged() {
write(&mut db, changeset)?;
wallet.take_staged();
}
wallet.keychains().map(|(k, v)| (*k, v.clone())).collect()
};
Expand Down
10 changes: 6 additions & 4 deletions example-crates/wallet_electrum/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ fn main() -> Result<(), anyhow::Error> {
)?;

let address = wallet.next_unused_address(KeychainKind::External);
if let Some(changeset) = wallet.take_staged() {
db.append_changeset(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.append_changeset(changeset)?;
wallet.take_staged();
}
println!("Generated Address: {}", address);

Expand Down Expand Up @@ -73,8 +74,9 @@ fn main() -> Result<(), anyhow::Error> {
println!();

wallet.apply_update(update)?;
if let Some(changeset) = wallet.take_staged() {
db.append_changeset(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.append_changeset(changeset)?;
wallet.take_staged();
}

let balance = wallet.balance();
Expand Down
10 changes: 6 additions & 4 deletions example-crates/wallet_esplora_async/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ async fn main() -> Result<(), anyhow::Error> {
)?;

let address = wallet.next_unused_address(KeychainKind::External);
if let Some(changeset) = wallet.take_staged() {
db.write(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.write(changeset)?;
wallet.take_staged();
}
println!("Generated Address: {}", address);

Expand Down Expand Up @@ -79,8 +80,9 @@ async fn main() -> Result<(), anyhow::Error> {
let _ = update.graph_update.update_last_seen_unconfirmed(now);

wallet.apply_update(update)?;
if let Some(changeset) = wallet.take_staged() {
db.write(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.write(changeset)?;
wallet.take_staged();
}
println!();

Expand Down
10 changes: 6 additions & 4 deletions example-crates/wallet_esplora_blocking/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ fn main() -> Result<(), anyhow::Error> {
)?;

let address = wallet.next_unused_address(KeychainKind::External);
if let Some(changeset) = wallet.take_staged() {
db.append_changeset(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.append_changeset(changeset)?;
wallet.take_staged();
}
println!("Generated Address: {}", address);

Expand All @@ -56,8 +57,9 @@ fn main() -> Result<(), anyhow::Error> {
let _ = update.graph_update.update_last_seen_unconfirmed(now);

wallet.apply_update(update)?;
if let Some(changeset) = wallet.take_staged() {
db.append_changeset(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.append_changeset(changeset)?;
wallet.take_staged();
}
println!();

Expand Down
10 changes: 6 additions & 4 deletions example-crates/wallet_rpc/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,9 @@ fn main() -> anyhow::Result<()> {
let connected_to = block_emission.connected_to();
let start_apply_block = Instant::now();
wallet.apply_block_connected_to(&block_emission.block, height, connected_to)?;
if let Some(changeset) = wallet.take_staged() {
db.append_changeset(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.append_changeset(changeset)?;
wallet.take_staged();
}
let elapsed = start_apply_block.elapsed().as_secs_f32();
println!(
Expand All @@ -158,8 +159,9 @@ fn main() -> anyhow::Result<()> {
Emission::Mempool(mempool_emission) => {
let start_apply_mempool = Instant::now();
wallet.apply_unconfirmed_txs(mempool_emission.iter().map(|(tx, time)| (tx, *time)));
if let Some(changeset) = wallet.take_staged() {
db.append_changeset(&changeset)?;
if let Some(changeset) = wallet.staged() {
db.append_changeset(changeset)?;
wallet.take_staged();
}
println!(
"Applied unconfirmed transactions in {}s",
Expand Down