This commit is contained in:
jl777
2019-07-06 00:24:26 -11:00
parent 744718b1c9
commit 820b9efaeb

View File

@@ -192,12 +192,21 @@ UniValue NSPV_ntzsproof_json(struct NSPV_ntzsproofresp *ptr)
return(result); return(result);
} }
UniValue NSPV_broadcast_json(struct NSPV_broadcastresp *ptr) UniValue NSPV_broadcast_json(struct NSPV_broadcastresp *ptr,uint256 txid)
{ {
UniValue result(UniValue::VOBJ); UniValue result(UniValue::VOBJ);
result.push_back(Pair("result","success")); result.push_back(Pair("result","success"));
result.push_back(Pair("txid",ptr->txid.GetHex())); result.push_back(Pair("expected",txid.GetHex()));
result.push_back(Pair("broadcast",ptr->txid.GetHex()));
result.push_back(Pair("retcode",(int64_t)ptr->retcode)); result.push_back(Pair("retcode",(int64_t)ptr->retcode));
switch ( ptr->retcode )
{
case 1: result.push_back(Pair("type","broadcast and mempool")); break;
case 0: result.push_back(Pair("type","broadcast")); break;
case -1: result.push_back(Pair("type","decode error")); break;
case -2: result.push_back(Pair("type","timeout")); break;
default: result.push_back(Pair("type","unknown")); break;
}
return(result); return(result);
} }
@@ -380,7 +389,8 @@ UniValue NSPV_broadcast(char *hex)
data = (uint8_t *)malloc(n); data = (uint8_t *)malloc(n);
decode_hex(data,n,hex); decode_hex(data,n,hex);
_txid = bits256_doublesha256(0,data,n); _txid = bits256_doublesha256(0,data,n);
memcpy(&txid,&_txid,sizeof(txid)); for (i=0; i<32; i++)
((uint8_t *)&txid[i] = _txid.bytes[31 - i];
msg = (uint8_t *)malloc(1 + sizeof(txid) + sizeof(n) + n); msg = (uint8_t *)malloc(1 + sizeof(txid) + sizeof(n) + n);
msg[len++] = NSPV_BROADCAST; msg[len++] = NSPV_BROADCAST;
len += iguana_rwbignum(1,&msg[len],sizeof(txid),(uint8_t *)&txid); len += iguana_rwbignum(1,&msg[len],sizeof(txid),(uint8_t *)&txid);
@@ -396,14 +406,14 @@ UniValue NSPV_broadcast(char *hex)
if ( NSPV_broadcastresult.txid == txid ) if ( NSPV_broadcastresult.txid == txid )
{ {
free(msg); free(msg);
return(NSPV_broadcast_json(&NSPV_broadcastresult)); return(NSPV_broadcast_json(&NSPV_broadcastresult,txid));
} }
} }
} }
free(msg); free(msg);
memset(&B,0,sizeof(B)); memset(&B,0,sizeof(B));
B.retcode = -2; B.retcode = -2;
return(NSPV_broadcast_json(&B)); return(NSPV_broadcast_json(&B,txid));
} }
void komodo_nSPVresp(CNode *pfrom,std::vector<uint8_t> response) // received a response void komodo_nSPVresp(CNode *pfrom,std::vector<uint8_t> response) // received a response