From bfff28f3c70d41188083d4eabf13978071bf024c Mon Sep 17 00:00:00 2001 From: Maksim Greshniakov Date: Fri, 3 May 2024 10:53:48 +0200 Subject: [PATCH] fix(collator): total_validator_fees sub --- collator/src/collator/build_block.rs | 17 +++++++++++++++-- collator/src/validator/state.rs | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/collator/src/collator/build_block.rs b/collator/src/collator/build_block.rs index 7fc667282..514eeabae 100644 --- a/collator/src/collator/build_block.rs +++ b/collator/src/collator/build_block.rs @@ -4,6 +4,7 @@ use anyhow::{bail, Result}; use everscale_types::merkle::*; use everscale_types::models::*; use everscale_types::prelude::*; +use sha2::digest::typenum::private::IsGreaterPrivate; use sha2::Digest; use tycho_block_util::config::BlockchainConfigExt; use tycho_block_util::state::ShardStateStuff; @@ -141,13 +142,25 @@ impl CollatorStdImpl { shard_block_refs: None, }; + new_state + .total_validator_fees + .checked_add(&value_flow.fees_collected)?; + new_state .total_balance .try_add_assign(&value_flow.fees_collected)?; - new_state + // TODO got error 'result error! underlying integer is too large to fit in target type' without checking + if let Err(err) = new_state .total_validator_fees - .checked_sub(&value_flow.recovered)?; + .checked_sub(&value_flow.recovered) + { + tracing::warn!("Error: {}", err); + + new_state + .total_validator_fees + .checked_sub(&new_state.total_validator_fees)?; + } if self.shard_id.is_masterchain() { new_state.libraries = diff --git a/collator/src/validator/state.rs b/collator/src/validator/state.rs index c6614c961..e9ce47ec7 100644 --- a/collator/src/validator/state.rs +++ b/collator/src/validator/state.rs @@ -7,6 +7,7 @@ use everscale_types::models::{BlockId, BlockIdShort, Signature}; use tokio::sync::{Mutex, RwLock}; use tracing::{debug, trace, warn}; +use crate::tracing_targets; use crate::types::{BlockSignatures, OnValidatedBlockEvent}; use crate::validator::types::{ BlockValidationCandidate, ValidationResult, ValidationSessionInfo, ValidatorInfo, @@ -14,7 +15,6 @@ use crate::validator::types::{ use crate::validator::ValidatorEventListener; use tycho_network::PrivateOverlay; use tycho_util::{FastDashMap, FastHashMap}; -use crate::tracing_targets; struct SignatureMaps { valid_signatures: FastHashMap,