X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=blobdiff_plain;f=src%2Frpcdump.cpp;h=48112a5b86768b2a529d995d2135c061fdbdf34f;hp=6a83604c7b4d049652c210edf1505c672a320841;hb=6aba6f08af53e3fa49ab4d1ef002e6771d0ce358;hpb=46b969fc077d929f6e73266fe7c0b5d1f9b42e18 diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index 6a83604..48112a5 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -62,18 +62,19 @@ Value importprivkey(const Array& params, bool fHelp) bool fCompressed; CSecret secret = vchSecret.GetSecret(fCompressed); key.SetSecret(secret, fCompressed); - CKeyID vchAddress = key.GetPubKey().GetID(); + CKeyID keyid = key.GetPubKey().GetID(); + CBitcoinAddress addr = CBitcoinAddress(keyid); { LOCK2(cs_main, pwalletMain->cs_wallet); pwalletMain->MarkDirty(); - pwalletMain->SetAddressBookName(vchAddress, strLabel); + pwalletMain->SetAddressBookName(addr, strLabel); // Don't throw error in case a key is already there - if (pwalletMain->HaveKey(vchAddress)) + if (pwalletMain->HaveKey(keyid)) return Value::null; - pwalletMain->mapKeyMetadata[vchAddress].nCreateTime = 1; + pwalletMain->mapKeyMetadata[addr].nCreateTime = 1; if (!pwalletMain->AddKey(key)) throw JSONRPCError(RPC_WALLET_ERROR, "Error adding key to wallet"); @@ -101,13 +102,14 @@ Value importaddress(const Array& params, bool fHelp) CScript script; CBitcoinAddress address(params[0].get_str()); if (address.IsValid()) { - script.SetDestination(address.Get()); + if (address.IsPair()) + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "It's senseless to import pubkey pair address."); + script.SetAddress(address); } else if (IsHex(params[0].get_str())) { std::vector data(ParseHex(params[0].get_str())); script = CScript(data.begin(), data.end()); - } else { + } else throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Novacoin address or script"); - } string strLabel = ""; if (params.size() > 1) @@ -130,7 +132,7 @@ Value importaddress(const Array& params, bool fHelp) pwalletMain->MarkDirty(); if (address.IsValid()) - pwalletMain->SetAddressBookName(address.Get(), strLabel); + pwalletMain->SetAddressBookName(address, strLabel); if (!pwalletMain->AddWatchOnly(script)) throw JSONRPCError(RPC_WALLET_ERROR, "Error adding address to wallet"); @@ -161,13 +163,14 @@ Value removeaddress(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (address.IsValid()) { - script.SetDestination(address.Get()); + if (address.IsPair()) + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey pair addresses aren't supported."); + script.SetAddress(address); } else if (IsHex(params[0].get_str())) { std::vector data(ParseHex(params[0].get_str())); script = CScript(data.begin(), data.end()); - } else { + } else throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address or script"); - } if (::IsMine(*pwalletMain, script) == MINE_SPENDABLE) throw JSONRPCError(RPC_WALLET_ERROR, "The wallet contains the private key for this address or script - can't remove it"); @@ -260,7 +263,7 @@ Value dumpmalleablekey(const Array& params, bool fHelp) Object result; result.push_back(Pair("PrivatePair", mKey.ToString())); - result.push_back(Pair("PublicPair", mKey.GetMalleablePubKey().ToString())); + result.push_back(Pair("Address", CBitcoinAddress(mKey.GetMalleablePubKey()).ToString())); return result; } @@ -282,9 +285,9 @@ Value importmalleablekey(const Array& params, bool fHelp) if (fSuccess) { - fSuccess = pwalletMain->AddMalleableKey(mKey); + fSuccess = pwalletMain->AddKey(mKey); result.push_back(Pair("Successful", fSuccess)); - result.push_back(Pair("PublicPair", mKey.GetMalleablePubKey().ToString())); + result.push_back(Pair("Address", CBitcoinAddress(mKey.GetMalleablePubKey()).ToString())); result.push_back(Pair("KeyView", CMalleableKeyView(mKey).ToString())); } else