Fix oraclefeed bugs and gatewaysmultisig rpc call

This commit is contained in:
Mihailo Milenkovic
2018-10-19 16:17:37 +02:00
parent 07b1fe7785
commit 39e950f8d8
2 changed files with 5 additions and 4 deletions

View File

@@ -332,6 +332,7 @@ cJSON *get_komodocli(char *refcoin,char **retstrp,char *acname,char *method,char
if ( (jsonstr= filestr(&fsize,fname)) != 0 ) if ( (jsonstr= filestr(&fsize,fname)) != 0 )
{ {
//fprintf(stderr,"%s -> jsonstr.(%s)\n",cmdstr,jsonstr); //fprintf(stderr,"%s -> jsonstr.(%s)\n",cmdstr,jsonstr);
jsonstr[strlen(jsonstr)-1]='\0';
if ( (jsonstr[0] != '{' && jsonstr[0] != '[') || (retjson= cJSON_Parse(jsonstr)) == 0 ) if ( (jsonstr[0] != '{' && jsonstr[0] != '[') || (retjson= cJSON_Parse(jsonstr)) == 0 )
*retstrp = jsonstr; *retstrp = jsonstr;
else free(jsonstr); else free(jsonstr);
@@ -584,7 +585,7 @@ char *createmultisig(char *refcoin,char *acname,char *depositaddr,char *signerad
return(0); return(0);
} }
satoshis -= txfee; satoshis -= txfee;
sprintf(array,"[\"%s\"]",depositaddr); sprintf(array,"\'[\"%s\"]\'",depositaddr);
if ( (retjson= get_komodocli(refcoin,&retstr,acname,"listunspent","1","99999999",array,"")) != 0 ) if ( (retjson= get_komodocli(refcoin,&retstr,acname,"listunspent","1","99999999",array,"")) != 0 )
{ {
//createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,...} //createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,...}
@@ -628,7 +629,7 @@ cJSON *addmultisignature(char *refcoin,char *acname,char *signeraddr,char *rawtx
char *retstr,*hexstr; cJSON *retjson; char *retstr,*hexstr; cJSON *retjson;
if ( (retjson= get_komodocli(refcoin,&retstr,acname,"signrawtransaction",rawtx,"","","")) != 0 ) if ( (retjson= get_komodocli(refcoin,&retstr,acname,"signrawtransaction",rawtx,"","","")) != 0 )
{ {
if ( jint(retjson,"complete") != 0 ) if ( is_cJSON_True(jobj(retjson,"complete")) != 0 )
return(retjson); return(retjson);
else if ( (hexstr= jstr(retjson,"hex")) != 0 && strlen(hexstr) > strlen(rawtx) ) else if ( (hexstr= jstr(retjson,"hex")) != 0 && strlen(hexstr) > strlen(rawtx) )
{ {
@@ -814,7 +815,7 @@ void update_gatewayspending(char *refcoin,char *acname,char *bindtxidstr,int32_t
{ {
if ( (clijson= addmultisignature(refcoin,"",signeraddr,rawtx)) != 0 ) if ( (clijson= addmultisignature(refcoin,"",signeraddr,rawtx)) != 0 )
{ {
if ( jint(clijson,"complete") != 0 ) if ( is_cJSON_True(jobj(clijson,"complete")) != 0 )
{ {
cointxid = komodobroadcast(refcoin,"",clijson); cointxid = komodobroadcast(refcoin,"",clijson);
if ( bits256_nonz(cointxid) != 0 ) if ( bits256_nonz(cointxid) != 0 )

View File

@@ -5593,7 +5593,7 @@ UniValue gatewayspending(const UniValue& params, bool fHelp)
UniValue gatewaysmultisig(const UniValue& params, bool fHelp) UniValue gatewaysmultisig(const UniValue& params, bool fHelp)
{ {
UniValue result(UniValue::VOBJ); uint256 bindtxid,withtxid; std::string coin,hex; char *txidaddr; UniValue result(UniValue::VOBJ); uint256 bindtxid,withtxid; std::string coin,hex; char *txidaddr;
if ( fHelp || params.size() != 2 ) if ( fHelp || params.size() != 4 )
throw runtime_error("gatewaysmultisig bindtxid coin withtxid txidaddr\n"); throw runtime_error("gatewaysmultisig bindtxid coin withtxid txidaddr\n");
if ( ensure_CCrequirements() < 0 ) if ( ensure_CCrequirements() < 0 )
throw runtime_error("to use CC contracts, you need to launch daemon with valid -pubkey= for an address in your wallet\n"); throw runtime_error("to use CC contracts, you need to launch daemon with valid -pubkey= for an address in your wallet\n");