mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
78 lines
2.1 KiB
C++
78 lines
2.1 KiB
C++
#include "Response.h"
|
|
|
|
namespace model {
|
|
namespace hedera {
|
|
Response::Response()
|
|
{
|
|
}
|
|
|
|
Response::~Response()
|
|
{
|
|
|
|
}
|
|
|
|
Poco::UInt64 Response::getAccountBalance()
|
|
{
|
|
if (isCryptoGetAccountBalanceResponse()) {
|
|
auto balance_response = mResponseProto.cryptogetaccountbalance();
|
|
return balance_response.balance();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
std::unique_ptr<ConsensusTopicInfo> Response::getConsensusTopicInfo()
|
|
{
|
|
if (mResponseProto.has_consensusgettopicinfo()) {
|
|
return std::make_unique<ConsensusTopicInfo>(mResponseProto.consensusgettopicinfo().topicinfo());
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
TransactionReceipt* Response::getTransactionReceipt()
|
|
{
|
|
if (mResponseProto.has_transactiongetreceipt()) {
|
|
return new TransactionReceipt(mResponseProto.transactiongetreceipt().receipt());
|
|
}
|
|
if (mResponseProto.has_transactiongetrecord()) {
|
|
return new TransactionReceipt(mResponseProto.transactiongetrecord().transactionrecord().receipt());
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
TransactionRecord* Response::getTransactionRecord()
|
|
{
|
|
if (mResponseProto.has_transactiongetrecord()) {
|
|
return new TransactionRecord(mResponseProto.transactiongetrecord().transactionrecord());
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
Poco::UInt64 Response::getQueryCost()
|
|
{
|
|
proto::ResponseHeader* response_header = nullptr;
|
|
if (mResponseProto.has_consensusgettopicinfo()) {
|
|
response_header = mResponseProto.mutable_consensusgettopicinfo()->mutable_header();
|
|
}
|
|
else if (mResponseProto.has_cryptogetaccountbalance()) {
|
|
response_header = mResponseProto.mutable_cryptogetaccountbalance()->mutable_header();
|
|
}
|
|
if (response_header) {
|
|
return response_header->cost();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
proto::ResponseCodeEnum Response::getResponseCode()
|
|
{
|
|
if (isCryptoGetAccountBalanceResponse()) {
|
|
auto balance_response = mResponseProto.cryptogetaccountbalance();
|
|
return balance_response.header().nodetransactionprecheckcode();
|
|
}
|
|
else if (mResponseProto.has_consensusgettopicinfo()) {
|
|
auto response = mResponseProto.consensusgettopicinfo();
|
|
return response.header().nodetransactionprecheckcode();
|
|
}
|
|
return proto::NOT_SUPPORTED;
|
|
}
|
|
}
|
|
} |