|
1 | 1 | use std::str::FromStr; |
2 | 2 |
|
3 | 3 | use criterion::{black_box, criterion_group, criterion_main, Criterion}; |
4 | | -use elements::Address; |
| 4 | +use elements::{pset::PartiallySignedTransaction, Address}; |
| 5 | +use elements_miniscript::{ConfidentialDescriptor, DescriptorPublicKey}; |
5 | 6 | use lwk_wollet::{ElementsNetwork, NoPersist, Update, Wollet, WolletDescriptor}; |
6 | 7 |
|
7 | | -criterion_group!(benches, wollet, address); |
| 8 | +criterion_group!(benches, wollet, address, pset); |
8 | 9 | criterion_main!(benches); |
9 | 10 |
|
10 | 11 | pub fn wollet(c: &mut Criterion) { |
@@ -87,6 +88,26 @@ pub fn address(c: &mut Criterion) { |
87 | 88 | }); |
88 | 89 | } |
89 | 90 |
|
| 91 | +pub fn pset(c: &mut Criterion) { |
| 92 | + c.benchmark_group("pset") |
| 93 | + .bench_function("pset_balance", |b: &mut criterion::Bencher<'_>| { |
| 94 | + let desc_str = include_str!("../../lwk_common/test_data/pset_details/descriptor"); |
| 95 | + let desc: ConfidentialDescriptor<DescriptorPublicKey> = desc_str.parse().unwrap(); |
| 96 | + let pset_str = include_str!("../../lwk_common/test_data/pset_details/pset.base64"); |
| 97 | + let pset: PartiallySignedTransaction = pset_str.parse().unwrap(); |
| 98 | + b.iter(|| { |
| 99 | + let balance = lwk_common::pset_balance( |
| 100 | + &pset, |
| 101 | + &desc, |
| 102 | + &elements::AddressParams::LIQUID_TESTNET, |
| 103 | + ) |
| 104 | + .unwrap(); |
| 105 | + |
| 106 | + black_box(balance); |
| 107 | + }); |
| 108 | + }); |
| 109 | +} |
| 110 | + |
90 | 111 | // duplicated from tests/test_wollet.rs |
91 | 112 | pub fn test_wollet_with_many_transactions() -> Wollet { |
92 | 113 | let update = lwk_test_util::update_test_vector_many_transactions(); |
|
0 commit comments