Browse Source

Display retcodes

warmup
jl777 5 years ago
parent
commit
10ac1c2454
  1. 20
      src/komodo_nSPV_wallet.h

20
src/komodo_nSPV_wallet.h

@ -92,11 +92,9 @@ int32_t NSPV_gettransaction(int32_t vout,uint256 txid,int32_t height,CTransactio
}
}
} else retval = -22;
} else retval = -1;
} else retval = -2;
}
if ( retval != 0 )
fprintf(stderr,"NSPV_gettransaction retval would have been %d\n",retval);
return(retval*0);
return(retval);
}
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);
}
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();
for (i=0; i<n; i++)
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++)
{
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 )
{
@ -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 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 )
{
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"));
return(result);
}
hex = NSPV_signtx(mtx,txfee,opret,used);
hex = NSPV_signtx(retcodes,mtx,txfee,opret,used);
if ( hex.size() > 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);
result.push_back(Pair("result","success"));
result.push_back(Pair("hex",hex));
result.push_back(Pair("retcodes",retcodes));
}
else
{
@ -354,6 +355,7 @@ UniValue NSPV_spend(char *srcaddr,char *destaddr,int64_t satoshis) // what its a
else
{
result.push_back(Pair("result","error"));
result.push_back(Pair("retcodes",retcodes));
result.push_back(Pair("error","signing error"));
}
return(result);

Loading…
Cancel
Save