mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
updated smartcontracts
- updated smartcontracts - updated fullnode database layout - fixed memory leak in blockchain-explorer - updated tonlib
This commit is contained in:
parent
9c9248a9ae
commit
c860ce3d1e
104 changed files with 7309 additions and 1335 deletions
|
@ -34,6 +34,17 @@
|
|||
#include <map>
|
||||
|
||||
namespace tonlib {
|
||||
namespace int_api {
|
||||
struct GetAccountState;
|
||||
struct GetPrivateKey;
|
||||
struct SendMessage;
|
||||
inline std::string to_string(const int_api::SendMessage&) {
|
||||
return "Send message";
|
||||
}
|
||||
} // namespace int_api
|
||||
class AccountState;
|
||||
class Query;
|
||||
|
||||
class TonlibClient : public td::actor::Actor {
|
||||
public:
|
||||
template <class T>
|
||||
|
@ -66,6 +77,7 @@ class TonlibClient : public td::actor::Actor {
|
|||
td::actor::ActorOwn<ton::adnl::AdnlExtClient> raw_client_;
|
||||
td::actor::ActorId<ExtClientOutbound> ext_client_outbound_;
|
||||
td::actor::ActorOwn<LastBlock> raw_last_block_;
|
||||
td::actor::ActorOwn<LastConfig> raw_last_config_;
|
||||
ExtClient client_;
|
||||
|
||||
td::CancellationTokenSource source_;
|
||||
|
@ -76,6 +88,7 @@ class TonlibClient : public td::actor::Actor {
|
|||
ExtClientRef get_client_ref();
|
||||
void init_ext_client();
|
||||
void init_last_block();
|
||||
void init_last_config();
|
||||
|
||||
bool is_closing_{false};
|
||||
td::uint32 ref_cnt_{1};
|
||||
|
@ -127,9 +140,53 @@ class TonlibClient : public td::actor::Actor {
|
|||
static object_ptr<tonlib_api::Object> do_static_request(const tonlib_api::decrypt& request);
|
||||
static object_ptr<tonlib_api::Object> do_static_request(const tonlib_api::kdf& request);
|
||||
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::runTests& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::raw_getAccountAddress& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::testWallet_getAccountAddress& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::wallet_getAccountAddress& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::testGiver_getAccountAddress& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::packAccountAddress& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::unpackAccountAddress& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(tonlib_api::getBip39Hints& request, P&&);
|
||||
|
||||
template <class P>
|
||||
td::Status do_request(tonlib_api::setLogStream& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::getLogStream& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::setLogVerbosityLevel& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::setLogTagVerbosityLevel& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::getLogVerbosityLevel& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::getLogTagVerbosityLevel& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::getLogTags& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::addLogMessage& request, P&&);
|
||||
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::encrypt& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::decrypt& request, P&&);
|
||||
template <class P>
|
||||
td::Status do_request(const tonlib_api::kdf& request, P&&);
|
||||
|
||||
template <class T, class P>
|
||||
td::Status do_request(const T& request, P&& promise) {
|
||||
return td::Status::Error(400, "Function is unsupported");
|
||||
void make_request(T&& request, P&& promise) {
|
||||
auto status = do_request(std::forward<T>(request), std::move(promise));
|
||||
if (status.is_error()) {
|
||||
promise.operator()(std::move(status));
|
||||
}
|
||||
}
|
||||
|
||||
td::Status set_config(object_ptr<tonlib_api::config> config);
|
||||
|
@ -138,6 +195,11 @@ class TonlibClient : public td::actor::Actor {
|
|||
td::Status do_request(tonlib_api::options_setConfig& request, td::Promise<object_ptr<tonlib_api::ok>>&& promise);
|
||||
|
||||
td::Status do_request(const tonlib_api::raw_sendMessage& request, td::Promise<object_ptr<tonlib_api::ok>>&& promise);
|
||||
td::Status do_request(const tonlib_api::raw_createAndSendMessage& request,
|
||||
td::Promise<object_ptr<tonlib_api::ok>>&& promise);
|
||||
td::Status do_request(const tonlib_api::raw_createQuery& request,
|
||||
td::Promise<object_ptr<tonlib_api::query_info>>&& promise);
|
||||
|
||||
td::Status do_request(tonlib_api::raw_getAccountState& request,
|
||||
td::Promise<object_ptr<tonlib_api::raw_accountState>>&& promise);
|
||||
td::Status do_request(tonlib_api::raw_getTransactions& request,
|
||||
|
@ -191,6 +253,48 @@ class TonlibClient : public td::actor::Actor {
|
|||
td::Status do_request(const tonlib_api::onLiteServerQueryError& request,
|
||||
td::Promise<object_ptr<tonlib_api::ok>>&& promise);
|
||||
|
||||
td::int64 next_query_id_{0};
|
||||
std::map<td::int64, td::unique_ptr<Query>> queries_;
|
||||
td::int64 register_query(td::unique_ptr<Query> query);
|
||||
td::Result<tonlib_api::object_ptr<tonlib_api::query_info>> get_query_info(td::int64 id);
|
||||
void finish_create_query(td::Result<td::unique_ptr<Query>> r_query,
|
||||
td::Promise<object_ptr<tonlib_api::query_info>>&& promise);
|
||||
void finish_send_query(td::Result<td::unique_ptr<Query>> r_query,
|
||||
td::Promise<object_ptr<tonlib_api::sendGramsResult>>&& promise);
|
||||
void query_estimate_fees(td::int64 id, bool ignore_chksig, td::Result<LastConfigState> r_state,
|
||||
td::Promise<object_ptr<tonlib_api::query_fees>>&& promise);
|
||||
|
||||
td::Status do_request(const tonlib_api::query_getInfo& request,
|
||||
td::Promise<object_ptr<tonlib_api::query_info>>&& promise);
|
||||
td::Status do_request(const tonlib_api::query_estimateFees& request,
|
||||
td::Promise<object_ptr<tonlib_api::query_fees>>&& promise);
|
||||
td::Status do_request(const tonlib_api::query_send& request, td::Promise<object_ptr<tonlib_api::ok>>&& promise);
|
||||
td::Status do_request(tonlib_api::query_forget& request, td::Promise<object_ptr<tonlib_api::ok>>&& promise);
|
||||
|
||||
td::Status do_request(tonlib_api::generic_createSendGramsQuery& request,
|
||||
td::Promise<object_ptr<tonlib_api::query_info>>&& promise);
|
||||
|
||||
td::int64 next_smc_id_{0};
|
||||
std::map<td::int64, td::unique_ptr<AccountState>> smcs_;
|
||||
|
||||
td::int64 register_smc(td::unique_ptr<AccountState> smc);
|
||||
td::Result<tonlib_api::object_ptr<tonlib_api::smc_info>> get_smc_info(td::int64 id);
|
||||
void finish_load_smc(td::unique_ptr<AccountState> query, td::Promise<object_ptr<tonlib_api::smc_info>>&& promise);
|
||||
td::Status do_request(const tonlib_api::smc_load& request, td::Promise<object_ptr<tonlib_api::smc_info>>&& promise);
|
||||
td::Status do_request(const tonlib_api::smc_getCode& request,
|
||||
td::Promise<object_ptr<tonlib_api::tvm_cell>>&& promise);
|
||||
td::Status do_request(const tonlib_api::smc_getData& request,
|
||||
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(int_api::GetAccountState request, td::Promise<td::unique_ptr<AccountState>>&&);
|
||||
td::Status do_request(int_api::GetPrivateKey request, td::Promise<KeyStorage::PrivateKey>&&);
|
||||
td::Status do_request(int_api::SendMessage request, td::Promise<td::Unit>&& promise);
|
||||
|
||||
td::Status do_request(const tonlib_api::liteServer_getInfo& request,
|
||||
td::Promise<object_ptr<tonlib_api::liteServer_info>>&& promise);
|
||||
|
||||
void proxy_request(td::int64 query_id, std::string data);
|
||||
|
||||
friend class TonlibQueryActor;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue