mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-04-25 15:19:58 -07:00
parser: removed liquidity split for everything but all addresses
This commit is contained in:
9
parser/src/structs/address_liquidity.rs
Normal file
9
parser/src/structs/address_liquidity.rs
Normal file
@@ -0,0 +1,9 @@
|
||||
use allocative::Allocative;
|
||||
|
||||
#[derive(Default, Allocative, Clone, Copy)]
|
||||
pub enum AddressLiquidity {
|
||||
#[default]
|
||||
Illiquid,
|
||||
Liquid,
|
||||
HighlyLiquid,
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
use allocative::Allocative;
|
||||
|
||||
use super::{AddressSize, AddressType};
|
||||
use super::{AddressLiquidity, AddressSize, AddressType};
|
||||
|
||||
#[derive(Default, Allocative)]
|
||||
pub enum AddressSplit {
|
||||
@@ -8,4 +8,5 @@ pub enum AddressSplit {
|
||||
All,
|
||||
Type(AddressType),
|
||||
Size(AddressSize),
|
||||
Liquidity(AddressLiquidity),
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ use std::fs::{self};
|
||||
use clap::Parser;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::log;
|
||||
|
||||
#[derive(Parser, Debug, Clone, Default, Serialize, Deserialize)]
|
||||
#[command(version, about, long_about = None)]
|
||||
pub struct Config {
|
||||
@@ -40,9 +42,9 @@ pub struct Config {
|
||||
}
|
||||
|
||||
impl Config {
|
||||
const PATH: &'static str = "config.toml";
|
||||
const PATH: &'static str = "./config.toml";
|
||||
|
||||
pub fn import() -> Self {
|
||||
pub fn import() -> color_eyre::Result<Self> {
|
||||
let mut config_saved = fs::read_to_string(Self::PATH)
|
||||
.map_or(Config::default(), |contents| {
|
||||
toml::from_str(&contents).unwrap_or_default()
|
||||
@@ -56,14 +58,10 @@ impl Config {
|
||||
|
||||
if let Some(rpcconnect) = config_args.rpcconnect {
|
||||
config_saved.rpcconnect = Some(rpcconnect);
|
||||
} else {
|
||||
config_saved.rpcconnect = Some("localhost".to_string())
|
||||
}
|
||||
|
||||
if let Some(rpcport) = config_args.rpcport {
|
||||
config_saved.rpcport = Some(rpcport);
|
||||
} else {
|
||||
config_saved.rpcport = Some(8332);
|
||||
}
|
||||
|
||||
if let Some(rpcuser) = config_args.rpcuser {
|
||||
@@ -84,9 +82,21 @@ impl Config {
|
||||
|
||||
config.check();
|
||||
|
||||
config.write().unwrap();
|
||||
config.write()?;
|
||||
|
||||
config
|
||||
log("---");
|
||||
log("Configuration:");
|
||||
log(&format!("datadir: {:?}", config.datadir));
|
||||
log(&format!("rpcconnect: {:?}", config.rpcconnect));
|
||||
log(&format!("rpcport: {:?}", config.rpcport));
|
||||
log(&format!("rpcuser: {:?}", config.rpcuser));
|
||||
log(&format!("rpcpassword: {:?}", config.rpcpassword));
|
||||
log(&format!("delay: {:?}", config.delay));
|
||||
log(&format!("dry_run: {}", config.dry_run));
|
||||
log(&format!("record_ram_usage: {}", config.record_ram_usage));
|
||||
log("---");
|
||||
|
||||
Ok(config)
|
||||
}
|
||||
|
||||
fn check(&self) {
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
use std::{
|
||||
f64::consts::E,
|
||||
ops::{AddAssign, SubAssign},
|
||||
};
|
||||
use std::f64::consts::E;
|
||||
|
||||
use allocative::Allocative;
|
||||
|
||||
use super::Amount;
|
||||
use super::{AddressLiquidity, Amount};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct LiquidityClassification {
|
||||
@@ -97,37 +92,12 @@ pub struct LiquiditySplitResult {
|
||||
pub highly_liquid: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, PartialEq, PartialOrd, Clone, Copy, Allocative)]
|
||||
pub struct SplitByLiquidity<T>
|
||||
where
|
||||
T: Default,
|
||||
{
|
||||
pub all: T,
|
||||
pub illiquid: T,
|
||||
pub liquid: T,
|
||||
pub highly_liquid: T,
|
||||
}
|
||||
|
||||
impl<T> AddAssign for SplitByLiquidity<T>
|
||||
where
|
||||
T: AddAssign + Default,
|
||||
{
|
||||
fn add_assign(&mut self, rhs: Self) {
|
||||
self.all += rhs.all;
|
||||
self.illiquid += rhs.illiquid;
|
||||
self.liquid += rhs.liquid;
|
||||
self.highly_liquid += rhs.highly_liquid;
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> SubAssign for SplitByLiquidity<T>
|
||||
where
|
||||
T: SubAssign + Default,
|
||||
{
|
||||
fn sub_assign(&mut self, rhs: Self) {
|
||||
self.all -= rhs.all;
|
||||
self.illiquid -= rhs.illiquid;
|
||||
self.liquid -= rhs.liquid;
|
||||
self.highly_liquid -= rhs.highly_liquid;
|
||||
impl LiquiditySplitResult {
|
||||
pub fn from(&self, address_liquidity: AddressLiquidity) -> f64 {
|
||||
match address_liquidity {
|
||||
AddressLiquidity::Illiquid => self.illiquid,
|
||||
AddressLiquidity::Liquid => self.liquid,
|
||||
AddressLiquidity::HighlyLiquid => self.highly_liquid,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
mod address;
|
||||
mod address_data;
|
||||
mod address_liquidity;
|
||||
mod address_realized_data;
|
||||
mod address_size;
|
||||
mod address_split;
|
||||
@@ -33,6 +34,7 @@ mod txout_index;
|
||||
|
||||
pub use address::*;
|
||||
pub use address_data::*;
|
||||
pub use address_liquidity::*;
|
||||
pub use address_realized_data::*;
|
||||
pub use address_size::*;
|
||||
pub use address_split::*;
|
||||
|
||||
Reference in New Issue
Block a user