From 9256b135195e61ee025f815e4cc210c47195b5f2 Mon Sep 17 00:00:00 2001 From: SpyCheese Date: Wed, 26 Jul 2023 10:53:44 +0300 Subject: [PATCH] LS patch --- tl/generate/scheme/lite_api.tl | 2 +- tl/generate/scheme/lite_api.tlo | Bin 14148 -> 14188 bytes validator/impl/liteserver.cpp | 27 +++++++++++++++++++++++++-- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/tl/generate/scheme/lite_api.tl b/tl/generate/scheme/lite_api.tl index ce4d27316..2a46d77a8 100644 --- a/tl/generate/scheme/lite_api.tl +++ b/tl/generate/scheme/lite_api.tl @@ -33,7 +33,7 @@ liteServer.currentTime now:int = liteServer.CurrentTime; liteServer.version mode:# version:int capabilities:long now:int = liteServer.Version; liteServer.blockData id:tonNode.blockIdExt data:bytes = liteServer.BlockData; liteServer.blockState id:tonNode.blockIdExt root_hash:int256 file_hash:int256 data:bytes = liteServer.BlockState; -liteServer.blockHeader id:tonNode.blockIdExt mode:# header_proof:bytes = liteServer.BlockHeader; +liteServer.blockHeader id:tonNode.blockIdExt mode:# header_proof:bytes tx_cnt:mode.30?int = liteServer.BlockHeader; liteServer.sendMsgStatus status:int = liteServer.SendMsgStatus; liteServer.accountState id:tonNode.blockIdExt shardblk:tonNode.blockIdExt shard_proof:bytes proof:bytes state:bytes = liteServer.AccountState; liteServer.runMethodResult mode:# id:tonNode.blockIdExt shardblk:tonNode.blockIdExt shard_proof:mode.0?bytes proof:mode.0?bytes state_proof:mode.1?bytes init_c7:mode.3?bytes lib_extras:mode.4?bytes exit_code:int result:mode.2?bytes = liteServer.RunMethodResult; diff --git a/tl/generate/scheme/lite_api.tlo b/tl/generate/scheme/lite_api.tlo index da64ac53bcac03fb1d2eb1ca4fe3940d7e56c29b..d50a62b8764e3f7c3c51ca0ee90024f6c2e8d8df 100644 GIT binary patch delta 113 zcmX?-_a<)x2Q!P%&I^||^Dz7Hf?1Pe1SBAg3vwEh7YKMvE)Zi8WGktNPtGf0U}As( lxyg>)(h!|r1dc#8?9mK>2nlG(a6!y4Fqs1px?obm1OPLIDnbAN delta 108 zcmaEpcO-8E2Q!OglWyr|9%dh2Fl%y*fCPk*z^^fRfq=(k2VM?{8X3VO5}Y8_H;)PV mFimDOa-OWC1(mbVlHr1AJD_4P`GGXg value, td::ConstBitPtr key, int n) -> bool { + block::gen::CurrencyCollection::Record skip; + block::gen::csr_unpack_skip(value, skip); + block::gen::AccountBlock::Record acc_blk; + CHECK(tlb::csr_unpack(std::move(value), acc_blk)); + vm::AugmentedDictionary trans_dict{vm::DictNonEmpty(), std::move(acc_blk.transactions), 64, + block::tlb::aug_AccountTransactions}; + trans_dict.check_for_each([&](td::Ref value, td::ConstBitPtr key, int n) -> bool { + ++tx_cnt; + return true; + }); + return true; + }); + } // send answer - auto b = ton::create_serialize_tl_object(ton::create_tl_lite_block_id(blkid), - mode, proof_data.move_as_ok()); + auto b = ton::create_serialize_tl_object( + ton::create_tl_lite_block_id(blkid), mode, proof_data.move_as_ok(), tx_cnt); finish_query(std::move(b)); }