a
This commit is contained in:
blackjok3r
2018-12-28 15:44:25 +08:00
5 changed files with 33 additions and 17 deletions

View File

@@ -649,55 +649,55 @@ int64_t z_getbalance(char *refcoin,char *acname,char *coinaddr)
int32_t z_exportkey(char *privkey,char *refcoin,char *acname,char *zaddr) int32_t z_exportkey(char *privkey,char *refcoin,char *acname,char *zaddr)
{ {
cJSON *retjson; char *retstr,cmpstr[64]; int64_t amount=0; cJSON *retjson; char *retstr,cmpstr[64]; int64_t amount=0; int32_t retval = -1;
privkey[0] = 0; privkey[0] = 0;
if ( (retjson= get_komodocli(refcoin,&retstr,acname,"z_exportkey",zaddr,"","","")) != 0 ) if ( (retjson= get_komodocli(refcoin,&retstr,acname,"z_exportkey",zaddr,"","","")) != 0 )
{ {
fprintf(stderr,"z_exportkey.(%s) %s returned json!\n",refcoin,acname); fprintf(stderr,"z_exportkey.(%s) %s returned json!\n",refcoin,acname);
free_json(retjson); free_json(retjson);
return(-1);
} }
else if ( retstr != 0 ) else if ( retstr != 0 )
{ {
//printf("retstr %s -> %.8f\n",retstr,dstr(amount)); //printf("retstr %s -> %.8f\n",retstr,dstr(amount));
strcpy(privkey,retstr); strcpy(privkey,retstr);
free(retstr); free(retstr);
return(0); retval = 0;
} }
return(retval);
} }
int32_t getnewaddress(char *coinaddr,char *refcoin,char *acname) int32_t getnewaddress(char *coinaddr,char *refcoin,char *acname)
{ {
cJSON *retjson; char *retstr; int64_t amount=0; cJSON *retjson; char *retstr; int64_t amount=0; int32_t retval = -1;
if ( (retjson= get_komodocli(refcoin,&retstr,acname,"getnewaddress","","","","")) != 0 ) if ( (retjson= get_komodocli(refcoin,&retstr,acname,"getnewaddress","","","","")) != 0 )
{ {
fprintf(stderr,"getnewaddress.(%s) %s returned json!\n",refcoin,acname); fprintf(stderr,"getnewaddress.(%s) %s returned json!\n",refcoin,acname);
free_json(retjson); free_json(retjson);
return(-1);
} }
else if ( retstr != 0 ) else if ( retstr != 0 )
{ {
strcpy(coinaddr,retstr); strcpy(coinaddr,retstr);
free(retstr); free(retstr);
return(0); retval = 0;
} }
return(retval);
} }
int32_t z_getnewaddress(char *coinaddr,char *refcoin,char *acname,char *typestr) int32_t z_getnewaddress(char *coinaddr,char *refcoin,char *acname,char *typestr)
{ {
cJSON *retjson; char *retstr; int64_t amount=0; cJSON *retjson; char *retstr; int64_t amount=0; int32_t retval = -1;
if ( (retjson= get_komodocli(refcoin,&retstr,acname,"z_getnewaddress",typestr,"","","")) != 0 ) if ( (retjson= get_komodocli(refcoin,&retstr,acname,"z_getnewaddress",typestr,"","","")) != 0 )
{ {
fprintf(stderr,"z_getnewaddress.(%s) %s returned json!\n",refcoin,acname); fprintf(stderr,"z_getnewaddress.(%s) %s returned json!\n",refcoin,acname);
free_json(retjson); free_json(retjson);
return(-1);
} }
else if ( retstr != 0 ) else if ( retstr != 0 )
{ {
strcpy(coinaddr,retstr); strcpy(coinaddr,retstr);
free(retstr); free(retstr);
return(0); retval = 0;
} }
return(retval);
} }
int64_t find_onetime_amount(char *coinstr,char *coinaddr) int64_t find_onetime_amount(char *coinstr,char *coinaddr)
@@ -712,6 +712,10 @@ int64_t find_onetime_amount(char *coinstr,char *coinaddr)
for (i=0; i<n; i++) for (i=0; i<n; i++)
{ {
item = jitem(array,i); item = jitem(array,i);
if (is_cJSON_False(jobj(item, "spendable")) != 0)
{
continue;
}
if ( (addr= jstr(item,"address")) != 0 ) if ( (addr= jstr(item,"address")) != 0 )
{ {
strcpy(coinaddr,addr); strcpy(coinaddr,addr);
@@ -768,7 +772,7 @@ void importaddress(char *refcoin,char *acname,char *depositaddr)
int32_t z_sendmany(char *opidstr,char *coinstr,char *acname,char *srcaddr,char *destaddr,int64_t amount) int32_t z_sendmany(char *opidstr,char *coinstr,char *acname,char *srcaddr,char *destaddr,int64_t amount)
{ {
cJSON *retjson; char *retstr,params[1024],addr[128]; cJSON *retjson; char *retstr,params[1024],addr[128]; int32_t retval = -1;
sprintf(params,"'[{\"address\":\"%s\",\"amount\":%.8f}]'",destaddr,dstr(amount)); sprintf(params,"'[{\"address\":\"%s\",\"amount\":%.8f}]'",destaddr,dstr(amount));
sprintf(addr,"\"%s\"",srcaddr); sprintf(addr,"\"%s\"",srcaddr);
printf("z_sendmany from.(%s) -> %s\n",srcaddr,params); printf("z_sendmany from.(%s) -> %s\n",srcaddr,params);
@@ -776,15 +780,15 @@ int32_t z_sendmany(char *opidstr,char *coinstr,char *acname,char *srcaddr,char *
{ {
printf("unexpected json z_sendmany.(%s)\n",jprint(retjson,0)); printf("unexpected json z_sendmany.(%s)\n",jprint(retjson,0));
free_json(retjson); free_json(retjson);
return(-1);
} }
else if ( retstr != 0 ) else if ( retstr != 0 )
{ {
fprintf(stderr,"z_sendmany.(%s) -> opid.(%s)\n",coinstr,retstr); fprintf(stderr,"z_sendmany.(%s) -> opid.(%s)\n",coinstr,retstr);
strcpy(opidstr,retstr); strcpy(opidstr,retstr);
free(retstr); free(retstr);
return(0); retval = 0;
} }
return(retval);
} }
int32_t z_mergetoaddress(char *opidstr,char *coinstr,char *acname,char *destaddr) int32_t z_mergetoaddress(char *opidstr,char *coinstr,char *acname,char *destaddr)
@@ -984,8 +988,16 @@ again:
{ {
z_exportkey(privkey,coinstr,"",zcaddr); z_exportkey(privkey,coinstr,"",zcaddr);
printf("zcaddr.(%s) -> z_exportkey.(%s)\n",zcaddr,privkey); printf("zcaddr.(%s) -> z_exportkey.(%s)\n",zcaddr,privkey);
while ( z_mergetoaddress(opidstr,coinstr,"",zcaddr) > 0 ) while ( 1 )
; {
if ( have_pending_opid(coinstr,0) != 0 )
{
sleep(10);
continue;
}
if ( z_mergetoaddress(opidstr,coinstr,"",zcaddr) <= 0 )
break;
}
} }
printf("start processing zmigrate\n"); printf("start processing zmigrate\n");
lastopid = (uint32_t)time(NULL); lastopid = (uint32_t)time(NULL);

View File

@@ -76,6 +76,7 @@ using namespace std;
extern void ThreadSendAlert(); extern void ThreadSendAlert();
extern int32_t KOMODO_LOADINGBLOCKS; extern int32_t KOMODO_LOADINGBLOCKS;
extern bool VERUS_MINTBLOCKS; extern bool VERUS_MINTBLOCKS;
extern char ASSETCHAINS_SYMBOL[];
ZCJoinSplit* pzcashParams = NULL; ZCJoinSplit* pzcashParams = NULL;
@@ -195,7 +196,10 @@ void Shutdown()
/// for example if the data directory was found to be locked. /// for example if the data directory was found to be locked.
/// Be sure that anything that writes files or flushes caches only does this if the respective /// Be sure that anything that writes files or flushes caches only does this if the respective
/// module was initialized. /// module was initialized.
RenameThread("verus-shutoff"); static char shutoffstr[128];
sprintf(shutoffstr,"%s-shutoff",ASSETCHAINS_SYMBOL);
//RenameThread("verus-shutoff");
RenameThread(shutoffstr);
mempool.AddTransactionsUpdated(1); mempool.AddTransactionsUpdated(1);
StopHTTPRPC(); StopHTTPRPC();

View File

@@ -21,6 +21,7 @@
#include "consensus/params.h" #include "consensus/params.h"
#include "komodo_defs.h" #include "komodo_defs.h"
#include "script/standard.h" #include "script/standard.h"
#include "cc/CCinclude.h"
int32_t komodo_notaries(uint8_t pubkeys[64][33],int32_t height,uint32_t timestamp); int32_t komodo_notaries(uint8_t pubkeys[64][33],int32_t height,uint32_t timestamp);
int32_t komodo_electednotary(int32_t *numnotariesp,uint8_t *pubkey33,int32_t height,uint32_t timestamp); int32_t komodo_electednotary(int32_t *numnotariesp,uint8_t *pubkey33,int32_t height,uint32_t timestamp);
@@ -1964,7 +1965,6 @@ int64_t komodo_coinsupply(int64_t *zfundsp,int64_t *sproutfundsp,int32_t height)
*sproutfundsp = sproutfunds; *sproutfundsp = sproutfunds;
return(supply); return(supply);
} }
struct komodo_staking struct komodo_staking
{ {
char address[64]; char address[64];

View File

@@ -77,6 +77,7 @@ static const CRPCConvertParam vRPCConvertParams[] =
{ "getlastsegidstakes", 0 }, { "getlastsegidstakes", 0 },
{ "gettransaction", 1 }, { "gettransaction", 1 },
{ "getrawtransaction", 1 }, { "getrawtransaction", 1 },
{ "getlastsegidstakes", 0 },
{ "createrawtransaction", 0 }, { "createrawtransaction", 0 },
{ "createrawtransaction", 1 }, { "createrawtransaction", 1 },
{ "createrawtransaction", 2 }, { "createrawtransaction", 2 },

View File

@@ -4891,7 +4891,6 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp)
} }
utxoCounter++; utxoCounter++;
if (!maxedOutUTXOsFlag) { if (!maxedOutUTXOsFlag) {
size_t increase = (boost::get<CScriptID>(&address) != nullptr) ? CTXIN_SPEND_P2SH_SIZE : CTXIN_SPEND_DUST_SIZE; size_t increase = (boost::get<CScriptID>(&address) != nullptr) ? CTXIN_SPEND_P2SH_SIZE : CTXIN_SPEND_DUST_SIZE;
if (estimatedTxSize + increase >= max_tx_size || if (estimatedTxSize + increase >= max_tx_size ||