aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Blair <snipa@jagtech.io>2020-10-18 05:55:36 -0700
committerAlexander Blair <snipa@jagtech.io>2020-10-18 05:55:36 -0700
commite88b9170db12cbf6091daeee7e856e1d746c66b8 (patch)
tree09d4566fcd4b76d207d9c42ae48ce1431beb4f05
parentMerge pull request #6894 (diff)
parentblockchain: fix sync at v14 boundary (diff)
downloadmonero-e88b9170db12cbf6091daeee7e856e1d746c66b8.tar.xz
Merge pull request #6906
1120df3c5 blockchain: fix sync at v14 boundary (moneromooo-monero)
-rw-r--r--src/cryptonote_core/blockchain.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp
index 645123fae..037c026a0 100644
--- a/src/cryptonote_core/blockchain.cpp
+++ b/src/cryptonote_core/blockchain.cpp
@@ -3068,9 +3068,21 @@ bool Blockchain::check_tx_outputs(const transaction& tx, tx_verification_context
if (tx.version >= 2) {
if (tx.rct_signatures.type <= rct::RCTTypeBulletproof2)
{
- MERROR_VER("Ringct type " << (unsigned)tx.rct_signatures.type << " is not allowed from v" << (HF_VERSION_CLSAG + 1));
- tvc.m_invalid_output = true;
- return false;
+ // two MLSAG txes went in due to a bug with txes that went into the txpool before the fork, grandfather them in
+ static const char * grandfathered[2] = { "c5151944f0583097ba0c88cd0f43e7fabb3881278aa2f73b3b0a007c5d34e910", "6f2f117cde6fbcf8d4a6ef8974fcac744726574ac38cf25d3322c996b21edd4c" };
+ crypto::hash h0, h1;
+ epee::string_tools::hex_to_pod(grandfathered[0], h0);
+ epee::string_tools::hex_to_pod(grandfathered[1], h1);
+ if (cryptonote::get_transaction_hash(tx) == h0 || cryptonote::get_transaction_hash(tx) == h1)
+ {
+ MDEBUG("Grandfathering cryptonote::get_transaction_hash(tx) in");
+ }
+ else
+ {
+ MERROR_VER("Ringct type " << (unsigned)tx.rct_signatures.type << " is not allowed from v" << (HF_VERSION_CLSAG + 1));
+ tvc.m_invalid_output = true;
+ return false;
+ }
}
}
}