readme: add disclaimer

This commit is contained in:
nym21
2025-02-26 12:59:35 +01:00
parent 34923638c5
commit 66b31a62d0
7 changed files with 185 additions and 139 deletions

View File

@@ -1,6 +1,9 @@
use std::{fs, path::Path};
use brk_core::{Addressindex, Date, Dateindex, Feerate, Height, Sats, Timestamp, Txindex, Txinindex, Txoutindex};
use brk_core::{
Addressindex, Cents, Close, Date, Dateindex, Dollars, Feerate, Height, High, Low, Open, Sats, Timestamp, Txindex,
Txinindex, Txoutindex,
};
use storable_vec::{StorableVec, Version};
// mod base;
@@ -11,6 +14,22 @@ pub struct StorableVecs<const MODE: u8> {
pub dateindex_to_first_height: StorableVec<Dateindex, Height, MODE>,
// pub dateindex_to_last_height: StorableVec<Dateindex, Height, MODE>,
// pub height_to_block_interval: StorableVec<Height, Timestamp, MODE>,
pub dateindex_to_close_in_cents: StorableVec<Dateindex, Close<Cents>, MODE>,
pub dateindex_to_close_in_dollars: StorableVec<Dateindex, Close<Dollars>, MODE>,
pub dateindex_to_high_in_cents: StorableVec<Dateindex, High<Cents>, MODE>,
pub dateindex_to_high_in_dollars: StorableVec<Dateindex, High<Dollars>, MODE>,
pub dateindex_to_low_in_cents: StorableVec<Dateindex, Low<Cents>, MODE>,
pub dateindex_to_low_in_dollars: StorableVec<Dateindex, Low<Dollars>, MODE>,
pub dateindex_to_open_in_cents: StorableVec<Dateindex, Open<Cents>, MODE>,
pub dateindex_to_open_in_dollars: StorableVec<Dateindex, Open<Dollars>, MODE>,
pub height_to_close_in_cents: StorableVec<Height, Close<Cents>, MODE>,
pub height_to_close_in_dollars: StorableVec<Height, Close<Dollars>, MODE>,
pub height_to_high_in_cents: StorableVec<Height, High<Cents>, MODE>,
pub height_to_high_in_dollars: StorableVec<Height, High<Dollars>, MODE>,
pub height_to_low_in_cents: StorableVec<Height, Low<Cents>, MODE>,
pub height_to_low_in_dollars: StorableVec<Height, Low<Dollars>, MODE>,
pub height_to_open_in_cents: StorableVec<Height, Open<Cents>, MODE>,
pub height_to_open_in_dollars: StorableVec<Height, Open<Dollars>, MODE>,
pub height_to_date: StorableVec<Height, Date, MODE>,
pub height_to_dateindex: StorableVec<Height, Dateindex, MODE>,
// pub height_to_fee: StorableVec<Txindex, Amount, MODE>,
@@ -47,6 +66,46 @@ impl<const MODE: u8> StorableVecs<MODE> {
Version::from(1),
)?,
// height_to_block_interval: StorableVec::forced_import(&path.join("height_to_block_interval"), Version::from(1))?,
dateindex_to_close_in_cents: StorableVec::import(
&path.join("dateindex_to_close_in_cents"),
Version::from(1),
)?,
dateindex_to_close_in_dollars: StorableVec::import(
&path.join("dateindex_to_close_in_dollars"),
Version::from(1),
)?,
dateindex_to_high_in_cents: StorableVec::import(
&path.join("dateindex_to_high_in_cents"),
Version::from(1),
)?,
dateindex_to_high_in_dollars: StorableVec::import(
&path.join("dateindex_to_high_in_dollars"),
Version::from(1),
)?,
dateindex_to_low_in_cents: StorableVec::import(&path.join("dateindex_to_low_in_cents"), Version::from(1))?,
dateindex_to_low_in_dollars: StorableVec::import(
&path.join("dateindex_to_low_in_dollars"),
Version::from(1),
)?,
dateindex_to_open_in_cents: StorableVec::import(
&path.join("dateindex_to_open_in_cents"),
Version::from(1),
)?,
dateindex_to_open_in_dollars: StorableVec::import(
&path.join("dateindex_to_open_in_dollars"),
Version::from(1),
)?,
height_to_close_in_cents: StorableVec::import(&path.join("height_to_close_in_cents"), Version::from(1))?,
height_to_close_in_dollars: StorableVec::import(
&path.join("height_to_close_in_dollars"),
Version::from(1),
)?,
height_to_high_in_cents: StorableVec::import(&path.join("height_to_high_in_cents"), Version::from(1))?,
height_to_high_in_dollars: StorableVec::import(&path.join("height_to_high_in_dollars"), Version::from(1))?,
height_to_low_in_cents: StorableVec::import(&path.join("height_to_low_in_cents"), Version::from(1))?,
height_to_low_in_dollars: StorableVec::import(&path.join("height_to_low_in_dollars"), Version::from(1))?,
height_to_open_in_cents: StorableVec::import(&path.join("height_to_open_in_cents"), Version::from(1))?,
height_to_open_in_dollars: StorableVec::import(&path.join("height_to_open_in_dollars"), Version::from(1))?,
height_to_date: StorableVec::forced_import(&path.join("height_to_date"), Version::from(1))?,
height_to_dateindex: StorableVec::forced_import(&path.join("height_to_dateindex"), Version::from(1))?,
// height_to_fee: StorableVec::forced_import(&path.join("height_to_fee"), Version::from(1))?,
@@ -90,10 +149,44 @@ impl<const MODE: u8> StorableVecs<MODE> {
}
// pub fn as_slice(&self) -> [&dyn AnyComputedStorableVec; 1] {
// [&self.dateindex_to_first_height]
// [
// &self.dateindex_to_close_in_cents as &dyn AnyJsonStorableVec,
// &self.dateindex_to_close_in_dollars,
// &self.dateindex_to_high_in_cents,
// &self.dateindex_to_high_in_dollars,
// &self.dateindex_to_low_in_cents,
// &self.dateindex_to_low_in_dollars,
// &self.dateindex_to_open_in_cents,
// &self.dateindex_to_open_in_dollars,
// &self.height_to_close_in_cents,
// &self.height_to_close_in_dollars,
// &self.height_to_high_in_cents,
// &self.height_to_high_in_dollars,
// &self.height_to_low_in_cents,
// &self.height_to_low_in_dollars,
// &self.height_to_open_in_cents,
// &self.height_to_open_in_dollars,
// ]
// }
// pub fn as_mut_slice(&mut self) -> [&mut dyn AnyComputedStorableVec; 1] {
// [&mut self.dateindex_to_first_height]
// [
// &mut self.dateindex_to_close_in_cents as &mut dyn AnyStorableVec,
// &mut self.dateindex_to_close_in_dollars,
// &mut self.dateindex_to_high_in_cents,
// &mut self.dateindex_to_high_in_dollars,
// &mut self.dateindex_to_low_in_cents,
// &mut self.dateindex_to_low_in_dollars,
// &mut self.dateindex_to_open_in_cents,
// &mut self.dateindex_to_open_in_dollars,
// &mut self.height_to_close_in_cents,
// &mut self.height_to_close_in_dollars,
// &mut self.height_to_high_in_cents,
// &mut self.height_to_high_in_dollars,
// &mut self.height_to_low_in_cents,
// &mut self.height_to_low_in_dollars,
// &mut self.height_to_open_in_cents,
// &mut self.height_to_open_in_dollars,
// ]
// }
}

View File

@@ -1,11 +1,11 @@
use byteview::ByteView;
#[derive(Debug)]
pub struct Unit();
pub struct Unit;
impl From<ByteView> for Unit {
fn from(_: ByteView) -> Self {
Self()
Self
}
}
impl From<Unit> for ByteView {

View File

@@ -1,6 +1,6 @@
[package]
name = "brk_fetcher"
description = "A Bitcoin price fetcher built on top of brk_indexer"
description = "A Bitcoin price fetcher"
version.workspace = true
edition.workspace = true
license.workspace = true
@@ -8,7 +8,6 @@ repository.workspace = true
[dependencies]
brk_core = { workspace = true }
brk_indexer = { workspace = true }
brk_logger = { workspace = true }
color-eyre = { workspace = true }
jiff = { workspace = true }

View File

@@ -9,32 +9,14 @@ use color_eyre::eyre::Error;
mod fetchers;
use brk_indexer::Indexer;
// use brk_indexer::Indexer;
pub use fetchers::*;
use storable_vec::{AnyJsonStorableVec, AnyStorableVec, SINGLE_THREAD, StorableVec, Version};
pub struct Pricer<const MODE: u8> {
path: PathBuf,
binance: Binance,
kraken: Kraken,
kibo: Kibo,
pub dateindex_to_close_in_cents: StorableVec<Dateindex, Close<Cents>, MODE>,
pub dateindex_to_close_in_dollars: StorableVec<Dateindex, Close<Dollars>, MODE>,
pub dateindex_to_high_in_cents: StorableVec<Dateindex, High<Cents>, MODE>,
pub dateindex_to_high_in_dollars: StorableVec<Dateindex, High<Dollars>, MODE>,
pub dateindex_to_low_in_cents: StorableVec<Dateindex, Low<Cents>, MODE>,
pub dateindex_to_low_in_dollars: StorableVec<Dateindex, Low<Dollars>, MODE>,
pub dateindex_to_open_in_cents: StorableVec<Dateindex, Open<Cents>, MODE>,
pub dateindex_to_open_in_dollars: StorableVec<Dateindex, Open<Dollars>, MODE>,
pub height_to_close_in_cents: StorableVec<Height, Close<Cents>, MODE>,
pub height_to_close_in_dollars: StorableVec<Height, Close<Dollars>, MODE>,
pub height_to_high_in_cents: StorableVec<Height, High<Cents>, MODE>,
pub height_to_high_in_dollars: StorableVec<Height, High<Dollars>, MODE>,
pub height_to_low_in_cents: StorableVec<Height, Low<Cents>, MODE>,
pub height_to_low_in_dollars: StorableVec<Height, Low<Dollars>, MODE>,
pub height_to_open_in_cents: StorableVec<Height, Open<Cents>, MODE>,
pub height_to_open_in_dollars: StorableVec<Height, Open<Dollars>, MODE>,
}
impl<const MODE: u8> Pricer<MODE> {
@@ -42,61 +24,19 @@ impl<const MODE: u8> Pricer<MODE> {
fs::create_dir_all(path)?;
Ok(Self {
path: path.to_owned(),
binance: Binance::init(path),
kraken: Kraken::default(),
kibo: Kibo::default(),
dateindex_to_close_in_cents: StorableVec::import(
&path.join("dateindex_to_close_in_cents"),
Version::from(1),
)?,
dateindex_to_close_in_dollars: StorableVec::import(
&path.join("dateindex_to_close_in_dollars"),
Version::from(1),
)?,
dateindex_to_high_in_cents: StorableVec::import(
&path.join("dateindex_to_high_in_cents"),
Version::from(1),
)?,
dateindex_to_high_in_dollars: StorableVec::import(
&path.join("dateindex_to_high_in_dollars"),
Version::from(1),
)?,
dateindex_to_low_in_cents: StorableVec::import(&path.join("dateindex_to_low_in_cents"), Version::from(1))?,
dateindex_to_low_in_dollars: StorableVec::import(
&path.join("dateindex_to_low_in_dollars"),
Version::from(1),
)?,
dateindex_to_open_in_cents: StorableVec::import(
&path.join("dateindex_to_open_in_cents"),
Version::from(1),
)?,
dateindex_to_open_in_dollars: StorableVec::import(
&path.join("dateindex_to_open_in_dollars"),
Version::from(1),
)?,
height_to_close_in_cents: StorableVec::import(&path.join("height_to_close_in_cents"), Version::from(1))?,
height_to_close_in_dollars: StorableVec::import(
&path.join("height_to_close_in_dollars"),
Version::from(1),
)?,
height_to_high_in_cents: StorableVec::import(&path.join("height_to_high_in_cents"), Version::from(1))?,
height_to_high_in_dollars: StorableVec::import(&path.join("height_to_high_in_dollars"), Version::from(1))?,
height_to_low_in_cents: StorableVec::import(&path.join("height_to_low_in_cents"), Version::from(1))?,
height_to_low_in_dollars: StorableVec::import(&path.join("height_to_low_in_dollars"), Version::from(1))?,
height_to_open_in_cents: StorableVec::import(&path.join("height_to_open_in_cents"), Version::from(1))?,
height_to_open_in_dollars: StorableVec::import(&path.join("height_to_open_in_dollars"), Version::from(1))?,
})
}
pub fn compute_if_needed(&mut self, indexer: &mut Indexer<SINGLE_THREAD>) {
pub fn compute_if_needed(&mut self) {
// TODO: Remove all outdated
indexer
.vecs
.height_to_timestamp
.iter_from(Height::default(), |v| Ok(()));
// indexer
// .vecs
// .height_to_timestamp
// .iter_from(Height::default(), |v| Ok(()));
// self.open
// .multi_insert_simple_transform(heights, dates, &mut self.ohlc, &|ohlc| ohlc.open);
@@ -227,46 +167,4 @@ impl<const MODE: u8> Pricer<MODE> {
Ok(final_ohlc)
}
pub fn as_any_json_vec_slice(&self) -> [&dyn AnyJsonStorableVec; 16] {
[
&self.dateindex_to_close_in_cents as &dyn AnyJsonStorableVec,
&self.dateindex_to_close_in_dollars,
&self.dateindex_to_high_in_cents,
&self.dateindex_to_high_in_dollars,
&self.dateindex_to_low_in_cents,
&self.dateindex_to_low_in_dollars,
&self.dateindex_to_open_in_cents,
&self.dateindex_to_open_in_dollars,
&self.height_to_close_in_cents,
&self.height_to_close_in_dollars,
&self.height_to_high_in_cents,
&self.height_to_high_in_dollars,
&self.height_to_low_in_cents,
&self.height_to_low_in_dollars,
&self.height_to_open_in_cents,
&self.height_to_open_in_dollars,
]
}
pub fn as_mut_any_vec_slice(&mut self) -> [&mut dyn AnyStorableVec; 16] {
[
&mut self.dateindex_to_close_in_cents as &mut dyn AnyStorableVec,
&mut self.dateindex_to_close_in_dollars,
&mut self.dateindex_to_high_in_cents,
&mut self.dateindex_to_high_in_dollars,
&mut self.dateindex_to_low_in_cents,
&mut self.dateindex_to_low_in_dollars,
&mut self.dateindex_to_open_in_cents,
&mut self.dateindex_to_open_in_dollars,
&mut self.height_to_close_in_cents,
&mut self.height_to_close_in_dollars,
&mut self.height_to_high_in_cents,
&mut self.height_to_high_in_dollars,
&mut self.height_to_low_in_cents,
&mut self.height_to_low_in_dollars,
&mut self.height_to_open_in_cents,
&mut self.height_to_open_in_dollars,
]
}
}

View File

@@ -1,6 +1,6 @@
[package]
name = "hodor"
description = "Hold the door, an exit blocker that can wait until a task is completed"
description = "Hold the door, an exit blocker built on top of ctrlc"
version = "0.1.1"
edition.workspace = true
license.workspace = true