[rpc] remove resendwallettransactions RPC
This RPC was added for testing wallet rebroadcasts. Since we now have a real test for wallet rebroadcasts, it's no longer needed. The call in wallet_basic.py can be removed because wallet_resendwallettransactions.py tests wallet rebroadcast.
This commit is contained in:
parent
0baf4b1f96
commit
f5162458cd
2 changed files with 1 additions and 61 deletions
|
@ -2668,50 +2668,6 @@ static UniValue unloadwallet(const JSONRPCRequest& request)
|
||||||
return NullUniValue;
|
return NullUniValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
static UniValue resendwallettransactions(const JSONRPCRequest& request)
|
|
||||||
{
|
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
||||||
CWallet* const pwallet = wallet.get();
|
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (request.fHelp || request.params.size() != 0)
|
|
||||||
throw std::runtime_error(
|
|
||||||
RPCHelpMan{"resendwallettransactions",
|
|
||||||
"Immediately re-broadcast unconfirmed wallet transactions to all peers.\n"
|
|
||||||
"Intended only for testing; the wallet code periodically re-broadcasts\n"
|
|
||||||
"automatically.\n",
|
|
||||||
{},
|
|
||||||
RPCResult{
|
|
||||||
"Returns an RPC error if -walletbroadcast is set to false.\n"
|
|
||||||
"Returns array of transaction ids that were re-broadcast.\n"
|
|
||||||
},
|
|
||||||
RPCExamples{""},
|
|
||||||
}.ToString()
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!pwallet->chain().p2pEnabled()) {
|
|
||||||
throw JSONRPCError(RPC_CLIENT_P2P_DISABLED, "Error: Peer-to-peer functionality missing or disabled");
|
|
||||||
}
|
|
||||||
|
|
||||||
auto locked_chain = pwallet->chain().lock();
|
|
||||||
LOCK(pwallet->cs_wallet);
|
|
||||||
|
|
||||||
if (!pwallet->GetBroadcastTransactions()) {
|
|
||||||
throw JSONRPCError(RPC_WALLET_ERROR, "Error: Wallet transaction broadcasting is disabled with -walletbroadcast");
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<uint256> txids = pwallet->ResendWalletTransactionsBefore(*locked_chain, GetTime());
|
|
||||||
UniValue result(UniValue::VARR);
|
|
||||||
for (const uint256& txid : txids)
|
|
||||||
{
|
|
||||||
result.push_back(txid.ToString());
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static UniValue listunspent(const JSONRPCRequest& request)
|
static UniValue listunspent(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
@ -4085,7 +4041,6 @@ UniValue importmulti(const JSONRPCRequest& request);
|
||||||
static const CRPCCommand commands[] =
|
static const CRPCCommand commands[] =
|
||||||
{ // category name actor (function) argNames
|
{ // category name actor (function) argNames
|
||||||
// --------------------- ------------------------ ----------------------- ----------
|
// --------------------- ------------------------ ----------------------- ----------
|
||||||
{ "hidden", "resendwallettransactions", &resendwallettransactions, {} },
|
|
||||||
{ "rawtransactions", "fundrawtransaction", &fundrawtransaction, {"hexstring","options","iswitness"} },
|
{ "rawtransactions", "fundrawtransaction", &fundrawtransaction, {"hexstring","options","iswitness"} },
|
||||||
{ "wallet", "abandontransaction", &abandontransaction, {"txid"} },
|
{ "wallet", "abandontransaction", &abandontransaction, {"txid"} },
|
||||||
{ "wallet", "abortrescan", &abortrescan, {} },
|
{ "wallet", "abortrescan", &abortrescan, {} },
|
||||||
|
|
|
@ -14,7 +14,6 @@ from test_framework.util import (
|
||||||
assert_raises_rpc_error,
|
assert_raises_rpc_error,
|
||||||
connect_nodes_bi,
|
connect_nodes_bi,
|
||||||
sync_blocks,
|
sync_blocks,
|
||||||
sync_mempools,
|
|
||||||
wait_until,
|
wait_until,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -216,23 +215,9 @@ class WalletTest(BitcoinTestFramework):
|
||||||
assert_equal(self.nodes[2].getbalance(), node_2_bal)
|
assert_equal(self.nodes[2].getbalance(), node_2_bal)
|
||||||
node_0_bal = self.check_fee_amount(self.nodes[0].getbalance(), node_0_bal + Decimal('10'), fee_per_byte, self.get_vsize(self.nodes[2].gettransaction(txid)['hex']))
|
node_0_bal = self.check_fee_amount(self.nodes[0].getbalance(), node_0_bal + Decimal('10'), fee_per_byte, self.get_vsize(self.nodes[2].gettransaction(txid)['hex']))
|
||||||
|
|
||||||
# Test ResendWalletTransactions:
|
|
||||||
# Create a couple of transactions, then start up a fourth
|
|
||||||
# node (nodes[3]) and ask nodes[0] to rebroadcast.
|
|
||||||
# EXPECT: nodes[3] should have those transactions in its mempool.
|
|
||||||
txid1 = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 1)
|
|
||||||
txid2 = self.nodes[1].sendtoaddress(self.nodes[0].getnewaddress(), 1)
|
|
||||||
sync_mempools(self.nodes[0:2])
|
|
||||||
|
|
||||||
self.start_node(3)
|
self.start_node(3)
|
||||||
connect_nodes_bi(self.nodes, 0, 3)
|
connect_nodes_bi(self.nodes, 0, 3)
|
||||||
sync_blocks(self.nodes)
|
self.sync_all()
|
||||||
|
|
||||||
relayed = self.nodes[0].resendwallettransactions()
|
|
||||||
assert_equal(set(relayed), {txid1, txid2})
|
|
||||||
sync_mempools(self.nodes)
|
|
||||||
|
|
||||||
assert txid1 in self.nodes[3].getrawmempool()
|
|
||||||
|
|
||||||
# check if we can list zero value tx as available coins
|
# check if we can list zero value tx as available coins
|
||||||
# 1. create raw_tx
|
# 1. create raw_tx
|
||||||
|
|
Loading…
Reference in a new issue