From b4a5d1531ae6b7e18617b394a2c8ca867e474f27 Mon Sep 17 00:00:00 2001 From: Mihailo Milenkovic Date: Thu, 6 Dec 2018 17:30:17 +0100 Subject: [PATCH] Fix reorder of vins in FinalizeCCTx --- src/cc/CCtx.cpp | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/cc/CCtx.cpp b/src/cc/CCtx.cpp index 35cce315e..9315faa9a 100644 --- a/src/cc/CCtx.cpp +++ b/src/cc/CCtx.cpp @@ -62,8 +62,26 @@ std::string FinalizeCCTx(uint64_t CCmask,struct CCcontract_info *cp,CMutableTran GetCCaddress(cp,myaddr,mypk); mycond = MakeCCcond1(cp->evalcode,mypk); GetCCaddress(cp,unspendable,unspendablepk); - othercond = MakeCCcond1(cp->evalcode,unspendablepk); - //fprintf(stderr,"myCCaddr.(%s) %p vs unspendable.(%s) %p\n",myaddr,mycond,unspendable,othercond); + othercond = MakeCCcond1(cp->evalcode,unspendablepk); + //Reorder vins so that for multiple normal vins all other except vin0 goes to the end + //This is a must to avoid hardfork change of validation in every CC, because there could be maximum one normal vin at the begining with current validation. + for (i=0; i1 && ccvins) + { + for(i=1;i 0 ) mtx.vout.push_back(CTxOut(0,opret)); - n = mtx.vin.size(); - //Reorder vins so that for multiple normal vins all other except vin0 goes to the end - //This is a must to avoid hardfork change of validation in every CC, because there could be maximum one normal vin at the begining with current validation. - if (normalvins>1) - { - for(i=1;i