X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Frpcdump.cpp;h=b0693ed27d559d0e710678739144b335e2c5c225;hb=ea777adaf15afe3c7097a00d20865175536dd712;hp=d29738db3c2bc25332abb0324654b8cdd2086d5b;hpb=c96ef11c13e5ea4c07c5224344fdb9bafd08bc2b;p=novacoin.git diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index d29738d..b0693ed 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -239,3 +239,49 @@ Value dumpwallet(const Array& params, bool fHelp) return Value::null; } + +Value dumpmalleablekey(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 1) + throw runtime_error ( + "dumpmalleablekey \n" + "Dump the private and public key pairs, which correspond to provided key view.\n"); + + CMalleableKey mKey; + CMalleableKeyView keyView; + keyView.SetString(params[0].get_str()); + + if (!pwalletMain->GetMalleableKey(keyView, mKey)) + throw runtime_error("There is no such item in the wallet"); + + Object result; + result.push_back(Pair("PrivatePair", mKey.ToString())); + result.push_back(Pair("PublicPair", mKey.GetMalleablePubKey().ToString())); + + return result; +} + +Value importmalleablekey(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 1) + throw runtime_error ( + "importmalleablekey \n" + "Imports the private key pair into your wallet.\n"); + + CMalleableKey mKey; + bool fSuccess = mKey.SetString(params[0].get_str()); + + Object result; + + if (fSuccess) + { + fSuccess = pwalletMain->AddMalleableKey(mKey); + result.push_back(Pair("Successful", fSuccess)); + result.push_back(Pair("PublicPair", mKey.GetMalleablePubKey().ToString())); + result.push_back(Pair("KeyView", CMalleableKeyView(mKey).ToString())); + } + else + result.push_back(Pair("Successful", false)); + + return result; +}