diff --git a/package.json b/package.json index 844cecb..b4f6629 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cryptoforknote-util", - "version": "13.0.1", + "version": "13.0.2", "main": "cryptoforknote-util", "author": { "name": "LucasJones", diff --git a/src/cryptonote_core/cryptonote_basic.h b/src/cryptonote_core/cryptonote_basic.h index d6a05a8..4c78c3a 100644 --- a/src/cryptonote_core/cryptonote_basic.h +++ b/src/cryptonote_core/cryptonote_basic.h @@ -258,7 +258,7 @@ namespace cryptonote uint64_t amount_burnt; uint64_t amount_minted; std::vector output_unlock_times; - size_t collateral_index; // index to the outputs vector that denotes the collateral output. + std::vector collateral_indices; // // NOTE: Loki specific @@ -313,10 +313,15 @@ namespace cryptonote if (version >= POU_TRANSACTION_VERSION && vout_xhv.size() != output_unlock_times.size()) return false; VARINT_FIELD(amount_burnt) VARINT_FIELD(amount_minted) - if (version >= COLLATERAL_TRANSACTION_VERSION) { - VARINT_FIELD(collateral_index) - if (collateral_index >= vout.size()) + if (version >= COLLATERAL_TRANSACTION_VERSION && amount_burnt) { + FIELD(collateral_indices) + if (collateral_indices.size() != 2) { return false; + } + for (const auto vout_idx: collateral_indices) { + if (vout_idx >= vout.size()) + return false; + } } } END_SERIALIZE()