From 8ac2ae0bcb87f7bf526ec9bb214bda2b0bb86a01 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 25 Mar 2019 03:24:01 -1100 Subject: [PATCH] Add gametxid and eventid --- src/cc/gamescc.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/cc/gamescc.cpp b/src/cc/gamescc.cpp index fe2cfdcae..f1bb3bf81 100644 --- a/src/cc/gamescc.cpp +++ b/src/cc/gamescc.cpp @@ -27,6 +27,8 @@ Every time period, all players would set their rng value to the lastrng value. The only thing to be careful of is it not exceed the maxrng calls to rngnext in a single time period. otherwise the same set of rng numbers will be repeated. */ +uint256 Gametxid; +uint32_t numevents; CScript games_opret(uint8_t funcid,CPubKey pk) { @@ -232,11 +234,26 @@ int32_t games_payload(CPubKey pk,uint32_t timestamp,std::vector payload UniValue games_events(uint64_t txfee,struct CCcontract_info *cp,cJSON *params) { - UniValue result(UniValue::VOBJ); std::vector sig,payload,vopret; int32_t n; CPubKey mypk; char str[67]; uint32_t timestamp = 0; + static uint256 lastgametxid; + UniValue result(UniValue::VOBJ); std::vector sig,payload,vopret; int32_t len,i,n; uint32_t x; CPubKey mypk; char str[67]; uint32_t timestamp = 0; if ( params != 0 && (n= cJSON_GetArraySize(params)) == 1 ) { if ( payments_parsehexdata(payload,jitem(params,0),0) == 0 ) { + if ( Gametxid != lastgametxid ) + { + lastgametxid = Gametxid; + numevents = 0; + } + len = payload.size(); + payload.resize(len + 4 + 32); + for (i=0; i<32; i++) + payload[len++] = ((uint8_t *)&Gametxid)[i]; + x = numevents++; + payload[len++] = x, x >> 8; + payload[len++] = x, x >> 8; + payload[len++] = x, x >> 8; + payload[len++] = x; mypk = pubkey2pk(Mypubkey()); if ( games_eventsign(timestamp,sig,payload,mypk) == 0 ) {