1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

Make fine multiplicators rational with 256 base

This commit is contained in:
EmelyanenkoK 2021-06-17 17:30:01 +03:00 committed by main
parent 41255daa54
commit 46204d918d
2 changed files with 9 additions and 9 deletions

View file

@ -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;

View file

@ -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;