mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-06-13 16:33:30 -07:00
global: wip
This commit is contained in:
Generated
+4
-4
@@ -649,9 +649,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "bytecount"
|
||||
version = "0.6.8"
|
||||
version = "0.6.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
|
||||
checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e"
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
@@ -3047,9 +3047,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tower-http"
|
||||
version = "0.6.4"
|
||||
version = "0.6.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0fdb0c213ca27a9f57ab69ddb290fd80d970922355b83ae380b395d3986b8a2e"
|
||||
checksum = "5cc2d9e086a412a451384326f521c8123a99a466b329941a9403696bff9b0da2"
|
||||
dependencies = [
|
||||
"async-compression",
|
||||
"bitflags",
|
||||
|
||||
@@ -203,7 +203,11 @@ impl ComputedValueVecsFromTxindex {
|
||||
if let Some(dollars) = self.dollars.as_mut() {
|
||||
let dollars_txindex = self.dollars_txindex.as_mut().unwrap();
|
||||
|
||||
dollars_txindex.compute_if_necessary(starting_indexes.txindex, exit)?;
|
||||
dollars_txindex.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer.vecs().txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
dollars.compute_rest_from_bitcoin(
|
||||
indexer,
|
||||
|
||||
@@ -5,7 +5,7 @@ use brk_core::{
|
||||
InputIndex, MonthIndex, OpReturnIndex, OutputIndex, P2ABytes, P2AIndex, P2MSIndex, P2PK33Bytes,
|
||||
P2PK33Index, P2PK65Bytes, P2PK65Index, P2PKHBytes, P2PKHIndex, P2SHBytes, P2SHIndex, P2TRBytes,
|
||||
P2TRIndex, P2WPKHBytes, P2WPKHIndex, P2WSHBytes, P2WSHIndex, QuarterIndex, Sats, StoredUsize,
|
||||
Timestamp, TxIndex, Txid, UnknownOutputIndex, Version, WeekIndex, YearIndex,
|
||||
Timestamp, TxIndex, Txid, UnknownOutputIndex, Version, WeekIndex, Weight, YearIndex,
|
||||
};
|
||||
use brk_exit::Exit;
|
||||
use brk_indexer::Indexer;
|
||||
@@ -44,7 +44,7 @@ pub struct Vecs {
|
||||
pub height_to_dateindex: EagerVec<Height, DateIndex>,
|
||||
pub height_to_difficultyepoch: ComputedVecFrom1<Height, DifficultyEpoch, Height, Height>,
|
||||
pub height_to_halvingepoch: ComputedVecFrom1<Height, HalvingEpoch, Height, Height>,
|
||||
pub height_to_height: ComputedVecFrom1<Height, Height, Height, Date>,
|
||||
pub height_to_height: ComputedVecFrom1<Height, Height, Height, Weight>,
|
||||
pub height_to_timestamp_fixed: EagerVec<Height, Timestamp>,
|
||||
pub height_to_txindex_count: EagerVec<Height, StoredUsize>,
|
||||
pub inputindex_to_inputindex: ComputedVecFrom1<InputIndex, InputIndex, InputIndex, OutputIndex>,
|
||||
@@ -322,7 +322,7 @@ impl Vecs {
|
||||
"height",
|
||||
version + VERSION + Version::ZERO,
|
||||
format,
|
||||
height_to_date.boxed_clone(),
|
||||
indexer.vecs().height_to_weight.boxed_clone(),
|
||||
|index, _| Some(index),
|
||||
)?;
|
||||
|
||||
@@ -642,8 +642,17 @@ impl Vecs {
|
||||
// OutputIndex
|
||||
// ---
|
||||
|
||||
self.outputindex_to_outputindex
|
||||
.compute_if_necessary(starting_indexes.outputindex, exit)?;
|
||||
self.outputindex_to_outputindex.compute_if_necessary(
|
||||
starting_indexes.outputindex,
|
||||
&indexer_vecs.outputindex_to_value,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.txindex_to_output_count.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer_vecs.txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.outputindex_to_txindex.compute_inverse_less_to_more(
|
||||
starting_indexes.txindex,
|
||||
@@ -652,55 +661,99 @@ impl Vecs {
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2pk33index_to_p2pk33index
|
||||
.compute_if_necessary(starting_indexes.p2pk33index, exit)?;
|
||||
self.p2pk33index_to_p2pk33index.compute_if_necessary(
|
||||
starting_indexes.p2pk33index,
|
||||
&indexer_vecs.p2pk33index_to_p2pk33bytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2pk65index_to_p2pk65index
|
||||
.compute_if_necessary(starting_indexes.p2pk65index, exit)?;
|
||||
self.p2pk65index_to_p2pk65index.compute_if_necessary(
|
||||
starting_indexes.p2pk65index,
|
||||
&indexer_vecs.p2pk65index_to_p2pk65bytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2pkhindex_to_p2pkhindex
|
||||
.compute_if_necessary(starting_indexes.p2pkhindex, exit)?;
|
||||
self.p2pkhindex_to_p2pkhindex.compute_if_necessary(
|
||||
starting_indexes.p2pkhindex,
|
||||
&indexer_vecs.p2pkhindex_to_p2pkhbytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2shindex_to_p2shindex
|
||||
.compute_if_necessary(starting_indexes.p2shindex, exit)?;
|
||||
self.p2shindex_to_p2shindex.compute_if_necessary(
|
||||
starting_indexes.p2shindex,
|
||||
&indexer_vecs.p2shindex_to_p2shbytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2trindex_to_p2trindex
|
||||
.compute_if_necessary(starting_indexes.p2trindex, exit)?;
|
||||
self.p2trindex_to_p2trindex.compute_if_necessary(
|
||||
starting_indexes.p2trindex,
|
||||
&indexer_vecs.p2trindex_to_p2trbytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2wpkhindex_to_p2wpkhindex
|
||||
.compute_if_necessary(starting_indexes.p2wpkhindex, exit)?;
|
||||
self.p2wpkhindex_to_p2wpkhindex.compute_if_necessary(
|
||||
starting_indexes.p2wpkhindex,
|
||||
&indexer_vecs.p2wpkhindex_to_p2wpkhbytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2wshindex_to_p2wshindex
|
||||
.compute_if_necessary(starting_indexes.p2wshindex, exit)?;
|
||||
self.p2wshindex_to_p2wshindex.compute_if_necessary(
|
||||
starting_indexes.p2wshindex,
|
||||
&indexer_vecs.p2wshindex_to_p2wshbytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.emptyoutputindex_to_emptyoutputindex
|
||||
.compute_if_necessary(starting_indexes.emptyoutputindex, exit)?;
|
||||
.compute_if_necessary(
|
||||
starting_indexes.emptyoutputindex,
|
||||
&indexer_vecs.emptyoutputindex_to_txindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2msindex_to_p2msindex
|
||||
.compute_if_necessary(starting_indexes.p2msindex, exit)?;
|
||||
self.p2msindex_to_p2msindex.compute_if_necessary(
|
||||
starting_indexes.p2msindex,
|
||||
&indexer_vecs.p2msindex_to_txindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.opreturnindex_to_opreturnindex
|
||||
.compute_if_necessary(starting_indexes.opreturnindex, exit)?;
|
||||
self.opreturnindex_to_opreturnindex.compute_if_necessary(
|
||||
starting_indexes.opreturnindex,
|
||||
&indexer_vecs.opreturnindex_to_txindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.p2aindex_to_p2aindex
|
||||
.compute_if_necessary(starting_indexes.p2aindex, exit)?;
|
||||
self.p2aindex_to_p2aindex.compute_if_necessary(
|
||||
starting_indexes.p2aindex,
|
||||
&indexer_vecs.p2aindex_to_p2abytes,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.unknownoutputindex_to_unknownoutputindex
|
||||
.compute_if_necessary(starting_indexes.unknownoutputindex, exit)?;
|
||||
.compute_if_necessary(
|
||||
starting_indexes.unknownoutputindex,
|
||||
&indexer_vecs.unknownoutputindex_to_txindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
// ---
|
||||
// InputIndex
|
||||
// ---
|
||||
|
||||
self.inputindex_to_inputindex
|
||||
.compute_if_necessary(starting_indexes.inputindex, exit)?;
|
||||
self.inputindex_to_inputindex.compute_if_necessary(
|
||||
starting_indexes.inputindex,
|
||||
&indexer_vecs.inputindex_to_outputindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
// ---
|
||||
// TxIndex
|
||||
// ---
|
||||
|
||||
self.txindex_to_txindex
|
||||
.compute_if_necessary(starting_indexes.txindex, exit)?;
|
||||
self.txindex_to_txindex.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer_vecs.txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.height_to_txindex_count.compute_count_from_indexes(
|
||||
starting_indexes.height,
|
||||
@@ -720,8 +773,11 @@ impl Vecs {
|
||||
// Height
|
||||
// ---
|
||||
|
||||
self.height_to_height
|
||||
.compute_if_necessary(starting_indexes.height, exit)?;
|
||||
self.height_to_height.compute_if_necessary(
|
||||
starting_indexes.height,
|
||||
&indexer_vecs.height_to_weight,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.height_to_date.compute_transform(
|
||||
starting_indexes.height,
|
||||
@@ -795,11 +851,17 @@ impl Vecs {
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.dateindex_to_dateindex
|
||||
.compute_if_necessary(starting_dateindex, exit)?;
|
||||
self.dateindex_to_dateindex.compute_if_necessary(
|
||||
starting_dateindex,
|
||||
&self.dateindex_to_first_height,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.dateindex_to_date
|
||||
.compute_if_necessary(starting_dateindex, exit)?;
|
||||
self.dateindex_to_date.compute_if_necessary(
|
||||
starting_dateindex,
|
||||
&self.dateindex_to_first_height,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.dateindex_to_height_count.compute_count_from_indexes(
|
||||
starting_dateindex,
|
||||
@@ -828,8 +890,11 @@ impl Vecs {
|
||||
self.weekindex_to_first_dateindex
|
||||
.compute_inverse_more_to_less(starting_dateindex, &self.dateindex_to_weekindex, exit)?;
|
||||
|
||||
self.weekindex_to_weekindex
|
||||
.compute_if_necessary(starting_weekindex, exit)?;
|
||||
self.weekindex_to_weekindex.compute_if_necessary(
|
||||
starting_weekindex,
|
||||
&self.weekindex_to_first_dateindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.weekindex_to_dateindex_count
|
||||
.compute_count_from_indexes(
|
||||
@@ -849,8 +914,11 @@ impl Vecs {
|
||||
.get_inner(decremented_starting_height)
|
||||
.unwrap_or_default();
|
||||
|
||||
self.height_to_difficultyepoch
|
||||
.compute_if_necessary(starting_indexes.height, exit)?;
|
||||
self.height_to_difficultyepoch.compute_if_necessary(
|
||||
starting_indexes.height,
|
||||
&indexer_vecs.height_to_weight,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.difficultyepoch_to_first_height
|
||||
.compute_inverse_more_to_less(
|
||||
@@ -860,7 +928,11 @@ impl Vecs {
|
||||
)?;
|
||||
|
||||
self.difficultyepoch_to_difficultyepoch
|
||||
.compute_if_necessary(starting_difficultyepoch, exit)?;
|
||||
.compute_if_necessary(
|
||||
starting_difficultyepoch,
|
||||
&self.difficultyepoch_to_first_height,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.difficultyepoch_to_height_count
|
||||
.compute_count_from_indexes(
|
||||
@@ -894,8 +966,11 @@ impl Vecs {
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.monthindex_to_monthindex
|
||||
.compute_if_necessary(starting_monthindex, exit)?;
|
||||
self.monthindex_to_monthindex.compute_if_necessary(
|
||||
starting_monthindex,
|
||||
&self.monthindex_to_first_dateindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.monthindex_to_dateindex_count
|
||||
.compute_count_from_indexes(
|
||||
@@ -915,8 +990,11 @@ impl Vecs {
|
||||
.get_inner(starting_monthindex)
|
||||
.unwrap_or_default();
|
||||
|
||||
self.monthindex_to_quarterindex
|
||||
.compute_if_necessary(starting_monthindex, exit)?;
|
||||
self.monthindex_to_quarterindex.compute_if_necessary(
|
||||
starting_monthindex,
|
||||
&self.monthindex_to_first_dateindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.quarterindex_to_first_monthindex
|
||||
.compute_inverse_more_to_less(
|
||||
@@ -927,8 +1005,11 @@ impl Vecs {
|
||||
|
||||
// let quarter_count = self.quarterindex_to_first_monthindex.len();
|
||||
|
||||
self.quarterindex_to_quarterindex
|
||||
.compute_if_necessary(starting_quarterindex, exit)?;
|
||||
self.quarterindex_to_quarterindex.compute_if_necessary(
|
||||
starting_quarterindex,
|
||||
&self.quarterindex_to_first_monthindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.quarterindex_to_monthindex_count
|
||||
.compute_count_from_indexes(
|
||||
@@ -948,8 +1029,11 @@ impl Vecs {
|
||||
.get_inner(starting_monthindex)
|
||||
.unwrap_or_default();
|
||||
|
||||
self.monthindex_to_yearindex
|
||||
.compute_if_necessary(starting_monthindex, exit)?;
|
||||
self.monthindex_to_yearindex.compute_if_necessary(
|
||||
starting_monthindex,
|
||||
&self.monthindex_to_first_dateindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.yearindex_to_first_monthindex
|
||||
.compute_inverse_more_to_less(
|
||||
@@ -958,8 +1042,11 @@ impl Vecs {
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.yearindex_to_yearindex
|
||||
.compute_if_necessary(starting_yearindex, exit)?;
|
||||
self.yearindex_to_yearindex.compute_if_necessary(
|
||||
starting_yearindex,
|
||||
&self.yearindex_to_first_monthindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.yearindex_to_monthindex_count
|
||||
.compute_count_from_indexes(
|
||||
@@ -978,8 +1065,11 @@ impl Vecs {
|
||||
.get_inner(decremented_starting_height)
|
||||
.unwrap_or_default();
|
||||
|
||||
self.height_to_halvingepoch
|
||||
.compute_if_necessary(starting_indexes.height, exit)?;
|
||||
self.height_to_halvingepoch.compute_if_necessary(
|
||||
starting_indexes.height,
|
||||
&indexer_vecs.height_to_weight,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.halvingepoch_to_first_height
|
||||
.compute_inverse_more_to_less(
|
||||
@@ -988,8 +1078,11 @@ impl Vecs {
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.halvingepoch_to_halvingepoch
|
||||
.compute_if_necessary(starting_halvingepoch, exit)?;
|
||||
self.halvingepoch_to_halvingepoch.compute_if_necessary(
|
||||
starting_halvingepoch,
|
||||
&self.halvingepoch_to_first_height,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
// ---
|
||||
// DecadeIndex
|
||||
@@ -1001,8 +1094,11 @@ impl Vecs {
|
||||
.get_inner(starting_yearindex)
|
||||
.unwrap_or_default();
|
||||
|
||||
self.yearindex_to_decadeindex
|
||||
.compute_if_necessary(starting_yearindex, exit)?;
|
||||
self.yearindex_to_decadeindex.compute_if_necessary(
|
||||
starting_yearindex,
|
||||
&self.yearindex_to_first_monthindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.decadeindex_to_first_yearindex
|
||||
.compute_inverse_more_to_less(
|
||||
@@ -1011,8 +1107,11 @@ impl Vecs {
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.decadeindex_to_decadeindex
|
||||
.compute_if_necessary(starting_decadeindex, exit)?;
|
||||
self.decadeindex_to_decadeindex.compute_if_necessary(
|
||||
starting_decadeindex,
|
||||
&self.decadeindex_to_first_yearindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.decadeindex_to_yearindex_count
|
||||
.compute_count_from_indexes(
|
||||
|
||||
@@ -81,6 +81,8 @@ pub struct Vecs {
|
||||
Option<EagerVec<Height, Dollars>>,
|
||||
pub indexes_to_net_unrealized_profit_and_loss_relative_to_market_cap:
|
||||
Option<ComputedVecsFromDateIndex<Dollars>>,
|
||||
// pub indexes_to_net_realized_profit_and_loss_relative_to_realized_cap:
|
||||
// Option<ComputedVecsFromHeight<Dollars>>,
|
||||
}
|
||||
|
||||
impl Vecs {
|
||||
|
||||
@@ -737,20 +737,35 @@ impl Vecs {
|
||||
compute_indexes_to_tx_vany(&mut self.indexes_to_tx_v2, TxVersion::TWO)?;
|
||||
compute_indexes_to_tx_vany(&mut self.indexes_to_tx_v3, TxVersion::THREE)?;
|
||||
|
||||
self.txindex_to_is_coinbase
|
||||
.compute_if_necessary(starting_indexes.txindex, exit)?;
|
||||
self.txindex_to_is_coinbase.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer.vecs().txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.txindex_to_weight
|
||||
.compute_if_necessary(starting_indexes.txindex, exit)?;
|
||||
self.txindex_to_weight.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer.vecs().txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.txindex_to_vsize
|
||||
.compute_if_necessary(starting_indexes.txindex, exit)?;
|
||||
self.txindex_to_vsize.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer.vecs().txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.inputindex_to_value
|
||||
.compute_if_necessary(starting_indexes.inputindex, exit)?;
|
||||
self.inputindex_to_value.compute_if_necessary(
|
||||
starting_indexes.inputindex,
|
||||
&indexer.vecs().inputindex_to_outputindex,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
self.txindex_to_output_value
|
||||
.compute_if_necessary(starting_indexes.txindex, exit)?;
|
||||
self.txindex_to_output_value.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer.vecs().txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
// self.indexes_to_output_value.compute_all(
|
||||
// indexer,
|
||||
@@ -768,8 +783,11 @@ impl Vecs {
|
||||
// },
|
||||
// )?;
|
||||
|
||||
self.txindex_to_input_value
|
||||
.compute_if_necessary(starting_indexes.txindex, exit)?;
|
||||
self.txindex_to_input_value.compute_if_necessary(
|
||||
starting_indexes.txindex,
|
||||
&indexer.vecs().txindex_to_txid,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
// self.indexes_to_input_value.compute_all(
|
||||
// indexer,
|
||||
|
||||
@@ -27,7 +27,7 @@ minreq = { workspace = true }
|
||||
oxc = { version = "0.72.2", features = ["codegen", "minifier"] }
|
||||
serde = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
tower-http = { version = "0.6.4", features = ["compression-full", "trace"] }
|
||||
tower-http = { version = "0.6.5", features = ["compression-full", "trace"] }
|
||||
zip = "4.0.0"
|
||||
tracing = "0.1.41"
|
||||
|
||||
|
||||
@@ -153,7 +153,12 @@ where
|
||||
})
|
||||
}
|
||||
|
||||
pub fn compute_if_necessary(&mut self, max_from: I, exit: &Exit) -> Result<()> {
|
||||
pub fn compute_if_necessary<T2>(
|
||||
&mut self,
|
||||
max_from: I,
|
||||
len_source: &impl AnyIterableVec<I, T2>,
|
||||
exit: &Exit,
|
||||
) -> Result<()> {
|
||||
let (vec, dependencies) = if let ComputedVec::Eager {
|
||||
vec,
|
||||
deps: dependencies,
|
||||
@@ -164,12 +169,14 @@ where
|
||||
return Ok(());
|
||||
};
|
||||
|
||||
let len = len_source.len();
|
||||
|
||||
match dependencies {
|
||||
Dependencies::From1(source, compute) => {
|
||||
let version = source.version();
|
||||
let mut iter = source.iter();
|
||||
let t = |i: I| compute(i, &mut *iter).map(|v| (i, v)).unwrap();
|
||||
vec.compute_to(max_from, 1, version, t, exit)
|
||||
vec.compute_to(max_from, len, version, t, exit)
|
||||
}
|
||||
Dependencies::From2((source1, source2), compute) => {
|
||||
let version = source1.version() + source2.version();
|
||||
@@ -180,7 +187,7 @@ where
|
||||
.map(|v| (i, v))
|
||||
.unwrap()
|
||||
};
|
||||
vec.compute_to(max_from, 1, version, t, exit)
|
||||
vec.compute_to(max_from, len, version, t, exit)
|
||||
}
|
||||
Dependencies::From3((source1, source2, source3), compute) => {
|
||||
let version = source1.version() + source2.version() + source3.version();
|
||||
@@ -192,7 +199,7 @@ where
|
||||
.map(|v| (i, v))
|
||||
.unwrap()
|
||||
};
|
||||
vec.compute_to(max_from, 1, version, t, exit)
|
||||
vec.compute_to(max_from, len, version, t, exit)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -883,6 +883,14 @@ function createUtils() {
|
||||
if (unit) throw Error(`Unit "${unit}" already assigned "${id}"`);
|
||||
unit = "Hash";
|
||||
}
|
||||
if ((!unit || thoroughUnitCheck) && id.includes("days-between")) {
|
||||
if (unit) throw Error(`Unit "${unit}" already assigned "${id}"`);
|
||||
unit = "Days";
|
||||
}
|
||||
if ((!unit || thoroughUnitCheck) && id.includes("years-between")) {
|
||||
if (unit) throw Error(`Unit "${unit}" already assigned "${id}"`);
|
||||
unit = "Years";
|
||||
}
|
||||
if (
|
||||
(!unit || thoroughUnitCheck) &&
|
||||
(id === "0" || id === "1" || id === "50" || id === "100")
|
||||
|
||||
Reference in New Issue
Block a user