Skip to content

Commit 27a4b36

Browse files
committed
Report error if state is not found in getPersistentStateSize query
This will allow us to omit preparePersistentState query in the future.
1 parent 0ed9c4a commit 27a4b36

File tree

4 files changed

+11
-4
lines changed

4 files changed

+11
-4
lines changed

tl/generate/scheme/ton_api.tl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,7 @@ tonNode.preparedProofLink = tonNode.PreparedProof;
410410
tonNode.preparedState = tonNode.PreparedState;
411411
tonNode.notFoundState = tonNode.PreparedState;
412412
tonNode.persistentStateSize size:long = tonNode.PersistentStateSize;
413+
tonNode.persistentStateSizeNotFound = tonNode.PersistentStateSize;
413414
tonNode.prepared = tonNode.Prepared;
414415
tonNode.notFound = tonNode.Prepared;
415416
tonNode.data data:bytes = tonNode.Data;

tl/generate/scheme/ton_api.tlo

76 Bytes
Binary file not shown.

validator/full-node-master.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,11 @@ void FullNodeMasterImpl::process_query(adnl::AdnlNodeIdShort src, ton_api::tonNo
423423
td::Promise<td::BufferSlice> promise) {
424424
auto P = td::PromiseCreator::lambda(
425425
[SelfId = actor_id(this), promise = std::move(promise)](td::Result<td::uint64> R) mutable {
426-
TRY_RESULT_PROMISE(promise, size, std::move(R));
427-
promise.set_value(create_serialize_tl_object<ton_api::tonNode_persistentStateSize>(size));
426+
if (R.is_error()) {
427+
promise.set_value(create_serialize_tl_object<ton_api::tonNode_persistentStateSizeNotFound>());
428+
} else {
429+
promise.set_value(create_serialize_tl_object<ton_api::tonNode_persistentStateSize>(R.move_as_ok()));
430+
}
428431
});
429432
auto block_id = create_block_id(query.block_);
430433
auto masterchain_block_id = create_block_id(query.masterchain_block_);

validator/full-node-shard.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -730,8 +730,11 @@ void FullNodeShardImpl::process_query(adnl::AdnlNodeIdShort src, ton_api::tonNod
730730
td::Promise<td::BufferSlice> promise) {
731731
auto P = td::PromiseCreator::lambda(
732732
[SelfId = actor_id(this), promise = std::move(promise)](td::Result<td::uint64> R) mutable {
733-
TRY_RESULT_PROMISE(promise, size, std::move(R));
734-
promise.set_value(create_serialize_tl_object<ton_api::tonNode_persistentStateSize>(size));
733+
if (R.is_error()) {
734+
promise.set_value(create_serialize_tl_object<ton_api::tonNode_persistentStateSizeNotFound>());
735+
} else {
736+
promise.set_value(create_serialize_tl_object<ton_api::tonNode_persistentStateSize>(R.move_as_ok()));
737+
}
735738
});
736739
auto block_id = create_block_id(query.block_);
737740
auto masterchain_block_id = create_block_id(query.masterchain_block_);

0 commit comments

Comments
 (0)