Skip to content

Commit

Permalink
docs(wallet): update docs and examples to persist staged then take_st…
Browse files Browse the repository at this point in the history
…aged
  • Loading branch information
notmandatory committed Jun 19, 2024
1 parent 0543801 commit 4fca722
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 21 deletions.
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

0 comments on commit 4fca722

Please sign in to comment.