Skip to content

Commit

Permalink
feat(cli): enable wallet to receive transfer or cashnote
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuef committed Jun 3, 2024
1 parent e27d8d1 commit a3f1322
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions sn_cli/src/bin/subcommands/wallet/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
use base64::Engine;
use color_eyre::Result;
use sn_client::acc_packet::load_account_wallet_or_create_with_mnemonic;
use sn_client::transfers::Transfer;
use sn_client::transfers::{CashNote, Transfer};
use sn_client::Client;
use std::path::Path;
use url::Url;
Expand Down Expand Up @@ -118,17 +118,33 @@ pub async fn receive(
root_dir: &Path,
) -> Result<()> {
let transfer = if is_file {
std::fs::read_to_string(transfer)?.trim().to_string()
let transfer_file_path = Path::new(&transfer);
std::fs::read_to_string(transfer_file_path)?
.trim()
.to_string()
} else {
transfer
};

println!("Parsing transfer... {transfer:?}");
let transfer = match Transfer::from_hex(&transfer) {
Ok(transfer) => transfer,
Err(err) => {
println!("Failed to parse transfer: {err:?}");
println!("Transfer: \"{transfer}\"");
return Err(err.into());

// try as a CashNote
match CashNote::from_hex(&transfer) {
Ok(cash_note) => {
println!("Parsed transfer as a CashNote!");
Transfer::transfer_from_cash_note(&cash_note)?
}
Err(err) => {
println!(
"Failed to parse transfer \"{transfer}\" as Transfer or CashNote: {err:?}"
);
return Err(err.into());
}
}
}
};
println!("Successfully parsed transfer. ");
Expand Down

0 comments on commit a3f1322

Please sign in to comment.