Tx ID calculation on broadcasting Hive transaction

This commit is contained in:
serkixenos 2021-03-31 12:28:41 +02:00
parent a2c5c29005
commit 944fa3b072
4 changed files with 17 additions and 2 deletions

View file

@ -7,6 +7,19 @@
namespace graphene { namespace peerplays_sidechain { namespace hive {
digest_type transaction::digest() const {
digest_type::encoder enc;
fc::raw::pack(enc, *this);
return enc.result();
}
transaction_id_type transaction::id() const {
auto h = digest();
transaction_id_type result;
memcpy(result._hash, h._hash, std::min(sizeof(result), sizeof(h)));
return result;
}
digest_type transaction::sig_digest(const chain_id_type &chain_id) const {
digest_type::encoder enc;
fc::raw::pack(enc, chain_id);

View file

@ -17,6 +17,8 @@ struct transaction {
std::vector<hive_operation> operations;
extensions_type extensions;
digest_type digest() const;
transaction_id_type id() const;
digest_type sig_digest(const chain_id_type &chain_id) const;
void set_expiration(fc::time_point_sec expiration_time);

View file

@ -15,7 +15,7 @@ typedef fc::sha256 chain_id_type;
typedef std::string account_name_type;
typedef fc::ripemd160 block_id_type;
//typedef fc::ripemd160 checksum_type;
//typedef fc::ripemd160 transaction_id_type;
typedef fc::ripemd160 transaction_id_type;
typedef fc::sha256 digest_type;
typedef fc::ecc::compact_signature signature_type;
//typedef safe<int64_t> share_type;

View file

@ -496,7 +496,7 @@ std::string sidechain_net_handler_hive::send_sidechain_transaction(const sidecha
// return "";
// }
return "";
return htrx.id().str();
}
int64_t sidechain_net_handler_hive::settle_sidechain_transaction(const sidechain_transaction_object &sto) {