Display retcodes

This commit is contained in:
jl777
2019-07-07 19:59:26 -11:00
parent e21703d648
commit 10ac1c2454

View File

@@ -92,11 +92,9 @@ int32_t NSPV_gettransaction(int32_t vout,uint256 txid,int32_t height,CTransactio
} }
} }
} else retval = -22; } else retval = -22;
} else retval = -1; } else retval = -2;
} }
if ( retval != 0 ) return(retval);
fprintf(stderr,"NSPV_gettransaction retval would have been %d\n",retval);
return(retval*0);
} }
int32_t NSPV_vinselect(int32_t *aboveip,int64_t *abovep,int32_t *belowip,int64_t *belowp,struct NSPV_utxoresp utxos[],int32_t numunspents,int64_t value) int32_t NSPV_vinselect(int32_t *aboveip,int64_t *abovep,int32_t *belowip,int64_t *belowp,struct NSPV_utxoresp utxos[],int32_t numunspents,int64_t value)
@@ -219,9 +217,9 @@ bool NSPV_SignTx(CMutableTransaction &mtx,int32_t vini,int64_t utxovalue,const C
return(false); return(false);
} }
std::string NSPV_signtx(CMutableTransaction &mtx,uint64_t txfee,CScript opret,struct NSPV_utxoresp used[]) std::string NSPV_signtx(UniValue &retcodes,CMutableTransaction &mtx,uint64_t txfee,CScript opret,struct NSPV_utxoresp used[])
{ {
CTransaction vintx; std::string hex; uint256 hashBlock; int64_t interest=0,change,totaloutputs=0,totalinputs=0; int32_t i,utxovout,n; CTransaction vintx; std::string hex; uint256 hashBlock; int64_t interest=0,change,totaloutputs=0,totalinputs=0; int32_t i,utxovout,n,validation;
n = mtx.vout.size(); n = mtx.vout.size();
for (i=0; i<n; i++) for (i=0; i<n; i++)
totaloutputs += mtx.vout[i].nValue; totaloutputs += mtx.vout[i].nValue;
@@ -241,7 +239,9 @@ std::string NSPV_signtx(CMutableTransaction &mtx,uint64_t txfee,CScript opret,st
for (i=0; i<n; i++) for (i=0; i<n; i++)
{ {
utxovout = mtx.vin[i].prevout.n; utxovout = mtx.vin[i].prevout.n;
if ( NSPV_gettransaction(utxovout,mtx.vin[i].prevout.hash,used[i].height,vintx) == 0 ) validation = NSPV_gettransaction(utxovout,mtx.vin[i].prevout.hash,used[i].height,vintx);
retcodes.push_back(validation);
if ( validaton != -1 ) // most others are degraded security
{ {
if ( vintx.vout[utxovout].nValue != used[i].satoshis ) if ( vintx.vout[utxovout].nValue != used[i].satoshis )
{ {
@@ -266,7 +266,7 @@ std::string NSPV_signtx(CMutableTransaction &mtx,uint64_t txfee,CScript opret,st
UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its all about! UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its all about!
{ {
UniValue result(UniValue::VOBJ); uint8_t rmd160[128]; int64_t txfee = 10000; UniValue result(UniValue::VOBJ),retcodes(UniValue::VARR); uint8_t rmd160[128]; int64_t txfee = 10000;
if ( NSPV_logintime == 0 || time(NULL) > NSPV_logintime+NSPV_AUTOLOGOUT ) if ( NSPV_logintime == 0 || time(NULL) > NSPV_logintime+NSPV_AUTOLOGOUT )
{ {
result.push_back(Pair("result","error")); result.push_back(Pair("result","error"));
@@ -335,7 +335,7 @@ UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its a
result.push_back(Pair("error","wif expired")); result.push_back(Pair("error","wif expired"));
return(result); return(result);
} }
hex = NSPV_signtx(mtx,txfee,opret,used); hex = NSPV_signtx(retcodes,mtx,txfee,opret,used);
if ( hex.size() > 0 ) if ( hex.size() > 0 )
{ {
if ( DecodeHexTx(tx,hex) != 0 ) if ( DecodeHexTx(tx,hex) != 0 )
@@ -343,6 +343,7 @@ UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its a
TxToJSON(tx,uint256(),result); TxToJSON(tx,uint256(),result);
result.push_back(Pair("result","success")); result.push_back(Pair("result","success"));
result.push_back(Pair("hex",hex)); result.push_back(Pair("hex",hex));
result.push_back(Pair("retcodes",retcodes));
} }
else else
{ {
@@ -354,6 +355,7 @@ UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its a
else else
{ {
result.push_back(Pair("result","error")); result.push_back(Pair("result","error"));
result.push_back(Pair("retcodes",retcodes));
result.push_back(Pair("error","signing error")); result.push_back(Pair("error","signing error"));
} }
return(result); return(result);