diff --git a/src/cc/gamescc.cpp b/src/cc/gamescc.cpp index bc871535b..ab1b802e0 100644 --- a/src/cc/gamescc.cpp +++ b/src/cc/gamescc.cpp @@ -41,10 +41,10 @@ uint64_t games_rngnext(uint64_t initseed) seeds[1] = (initseed >> 16); seeds[2] = (initseed >> 32); seeds[3] = (initseed >> 48); - seeds[0] = (seeds[0]*11109 + 13849); - seeds[1] = ((seeds[0] ^ seeds[1])*11109 + 13849); - seeds[2] = ((seeds[0] ^ seeds[1] ^ seeds[2])*11109 + 13849); - seeds[3] = ((seeds[0] ^ seeds[1] ^ seeds[2] ^ seeds[3])*11109 + 13849); + seeds[0] = (seeds[0]*GAMES_RNGMULT + GAMES_RNGOFFSET); + seeds[1] = ((seeds[0] ^ seeds[1])*GAMES_RNGMULT + GAMES_RNGOFFSET); + seeds[2] = ((seeds[0] ^ seeds[1] ^ seeds[2])*GAMES_RNGMULT + GAMES_RNGOFFSET); + seeds[3] = ((seeds[0] ^ seeds[1] ^ seeds[2] ^ seeds[3])*GAMES_RNGMULT + GAMES_RNGOFFSET); return(((uint64_t)seeds[3] << 48) | ((uint64_t)seeds[2] << 24) | ((uint64_t)seeds[1] << 16) | seeds[0]); } @@ -79,6 +79,9 @@ UniValue games_rng(uint64_t txfee,struct CCcontract_info *cp,cJSON *params) result.push_back(Pair("playerid",(int64_t)(playerid - 1))); result.push_back(Pair("initseed",initseed)); result.push_back(Pair("seed",seed)); + for (i=0; i= COIN+txfee ) // add utxo to mtx { mtx.vout.push_back(MakeCC1vout(cp->evalcode,amount,mypk)); // make vout0 - // add opreturn, change is automatically added and tx is properly signed rawtx = FinalizeCCTx(0,cp,mtx,mypk,txfee,games_opret('1',mypk)); return(games_rawtxresult(result,rawtx,broadcastflag)); } diff --git a/src/cc/gamescc.h b/src/cc/gamescc.h index ebdb92a93..aebda854f 100644 --- a/src/cc/gamescc.h +++ b/src/cc/gamescc.h @@ -4,6 +4,10 @@ std::string MYCCLIBNAME = (char *)"gamescc"; #define EVAL_GAMES (EVAL_FAUCET2+1) #define GAMES_TXFEE 10000 +#define GAMES_RNGMULT 11109 +#define GAMES_RNGOFFSET 13849 +#define GAMES_MAXRNGS 10000 + #define MYCCNAME "games" #define RPC_FUNCS \ diff --git a/src/cc/payments.cpp b/src/cc/payments.cpp index 7971b9cbe..3dfcdcba9 100644 --- a/src/cc/payments.cpp +++ b/src/cc/payments.cpp @@ -383,7 +383,7 @@ UniValue PaymentsRelease(struct CCcontract_info *cp,char *jsonstr) mtx.vout[i+1].nValue = PAYMENTS_TXFEE; } } - if ( (inputsum= AddPaymentsInputs(cp,mtx,txidpk,newamount+2*PAYMENTS_TXFEE,60,createtxid,latestheight)) >= newamount+2*PAYMENTS_TXFEE ) + if ( (inputsum= AddPaymentsInputs(cp,mtx,txidpk,newamount+2*PAYMENTS_TXFEE,MAX_CCVINS/2,createtxid,latestheight)) >= newamount+2*PAYMENTS_TXFEE ) { std::string rawtx; if ( (CCchange= (inputsum - newamount - 2*PAYMENTS_TXFEE)) >= PAYMENTS_TXFEE )