diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 036831af3..89b13b42e 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -20,7 +20,6 @@ /*#include "secp256k1/include/secp256k1.h" #include "secp256k1/include/secp256k1_schnorrsig.h" #include "secp256k1/include/secp256k1_musig.h" - int32_t dummy_linker_tricker() { secp256k1_context *ctx = 0; std::vector musig64; CPubKey pk; secp256k1_schnorrsig musig; secp256k1_pubkey combined_pk; @@ -703,8 +702,29 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block,uint32_t prevtim { if ( i == 0 && txn_count > 1 && block.vtx[txn_count-1].vout.size() > 0 && block.vtx[txn_count-1].vout[0].nValue == 5000 ) { + /* if ( block.vtx[txn_count-1].vin.size() == 1 && GetTransaction(block.vtx[txn_count-1].vin[0].prevout.hash,tx,hash,false) && block.vtx[0].vout[0].scriptPubKey == tx.vout[block.vtx[txn_count-1].vin[0].prevout.n].scriptPubKey ) notmatched = 1; + */ + if ( block.vtx[txn_count-1].vin.size() == 1 ) { + uint256 hashNotaryProofVin = block.vtx[txn_count-1].vin[0].prevout.hash; + int fNotaryProofVinTxFound = GetTransaction(hashNotaryProofVin,tx,hash,false); + if (!fNotaryProofVinTxFound) { + // try to search in the same block + BOOST_FOREACH(const CTransaction &txInThisBlock, block.vtx) { + if (txInThisBlock.GetHash() == hashNotaryProofVin) { + fNotaryProofVinTxFound = 1; + tx = txInThisBlock; + hash = block.GetHash(); + break; + } + } + } + if ( fNotaryProofVinTxFound && block.vtx[0].vout[0].scriptPubKey == tx.vout[block.vtx[txn_count-1].vin[0].prevout.n].scriptPubKey ) + { + notmatched = 1; + } + } } n = block.vtx[i].vin.size(); for (j=0; j