Rpcwallet bypass

This commit is contained in:
jl777
2019-07-11 00:06:06 -11:00
parent a6c16efaa2
commit f6f3fc8606
2 changed files with 12 additions and 3 deletions

View File

@@ -7000,11 +7000,19 @@ UniValue faucetfund(const UniValue& params, bool fHelp)
UniValue result(UniValue::VOBJ); int64_t funds; std::string hex;
if ( fHelp || params.size() > 1 )
throw runtime_error("faucetfund amount\n");
funds = atof(params[0].get_str().c_str()) * COIN + 0.00000000499999;
if ( KOMODO_NSPV != 0 )
{
char coinaddr[64]; struct CCcontract_info *cp,C; CTxOut v;
cp = CCinit(&C,EVAL_FAUCET);
v = MakeCC1vout(EVAL_FAUCET,funds,GetUnspendable(cp,0));
Getscriptaddress(coinaddr,CScript() << ParseHex(HexStr(pubkey2pk(Mypubkey()))) << OP_CHECKSIG);
return(NSPV_spend(srcaddr,HexStr(v.scriptPubKey.begin(),v.scriptPubKey.end()),funds));
}
if ( ensure_CCrequirements(EVAL_FAUCET) < 0 )
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;
//LOCK2(cs_main, pwalletMain->cs_wallet);
funds = atof(params[0].get_str().c_str()) * COIN + 0.00000000499999;
const CKeyStore& keystore = *pwalletMain;
LOCK2(cs_main, pwalletMain->cs_wallet);
if (funds > 0) {
hex = FaucetFund(0,(uint64_t) funds);
if ( hex.size() > 0 )