diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h index bbd70bf..80aabd8 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -3,7 +3,8 @@ #define CURRENT_TRANSACTION_VERSION 1 enum BLOB_TYPE { - BLOB_TYPE_CRYPTONOTE = 0, - BLOB_TYPE_FORKNOTE1 = 1, - BLOB_TYPE_FORKNOTE2 = 2, + BLOB_TYPE_CRYPTONOTE = 0, + BLOB_TYPE_FORKNOTE1 = 1, + BLOB_TYPE_FORKNOTE2 = 2, + BLOB_TYPE_CRYPTONOTE2 = 3, // Masari }; \ No newline at end of file diff --git a/src/cryptonote_core/cryptonote_basic.h b/src/cryptonote_core/cryptonote_basic.h index 3a2afdb..860e46b 100644 --- a/src/cryptonote_core/cryptonote_basic.h +++ b/src/cryptonote_core/cryptonote_basic.h @@ -165,18 +165,19 @@ namespace cryptonote class transaction: public transaction_prefix { + enum BLOB_TYPE m_blob_type; public: std::vector > signatures; //count signatures always the same as inputs count rct::rctSig rct_signatures; - transaction(); + transaction(enum BLOB_TYPE = BLOB_TYPE_CRYPTONOTE); virtual ~transaction(); void set_null(); BEGIN_SERIALIZE_OBJECT() FIELDS(*static_cast(this)) - if (version == 1) + if (version == 1 && m_blob_type != BLOB_TYPE_CRYPTONOTE2) { ar.tag("signatures"); ar.begin_array(); @@ -234,8 +235,9 @@ namespace cryptonote }; inline - transaction::transaction() + transaction::transaction(enum BLOB_TYPE blob_type) { + m_blob_type = blob_type; set_null(); }