From 3cc3c3abedbab6f93f9db4d00dafb36d470d3ff4 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 9 Feb 2019 22:48:41 -1100 Subject: [PATCH] Details print --- src/cc/rogue/state.c | 1 + src/cc/rogue_rpc.cpp | 23 ++++++++++------------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/cc/rogue/state.c b/src/cc/rogue/state.c index a9aa109f0..50d995c79 100644 --- a/src/cc/rogue/state.c +++ b/src/cc/rogue/state.c @@ -1370,6 +1370,7 @@ void rogue_packitemstr(char *packitemstr,struct rogue_packitem *item) THING *obj = new_item(); rogue_restoreobject(obj,item); strcpy(packitemstr,inv_name(obj,FALSE)); + fprintf(stderr,"packitem.(%s)\n",packitemstr); free(obj); } diff --git a/src/cc/rogue_rpc.cpp b/src/cc/rogue_rpc.cpp index 8e9cee736..83a556a80 100644 --- a/src/cc/rogue_rpc.cpp +++ b/src/cc/rogue_rpc.cpp @@ -390,6 +390,8 @@ UniValue rogue_playerobj(UniValue &obj,std::vector playerdata) int32_t rogue_iterateplayer(uint256 firsttxid,int32_t firstvout,uint256 lasttxid) // retrace playertxid vins to reach highlander <- this verifies player is valid and rogue_playerdataspend makes sure it can only be used once { uint256 spenttxid,txid = firsttxid; int32_t spentvini,vout = firstvout; + if ( vout < 0 ) + return(-1); while ( (spentvini= myIsutxo_spent(spenttxid,txid,vout)) == 0 ) { txid = spenttxid; @@ -399,7 +401,7 @@ int32_t rogue_iterateplayer(uint256 firsttxid,int32_t firstvout,uint256 lasttxid return(0); else { - fprintf(stderr,"firsttxid.%s -> %s != last.%s\n",firsttxid.ToString().c_str(),txid.ToString().c_str(),lasttxid.ToString().c_str()); + fprintf(stderr,"firsttxid.%s/v%d -> %s != last.%s\n",firsttxid.ToString().c_str(),firstvout,txid.ToString().c_str(),lasttxid.ToString().c_str()); return(-1); } } @@ -421,21 +423,16 @@ int32_t rogue_playerdata(struct CCcontract_info *cp,uint256 &origplayergame,CPub if ( vopret.size() > 34 && script[0] == EVAL_ROGUE && (script[1] == 'H' || script[1] == 'Q' || script[1] == 'S') ) { memcpy(&gametxid,script+2,sizeof(gametxid)); - fprintf(stderr,"got vin.%s gametxid.%s iterate.%d valid.%d\n",playertx.vin[1].prevout.hash.ToString().c_str(),gametxid.ToString().c_str(),rogue_iterateplayer(gametxid,playertx.vin[1].prevout.n,playertxid),rogue_isvalidgame(cp,gameheight,gametx,buyin,maxplayers,gametxid)); - // verify highlander is a valid gametxid, verify playertxid is linked to it - //if ( rogue_iterateplayer(highlander,playertx.vin[1].prevout.n,playertxid) == 0 ) - if ( playertx.vin[1].prevout.hash == gametxid ) + if ( rogue_isvalidgame(cp,gameheight,gametx,buyin,maxplayers,gametxid) == 0 ) { - //if ( GetTransaction(highlander,highlandertx,hashBlock,false) != 0 && (numvouts= highlandertx.vout.size()) > 0 ) + fprintf(stderr,"playertxid.%s got vin.%s/v%d gametxid.%s iterate.%d valid.%d\n",playertxid.ToString().c_str(),playertx.vin[1].prevout.hash.ToString().c_str(),(int32_t)playertx.vin[1].prevout.n-maxplayers,gametxid.ToString().c_str(),rogue_iterateplayer(gametxid,playertx.vin[1].prevout.n-maxplayers,playertxid)); + if ( playertx.vin[1].prevout.hash == gametxid ) { if ( (f= rogue_highlanderopretdecode(origplayergame,pk,playerdata,playertx.vout[numvouts-1].scriptPubKey)) == 'H' || f == 'Q' || f == 'S' ) - { - //if ( highlandertx.vin[0].prevout.hash == origplayergame && highlandertx.vin[0].prevout.n == 0 && rogue_isvalidgame(cp,gametx,buyin,maxplayers,origplayergame) == 0 && maxplayers > 1 ) - return(0); - //else return(-3); - } - } - } //else return(-2); + return(0); + else fprintf(stderr,"f is %c/%d\n",f,f); + } else fprintf(stderr,"hash mismatch or illegale gametxid\n"); + } } } return(-1);