mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-14 12:38:13 -07:00
global: address -> addr rename
This commit is contained in:
+39
-39
@@ -1,7 +1,7 @@
|
||||
use std::path::Path;
|
||||
|
||||
use brk_error::Result;
|
||||
use brk_types::{Age, Cents, FundedAddressData, Sats, SupplyState};
|
||||
use brk_types::{Age, Cents, FundedAddrData, Sats, SupplyState};
|
||||
use vecdb::unlikely;
|
||||
|
||||
use super::super::cost_basis::{CostBasisRaw, RealizedOps};
|
||||
@@ -10,22 +10,22 @@ use super::base::CohortState;
|
||||
/// Significant digits for address cost basis prices (after rounding to dollars).
|
||||
const COST_BASIS_PRICE_DIGITS: i32 = 4;
|
||||
|
||||
pub struct AddressCohortState<R: RealizedOps> {
|
||||
pub address_count: u64,
|
||||
pub struct AddrCohortState<R: RealizedOps> {
|
||||
pub addr_count: u64,
|
||||
pub inner: CohortState<R, CostBasisRaw>,
|
||||
}
|
||||
|
||||
impl<R: RealizedOps> AddressCohortState<R> {
|
||||
impl<R: RealizedOps> AddrCohortState<R> {
|
||||
pub(crate) fn new(path: &Path, name: &str) -> Self {
|
||||
Self {
|
||||
address_count: 0,
|
||||
addr_count: 0,
|
||||
inner: CohortState::new(path, name).with_price_rounding(COST_BASIS_PRICE_DIGITS),
|
||||
}
|
||||
}
|
||||
|
||||
/// Reset state for fresh start.
|
||||
pub(crate) fn reset(&mut self) {
|
||||
self.address_count = 0;
|
||||
self.addr_count = 0;
|
||||
self.inner.supply = SupplyState::default();
|
||||
self.inner.sent = Sats::ZERO;
|
||||
self.inner.satdays_destroyed = Sats::ZERO;
|
||||
@@ -34,18 +34,18 @@ impl<R: RealizedOps> AddressCohortState<R> {
|
||||
|
||||
pub(crate) fn send(
|
||||
&mut self,
|
||||
address_data: &mut FundedAddressData,
|
||||
addr_data: &mut FundedAddrData,
|
||||
value: Sats,
|
||||
current_price: Cents,
|
||||
prev_price: Cents,
|
||||
ath: Cents,
|
||||
age: Age,
|
||||
) -> Result<()> {
|
||||
let prev = address_data.cost_basis_snapshot();
|
||||
address_data.send(value, prev_price)?;
|
||||
let current = address_data.cost_basis_snapshot();
|
||||
let prev = addr_data.cost_basis_snapshot();
|
||||
addr_data.send(value, prev_price)?;
|
||||
let current = addr_data.cost_basis_snapshot();
|
||||
|
||||
self.inner.send_address(
|
||||
self.inner.send_addr(
|
||||
&SupplyState {
|
||||
utxo_count: 1,
|
||||
value,
|
||||
@@ -63,16 +63,16 @@ impl<R: RealizedOps> AddressCohortState<R> {
|
||||
|
||||
pub(crate) fn receive_outputs(
|
||||
&mut self,
|
||||
address_data: &mut FundedAddressData,
|
||||
addr_data: &mut FundedAddrData,
|
||||
value: Sats,
|
||||
price: Cents,
|
||||
output_count: u32,
|
||||
) {
|
||||
let prev = address_data.cost_basis_snapshot();
|
||||
address_data.receive_outputs(value, price, output_count);
|
||||
let current = address_data.cost_basis_snapshot();
|
||||
let prev = addr_data.cost_basis_snapshot();
|
||||
addr_data.receive_outputs(value, price, output_count);
|
||||
let current = addr_data.cost_basis_snapshot();
|
||||
|
||||
self.inner.receive_address(
|
||||
self.inner.receive_addr(
|
||||
&SupplyState {
|
||||
utxo_count: output_count as u64,
|
||||
value,
|
||||
@@ -83,53 +83,53 @@ impl<R: RealizedOps> AddressCohortState<R> {
|
||||
);
|
||||
}
|
||||
|
||||
pub(crate) fn add(&mut self, address_data: &FundedAddressData) {
|
||||
self.address_count += 1;
|
||||
pub(crate) fn add(&mut self, addr_data: &FundedAddrData) {
|
||||
self.addr_count += 1;
|
||||
self.inner
|
||||
.increment_snapshot(&address_data.cost_basis_snapshot());
|
||||
.increment_snapshot(&addr_data.cost_basis_snapshot());
|
||||
}
|
||||
|
||||
pub(crate) fn subtract(&mut self, address_data: &FundedAddressData) {
|
||||
let snapshot = address_data.cost_basis_snapshot();
|
||||
pub(crate) fn subtract(&mut self, addr_data: &FundedAddrData) {
|
||||
let snapshot = addr_data.cost_basis_snapshot();
|
||||
|
||||
// Check for potential underflow before it happens
|
||||
if unlikely(self.inner.supply.utxo_count < snapshot.supply_state.utxo_count) {
|
||||
panic!(
|
||||
"AddressCohortState::subtract underflow!\n\
|
||||
Cohort state: address_count={}, supply={}\n\
|
||||
Address being subtracted: {}\n\
|
||||
Address supply: {}\n\
|
||||
"AddrCohortState::subtract underflow!\n\
|
||||
Cohort state: addr_count={}, supply={}\n\
|
||||
Addr being subtracted: {}\n\
|
||||
Addr supply: {}\n\
|
||||
Realized price: {}\n\
|
||||
This means the address is not properly tracked in this cohort.",
|
||||
self.address_count,
|
||||
This means the addr is not properly tracked in this cohort.",
|
||||
self.addr_count,
|
||||
self.inner.supply,
|
||||
address_data,
|
||||
addr_data,
|
||||
snapshot.supply_state,
|
||||
snapshot.realized_price
|
||||
);
|
||||
}
|
||||
if unlikely(self.inner.supply.value < snapshot.supply_state.value) {
|
||||
panic!(
|
||||
"AddressCohortState::subtract value underflow!\n\
|
||||
Cohort state: address_count={}, supply={}\n\
|
||||
Address being subtracted: {}\n\
|
||||
Address supply: {}\n\
|
||||
"AddrCohortState::subtract value underflow!\n\
|
||||
Cohort state: addr_count={}, supply={}\n\
|
||||
Addr being subtracted: {}\n\
|
||||
Addr supply: {}\n\
|
||||
Realized price: {}\n\
|
||||
This means the address is not properly tracked in this cohort.",
|
||||
self.address_count,
|
||||
This means the addr is not properly tracked in this cohort.",
|
||||
self.addr_count,
|
||||
self.inner.supply,
|
||||
address_data,
|
||||
addr_data,
|
||||
snapshot.supply_state,
|
||||
snapshot.realized_price
|
||||
);
|
||||
}
|
||||
|
||||
self.address_count = self.address_count.checked_sub(1).unwrap_or_else(|| {
|
||||
self.addr_count = self.addr_count.checked_sub(1).unwrap_or_else(|| {
|
||||
panic!(
|
||||
"AddressCohortState::subtract address_count underflow! address_count=0\n\
|
||||
Address being subtracted: {}\n\
|
||||
"AddrCohortState::subtract addr_count underflow! addr_count=0\n\
|
||||
Addr being subtracted: {}\n\
|
||||
Realized price: {}",
|
||||
address_data, snapshot.realized_price
|
||||
addr_data, snapshot.realized_price
|
||||
)
|
||||
});
|
||||
|
||||
@@ -158,7 +158,7 @@ impl<R: RealizedOps, C: CostBasisOps> CohortState<R, C> {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn receive_address(
|
||||
pub(crate) fn receive_addr(
|
||||
&mut self,
|
||||
supply: &SupplyState,
|
||||
price: Cents,
|
||||
@@ -224,7 +224,7 @@ impl<R: RealizedOps, C: CostBasisOps> CohortState<R, C> {
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub(crate) fn send_address(
|
||||
pub(crate) fn send_addr(
|
||||
&mut self,
|
||||
supply: &SupplyState,
|
||||
current_price: Cents,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
mod address;
|
||||
mod addr;
|
||||
mod base;
|
||||
mod utxo;
|
||||
|
||||
pub use address::*;
|
||||
pub use addr::*;
|
||||
pub use base::*;
|
||||
pub use utxo::*;
|
||||
|
||||
Reference in New Issue
Block a user