aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@exmulti.com>2011-05-09 11:54:16 -0700
committerJeff Garzik <jgarzik@exmulti.com>2011-05-09 11:54:16 -0700
commit04a667b0767a6c3fff8d24be784ccaec9edf712b (patch)
treeb9050012288a331f4de982667305ff85bb2ab28a
parente8adcf88cd36340cabef6e82dc18e712714f5081 (diff)
parentd9068ad5a175a6ea22d48df35331c155a1e2f99b (diff)
downloadbitcoin-04a667b0767a6c3fff8d24be784ccaec9edf712b.tar.xz
Merge pull request #150 from jgarzik/settxfee
Add 'settxfee' RPC, to change TX fee setting at runtime
-rw-r--r--src/rpc.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/rpc.cpp b/src/rpc.cpp
index 3aec7efbe1..8af659e2ac 100644
--- a/src/rpc.cpp
+++ b/src/rpc.cpp
@@ -465,6 +465,22 @@ Value getaddressesbyaccount(const Array& params, bool fHelp)
return ret;
}
+Value settxfee(const Array& params, bool fHelp)
+{
+ if (fHelp || params.size() < 1 || params.size() > 1)
+ throw runtime_error(
+ "settxfee <amount>\n"
+ "<amount> is a real and is rounded to the nearest 0.00000001");
+
+ // Amount
+ int64 nAmount = 0;
+ if (params[0].get_real() != 0.0)
+ nAmount = AmountFromValue(params[0]); // rejects 0.0 amounts
+
+ nTransactionFee = nAmount;
+ return true;
+}
+
Value sendtoaddress(const Array& params, bool fHelp)
{
if (fHelp || params.size() < 2 || params.size() > 4)
@@ -1441,6 +1457,7 @@ pair<string, rpcfn_type> pCallTable[] =
make_pair("listtransactions", &listtransactions),
make_pair("getwork", &getwork),
make_pair("listaccounts", &listaccounts),
+ make_pair("settxfee", &settxfee),
};
map<string, rpcfn_type> mapCallTable(pCallTable, pCallTable + sizeof(pCallTable)/sizeof(pCallTable[0]));
@@ -2074,6 +2091,7 @@ int CommandLineRPC(int argc, char *argv[])
if (strMethod == "setgenerate" && n > 0) ConvertTo<bool>(params[0]);
if (strMethod == "setgenerate" && n > 1) ConvertTo<boost::int64_t>(params[1]);
if (strMethod == "sendtoaddress" && n > 1) ConvertTo<double>(params[1]);
+ if (strMethod == "settxfee" && n > 0) ConvertTo<double>(params[0]);
if (strMethod == "getamountreceived" && n > 1) ConvertTo<boost::int64_t>(params[1]); // deprecated
if (strMethod == "getreceivedbyaddress" && n > 1) ConvertTo<boost::int64_t>(params[1]);
if (strMethod == "getreceivedbyaccount" && n > 1) ConvertTo<boost::int64_t>(params[1]);