Merge pull request #11 from jl777/FSM
Fix rounding error: + 0.00000000499999
This commit is contained in:
@@ -5339,7 +5339,7 @@ UniValue rewardscreatefunding(const UniValue& params, bool fHelp)
|
|||||||
minseconds = maxseconds = 60 * 3600 * 24;
|
minseconds = maxseconds = 60 * 3600 * 24;
|
||||||
mindeposit = 100 * COIN;
|
mindeposit = 100 * COIN;
|
||||||
name = (char *)params[0].get_str().c_str();
|
name = (char *)params[0].get_str().c_str();
|
||||||
funds = atof(params[1].get_str().c_str()) * COIN;
|
funds = atof(params[1].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
|
|
||||||
if (!VALID_PLAN_NAME(name)) {
|
if (!VALID_PLAN_NAME(name)) {
|
||||||
ERR_RESULT(strprintf("Plan name can be at most %d ASCII characters",PLAN_NAME_MAX));
|
ERR_RESULT(strprintf("Plan name can be at most %d ASCII characters",PLAN_NAME_MAX));
|
||||||
@@ -5377,7 +5377,7 @@ UniValue rewardscreatefunding(const UniValue& params, bool fHelp)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
if ( params.size() > 5 )
|
if ( params.size() > 5 )
|
||||||
mindeposit = atof(params[5].get_str().c_str()) * COIN;
|
mindeposit = atof(params[5].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
if ( mindeposit <= 0 ) {
|
if ( mindeposit <= 0 ) {
|
||||||
ERR_RESULT("mindeposit must be positive");
|
ERR_RESULT("mindeposit must be positive");
|
||||||
return result;
|
return result;
|
||||||
@@ -5405,7 +5405,7 @@ UniValue rewardslock(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
name = (char *)params[0].get_str().c_str();
|
name = (char *)params[0].get_str().c_str();
|
||||||
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
||||||
amount = atof(params[2].get_str().c_str()) * COIN;
|
amount = atof(params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
hex = RewardsLock(0,name,fundingtxid,amount);
|
hex = RewardsLock(0,name,fundingtxid,amount);
|
||||||
|
|
||||||
if (!VALID_PLAN_NAME(name)) {
|
if (!VALID_PLAN_NAME(name)) {
|
||||||
@@ -5435,7 +5435,7 @@ UniValue rewardsaddfunding(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
name = (char *)params[0].get_str().c_str();
|
name = (char *)params[0].get_str().c_str();
|
||||||
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
||||||
amount = atof(params[2].get_str().c_str()) * COIN;
|
amount = atof(params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
hex = RewardsAddfunding(0,name,fundingtxid,amount);
|
hex = RewardsAddfunding(0,name,fundingtxid,amount);
|
||||||
|
|
||||||
if (!VALID_PLAN_NAME(name)) {
|
if (!VALID_PLAN_NAME(name)) {
|
||||||
@@ -5578,7 +5578,7 @@ UniValue gatewaysdeposit(const UniValue& params, bool fHelp)
|
|||||||
deposithex = params[5].get_str();
|
deposithex = params[5].get_str();
|
||||||
proof = ParseHex(params[6].get_str());
|
proof = ParseHex(params[6].get_str());
|
||||||
destpub = ParseHex(params[7].get_str());
|
destpub = ParseHex(params[7].get_str());
|
||||||
amount = atof((char *)params[8].get_str().c_str()) * COIN;
|
amount = atof((char *)params[8].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
if ( amount <= 0 || claimvout < 0 )
|
if ( amount <= 0 || claimvout < 0 )
|
||||||
throw runtime_error("invalid param: amount, numpks or claimvout\n");
|
throw runtime_error("invalid param: amount, numpks or claimvout\n");
|
||||||
hex = GatewaysDeposit(0,bindtxid,height,coin,cointxid,claimvout,deposithex,proof,pubkey2pk(destpub),amount);
|
hex = GatewaysDeposit(0,bindtxid,height,coin,cointxid,claimvout,deposithex,proof,pubkey2pk(destpub),amount);
|
||||||
@@ -5603,7 +5603,7 @@ UniValue gatewaysclaim(const UniValue& params, bool fHelp)
|
|||||||
coin = params[1].get_str();
|
coin = params[1].get_str();
|
||||||
deposittxid = Parseuint256((char *)params[2].get_str().c_str());
|
deposittxid = Parseuint256((char *)params[2].get_str().c_str());
|
||||||
destpub = ParseHex(params[3].get_str());
|
destpub = ParseHex(params[3].get_str());
|
||||||
amount = atof((char *)params[4].get_str().c_str()) * COIN;
|
amount = atof((char *)params[4].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
hex = GatewaysClaim(0,bindtxid,coin,deposittxid,pubkey2pk(destpub),amount);
|
hex = GatewaysClaim(0,bindtxid,coin,deposittxid,pubkey2pk(destpub),amount);
|
||||||
if ( hex.size() > 0 )
|
if ( hex.size() > 0 )
|
||||||
{
|
{
|
||||||
@@ -5625,7 +5625,7 @@ UniValue gatewayswithdraw(const UniValue& params, bool fHelp)
|
|||||||
bindtxid = Parseuint256((char *)params[0].get_str().c_str());
|
bindtxid = Parseuint256((char *)params[0].get_str().c_str());
|
||||||
coin = params[1].get_str();
|
coin = params[1].get_str();
|
||||||
withdrawpub = ParseHex(params[2].get_str());
|
withdrawpub = ParseHex(params[2].get_str());
|
||||||
amount = atof((char *)params[3].get_str().c_str()) * COIN;
|
amount = atof((char *)params[3].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
hex = GatewaysWithdraw(0,bindtxid,coin,pubkey2pk(withdrawpub),amount);
|
hex = GatewaysWithdraw(0,bindtxid,coin,pubkey2pk(withdrawpub),amount);
|
||||||
if ( hex.size() > 0 )
|
if ( hex.size() > 0 )
|
||||||
{
|
{
|
||||||
@@ -5733,7 +5733,7 @@ UniValue oraclesregister(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
txid = Parseuint256((char *)params[0].get_str().c_str());
|
txid = Parseuint256((char *)params[0].get_str().c_str());
|
||||||
if ( (datafee= atol((char *)params[1].get_str().c_str())) == 0 )
|
if ( (datafee= atol((char *)params[1].get_str().c_str())) == 0 )
|
||||||
datafee = atof((char *)params[1].get_str().c_str()) * COIN;
|
datafee = atof((char *)params[1].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
hex = OracleRegister(0,txid,datafee);
|
hex = OracleRegister(0,txid,datafee);
|
||||||
if ( hex.size() > 0 )
|
if ( hex.size() > 0 )
|
||||||
{
|
{
|
||||||
@@ -5754,7 +5754,7 @@ UniValue oraclessubscribe(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
txid = Parseuint256((char *)params[0].get_str().c_str());
|
txid = Parseuint256((char *)params[0].get_str().c_str());
|
||||||
pubkey = ParseHex(params[1].get_str().c_str());
|
pubkey = ParseHex(params[1].get_str().c_str());
|
||||||
amount = atof((char *)params[2].get_str().c_str()) * COIN;
|
amount = atof((char *)params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
hex = OracleSubscribe(0,txid,pubkey2pk(pubkey),amount);
|
hex = OracleSubscribe(0,txid,pubkey2pk(pubkey),amount);
|
||||||
if ( hex.size() > 0 )
|
if ( hex.size() > 0 )
|
||||||
{
|
{
|
||||||
@@ -5911,7 +5911,7 @@ UniValue faucetfund(const UniValue& params, bool fHelp)
|
|||||||
throw runtime_error("to use CC contracts, you need to launch daemon with valid -pubkey= for an address in your wallet\n");
|
throw runtime_error("to use CC contracts, you need to launch daemon with valid -pubkey= for an address in your wallet\n");
|
||||||
const CKeyStore& keystore = *pwalletMain;
|
const CKeyStore& keystore = *pwalletMain;
|
||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
funds = atof(params[0].get_str().c_str()) * COIN;
|
funds = atof(params[0].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
if (funds > 0) {
|
if (funds > 0) {
|
||||||
hex = FaucetFund(0,(uint64_t) funds);
|
hex = FaucetFund(0,(uint64_t) funds);
|
||||||
if ( hex.size() > 0 )
|
if ( hex.size() > 0 )
|
||||||
@@ -5976,7 +5976,7 @@ UniValue pricescreate(const UniValue& params, bool fHelp)
|
|||||||
longtoken = Parseuint256((char *)params[4].get_str().c_str());
|
longtoken = Parseuint256((char *)params[4].get_str().c_str());
|
||||||
shorttoken = Parseuint256((char *)params[5].get_str().c_str());
|
shorttoken = Parseuint256((char *)params[5].get_str().c_str());
|
||||||
maxleverage = atol(params[6].get_str().c_str());
|
maxleverage = atol(params[6].get_str().c_str());
|
||||||
funding = atof(params[7].get_str().c_str()) * COIN;
|
funding = atof(params[7].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
n = atoi(params[8].get_str().c_str());
|
n = atoi(params[8].get_str().c_str());
|
||||||
if ( n > 0 )
|
if ( n > 0 )
|
||||||
{
|
{
|
||||||
@@ -6012,7 +6012,7 @@ UniValue pricesaddfunding(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
fundingtxid = Parseuint256((char *)params[0].get_str().c_str());
|
fundingtxid = Parseuint256((char *)params[0].get_str().c_str());
|
||||||
bettoken = Parseuint256((char *)params[1].get_str().c_str());
|
bettoken = Parseuint256((char *)params[1].get_str().c_str());
|
||||||
amount = atof(params[2].get_str().c_str()) * COIN;
|
amount = atof(params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
hex = PricesAddFunding(0,bettoken,fundingtxid,amount);
|
hex = PricesAddFunding(0,bettoken,fundingtxid,amount);
|
||||||
if ( hex.size() > 0 )
|
if ( hex.size() > 0 )
|
||||||
{
|
{
|
||||||
@@ -6037,7 +6037,7 @@ UniValue pricesbet(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
fundingtxid = Parseuint256((char *)params[0].get_str().c_str());
|
fundingtxid = Parseuint256((char *)params[0].get_str().c_str());
|
||||||
bettoken = Parseuint256((char *)params[1].get_str().c_str());
|
bettoken = Parseuint256((char *)params[1].get_str().c_str());
|
||||||
amount = atof(params[2].get_str().c_str()) * COIN;
|
amount = atof(params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
leverage = atoi(params[3].get_str().c_str());
|
leverage = atoi(params[3].get_str().c_str());
|
||||||
hex = PricesBet(0,bettoken,fundingtxid,amount,leverage);
|
hex = PricesBet(0,bettoken,fundingtxid,amount,leverage);
|
||||||
if ( hex.size() > 0 )
|
if ( hex.size() > 0 )
|
||||||
@@ -6100,9 +6100,9 @@ UniValue dicefund(const UniValue& params, bool fHelp)
|
|||||||
const CKeyStore& keystore = *pwalletMain;
|
const CKeyStore& keystore = *pwalletMain;
|
||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
name = (char *)params[0].get_str().c_str();
|
name = (char *)params[0].get_str().c_str();
|
||||||
funds = atof(params[1].get_str().c_str()) * COIN;
|
funds = atof(params[1].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
minbet = atof(params[2].get_str().c_str()) * COIN;
|
minbet = atof(params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
maxbet = atof(params[3].get_str().c_str()) * COIN;
|
maxbet = atof(params[3].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
maxodds = atol(params[4].get_str().c_str());
|
maxodds = atol(params[4].get_str().c_str());
|
||||||
timeoutblocks = atol(params[5].get_str().c_str());
|
timeoutblocks = atol(params[5].get_str().c_str());
|
||||||
|
|
||||||
@@ -6134,7 +6134,7 @@ UniValue diceaddfunds(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
name = (char *)params[0].get_str().c_str();
|
name = (char *)params[0].get_str().c_str();
|
||||||
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
||||||
amount = atof(params[2].get_str().c_str()) * COIN;
|
amount = atof(params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
if (!VALID_PLAN_NAME(name)) {
|
if (!VALID_PLAN_NAME(name)) {
|
||||||
ERR_RESULT(strprintf("Plan name can be at most %d ASCII characters",PLAN_NAME_MAX));
|
ERR_RESULT(strprintf("Plan name can be at most %d ASCII characters",PLAN_NAME_MAX));
|
||||||
return(result);
|
return(result);
|
||||||
@@ -6162,7 +6162,7 @@ UniValue dicebet(const UniValue& params, bool fHelp)
|
|||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
name = (char *)params[0].get_str().c_str();
|
name = (char *)params[0].get_str().c_str();
|
||||||
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
fundingtxid = Parseuint256((char *)params[1].get_str().c_str());
|
||||||
amount = atof(params[2].get_str().c_str()) * COIN;
|
amount = atof(params[2].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
odds = atol(params[3].get_str().c_str());
|
odds = atol(params[3].get_str().c_str());
|
||||||
|
|
||||||
if (!VALID_PLAN_NAME(name)) {
|
if (!VALID_PLAN_NAME(name)) {
|
||||||
@@ -6351,7 +6351,7 @@ UniValue tokencreate(const UniValue& params, bool fHelp)
|
|||||||
const CKeyStore& keystore = *pwalletMain;
|
const CKeyStore& keystore = *pwalletMain;
|
||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
name = params[0].get_str();
|
name = params[0].get_str();
|
||||||
supply = atof(params[1].get_str().c_str()) * COIN;
|
supply = atof(params[1].get_str().c_str()) * COIN + 0.00000000499999;
|
||||||
if ( name.size() == 0 || name.size() > 32)
|
if ( name.size() == 0 || name.size() > 32)
|
||||||
{
|
{
|
||||||
ERR_RESULT("Token name must not be empty and up to 32 characters");
|
ERR_RESULT("Token name must not be empty and up to 32 characters");
|
||||||
|
|||||||
Reference in New Issue
Block a user