test
This commit is contained in:
@@ -216,7 +216,7 @@ int32_t komodo_baseid(char *origbase)
|
|||||||
uint64_t komodo_paxcalc(uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume)
|
uint64_t komodo_paxcalc(uint32_t *pvals,int32_t baseid,int32_t relid,uint64_t basevolume)
|
||||||
{
|
{
|
||||||
uint32_t pvalb,pvalr,kmdbtc,btcusd; uint64_t usdvol,baseusd,usdkmd,baserel,sum,ranked[32]; int32_t i;
|
uint32_t pvalb,pvalr,kmdbtc,btcusd; uint64_t usdvol,baseusd,usdkmd,baserel,sum,ranked[32]; int32_t i;
|
||||||
if ( basevolume > 10000000*COIN )
|
if ( basevolume > 1000000*COIN )
|
||||||
return(0);
|
return(0);
|
||||||
if ( (pvalb= pvals[baseid]) != 0 )
|
if ( (pvalb= pvals[baseid]) != 0 )
|
||||||
{
|
{
|
||||||
@@ -284,17 +284,20 @@ int32_t komodo_paxprices(int32_t *heights,uint64_t *prices,int32_t max,char *bas
|
|||||||
return(num);
|
return(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t PAX_fiatdest(char *destaddr,uint8_t pubkey33[33],char *coinaddr,int32_t height,char *base,int32_t fiatunits)
|
uint64_t PAX_fiatdest(char *destaddr,uint8_t pubkey33[33],char *coinaddr,int32_t height,char *origbase,int64_t fiatoshis)
|
||||||
{
|
{
|
||||||
uint8_t shortflag = 0; int32_t baseid,relid; uint8_t addrtype,rmd160[20]; uint64_t komodoshis = 0;
|
uint8_t shortflag = 0; char base[4]; int32_t i,baseid,relid; uint8_t addrtype,rmd160[20]; uint64_t komodoshis = 0;
|
||||||
if ( strcmp(base,(char *)"KMD") == 0 || strcmp(base,(char *)"kmd") == 0 )
|
if ( strcmp(base,(char *)"KMD") == 0 || strcmp(base,(char *)"kmd") == 0 )
|
||||||
return(0);
|
return(0);
|
||||||
|
for (i=0; i<3; i++)
|
||||||
|
base[i] = toupper(origbase[i]);
|
||||||
|
base[i] = 0;
|
||||||
if ( fiatunits < 0 )
|
if ( fiatunits < 0 )
|
||||||
shortflag = 1, fiatunits = -fiatunits;
|
shortflag = 1, fiatunits = -fiatunits;
|
||||||
komodoshis = komodo_paxprice(height,base,(char *)"KMD",(uint64_t)fiatunits);
|
komodoshis = komodo_paxprice(height,base,(char *)"KMD",(uint64_t)fiatoshis);
|
||||||
if ( bitcoin_addr2rmd160(&addrtype,rmd160,coinaddr) == 20 )
|
if ( bitcoin_addr2rmd160(&addrtype,rmd160,coinaddr) == 20 )
|
||||||
{
|
{
|
||||||
PAX_pubkey(pubkey33,addrtype,rmd160,base,shortflag,fiatunits);
|
PAX_pubkey(pubkey33,addrtype,rmd160,base,shortflag,fiatoshis);
|
||||||
bitcoin_address(destaddr,KOMODO_PUBTYPE,pubkey33,33);
|
bitcoin_address(destaddr,KOMODO_PUBTYPE,pubkey33,33);
|
||||||
}
|
}
|
||||||
return(komodoshis);
|
return(komodoshis);
|
||||||
|
|||||||
@@ -452,7 +452,7 @@ Value sendtoaddress(const Array& params, bool fHelp)
|
|||||||
return wtx.GetHash().GetHex();
|
return wtx.GetHash().GetHex();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t PAX_fiatdest(char *destaddr,uint8_t pubkey33[33],char *coinaddr,int32_t height,char *base,int32_t fiatunits);
|
uint64_t PAX_fiatdest(char *destaddr,uint8_t pubkey33[33],char *coinaddr,int32_t height,char *base,int64_t fiatoshis);
|
||||||
|
|
||||||
Value paxdeposit(const Array& params, bool fHelp)
|
Value paxdeposit(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
@@ -461,22 +461,22 @@ Value paxdeposit(const Array& params, bool fHelp)
|
|||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return Value::null;
|
||||||
if (fHelp || params.size() != 3)
|
if (fHelp || params.size() != 3)
|
||||||
throw runtime_error("paxdeposit \"bitcoinaddress\" fiatunits \"base\"");
|
throw runtime_error("paxdeposit \"bitcoinaddress\" [-]fiatoshis \"base\"\nnegative fiatoshis means a short position, long position capped at 100% gain");
|
||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
CBitcoinAddress address(params[0].get_str());
|
CBitcoinAddress address(params[0].get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
||||||
int32_t fiatunits = atoi(params[1].get_str());
|
int64_t fiatoshis = atof(params[1].get_str()) * COIN;
|
||||||
std::string base = params[2].get_str();
|
std::string base = params[2].get_str();
|
||||||
std::string dest;
|
std::string dest;
|
||||||
komodoshis = PAX_fiatdest(destaddr,pubkey33,(char *)params[0].get_str().c_str(),chainActive.Tip()->nHeight,(char *)base.c_str(),fiatunits);
|
komodoshis = PAX_fiatdest(destaddr,pubkey33,(char *)params[0].get_str().c_str(),chainActive.Tip()->nHeight,(char *)base.c_str(),fiatoshis);
|
||||||
dest.append(destaddr);
|
dest.append(destaddr);
|
||||||
CBitcoinAddress destaddress(dest);
|
CBitcoinAddress destaddress(dest);
|
||||||
if (!destaddress.IsValid())
|
if (!destaddress.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid dest Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid dest Bitcoin address");
|
||||||
for (i=0; i<33; i++)
|
for (i=0; i<33; i++)
|
||||||
printf("%02x",pubkey33[i]);
|
printf("%02x",pubkey33[i]);
|
||||||
printf(" ht.%d srcaddr.(%s) %s fiatunits.%d -> dest.(%s) komodoshis.%llu\n",chainActive.Tip()->nHeight,(char *)params[0].get_str().c_str(),(char *)base.c_str(),fiatunits,destaddr,(long long)komodoshis);
|
printf(" ht.%d srcaddr.(%s) %s fiatoshis.%lld -> dest.(%s) komodoshis.%llu\n",chainActive.Tip()->nHeight,(char *)params[0].get_str().c_str(),(char *)base.c_str(),(long long)fiatoshis,destaddr,(long long)komodoshis);
|
||||||
|
|
||||||
EnsureWalletIsUnlocked();
|
EnsureWalletIsUnlocked();
|
||||||
CWalletTx wtx;
|
CWalletTx wtx;
|
||||||
|
|||||||
Reference in New Issue
Block a user