From 7bf34d1fae5c1c8b7364f34e2a53dc0d7660d4dc Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 12 Jul 2016 14:58:06 -0400 Subject: [PATCH] rpc: unsafe_flush_mempool. closes #190 --- rpc/core/dev.go | 5 +++++ rpc/core/mempool.go | 2 +- rpc/core/routes.go | 9 +++++++++ rpc/core/types/responses.go | 4 ++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/rpc/core/dev.go b/rpc/core/dev.go index 2b8dfb8f..6ae2014b 100644 --- a/rpc/core/dev.go +++ b/rpc/core/dev.go @@ -9,6 +9,11 @@ import ( ctypes "github.com/tendermint/tendermint/rpc/core/types" ) +func UnsafeFlushMempool() (*ctypes.ResultUnsafeFlushMempool, error) { + mempoolReactor.Mempool.Flush() + return &ctypes.ResultUnsafeFlushMempool{}, nil +} + func UnsafeSetConfig(typ, key, value string) (*ctypes.ResultUnsafeSetConfig, error) { switch typ { case "string": diff --git a/rpc/core/mempool.go b/rpc/core/mempool.go index cf3ec919..bef85c79 100644 --- a/rpc/core/mempool.go +++ b/rpc/core/mempool.go @@ -103,7 +103,7 @@ func BroadcastTxCommit(tx types.Tx) (*ctypes.ResultBroadcastTx, error) { } func UnconfirmedTxs() (*ctypes.ResultUnconfirmedTxs, error) { - txs := mempoolReactor.Mempool.Reap(0) + txs := mempoolReactor.Mempool.Reap(-1) return &ctypes.ResultUnconfirmedTxs{len(txs), txs}, nil } diff --git a/rpc/core/routes.go b/rpc/core/routes.go index b8938f6b..78a0b618 100644 --- a/rpc/core/routes.go +++ b/rpc/core/routes.go @@ -25,6 +25,7 @@ var Routes = map[string]*rpc.RPCFunc{ "unconfirmed_txs": rpc.NewRPCFunc(UnconfirmedTxsResult, ""), "num_unconfirmed_txs": rpc.NewRPCFunc(NumUnconfirmedTxsResult, ""), + "unsafe_flush_mempool": rpc.NewRPCFunc(UnsafeFlushMempool, ""), "unsafe_set_config": rpc.NewRPCFunc(UnsafeSetConfigResult, "type,key,value"), "unsafe_start_cpu_profiler": rpc.NewRPCFunc(UnsafeStartCPUProfilerResult, "filename"), "unsafe_stop_cpu_profiler": rpc.NewRPCFunc(UnsafeStopCPUProfilerResult, ""), @@ -151,6 +152,14 @@ func BroadcastTxAsyncResult(tx []byte) (ctypes.TMResult, error) { } } +func UnsafeFlushMempoolResult() (ctypes.TMResult, error) { + if r, err := UnsafeFlushMempool(); err != nil { + return nil, err + } else { + return r, nil + } +} + func UnsafeSetConfigResult(typ, key, value string) (ctypes.TMResult, error) { if r, err := UnsafeSetConfig(typ, key, value); err != nil { return nil, err diff --git a/rpc/core/types/responses.go b/rpc/core/types/responses.go index d08892e8..c1eebb6e 100644 --- a/rpc/core/types/responses.go +++ b/rpc/core/types/responses.go @@ -68,6 +68,8 @@ type ResultUnconfirmedTxs struct { Txs []types.Tx `json:"txs"` } +type ResultUnsafeFlushMempool struct{} + type ResultUnsafeSetConfig struct{} type ResultUnsafeProfile struct{} @@ -115,6 +117,7 @@ const ( ResultTypeUnsafeStartCPUProfiler = byte(0xa1) ResultTypeUnsafeStopCPUProfiler = byte(0xa2) ResultTypeUnsafeWriteHeapProfile = byte(0xa3) + ResultTypeUnsafeFlushMempool = byte(0xa4) ) type TMResult interface { @@ -141,4 +144,5 @@ var _ = wire.RegisterInterface( wire.ConcreteType{&ResultUnsafeProfile{}, ResultTypeUnsafeStartCPUProfiler}, wire.ConcreteType{&ResultUnsafeProfile{}, ResultTypeUnsafeStopCPUProfiler}, wire.ConcreteType{&ResultUnsafeProfile{}, ResultTypeUnsafeWriteHeapProfile}, + wire.ConcreteType{&ResultUnsafeFlushMempool{}, ResultTypeUnsafeFlushMempool}, )