From 4d8e66017f6d6498df53935bc9a754d4317a2293 Mon Sep 17 00:00:00 2001 From: James Evans Date: Mon, 20 Mar 2017 05:19:41 -0300 Subject: [PATCH 1/6] Trivial: Fix typo in help getrawtransaction RPC Github-Pull: #10037 Rebased-From: 05a9f22358be27c08f7e164d05eeeaf0386073cb --- src/rpc/rawtransaction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index bf16f27498f..9ddeddd71b5 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -139,7 +139,7 @@ UniValue getrawtransaction(const JSONRPCRequest& request) "\nArguments:\n" "1. \"txid\" (string, required) The transaction id\n" - "2. verbose (bool, optional, default=false) If true, return a string, other return a json object\n" + "2. verbose (bool, optional, default=false) If false, return a string, otherwise return a json object\n" "\nResult (if verbose is not set or set to false):\n" "\"data\" (string) The serialized, hex-encoded data for 'txid'\n" From ddc2dd16121b10da129d363530a365361435a849 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Wed, 22 Mar 2017 20:34:27 -0400 Subject: [PATCH 2/6] Ensure an item exists on the rpcconsole stack before adding Ensures that there is an item on the rpcconsole stack before adding something to the current stack so that a segmentation fault does not occur. Github-Pull: #10060 Rebased-From: 4df76e270caa9d828179cae1c7a8918d6f91ec21 --- src/qt/rpcconsole.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 60406c20597..001f1992647 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -175,6 +175,10 @@ bool RPCConsole::RPCParseCommandLine(std::string &strResult, const std::string & nDepthInsideSensitive = 1; filter_begin_pos = chpos; } + // Make sure stack is not empty before adding something + if (stack.empty()) { + stack.push_back(std::vector()); + } stack.back().push_back(strArg); }; From e9611d10b67dd99bae83b32dedc9767b4c2e44d2 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 10 Mar 2017 16:53:03 -0500 Subject: [PATCH 3/6] depends: fix zlib build on osx zlib is sneaky and expects ar to be libtool on darwin. Github-Pull: #9973 Rebased-From: c62475329e5e4c4c3f9570546e2b843288f48c61 --- depends/packages/zlib.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/depends/packages/zlib.mk b/depends/packages/zlib.mk index 7ff5d00bbdc..589490800f8 100644 --- a/depends/packages/zlib.mk +++ b/depends/packages/zlib.mk @@ -7,8 +7,10 @@ $(package)_sha256_hash=c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca11 define $(package)_set_vars $(package)_build_opts= CC="$($(package)_cc)" $(package)_build_opts+=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -fPIC" -$(package)_build_opts+=AR="$($(package)_ar)" $(package)_build_opts+=RANLIB="$($(package)_ranlib)" +$(package)_build_opts+=AR="$($(package)_ar)" +$(package)_build_opts_darwin+=AR="$($(package)_libtool)" +$(package)_build_opts_darwin+=ARFLAGS="-o" endef define $(package)_config_cmds From fc3d7db5800f1d821ac233909f38bd342e3fe503 Mon Sep 17 00:00:00 2001 From: Suhas Daftuar Date: Fri, 3 Mar 2017 13:33:32 -0500 Subject: [PATCH 4/6] Optimize GetWitnessHash() for non-segwit transactions Github-Pull: #9912 Rebased-From: 02c57b521a9e7afd4416cd027a8b397f202b08a8 --- src/primitives/transaction.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/primitives/transaction.cpp b/src/primitives/transaction.cpp index 790bc71d14b..28ef1fb4640 100644 --- a/src/primitives/transaction.cpp +++ b/src/primitives/transaction.cpp @@ -69,6 +69,9 @@ uint256 CTransaction::ComputeHash() const uint256 CTransaction::GetWitnessHash() const { + if (!HasWitness()) { + return GetHash(); + } return SerializeHash(*this, SER_GETHASH, 0); } From 142fbb2fec76adee001ffdabfe25ebc462560696 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Sun, 26 Mar 2017 12:08:44 +0200 Subject: [PATCH 5/6] rpc: Rename first named arg of createrawtransaction Github-Pull: #10084 Rebased-From: fa558532192ca0bb519f811ee14df6037413b89f --- src/rpc/client.cpp | 2 +- src/rpc/rawtransaction.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp index 5bdd84e5551..56d14959192 100644 --- a/src/rpc/client.cpp +++ b/src/rpc/client.cpp @@ -83,7 +83,7 @@ static const CRPCConvertParam vRPCConvertParams[] = { "getblockheader", 1, "verbose" }, { "gettransaction", 1, "include_watchonly" }, { "getrawtransaction", 1, "verbose" }, - { "createrawtransaction", 0, "transactions" }, + { "createrawtransaction", 0, "inputs" }, { "createrawtransaction", 1, "outputs" }, { "createrawtransaction", 2, "locktime" }, { "signrawtransaction", 1, "prevtxs" }, diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index 9ddeddd71b5..0fabb9f5a88 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -361,7 +361,7 @@ UniValue createrawtransaction(const JSONRPCRequest& request) "it is not stored in the wallet or transmitted to the network.\n" "\nArguments:\n" - "1. \"inputs\" (string, required) A json array of json objects\n" + "1. \"inputs\" (array, required) A json array of json objects\n" " [\n" " {\n" " \"txid\":\"id\", (string, required) The transaction id\n" @@ -370,7 +370,7 @@ UniValue createrawtransaction(const JSONRPCRequest& request) " } \n" " ,...\n" " ]\n" - "2. \"outputs\" (string, required) a json object with outputs\n" + "2. \"outputs\" (object, required) a json object with outputs\n" " {\n" " \"address\": x.xxx, (numeric or string, required) The key is the bitcoin address, the numeric value (can be string) is the " + CURRENCY_UNIT + " amount\n" " \"data\": \"hex\" (string, required) The key is \"data\", the value is hex encoded data\n" @@ -932,7 +932,7 @@ static const CRPCCommand commands[] = { // category name actor (function) okSafeMode // --------------------- ------------------------ ----------------------- ---------- { "rawtransactions", "getrawtransaction", &getrawtransaction, true, {"txid","verbose"} }, - { "rawtransactions", "createrawtransaction", &createrawtransaction, true, {"transactions","outputs","locktime"} }, + { "rawtransactions", "createrawtransaction", &createrawtransaction, true, {"inputs","outputs","locktime"} }, { "rawtransactions", "decoderawtransaction", &decoderawtransaction, true, {"hexstring"} }, { "rawtransactions", "decodescript", &decodescript, true, {"hexstring"} }, { "rawtransactions", "sendrawtransaction", &sendrawtransaction, false, {"hexstring","allowhighfees"} }, From fa7555b16a4e279f8f04c06f76a315e4c194ad79 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Mon, 27 Mar 2017 23:45:03 +0200 Subject: [PATCH 6/6] doc: Add release notes for RPC createraw break --- doc/release-notes.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 7ade5b74400..41fb500f164 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -36,7 +36,14 @@ Notable changes Example item ----------------------------------------------- -0.13.x Change log +RPC changes +----------- + +The first positional argument of `createrawtransaction` was renamed. +This interface change breaks compatibility with 0.14.0, when the named +arguments functionality, introduced in 0.14.0, is used. + +0.14.x Change log ================= Detailed release notes follow. This overview includes changes that affect