From eea6d166b2049c30ce7c91487ab89e04c0b97efc Mon Sep 17 00:00:00 2001 From: ZephyrProtocol Date: Wed, 26 Jun 2024 11:26:04 +1200 Subject: [PATCH] Update pricing record serialization for Zephyr version v1.2.0 Artemis --- src/cryptonote_core/cryptonote_basic.h | 16 ++++- src/serialization/zephyr_pricing_record.h | 85 ++++++++++++++++++----- src/zephyr_oracle/pricing_record.cpp | 51 +++++++++++--- src/zephyr_oracle/pricing_record.h | 59 +++++++++++++++- 4 files changed, 182 insertions(+), 29 deletions(-) diff --git a/src/cryptonote_core/cryptonote_basic.h b/src/cryptonote_core/cryptonote_basic.h index 8de387b..307a45c 100644 --- a/src/cryptonote_core/cryptonote_basic.h +++ b/src/cryptonote_core/cryptonote_basic.h @@ -958,10 +958,24 @@ namespace cryptonote if (blob_type == BLOB_TYPE_CRYPTONOTE_XTA) FIELD(cycle48) if (blob_type == BLOB_TYPE_CRYPTONOTE_XHV) FIELD(pricing_record) if (blob_type == BLOB_TYPE_CRYPTONOTE_ZEPHYR) { - if (major_version >= 3) + if (major_version >= 4) { FIELD_N("pricing_record", zephyr_pricing_record) } + else if (major_version >= 3) + { + zephyr_oracle::pricing_record_v2 pr_v2; + if (!typename Archive::is_saving()) + { + FIELD(pr_v2) + pr_v2.write_to_pr(zephyr_pricing_record); + } + else + { + pr_v2.read_from_pr(zephyr_pricing_record); + FIELD(pr_v2) + } + } else { zephyr_oracle::pricing_record_v1 pr_v1; diff --git a/src/serialization/zephyr_pricing_record.h b/src/serialization/zephyr_pricing_record.h index df8302f..cea3f83 100644 --- a/src/serialization/zephyr_pricing_record.h +++ b/src/serialization/zephyr_pricing_record.h @@ -40,7 +40,33 @@ template