return(jumblr_issuemethod(KMDUSERPASS,(char *)"listunspent",params,7771));
}
+char *jumblr_gettransaction(char *txidstr)
+{
+ char params[1024];
+ sprintf(params,"[\"%s\", 1]",txidstr);
+ return(jumblr_issuemethod(KMDUSERPASS,(char *)"getrawtransaction",params,7771));
+}
+
+int32_t jumblr_numvins(bits256 txid)
+{
+ char txidstr[65],params[1024],*retstr; cJSON *retjson,*vins; int32_t numvins = -1;
+ bits256_str(txidstr,txid);
+ if ( (retstr= jumblr_gettransaction(txidstr)) != 0 )
+ {
+ if ( (retjson= cJSON_Parse(retstr)) != 0 )
+ {
+ if ( (vins= jarray(&n,retjson,"vin")) != 0 )
+ numvins = n;
+ free_json(retjson);
+ }
+ free(retstr);
+ }
+ return(numvins);
+}
+
int64_t jumblr_receivedby(char *addr)
{
char *retstr; int64_t total = 0;
void jumblr_zaddrinit(char *zaddr)
{
- struct jumblr_item *ptr; char *retstr; cJSON *item,*array; double total; bits256 txid; char txidstr[65],t_z,z_z;
+ struct jumblr_item *ptr; char *retstr,*totalstr; cJSON *item,*array; double total; bits256 txid; char txidstr[65],t_z,z_z;
if ( (totalstr= jumblr_zgetbalance(zaddr)) != 0 )
{
if ( (total= atof(total)) > SMALLVAL )
if ( cJSON_GetArraySize(array) == 1 && is_cJSON_Array(array) != 0 )
{
item = jitem(array,0);
- if ( (uint64_t)(total * SATOSHIDEN) == (uint64_t)(jdouble(item,"amount") * SATOSHIDEN) )
+ if ( (uint64_t)(total * SATOSHIDEN) == (uint64_t)(jdouble(item,(char *)"amount") * SATOSHIDEN) )
{
- txid = jbits256(item,"txid");
+ txid = jbits256(item,(char *)"txid");
bits256_str(txidstr,txid);
if ( (ptr= jumblr_opidadd(txidstr)) != 0 )
{
}
printf("%s %s %.8f t_z.%d z_z.%d\n",zaddr,txidstr,total,t_z,z_z); // cant be z->t from spend
}
- } else printf("mismatched %s total %.8f vs %.8f\n",zaddr,total,jdouble(item,"amount"));
+ } else printf("mismatched %s total %.8f vs %.8f\n",zaddr,total,jdouble(item,(char *)"amount"));
}
free_json(array);
}