diff --git a/src/cc/gateways.cpp b/src/cc/gateways.cpp index faaa4bf9d..d6a559cb4 100644 --- a/src/cc/gateways.cpp +++ b/src/cc/gateways.cpp @@ -433,7 +433,7 @@ uint256 GatewaysReverseScan(uint256 &txid,int32_t height,uint256 reforacletxid,u int64_t GatewaysVerify(char *refdepositaddr,uint256 oracletxid,int32_t claimvout,std::string refcoin,uint256 cointxid,const std::string deposithex,std::vectorproof,uint256 merkleroot,std::vectorredeemscript) { - uint256 hashBlock,txid = zeroid; CTransaction tx; std::string name,description,format; CScript scriptPubKey; char destaddr[64],str[65]; int32_t i,numvouts; int64_t nValue = 0; + uint256 hashBlock,txid = zeroid; CTransaction tx; std::string name,description,format; char destaddr[64],str[65]; int32_t i,numvouts; int64_t nValue = 0; if ( GetTransaction(oracletxid,tx,hashBlock,false) == 0 || (numvouts= tx.vout.size()) <= 0 ) { fprintf(stderr,"GatewaysVerify cant find oracletxid %s\n",uint256_str(str,oracletxid)); @@ -452,7 +452,7 @@ int64_t GatewaysVerify(char *refdepositaddr,uint256 oracletxid,int32_t claimvout Getscriptaddress(destaddr,tx.vout[i].scriptPubKey); if ( strcmp(refdepositaddr,destaddr) == 0 ) { - if ( scriptPubKey == tx.vout[claimvout].scriptPubKey ) + if ( redeemscript.size() == tx.vout[claimvout].scriptPubKey.size() && memcmp(&redeemscript,&tx.vout[claimvout].scriptPubKey,redeemscript.size()) == 0 ) { txid = tx.GetHash(); nValue = tx.vout[i].nValue; @@ -461,10 +461,10 @@ int64_t GatewaysVerify(char *refdepositaddr,uint256 oracletxid,int32_t claimvout else { int j; - for (j=0; j<26; j++) - fprintf(stderr,"%02x",((uint8_t *)scriptPubKey.data())[j]); - fprintf(stderr," scriptPubKey\n"); - for (j=0; j<26; j++) + for (j=0; j<25; j++) + fprintf(stderr,"%02x",((uint8_t *)redeemscript.data())[j]); + fprintf(stderr," redeemscript\n"); + for (j=0; j<25; j++) fprintf(stderr,"%02x",((uint8_t *)tx.vout[claimvout].scriptPubKey.data())[j]); fprintf(stderr," claimvout.%d scriptPubKey mismatch\n",claimvout); }