From f95f1a58740234ab82e760d49ec03732137e0f2b Mon Sep 17 00:00:00 2001 From: ms <98183742+dungeon-master-666@users.noreply.github.com> Date: Mon, 15 Aug 2022 19:04:24 +0200 Subject: [PATCH] Add tonlib method raw.sendMessageReturnHash (#423) * Add tonlib method raw.sendMessageReturnHash * resolve tlo Co-authored-by: ms --- tl/generate/scheme/tonlib_api.tl | 5 +++-- tl/generate/scheme/tonlib_api.tlo | Bin 29024 -> 29120 bytes tonlib/tonlib/TonlibClient.cpp | 15 +++++++++++---- tonlib/tonlib/TonlibClient.h | 4 +++- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/tl/generate/scheme/tonlib_api.tl b/tl/generate/scheme/tonlib_api.tl index 599cb21f..c4d8eb98 100644 --- a/tl/generate/scheme/tonlib_api.tl +++ b/tl/generate/scheme/tonlib_api.tl @@ -55,7 +55,7 @@ raw.message source:accountAddress destination:accountAddress value:int64 fwd_fee raw.transaction utime:int53 data:bytes transaction_id:internal.transactionId fee:int64 storage_fee:int64 other_fee:int64 in_msg:raw.message out_msgs:vector = raw.Transaction; raw.transactions transactions:vector previous_transaction_id:internal.transactionId = raw.Transactions; -raw.extMessageInfo body_hash:bytes = raw.ExtMessageInfo; +raw.extMessageInfo hash:bytes = raw.ExtMessageInfo; pchan.config alice_public_key:string alice_address:accountAddress bob_public_key:string bob_address:accountAddress init_timeout:int32 close_timeout:int32 channel_id:int64 = pchan.Config; @@ -251,7 +251,8 @@ getBip39Hints prefix:string = Bip39Hints; //raw.init initial_account_state:raw.initialAccountState = Ok; raw.getAccountState account_address:accountAddress = raw.FullAccountState; raw.getTransactions private_key:InputKey account_address:accountAddress from_transaction_id:internal.transactionId = raw.Transactions; -raw.sendMessage body:bytes = raw.ExtMessageInfo; +raw.sendMessage body:bytes = Ok; +raw.sendMessageReturnHash body:bytes = raw.ExtMessageInfo; raw.createAndSendMessage destination:accountAddress initial_account_state:bytes data:bytes = Ok; raw.createQuery destination:accountAddress init_code:bytes init_data:bytes body:bytes = query.Info; diff --git a/tl/generate/scheme/tonlib_api.tlo b/tl/generate/scheme/tonlib_api.tlo index 6ba7fea3ff6c2d656771edff5bb7230a7c9ea906..69cf1595913df0f72ca80fe016a3e3761d9f3359 100644 GIT binary patch delta 176 zcmaFxi1EN<#tnP8S=QA{nruG6ZDFAZVhI%`mg}Wfl=!9=7bm8tdgi6&Gl0Zz9ux9m zoUCiA4N>polEKU9ws~uyxs>dKhVZHUAZ^8|c_~nRnfu;efoSEZ0k|DDh1#E>28O^~_7lX8?)cJSODB zI62o%eX@Wi2SksDO9n5a>*kGt=28+n*9gqy2Wc%%%}asm1!b%7 diff --git a/tonlib/tonlib/TonlibClient.cpp b/tonlib/tonlib/TonlibClient.cpp index 0d265c65..e8a9ac44 100644 --- a/tonlib/tonlib/TonlibClient.cpp +++ b/tonlib/tonlib/TonlibClient.cpp @@ -2366,15 +2366,22 @@ auto to_any_promise(td::Promise&& promise) { } td::Status TonlibClient::do_request(const tonlib_api::raw_sendMessage& request, - td::Promise>&& promise) { + td::Promise>&& promise) { TRY_RESULT_PREFIX(body, vm::std_boc_deserialize(request.body_), TonlibError::InvalidBagOfCells("body")); std::ostringstream os; block::gen::t_Message_Any.print_ref(os, body); LOG(ERROR) << os.str(); - auto body_hash = body->get_hash().as_slice().str(); + make_request(int_api::SendMessage{std::move(body)}, to_any_promise(std::move(promise))); + return td::Status::OK(); +} + +td::Status TonlibClient::do_request(const tonlib_api::raw_sendMessageReturnHash& request, + td::Promise>&& promise) { + TRY_RESULT_PREFIX(body, vm::std_boc_deserialize(request.body_), TonlibError::InvalidBagOfCells("body")); + auto hash = body->get_hash().as_slice().str(); make_request(int_api::SendMessage{std::move(body)}, - promise.wrap([body_hash = std::move(body_hash)](auto res) { - return tonlib_api::make_object(std::move(body_hash)); + promise.wrap([hash = std::move(hash)](auto res) { + return tonlib_api::make_object(std::move(hash)); })); return td::Status::OK(); } diff --git a/tonlib/tonlib/TonlibClient.h b/tonlib/tonlib/TonlibClient.h index 3ce68ee4..10c83f21 100644 --- a/tonlib/tonlib/TonlibClient.h +++ b/tonlib/tonlib/TonlibClient.h @@ -224,7 +224,9 @@ class TonlibClient : public td::actor::Actor { td::Status do_request(tonlib_api::options_setConfig& request, td::Promise>&& promise); - td::Status do_request(const tonlib_api::raw_sendMessage& request, td::Promise>&& promise); + td::Status do_request(const tonlib_api::raw_sendMessage& request, td::Promise>&& promise); + td::Status do_request(const tonlib_api::raw_sendMessageReturnHash& request, + td::Promise>&& promise); td::Status do_request(const tonlib_api::raw_createAndSendMessage& request, td::Promise>&& promise); td::Status do_request(const tonlib_api::raw_createQuery& request,