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

fixed crash in validator. Updated elector/config smartcontracts

This commit is contained in:
ton 2020-04-02 17:08:42 +04:00
parent 9bff9285b8
commit 0e4277313c
9 changed files with 326 additions and 146 deletions

View file

@ -578,6 +578,15 @@ bool MsgProcessedUptoCollection::already_processed(const EnqueuedMsgDescr& msg)
return false;
}
bool MsgProcessedUptoCollection::can_check_processed() const {
for (const auto& entry : list) {
if (!entry.can_check_processed()) {
return false;
}
}
return true;
}
bool MsgProcessedUptoCollection::for_each_mcseqno(std::function<bool(ton::BlockSeqno)> func) const {
for (const auto& entry : list) {
if (!func(entry.mc_seqno)) {

View file

@ -171,6 +171,9 @@ struct MsgProcessedUpto {
ton::BlockSeqno other_mc_seqno) const &;
// NB: this is for checking whether we have already imported an internal message
bool already_processed(const EnqueuedMsgDescr& msg) const;
bool can_check_processed() const {
return (bool)compute_shard_end_lt;
}
};
struct MsgProcessedUptoCollection {
@ -197,6 +200,7 @@ struct MsgProcessedUptoCollection {
bool combine_with(const MsgProcessedUptoCollection& other);
// NB: this is for checking whether we have already imported an internal message
bool already_processed(const EnqueuedMsgDescr& msg) const;
bool can_check_processed() const;
bool for_each_mcseqno(std::function<bool(ton::BlockSeqno)>) const;
};

View file

@ -603,6 +603,9 @@ workchain#a6 enabled_since:uint32 actual_min_split:(## 8)
_ workchains:(HashmapE 32 WorkchainDescr) = ConfigParam 12;
complaint_prices#1a deposit:Grams bit_price:Grams cell_price:Grams = ComplaintPricing;
_ ComplaintPricing = ConfigParam 13;
block_grams_created#6b masterchain_block_fee:Grams basechain_block_fee:Grams
= BlockCreateFees;
_ BlockCreateFees = ConfigParam 14;
@ -696,6 +699,13 @@ top_block_descr#d5 proof_for:BlockIdExt signatures:(Maybe ^BlockSignatures)
//
top_block_descr_set#4ac789f3 collection:(HashmapE 96 ^TopBlockDescr) = TopBlockDescrSet;
//
// VALIDATOR MISBEHAVIOR COMPLAINTS
//
no_blk_gen mc_blk_ref:ExtBlkRef from_utime:uint32 to_utime:uint32 state_proof:^Cell prod_proof:^Cell = ComplaintDescr;
validator_complaint#ba validator_pubkey:uint256 description:^ComplaintDescr severity:uint8 reward_addr:uint256 paid:Grams suggested_fine:Grams suggested_fine_part:uint32 = ValidatorComplaint;
complaint_status#2d complaint:^ValidatorComplaint voters:(HashmapE 16 True) vset_id:uint256 weight_remaining:int64 = ValidatorComplaintStatus;
//
// TVM REFLECTION
//