Skip to content

Commit a89cafb

Browse files
committed
Move limit for storage dict hash to config
1 parent ba54733 commit a89cafb

File tree

6 files changed

+7
-3
lines changed

6 files changed

+7
-3
lines changed

crypto/block/block.tlb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@ size_limits_config#01 max_msg_bits:uint32 max_msg_cells:uint32 max_library_cells
798798
size_limits_config_v2#02 max_msg_bits:uint32 max_msg_cells:uint32 max_library_cells:uint32 max_vm_data_depth:uint16
799799
max_ext_msg_size:uint32 max_ext_msg_depth:uint16 max_acc_state_cells:uint32 max_acc_state_bits:uint32
800800
max_acc_public_libraries:uint32 defer_out_queue_size_limit:uint32 max_msg_extra_currencies:uint32
801-
max_acc_fixed_prefix_length:uint8 = SizeLimitsConfig;
801+
max_acc_fixed_prefix_length:uint8 acc_state_cells_for_storage_dict:uint32 = SizeLimitsConfig;
802802
_ SizeLimitsConfig = ConfigParam 43;
803803

804804
// key is [ wc:int32 addr:uint256 ]

crypto/block/mc-config.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2046,6 +2046,7 @@ td::Result<SizeLimitsConfig> Config::do_get_size_limits_config(td::Ref<vm::CellS
20462046
limits.defer_out_queue_size_limit = rec.defer_out_queue_size_limit;
20472047
limits.max_msg_extra_currencies = rec.max_msg_extra_currencies;
20482048
limits.max_acc_fixed_prefix_length = rec.max_acc_fixed_prefix_length;
2049+
limits.acc_state_cells_for_storage_dict = rec.acc_state_cells_for_storage_dict;
20492050
};
20502051
gen::SizeLimitsConfig::Record_size_limits_config rec_v1;
20512052
gen::SizeLimitsConfig::Record_size_limits_config_v2 rec_v2;

crypto/block/mc-config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ struct SizeLimitsConfig {
403403
td::uint32 defer_out_queue_size_limit = 256;
404404
td::uint32 max_msg_extra_currencies = 2;
405405
td::uint32 max_acc_fixed_prefix_length = 8;
406+
td::uint32 acc_state_cells_for_storage_dict = 26;
406407
};
407408

408409
struct CatchainValidatorsConfig {

crypto/block/transaction.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3522,8 +3522,7 @@ bool Transaction::compute_state(const SerializeConfig& cfg) {
35223522
// Root of AccountStorage is not counted in AccountStorageStat
35233523
new_storage_used.cells = stats.get_total_cells() + 1;
35243524
new_storage_used.bits = stats.get_total_bits() + new_storage_for_stat->size();
3525-
// TODO: think about this limit (25)
3526-
if (store_storage_dict_hash && new_storage_used.cells > 25) {
3525+
if (store_storage_dict_hash && new_storage_used.cells >= cfg.size_limits.acc_state_cells_for_storage_dict) {
35273526
auto r_hash = stats.get_dict_hash();
35283527
if (r_hash.is_error()) {
35293528
LOG(ERROR) << "Cannot compute storage dict hash for account " << account.addr.to_hex() << ": "
@@ -4184,6 +4183,7 @@ td::Status FetchConfigParams::fetch_config_params(
41844183
serialize_cfg->extra_currency_v2 = config.get_global_version() >= 10;
41854184
serialize_cfg->disable_anycast = config.get_global_version() >= 10;
41864185
serialize_cfg->store_storage_dict_hash = config.get_global_version() >= 11;
4186+
serialize_cfg->size_limits = size_limits;
41874187
}
41884188
{
41894189
// fetch block_grams_created

crypto/block/transaction.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ struct SerializeConfig {
186186
bool extra_currency_v2{false};
187187
bool disable_anycast{false};
188188
bool store_storage_dict_hash{false};
189+
SizeLimitsConfig size_limits;
189190
};
190191

191192
struct CreditPhase {

validator/impl/validate-query.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,6 +1079,7 @@ bool ValidateQuery::fetch_config_params() {
10791079
serialize_cfg_.extra_currency_v2 = config_->get_global_version() >= 10;
10801080
serialize_cfg_.disable_anycast = config_->get_global_version() >= 10;
10811081
serialize_cfg_.store_storage_dict_hash = config_->get_global_version() >= 11;
1082+
serialize_cfg_.size_limits = size_limits;
10821083
}
10831084
{
10841085
// fetch block_grams_created

0 commit comments

Comments
 (0)