mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-12 11:12:16 +00:00
Fix setting due_payment in storage phase (#957)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
This commit is contained in:
parent
cc4244f5a4
commit
b8111d8b5b
4 changed files with 7 additions and 1 deletions
|
@ -19,6 +19,6 @@
|
|||
namespace ton {
|
||||
|
||||
// See doc/GlobalVersions.md
|
||||
const int SUPPORTED_VERSION = 6;
|
||||
const int SUPPORTED_VERSION = 7;
|
||||
|
||||
}
|
||||
|
|
|
@ -898,6 +898,9 @@ bool Transaction::prepare_storage_phase(const StoragePhaseConfig& cfg, bool forc
|
|||
res->fees_collected = to_pay;
|
||||
res->fees_due = td::zero_refint();
|
||||
balance -= std::move(to_pay);
|
||||
if (cfg.global_version >= 7) {
|
||||
due_payment = td::zero_refint();
|
||||
}
|
||||
} else if (acc_status == Account::acc_frozen && !force_collect && to_pay < cfg.delete_due_limit) {
|
||||
// do not collect fee
|
||||
res->last_paid_updated = (res->is_special ? 0 : account.last_paid);
|
||||
|
@ -3668,6 +3671,7 @@ td::Status FetchConfigParams::fetch_config_params(
|
|||
compute_phase_cfg->mc_gas_prices = std::move(mc_gas_prices);
|
||||
compute_phase_cfg->special_gas_full = config.get_global_version() >= 5;
|
||||
storage_phase_cfg->enable_due_payment = config.get_global_version() >= 4;
|
||||
storage_phase_cfg->global_version = config.get_global_version();
|
||||
compute_phase_cfg->block_rand_seed = *rand_seed;
|
||||
compute_phase_cfg->max_vm_data_depth = size_limits.max_vm_data_depth;
|
||||
compute_phase_cfg->global_config = config.get_root_cell();
|
||||
|
|
|
@ -82,6 +82,7 @@ struct StoragePhaseConfig {
|
|||
td::RefInt256 freeze_due_limit;
|
||||
td::RefInt256 delete_due_limit;
|
||||
bool enable_due_payment{false};
|
||||
int global_version = 0;
|
||||
StoragePhaseConfig() = default;
|
||||
StoragePhaseConfig(const std::vector<block::StoragePrices>* _pricing, td::RefInt256 freeze_limit = {},
|
||||
td::RefInt256 delete_limit = {})
|
||||
|
|
|
@ -947,6 +947,7 @@ bool ValidateQuery::fetch_config_params() {
|
|||
compute_phase_cfg_.mc_gas_prices = mc_gas_prices.move_as_ok();
|
||||
compute_phase_cfg_.special_gas_full = config_->get_global_version() >= 5;
|
||||
storage_phase_cfg_.enable_due_payment = config_->get_global_version() >= 4;
|
||||
storage_phase_cfg_.global_version = config_->get_global_version();
|
||||
compute_phase_cfg_.block_rand_seed = rand_seed_;
|
||||
compute_phase_cfg_.libraries = std::make_unique<vm::Dictionary>(config_->get_libraries_root(), 256);
|
||||
compute_phase_cfg_.max_vm_data_depth = size_limits.max_vm_data_depth;
|
||||
|
|
Loading…
Reference in a new issue