Test
This commit is contained in:
@@ -44,11 +44,36 @@ struct jumblr_item
|
|||||||
char Jumblr_secretaddrs[JUMBLR_MAXSECRETADDRS][64],Jumblr_deposit[64];
|
char Jumblr_secretaddrs[JUMBLR_MAXSECRETADDRS][64],Jumblr_deposit[64];
|
||||||
int32_t Jumblr_numsecretaddrs; // if 0 -> run silent mode
|
int32_t Jumblr_numsecretaddrs; // if 0 -> run silent mode
|
||||||
|
|
||||||
|
char *jumblr_issuemethod(char *usepass,char *method,char *params,uint16_t port)
|
||||||
|
{
|
||||||
|
cJSON *retjson,*resjson = 0; char *retstr;
|
||||||
|
if ( (retstr= komodo_issuemethod(userpass,method,params,port)) != 0 )
|
||||||
|
{
|
||||||
|
if ( (retjson= cJSON_Parse(retstr)) != 0 )
|
||||||
|
{
|
||||||
|
if ( jobj(retjson,"result") != 0 )
|
||||||
|
resjson = jduplicate(jobj(retjson,"result"));
|
||||||
|
else if ( jobj(retjson,"error") != 0 )
|
||||||
|
resjson = jduplicate(jobj(retjson,"error"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resjson = cJSON_CreateObject();
|
||||||
|
jaddstr(resjson,"error","cant parse return");
|
||||||
|
}
|
||||||
|
free_json(retjson);
|
||||||
|
}
|
||||||
|
free(retstr);
|
||||||
|
}
|
||||||
|
if ( resjson != 0 )
|
||||||
|
return(jprint(resjson,1));
|
||||||
|
else return(clonestr("{\"error\":\"unknown error\"}"));
|
||||||
|
}
|
||||||
|
|
||||||
char *jumblr_importaddress(char *address)
|
char *jumblr_importaddress(char *address)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[\"%s\", \"%s\", false]",address,address);
|
sprintf(params,"[\"%s\", \"%s\", false]",address,address);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"importaddress",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"importaddress",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t Jumblr_secretaddrfind(char *searchaddr)
|
int32_t Jumblr_secretaddrfind(char *searchaddr)
|
||||||
@@ -76,16 +101,24 @@ int32_t Jumblr_secretaddradd(char *secretaddr) // external
|
|||||||
return(Jumblr_numsecretaddrs);
|
return(Jumblr_numsecretaddrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *Jumblr_depositaddradd(char *depositaddr) // external
|
int32_t Jumblr_depositaddradd(char *depositaddr) // external
|
||||||
{
|
{
|
||||||
int32_t ind;
|
int32_t ind,retal = -1; char *retstr; cJSON *retjson;
|
||||||
if ( depositaddr == 0 )
|
if ( depositaddr == 0 )
|
||||||
depositaddr = (char *)"";
|
depositaddr = (char *)"";
|
||||||
if ( (ind= Jumblr_secretaddrfind(depositaddr)) < 0 )
|
if ( (ind= Jumblr_secretaddrfind(depositaddr)) < 0 )
|
||||||
{
|
{
|
||||||
safecopy(Jumblr_deposit,depositaddr,sizeof(Jumblr_deposit));
|
safecopy(Jumblr_deposit,depositaddr,sizeof(Jumblr_deposit));
|
||||||
return(jumblr_importaddress(depositaddr));
|
if ( (retstr= jumblr_importaddress(depositaddr)) != 0 )
|
||||||
} else return(clonestr((char *)"{\"error\":\"cant make a secret address a depositaddress\"}"));
|
{
|
||||||
|
if ( (retjson= cJSON_Parse(retstr)) != 0 )
|
||||||
|
{
|
||||||
|
free_json(retjson);
|
||||||
|
}
|
||||||
|
free(retstr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t Jumblr_secretaddr(char *secretaddr)
|
int32_t Jumblr_secretaddr(char *secretaddr)
|
||||||
@@ -134,35 +167,35 @@ char *jumblr_validateaddress(char *addr)
|
|||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[\"%s\"]",addr);
|
sprintf(params,"[\"%s\"]",addr);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"validateaddress",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"validateaddress",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_zgetnewaddress()
|
char *jumblr_zgetnewaddress()
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[]");
|
sprintf(params,"[]");
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_getnewaddress",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_getnewaddress",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_zlistoperationids()
|
char *jumblr_zlistoperationids()
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[]");
|
sprintf(params,"[]");
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_listoperationids",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_listoperationids",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_zgetoperationresult(char *opid)
|
char *jumblr_zgetoperationresult(char *opid)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[[\"%s\"]]",opid);
|
sprintf(params,"[[\"%s\"]]",opid);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_getoperationresult",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_getoperationresult",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_zgetoperationstatus(char *opid)
|
char *jumblr_zgetoperationstatus(char *opid)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[[\"%s\"]]",opid);
|
sprintf(params,"[[\"%s\"]]",opid);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_getoperationstatus",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_getoperationstatus",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_sendt_to_z(char *taddr,char *zaddr,double amount)
|
char *jumblr_sendt_to_z(char *taddr,char *zaddr,double amount)
|
||||||
@@ -171,7 +204,7 @@ char *jumblr_sendt_to_z(char *taddr,char *zaddr,double amount)
|
|||||||
if ( jumblr_addresstype(zaddr) != 'z' || jumblr_addresstype(taddr) != 't' )
|
if ( jumblr_addresstype(zaddr) != 'z' || jumblr_addresstype(taddr) != 't' )
|
||||||
return(clonestr((char *)"{\"error\":\"illegal address in t to z\"}"));
|
return(clonestr((char *)"{\"error\":\"illegal address in t to z\"}"));
|
||||||
sprintf(params,"[\"%s\", [{\"address\":\"%s\",\"amount\":%.8f}, {\"address\":\"%s\",\"amount\":%.8f}], 1, %.8f]",taddr,zaddr,amount-fee-JUMBLR_TXFEE,JUMBLR_ADDR,fee,JUMBLR_TXFEE);
|
sprintf(params,"[\"%s\", [{\"address\":\"%s\",\"amount\":%.8f}, {\"address\":\"%s\",\"amount\":%.8f}], 1, %.8f]",taddr,zaddr,amount-fee-JUMBLR_TXFEE,JUMBLR_ADDR,fee,JUMBLR_TXFEE);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_sendmany",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_sendmany",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_sendz_to_z(char *zaddrS,char *zaddrD,double amount)
|
char *jumblr_sendz_to_z(char *zaddrS,char *zaddrD,double amount)
|
||||||
@@ -180,7 +213,7 @@ char *jumblr_sendz_to_z(char *zaddrS,char *zaddrD,double amount)
|
|||||||
if ( jumblr_addresstype(zaddrS) != 'z' || jumblr_addresstype(zaddrD) != 'z' )
|
if ( jumblr_addresstype(zaddrS) != 'z' || jumblr_addresstype(zaddrD) != 'z' )
|
||||||
return(clonestr((char *)"{\"error\":\"illegal address in z to z\"}"));
|
return(clonestr((char *)"{\"error\":\"illegal address in z to z\"}"));
|
||||||
sprintf(params,"[\"%s\", [{\"address\":\"%s\",\"amount\":%.8f}, {\"address\":\"%s\",\"amount\":%.8f}], 1, %.8f]",zaddrS,zaddrD,amount-fee-JUMBLR_TXFEE,JUMBLR_ADDR,fee,JUMBLR_TXFEE);
|
sprintf(params,"[\"%s\", [{\"address\":\"%s\",\"amount\":%.8f}, {\"address\":\"%s\",\"amount\":%.8f}], 1, %.8f]",zaddrS,zaddrD,amount-fee-JUMBLR_TXFEE,JUMBLR_ADDR,fee,JUMBLR_TXFEE);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_sendmany",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_sendmany",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_sendz_to_t(char *zaddr,char *taddr,double amount)
|
char *jumblr_sendz_to_t(char *zaddr,char *taddr,double amount)
|
||||||
@@ -189,42 +222,42 @@ char *jumblr_sendz_to_t(char *zaddr,char *taddr,double amount)
|
|||||||
if ( jumblr_addresstype(zaddr) != 'z' || jumblr_addresstype(taddr) != 't' )
|
if ( jumblr_addresstype(zaddr) != 'z' || jumblr_addresstype(taddr) != 't' )
|
||||||
return(clonestr((char *)"{\"error\":\"illegal address in z to t\"}"));
|
return(clonestr((char *)"{\"error\":\"illegal address in z to t\"}"));
|
||||||
sprintf(params,"[\"%s\", [{\"address\":\"%s\",\"amount\":%.8f}, {\"address\":\"%s\",\"amount\":%.8f}], 1, %.8f]",zaddr,taddr,amount-fee-JUMBLR_TXFEE,JUMBLR_ADDR,fee,JUMBLR_TXFEE);
|
sprintf(params,"[\"%s\", [{\"address\":\"%s\",\"amount\":%.8f}, {\"address\":\"%s\",\"amount\":%.8f}], 1, %.8f]",zaddr,taddr,amount-fee-JUMBLR_TXFEE,JUMBLR_ADDR,fee,JUMBLR_TXFEE);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_sendmany",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_sendmany",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_zlistreceivedbyaddress(char *addr)
|
char *jumblr_zlistreceivedbyaddress(char *addr)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[\"%s\", 1]",addr);
|
sprintf(params,"[\"%s\", 1]",addr);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_listreceivedbyaddress",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_listreceivedbyaddress",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_getreceivedbyaddress(char *addr)
|
char *jumblr_getreceivedbyaddress(char *addr)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[\"%s\", 1]",addr);
|
sprintf(params,"[\"%s\", 1]",addr);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"getreceivedbyaddress",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"getreceivedbyaddress",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_importprivkey(char *wifstr)
|
char *jumblr_importprivkey(char *wifstr)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[\"%s\", \"\", false]",wifstr);
|
sprintf(params,"[\"%s\", \"\", false]",wifstr);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"importprivkey",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"importprivkey",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_zgetbalance(char *addr)
|
char *jumblr_zgetbalance(char *addr)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[\"%s\", 1]",addr);
|
sprintf(params,"[\"%s\", 1]",addr);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"z_getbalance",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"z_getbalance",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *jumblr_listunspent(char *coinaddr)
|
char *jumblr_listunspent(char *coinaddr)
|
||||||
{
|
{
|
||||||
char params[1024];
|
char params[1024];
|
||||||
sprintf(params,"[1, 99999999, [\"%s\"]]",coinaddr);
|
sprintf(params,"[1, 99999999, [\"%s\"]]",coinaddr);
|
||||||
return(komodo_issuemethod(KMDUSERPASS,(char *)"listunspent",params,7771));
|
return(jumblr_issuemethod(KMDUSERPASS,(char *)"listunspent",params,7771));
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t jumblr_receivedby(char *addr)
|
int64_t jumblr_receivedby(char *addr)
|
||||||
@@ -248,7 +281,7 @@ int64_t jumblr_balance(char *addr)
|
|||||||
printf("jumblr.[%s].(%s)\n","KMD",retstr);
|
printf("jumblr.[%s].(%s)\n","KMD",retstr);
|
||||||
if ( (retjson= cJSON_Parse(retstr)) != 0 )
|
if ( (retjson= cJSON_Parse(retstr)) != 0 )
|
||||||
{
|
{
|
||||||
if ( (n= cJSON_GetArraySize(retjson)) > 0 )
|
if ( (n= cJSON_GetArraySize(retjson)) > 0 && is_cJSON_Array(retjson) != 0 )
|
||||||
for (i=0; i<n; i++)
|
for (i=0; i<n; i++)
|
||||||
balance += SATOSHIDEN * jdouble(jitem(retjson,i),(char *)"amount");
|
balance += SATOSHIDEN * jdouble(jitem(retjson,i),(char *)"amount");
|
||||||
free_json(retjson);
|
free_json(retjson);
|
||||||
@@ -318,7 +351,7 @@ void jumblr_opidupdate(struct jumblr_item *ptr)
|
|||||||
{
|
{
|
||||||
if ( (retjson= cJSON_Parse(retstr)) != 0 )
|
if ( (retjson= cJSON_Parse(retstr)) != 0 )
|
||||||
{
|
{
|
||||||
if ( cJSON_GetArraySize(retjson) == 1 )
|
if ( cJSON_GetArraySize(retjson) == 1 && is_cJSON_array(retjson) != 0 )
|
||||||
{
|
{
|
||||||
item = jitem(retjson,0);
|
item = jitem(retjson,0);
|
||||||
//printf("%s\n",jprint(item,0));
|
//printf("%s\n",jprint(item,0));
|
||||||
@@ -380,7 +413,7 @@ void jumblr_opidsupdate()
|
|||||||
{
|
{
|
||||||
if ( (array= cJSON_Parse(retstr)) != 0 )
|
if ( (array= cJSON_Parse(retstr)) != 0 )
|
||||||
{
|
{
|
||||||
if ( (n= cJSON_GetArraySize(array)) > 0 )
|
if ( (n= cJSON_GetArraySize(array)) > 0 && is_cJSON_Array(array) != 0 )
|
||||||
{
|
{
|
||||||
printf("%s -> n%d\n",retstr,n);
|
printf("%s -> n%d\n",retstr,n);
|
||||||
for (i=0; i<n; i++)
|
for (i=0; i<n; i++)
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ using namespace std;
|
|||||||
* Or alternatively, create a specific query method for the information.
|
* Or alternatively, create a specific query method for the information.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
char *Jumblr_depositaddradd(char *depositaddr);
|
int32_t Jumblr_depositaddradd(char *depositaddr);
|
||||||
int32_t Jumblr_secretaddradd(char *secretaddr);
|
int32_t Jumblr_secretaddradd(char *secretaddr);
|
||||||
uint64_t komodo_interestsum();
|
uint64_t komodo_interestsum();
|
||||||
int32_t komodo_longestchain();
|
int32_t komodo_longestchain();
|
||||||
@@ -192,7 +192,7 @@ public:
|
|||||||
|
|
||||||
UniValue jumblr_deposit(const UniValue& params, bool fHelp)
|
UniValue jumblr_deposit(const UniValue& params, bool fHelp)
|
||||||
{
|
{
|
||||||
char *retstr; UniValue result(UniValue::VOBJ);
|
int32_t retval; UniValue result(UniValue::VOBJ);
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error("jumblr_deposit \"depositaddress\"\n");
|
throw runtime_error("jumblr_deposit \"depositaddress\"\n");
|
||||||
CBitcoinAddress address(params[0].get_str());
|
CBitcoinAddress address(params[0].get_str());
|
||||||
@@ -200,9 +200,9 @@ UniValue jumblr_deposit(const UniValue& params, bool fHelp)
|
|||||||
if ( isValid != 0 )
|
if ( isValid != 0 )
|
||||||
{
|
{
|
||||||
string addr = params[0].get_str();
|
string addr = params[0].get_str();
|
||||||
if ( (retstr= Jumblr_depositaddradd((char *)addr.c_str())) == 0 )
|
if ( (retval= Jumblr_depositaddradd((char *)addr.c_str())) >= 0 )
|
||||||
result.push_back(Pair("result", (char *)"null return from Jumblr_depositaddradd"));
|
result.push_back(Pair("result", retval);
|
||||||
else result.push_back(Pair("result", retstr));
|
else result.push_back(Pair("error", retval));
|
||||||
} else result.push_back(Pair("error", "invalid address"));
|
} else result.push_back(Pair("error", "invalid address"));
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user