From 46204d918ddc4196bfb9d4abf37872c87358831b Mon Sep 17 00:00:00 2001 From: EmelyanenkoK Date: Thu, 17 Jun 2021 17:30:01 +0300 Subject: [PATCH] Make fine multiplicators rational with 256 base --- crypto/block/block.tlb | 6 +++--- lite-client/lite-client.cpp | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/crypto/block/block.tlb b/crypto/block/block.tlb index b0d96235..7e2b12f9 100644 --- a/crypto/block/block.tlb +++ b/crypto/block/block.tlb @@ -720,10 +720,10 @@ _ (HashmapE 256 ValidatorSignedTempKey) = ConfigParam 39; misbehaviour_punishment_config_v1#01 default_flat_fine:Grams default_proportional_fine:uint32 - severity_flat_mult:uint8 severity_proportional_mult:uint8 + severity_flat_mult:uint16 severity_proportional_mult:uint16 unpunishable_interval:uint16 - long_interval:uint16 long_flat_mult:uint8 long_proportional_mult:uint8 - medium_interval:uint16 medium_flat_mult:uint8 medium_proportional_mult:uint8 + long_interval:uint16 long_flat_mult:uint16 long_proportional_mult:uint16 + medium_interval:uint16 medium_flat_mult:uint16 medium_proportional_mult:uint16 = MisbehaviourPunishmentConfig; _ MisbehaviourPunishmentConfig = ConfigParam 40; diff --git a/lite-client/lite-client.cpp b/lite-client/lite-client.cpp index f50c118c..1ccfec86 100644 --- a/lite-client/lite-client.cpp +++ b/lite-client/lite-client.cpp @@ -3722,18 +3722,18 @@ bool compute_punishment(int interval, bool severe, td::RefInt256& fine, unsigned fine_part = rec.default_proportional_fine; if (severe) { - fine = fine * rec.severity_flat_mult; - fine_part = fine_part * rec.severity_proportional_mult; + fine = fine * rec.severity_flat_mult; fine >>= 8; + fine_part = fine_part * rec.severity_proportional_mult; fine_part >>= 8; } if (interval >= rec.long_interval) { - fine = fine * rec.long_flat_mult; - fine_part = fine_part * rec.long_proportional_mult; + fine = fine * rec.long_flat_mult; fine >>= 8; + fine_part = fine_part * rec.long_proportional_mult; fine_part >>= 8; return true; } if (interval >= rec.medium_interval) { - fine = fine * rec.medium_flat_mult; - fine_part = fine_part * rec.medium_proportional_mult; + fine = fine * rec.medium_flat_mult; fine >>= 8; + fine_part = fine_part * rec.medium_proportional_mult; fine_part >>= 8; return true; } return true;