From b36d00f3be5d05074d72fd569b00416f99a9e1f6 Mon Sep 17 00:00:00 2001 From: Dr Maxim Orlovsky Date: Fri, 20 Sep 2024 20:33:51 +0200 Subject: [PATCH] cli: sort history --- Cargo.lock | 6 +++--- cli/src/command.rs | 15 +++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9910d6b..94b0831 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1126,7 +1126,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "rgb-invoice" version = "0.11.0-beta.8" -source = "git+https://github.com/RGB-WG/rgb-std?branch=fix/rgb-252#77f6ab81aadf09c04869fab1fa33eaa8b3b9366e" +source = "git+https://github.com/RGB-WG/rgb-std?branch=fix/rgb-252#2c915f82b1cc3e3d7845696f085bc6dbe32b17bb" dependencies = [ "amplify", "baid64", @@ -1481,7 +1481,7 @@ dependencies = [ [[package]] name = "rgb-std" version = "0.11.0-beta.8" -source = "git+https://github.com/RGB-WG/rgb-std?branch=fix/rgb-252#77f6ab81aadf09c04869fab1fa33eaa8b3b9366e" +source = "git+https://github.com/RGB-WG/rgb-std?branch=fix/rgb-252#2c915f82b1cc3e3d7845696f085bc6dbe32b17bb" dependencies = [ "aluvm", "amplify", diff --git a/cli/src/command.rs b/cli/src/command.rs index 07f1055..4a1e6e3 100644 --- a/cli/src/command.rs +++ b/cli/src/command.rs @@ -41,7 +41,7 @@ use rgb::persistence::{MemContract, StashReadProvider, Stock}; use rgb::resolvers::ContractIssueResolver; use rgb::schema::SchemaId; use rgb::validation::Validity; -use rgb::vm::RgbIsa; +use rgb::vm::{RgbIsa, WitnessOrd}; use rgb::{ BundleId, ContractId, DescriptorRgb, GenesisSeal, GraphSeal, Identity, OpId, OutputSeal, RgbDescr, RgbKeychain, RgbWallet, StateType, TransferParams, WalletError, WalletProvider, @@ -364,7 +364,8 @@ impl Exec for RgbArgs { ControlFlow::Break(_) => return Ok(()), }, }; - let history = wallet.history(*contract_id, iface)?; + let mut history = wallet.history(*contract_id, iface)?; + history.sort_by_key(|op| op.witness.map(|w| w.ord).unwrap_or(WitnessOrd::Archived)); if *details { println!("Operation\tValue\tState\tSeal\tWitness\tOpIds"); } else { @@ -379,11 +380,11 @@ impl Exec for RgbArgs { witness, } in history { - print!("{direction:<9}\t"); + print!("{:9}\t", direction.to_string()); if let AllocatedState::Amount(amount) = state { - print!("{:>9}", amount.value()); + print!("{: >9}", amount.value()); } else { - print!("{state}"); + print!("{state:>9}"); } if *details { print!("\t{ty}"); @@ -582,7 +583,9 @@ impl Exec for RgbArgs { Filter::WalletAll(rgb) if rgb.wallet().is_unspent(outpoint) => { "-- unspent" } - Filter::WalletAll(_) => "-- spent", + Filter::WalletAll(rgb) if rgb.wallet().has_outpoint(outpoint) => { + "-- spent" + } _ => "-- third-party", } }