X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fbitcoinrpc.cpp;h=03c01f7b2160fd71f665f62cfc1f07d387d8fdba;hb=2bc4fd609ca00d5a5cb0b6b3eba5f35cb334b967;hp=c1e4df4b6e5d3e21eea691d600d0dede897ede28;hpb=922e8e2929a2e78270868385aa46f96002fbcff3;p=novacoin.git diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index c1e4df4..03c01f7 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -589,8 +589,6 @@ Value sendtoaddress(const Array& params, bool fHelp) return wtx.GetHash().GetHex(); } -static const string strMessageMagic = "Bitcoin Signed Message:\n"; - Value signmessage(const Array& params, bool fHelp) { if (fHelp || params.size() != 2) @@ -994,7 +992,7 @@ Value addmultisigaddress(const Array& params, bool fHelp) { string msg = "addmultisigaddress <'[\"key\",\"key\"]'> [account]\n" "Add a nrequired-to-sign multisignature address to the wallet\"\n" - "each key is a bitcoin address, hex or base58 public key\n" + "each key is a bitcoin address or hex-encoded public key\n" "If [account] is specified, assign address to [account]."; throw runtime_error(msg); } @@ -1025,35 +1023,25 @@ Value addmultisigaddress(const Array& params, bool fHelp) if (address.IsScript()) throw runtime_error( strprintf("%s is a pay-to-script address",ks.c_str())); - if (!pwalletMain->GetKey(address, pubkeys[i])) + std::vector vchPubKey; + if (!pwalletMain->GetPubKey(address, vchPubKey)) throw runtime_error( strprintf("no full public key for address %s",ks.c_str())); - continue; + if (vchPubKey.empty() || !pubkeys[i].SetPubKey(vchPubKey)) + throw runtime_error(" Invalid public key: "+ks); } // Case 2: hex public key - if (IsHex(ks)) + else if (IsHex(ks)) { vector vchPubKey = ParseHex(ks); if (vchPubKey.empty() || !pubkeys[i].SetPubKey(vchPubKey)) throw runtime_error(" Invalid public key: "+ks); - // There is approximately a zero percent chance a random - // public key encoded as base58 will consist entirely - // of hex characters. - continue; } - // Case 3: base58-encoded public key + else { - vector vchPubKey; - if (!DecodeBase58(ks, vchPubKey)) - throw runtime_error("base58 decoding failed: "+ks); - if (vchPubKey.size() < 33) // 33 is size of a compressed public key - throw runtime_error("decoded public key too short: "+ks); - if (pubkeys[i].SetPubKey(vchPubKey)) - continue; + throw runtime_error(" Invalid public key: "+ks); } - - throw runtime_error(" Invalid public key: "+ks); } // Construct using pay-to-script-hash: @@ -1739,8 +1727,6 @@ Value validateaddress(const Array& params, bool fHelp) std::vector vchPubKey; pwalletMain->GetPubKey(address, vchPubKey); ret.push_back(Pair("pubkey", HexStr(vchPubKey))); - std::string strPubKey(vchPubKey.begin(), vchPubKey.end()); - ret.push_back(Pair("pubkey58", EncodeBase58(vchPubKey))); CKey key; key.SetPubKey(vchPubKey); ret.push_back(Pair("iscompressed", key.IsCompressed())); @@ -1886,7 +1872,10 @@ Value getmemorypool(const Array& params, bool fHelp) " \"previousblockhash\" : hash of current highest block\n" " \"transactions\" : contents of non-coinbase transactions that should be included in the next block\n" " \"coinbasevalue\" : maximum allowable input to coinbase transaction, including the generation award and transaction fees\n" + " \"coinbaseflags\" : data that should be included in coinbase so support for new features can be judged\n" " \"time\" : timestamp appropriate for next block\n" + " \"mintime\" : minimum timestamp appropriate for next block\n" + " \"curtime\" : current timestamp\n" " \"bits\" : compressed target of next block\n" "If [data] is specified, tries to solve the block and returns true if it was successful."); @@ -1940,7 +1929,10 @@ Value getmemorypool(const Array& params, bool fHelp) result.push_back(Pair("previousblockhash", pblock->hashPrevBlock.GetHex())); result.push_back(Pair("transactions", transactions)); result.push_back(Pair("coinbasevalue", (int64_t)pblock->vtx[0].vout[0].nValue)); + result.push_back(Pair("coinbaseflags", HexStr(COINBASE_FLAGS.begin(), COINBASE_FLAGS.end()))); result.push_back(Pair("time", (int64_t)pblock->nTime)); + result.push_back(Pair("mintime", (int64_t)pindexPrev->GetMedianTimePast()+1)); + result.push_back(Pair("curtime", (int64_t)GetAdjustedTime())); union { int32_t nBits;