# Gavin Andresen # 2010-08-13 20:01:17 # https://bitcointalk.org/index.php?topic=807.msg9086#msg9086 RE: adding a flag: great idea! @p{par} If you set the flag, I don't see any reason to prepend 'sent' to the transaction ID; better to just return the transaction ID on successful send. @p{par} Patches: @p{brk} Code: diff @p{--}git a/rpc.cpp b/rpc.cpp @p{brk} index 920fe90..8714b7e 100644 @p{brk} @p{@p{--}-} a/rpc.cpp @p{brk} +++ b/rpc.cpp @p{brk} @@ -342,10 +342,11 @@ Value getaddressesbylabel(const Array& params, bool fHelp) @p{par} Value sendtoaddress(const Array& params, bool fHelp) @p{brk} { @p{brk} - if (fHelp || params.size() @p{lt} 2 || params.size() @s{gt} 4) @p{brk} + if (fHelp || params.size() @p{lt} 2 || params.size() @s{gt} 5) @p{brk} throw runtime_error( @p{brk} - "sendtoaddress @p{lt}bitcoinaddress@s{gt} @p{lt}amount@s{gt} [comment] [comment-to]\n" @p{brk} - "@p{lt}amount@s{gt} is a real and is rounded to the nearest 0.01"); @p{brk} + "sendtoaddress @p{lt}bitcoinaddress@s{gt} @p{lt}amount@s{gt} [comment] [comment-to] [return-tx-id-flag]\n" @p{brk} + "@p{lt}amount@s{gt} is a real and is rounded to the nearest 0.01\n" @p{brk} + "returns string 'sent' if return-tx-id-flag is false (default), otherwise returns transaction id."); @p{par} string strAddress = params[0].get_str(); @p{par} @@ -361,9 +362,15 @@ Value sendtoaddress(const Array& params, bool fHelp) @p{brk} if (params.size() @s{gt} 3 && params[3].type() != null_type && !params[3].get_str().empty()) @p{brk} wtx.mapValue["to"] = params[3].get_str(); @p{par} + bool fReturnTxID = false; @p{brk} + if (params.size() @s{gt} 4) @p{brk} + fReturnTxID = params[4].get_bool(); @p{brk} + @p{brk} string strError = SendMoneyToBitcoinAddress(strAddress, nAmount, wtx); @p{brk} if (strError != "") @p{brk} throw runtime_error(strError); @p{brk} + if (fReturnTxID) @p{brk} + return wtx.GetHash().ToString(); @p{brk} return "sent"; @p{brk} } @p{par} @@ -1103,6 +1110,7 @@ int CommandLineRPC(int argc, char *argv[]) @p{brk} if (strMethod == "setgenerate" && n @s{gt} 0) ConvertTo@p{lt}bool@s{gt}(params[0]); @p{brk} if (strMethod == "setgenerate" && n @s{gt} 1) ConvertTo@p{lt}boost::int64_t@s{gt}(params[1]); @p{brk} if (strMethod == "sendtoaddress" && n @s{gt} 1) ConvertTo@p{lt}double@s{gt}(params[1]); @p{brk} + if (strMethod == "sendtoaddress" && n @s{gt} 4) ConvertTo@p{lt}bool@s{gt}(params[4]); @p{brk} if (strMethod == "listtransactions" && n @s{gt} 0) ConvertTo@p{lt}boost::int64_t@s{gt}(params[0]); @p{brk} if (strMethod == "listtransactions" && n @s{gt} 1) ConvertTo@p{lt}bool@s{gt}(params[1]); @p{brk} if (strMethod == "getamountreceived" && n @s{gt} 1) ConvertTo@p{lt}boost::int64_t@s{gt}(params[1]); // deprecated @p{brk}