X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Frpcwallet.cpp;h=eb302faeba84773e37bf83f8950a48c527880d50;hb=63e4509c569f16145ab861717baf865fc6d05af1;hp=aa91f7f68727557d8039e38a503c10845cd9f5d3;hpb=34694c603fa90378d59d70804a5862df3845b2b8;p=novacoin.git diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index aa91f7f..eb302fa 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -704,7 +704,7 @@ Value sendfrom(const Array& params, bool fHelp) // Parse address CScript scriptPubKey; - string strAddress = params[0].get_str(); + string strAddress = params[1].get_str(); CBitcoinAddress address(strAddress); if (address.IsValid()) @@ -1744,6 +1744,7 @@ Value validateaddress(const Array& params, bool fHelp) CMalleableKeyView view; bool isMine = pwalletMain->GetMalleableView(mpk, view); ret.push_back(Pair("ismine", isMine)); + ret.push_back(Pair("PubkeyPair", mpk.ToString())); if (isMine) ret.push_back(Pair("KeyView", view.ToString())); @@ -1867,6 +1868,29 @@ Value resendtx(const Array& params, bool fHelp) return Value::null; } +Value resendwallettransactions(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 0) + throw runtime_error( + "resendwallettransactions\n" + "Immediately re-broadcast unconfirmed wallet transactions to all peers.\n" + "Intended only for testing; the wallet code periodically re-broadcasts\n" + "automatically.\n" + "Returns array of transaction ids that were re-broadcast.\n" + ); + + LOCK2(cs_main, pwalletMain->cs_wallet); + + std::vector txids = pwalletMain->ResendWalletTransactionsBefore(GetTime()); + Array result; + BOOST_FOREACH(const uint256& txid, txids) + { + result.push_back(txid.ToString()); + } + return result; +} + + // Make a public-private key pair Value makekeypair(const Array& params, bool fHelp) { @@ -1958,16 +1982,34 @@ Value adjustmalleablepubkey(const Array& params, bool fHelp) { if (fHelp || params.size() > 2 || params.size() == 0) throw runtime_error( - "adjustmalleablepubkey \n" - "Calculate new public key using provided malleable public key data.\n"); + "adjustmalleablepubkey \n" + "Calculate new public key using provided data.\n"); - string pubKeyPair = params[0].get_str(); + string strData = params[0].get_str(); CMalleablePubKey malleablePubKey; - if (pubKeyPair.size() == 136) { - malleablePubKey.setvch(ParseHex(pubKeyPair)); - } else - malleablePubKey.SetString(pubKeyPair); + do + { + CBitcoinAddress addr(strData); + if (addr.IsValid() && addr.IsPair()) + { + // Initialize malleable pubkey with address data + malleablePubKey = CMalleablePubKey(addr.GetData()); + break; + } + CMalleableKeyView viewTmp(strData); + if (viewTmp.IsValid()) + { + // Shazaam, we have a valid key view here. + malleablePubKey = viewTmp.GetMalleablePubKey(); + break; + } + if (malleablePubKey.SetString(strData)) + break; // A valid public key pair + + throw runtime_error("Though your data seems a valid Base58 string, we were unable to recognize it."); + } + while(false); CPubKey R, vchPubKeyVariant; malleablePubKey.GetVariant(R, vchPubKeyVariant);