#![doc = include_str!("../README.md")]
#![no_std]
#![warn(missing_docs)]
#![deny(unsafe_code)]
#[allow(unused_imports)]
#[macro_use]
extern crate alloc;
#[cfg(feature = "std")]
#[macro_use]
extern crate std;
mod coin_selector;
pub mod float;
pub use coin_selector::*;
mod bnb;
pub use bnb::*;
pub mod metrics;
mod feerate;
pub use feerate::*;
mod target;
pub use target::*;
mod drain;
pub use drain::*;
pub const TXIN_BASE_WEIGHT: u64 = (32 + 4 + 4 + 1) * 4;
#[allow(clippy::identity_op)]
pub const TXOUT_BASE_WEIGHT: u64 =
4 * core::mem::size_of::<u64>() as u64
+ (4 * 1);
pub const TX_FIXED_FIELD_WEIGHT: u64 = (4 + 4) * 4;
pub const TR_KEYSPEND_SATISFACTION_WEIGHT: u64 = 1 + 1 + 64 ;
pub const TR_SPK_WEIGHT: u64 = (1 + 1 + 32) * 4;
pub const TR_KEYSPEND_TXIN_WEIGHT: u64 = TXIN_BASE_WEIGHT + TR_KEYSPEND_SATISFACTION_WEIGHT;
pub const TR_DUST_RELAY_MIN_VALUE: u64 = 330;
const fn varint_size(v: usize) -> u64 {
if v <= 0xfc {
return 1;
}
if v <= 0xffff {
return 3;
}
if v <= 0xffff_ffff {
return 5;
}
9
}
#[allow(unused)]
fn txout_weight_from_spk_len(spk_len: usize) -> u64 {
(TXOUT_BASE_WEIGHT + varint_size(spk_len) + (spk_len as u64)) * 4
}