|
@ -81,9 +81,9 @@ void LP_userpassfp(char *symbol,char *username,char *password,FILE *fp) |
|
|
free(rpcpassword); |
|
|
free(rpcpassword); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void LP_statefname(char *fname,char *symbol,char *assetname,char *str,char *name) |
|
|
void LP_statefname(char *fname,char *symbol,char *assetname,char *str,char *name,char *coindir) |
|
|
{ |
|
|
{ |
|
|
sprintf(fname,"%s",LP_getdatadir()); |
|
|
sprintf(fname,"%s",(coindir != 0 && coindir[0] != 0) ? coindir : LP_getdatadir()); |
|
|
#ifdef WIN32 |
|
|
#ifdef WIN32 |
|
|
strcat(fname,"\\"); |
|
|
strcat(fname,"\\"); |
|
|
#else |
|
|
#else |
|
@ -138,7 +138,7 @@ void LP_statefname(char *fname,char *symbol,char *assetname,char *str,char *name |
|
|
strcat(fname,str); |
|
|
strcat(fname,str); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int32_t LP_userpass(char *userpass,char *symbol,char *assetname,char *confroot,char *name) |
|
|
int32_t LP_userpass(char *userpass,char *symbol,char *assetname,char *confroot,char *name,char *coindir) |
|
|
{ |
|
|
{ |
|
|
FILE *fp; char fname[512],username[512],password[512],confname[512]; |
|
|
FILE *fp; char fname[512],username[512],password[512],confname[512]; |
|
|
userpass[0] = 0; |
|
|
userpass[0] = 0; |
|
@ -152,14 +152,14 @@ int32_t LP_userpass(char *userpass,char *symbol,char *assetname,char *confroot,c |
|
|
if ( strcmp(&confname[len-4],"coin") == 0 ) |
|
|
if ( strcmp(&confname[len-4],"coin") == 0 ) |
|
|
confname[len - 4] = 'C'; |
|
|
confname[len - 4] = 'C'; |
|
|
#endif |
|
|
#endif |
|
|
LP_statefname(fname,symbol,assetname,confname,name); |
|
|
LP_statefname(fname,symbol,assetname,confname,name,coindir); |
|
|
if ( (fp= fopen(fname,"rb")) != 0 ) |
|
|
if ( (fp= fopen(fname,"rb")) != 0 ) |
|
|
{ |
|
|
{ |
|
|
LP_userpassfp(symbol,username,password,fp); |
|
|
LP_userpassfp(symbol,username,password,fp); |
|
|
sprintf(userpass,"%s:%s",username,password); |
|
|
sprintf(userpass,"%s:%s",username,password); |
|
|
fclose(fp); |
|
|
fclose(fp); |
|
|
if ( 0 ) |
|
|
if ( 0 ) |
|
|
printf("LP_statefname.(%s) <- %s %s %s (%s)\n",fname,name,symbol,assetname,userpass); |
|
|
printf("LP_statefname.(%s) <- %s %s %s (%s) (%s)\n",fname,name,symbol,assetname,userpass,coindir); |
|
|
return((int32_t)strlen(userpass)); |
|
|
return((int32_t)strlen(userpass)); |
|
|
} else printf("cant open.(%s)\n",fname); |
|
|
} else printf("cant open.(%s)\n",fname); |
|
|
return(-1); |
|
|
return(-1); |
|
@ -215,7 +215,7 @@ struct iguana_info *LP_coinadd(struct iguana_info *cdata) |
|
|
return(coin); |
|
|
return(coin); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int32_t LP_coininit(struct iguana_info *coin,char *symbol,char *name,char *assetname,int32_t isPoS,uint16_t port,uint8_t pubtype,uint8_t p2shtype,uint8_t wiftype,uint64_t txfee,double estimatedrate,int32_t longestchain,uint8_t wiftaddr,uint8_t taddr,uint16_t busport) |
|
|
int32_t LP_coininit(struct iguana_info *coin,char *symbol,char *name,char *assetname,int32_t isPoS,uint16_t port,uint8_t pubtype,uint8_t p2shtype,uint8_t wiftype,uint64_t txfee,double estimatedrate,int32_t longestchain,uint8_t wiftaddr,uint8_t taddr,uint16_t busport,char *coindir) |
|
|
{ |
|
|
{ |
|
|
char *name2; |
|
|
char *name2; |
|
|
memset(coin,0,sizeof(*coin)); |
|
|
memset(coin,0,sizeof(*coin)); |
|
@ -240,7 +240,7 @@ int32_t LP_coininit(struct iguana_info *coin,char *symbol,char *name,char *asset |
|
|
coin->noimportprivkey_flag = 1; |
|
|
coin->noimportprivkey_flag = 1; |
|
|
printf("truncate importprivkey for %s\n",symbol); |
|
|
printf("truncate importprivkey for %s\n",symbol); |
|
|
} |
|
|
} |
|
|
return(LP_userpass(coin->userpass,symbol,assetname,name,name2)); |
|
|
return(LP_userpass(coin->userpass,symbol,assetname,name,name2,coindir)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int32_t LP_isdisabled(char *base,char *rel) |
|
|
int32_t LP_isdisabled(char *base,char *rel) |
|
@ -281,7 +281,7 @@ struct iguana_info *LP_coinfind(char *symbol) |
|
|
else if ( strcmp(symbol,"KMD") == 0 ) |
|
|
else if ( strcmp(symbol,"KMD") == 0 ) |
|
|
name = "komodo"; |
|
|
name = "komodo"; |
|
|
else return(0); |
|
|
else return(0); |
|
|
if ( LP_coininit(&cdata,symbol,name,assetname,isPoS,port,pubtype,p2shtype,wiftype,txfee,estimatedrate,longestchain,0,0,busport) > 0 ) |
|
|
if ( LP_coininit(&cdata,symbol,name,assetname,isPoS,port,pubtype,p2shtype,wiftype,txfee,estimatedrate,longestchain,0,0,busport,0) > 0 ) |
|
|
{ |
|
|
{ |
|
|
if ( (coin= LP_coinadd(&cdata)) != 0 ) |
|
|
if ( (coin= LP_coinadd(&cdata)) != 0 ) |
|
|
{ |
|
|
{ |
|
@ -322,7 +322,7 @@ struct iguana_info *LP_coincreate(cJSON *item) |
|
|
} |
|
|
} |
|
|
else if ( (name= jstr(item,"name")) == 0 ) |
|
|
else if ( (name= jstr(item,"name")) == 0 ) |
|
|
name = symbol; |
|
|
name = symbol; |
|
|
if ( LP_coininit(&cdata,symbol,name,assetname==0?"":assetname,isPoS,port,pubtype,p2shtype,wiftype,txfee,estimatedrate,longestchain,juint(item,"wiftaddr"),juint(item,"taddr"),LP_busport(port)) < 0 ) |
|
|
if ( LP_coininit(&cdata,symbol,name,assetname==0?"":assetname,isPoS,port,pubtype,p2shtype,wiftype,txfee,estimatedrate,longestchain,juint(item,"wiftaddr"),juint(item,"taddr"),LP_busport(port),jstr(item,"coindir")) < 0 ) |
|
|
{ |
|
|
{ |
|
|
coin = LP_coinadd(&cdata); |
|
|
coin = LP_coinadd(&cdata); |
|
|
coin->inactive = (uint32_t)time(NULL); |
|
|
coin->inactive = (uint32_t)time(NULL); |
|
|