mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-12 11:12:16 +00:00
Tonlib: add methods smc.getRawFullAccountState and blocks.getOutMsgQueueSizes (#1027)
* add method smc.getRawFullAccountState * Add method blocks.getOutMsgQueueSizes
This commit is contained in:
parent
0daee1d887
commit
06f503dd02
4 changed files with 37 additions and 0 deletions
|
@ -230,6 +230,8 @@ blocks.blockSignatures id:ton.blockIdExt signatures:(vector blocks.signature) =
|
|||
blocks.shardBlockLink id:ton.blockIdExt proof:bytes = blocks.ShardBlockLink;
|
||||
blocks.blockLinkBack to_key_block:Bool from:ton.blockIdExt to:ton.blockIdExt dest_proof:bytes proof:bytes state_proof:bytes = blocks.BlockLinkBack;
|
||||
blocks.shardBlockProof from:ton.blockIdExt mc_id:ton.blockIdExt links:(vector blocks.shardBlockLink) mc_proof:(vector blocks.blockLinkBack) = blocks.ShardBlockProof;
|
||||
blocks.outMsgQueueSize id:ton.blockIdExt size:int32 = blocks.OutMsgQueueSize;
|
||||
blocks.outMsgQueueSizes shards:(vector blocks.outMsgQueueSize) ext_msg_queue_size_limit:int32 = blocks.OutMsgQueueSizes;
|
||||
|
||||
configInfo config:tvm.cell = ConfigInfo;
|
||||
|
||||
|
@ -309,6 +311,7 @@ smc.forget id:int53 = Ok;
|
|||
smc.getCode id:int53 = tvm.Cell;
|
||||
smc.getData id:int53 = tvm.Cell;
|
||||
smc.getState id:int53 = tvm.Cell;
|
||||
smc.getRawFullAccountState id:int53 = raw.FullAccountState;
|
||||
smc.runGetMethod id:int53 method:smc.MethodId stack:vector<tvm.StackEntry> = smc.RunResult;
|
||||
|
||||
smc.getLibraries library_list:(vector int256) = smc.LibraryResult;
|
||||
|
@ -331,6 +334,7 @@ blocks.getTransactionsExt id:ton.blockIdExt mode:# count:# after:blocks.accountT
|
|||
blocks.getBlockHeader id:ton.blockIdExt = blocks.Header;
|
||||
blocks.getMasterchainBlockSignatures seqno:int32 = blocks.BlockSignatures;
|
||||
blocks.getShardBlockProof id:ton.blockIdExt mode:# from:mode.0?ton.blockIdExt = blocks.ShardBlockProof;
|
||||
blocks.getOutMsgQueueSizes mode:# wc:mode.0?int32 shard:mode.0?int64 = blocks.OutMsgQueueSizes;
|
||||
|
||||
onLiteServerQueryResult id:int64 bytes:bytes = Ok;
|
||||
onLiteServerQueryError id:int64 error:error = Ok;
|
||||
|
|
Binary file not shown.
|
@ -4360,6 +4360,17 @@ td::Status TonlibClient::do_request(const tonlib_api::smc_getState& request,
|
|||
return td::Status::OK();
|
||||
}
|
||||
|
||||
td::Status TonlibClient::do_request(const tonlib_api::smc_getRawFullAccountState& request,
|
||||
td::Promise<object_ptr<tonlib_api::raw_fullAccountState>>&& promise) {
|
||||
auto it = smcs_.find(request.id_);
|
||||
if (it == smcs_.end()) {
|
||||
return TonlibError::InvalidSmcId();
|
||||
}
|
||||
auto& acc = it->second;
|
||||
promise.set_result(acc->to_raw_fullAccountState());
|
||||
return td::Status::OK();
|
||||
}
|
||||
|
||||
bool is_list(vm::StackEntry entry) {
|
||||
while (true) {
|
||||
if (entry.type() == vm::StackEntry::Type::t_null) {
|
||||
|
@ -6031,6 +6042,24 @@ td::Status TonlibClient::do_request(const tonlib_api::blocks_getShardBlockProof&
|
|||
return td::Status::OK();
|
||||
}
|
||||
|
||||
td::Status TonlibClient::do_request(const tonlib_api::blocks_getOutMsgQueueSizes& request,
|
||||
td::Promise<object_ptr<tonlib_api::blocks_outMsgQueueSizes>>&& promise) {
|
||||
client_.send_query(ton::lite_api::liteServer_getOutMsgQueueSizes(request.mode_, request.wc_, request.shard_),
|
||||
promise.wrap([](lite_api_ptr<ton::lite_api::liteServer_outMsgQueueSizes>&& queue_sizes) {
|
||||
tonlib_api::blocks_outMsgQueueSizes result;
|
||||
result.ext_msg_queue_size_limit_ = queue_sizes->ext_msg_queue_size_limit_;
|
||||
for (auto &x : queue_sizes->shards_) {
|
||||
tonlib_api::blocks_outMsgQueueSize shard;
|
||||
shard.id_ = to_tonlib_api(*x->id_);
|
||||
shard.size_ = x->size_;
|
||||
result.shards_.push_back(tonlib_api::make_object<tonlib_api::blocks_outMsgQueueSize>(std::move(shard)));
|
||||
}
|
||||
return tonlib_api::make_object<tonlib_api::blocks_outMsgQueueSizes>(std::move(result));
|
||||
}));
|
||||
|
||||
return td::Status::OK();
|
||||
}
|
||||
|
||||
void TonlibClient::load_libs_from_disk() {
|
||||
LOG(DEBUG) << "loading libraries from disk cache";
|
||||
auto r_data = kv_->get("tonlib.libcache");
|
||||
|
|
|
@ -324,6 +324,8 @@ class TonlibClient : public td::actor::Actor {
|
|||
td::Promise<object_ptr<tonlib_api::tvm_cell>>&& promise);
|
||||
td::Status do_request(const tonlib_api::smc_getState& request,
|
||||
td::Promise<object_ptr<tonlib_api::tvm_cell>>&& promise);
|
||||
td::Status do_request(const tonlib_api::smc_getRawFullAccountState& request,
|
||||
td::Promise<object_ptr<tonlib_api::raw_fullAccountState>>&& promise);
|
||||
|
||||
td::Status do_request(const tonlib_api::smc_runGetMethod& request,
|
||||
td::Promise<object_ptr<tonlib_api::smc_runResult>>&& promise);
|
||||
|
@ -390,6 +392,8 @@ class TonlibClient : public td::actor::Actor {
|
|||
td::Promise<object_ptr<tonlib_api::blocks_blockSignatures>>&& promise);
|
||||
td::Status do_request(const tonlib_api::blocks_getShardBlockProof& request,
|
||||
td::Promise<object_ptr<tonlib_api::blocks_shardBlockProof>>&& promise);
|
||||
td::Status do_request(const tonlib_api::blocks_getOutMsgQueueSizes& request,
|
||||
td::Promise<object_ptr<tonlib_api::blocks_outMsgQueueSizes>>&& promise);
|
||||
|
||||
void get_config_param(int32_t param, int32_t mode, ton::BlockIdExt block,
|
||||
td::Promise<object_ptr<tonlib_api::configInfo>>&& promise);
|
||||
|
|
Loading…
Reference in a new issue