xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
xrpld
rpc
handlers
transaction
TxHistory.cpp
1
#include <xrpld/app/main/Application.h>
2
#include <xrpld/app/misc/DeliverMax.h>
3
#include <xrpld/app/misc/Transaction.h>
4
#include <xrpld/rpc/Context.h>
5
#include <xrpld/rpc/Role.h>
6
7
#include <xrpl/protocol/ErrorCodes.h>
8
#include <xrpl/protocol/RPCErr.h>
9
#include <xrpl/protocol/jss.h>
10
#include <xrpl/rdb/RelationalDatabase.h>
11
#include <xrpl/resource/Fees.h>
12
13
namespace
xrpl
{
14
15
// {
16
// start: <index>
17
// }
18
json::Value
19
doTxHistory
(
rpc::JsonContext
& context)
20
{
21
if
(!context.
app
.
config
().
useTxTables
())
22
return
rpcError
(
RpcNotEnabled
);
23
24
context.
loadType
=
resource::kFeeMediumBurdenRpc
;
25
26
if
(!context.
params
.
isMember
(jss::start))
27
return
rpcError
(
RpcInvalidParams
);
28
29
unsigned
int
const
startIndex = context.
params
[jss::start].
asUInt
();
30
31
if
((startIndex > 10000) && (!
isUnlimited
(context.
role
)))
32
return
rpcError
(
RpcNoPermission
);
33
34
auto
trans = context.
app
.
getRelationalDatabase
().
getTxHistory
(startIndex);
35
36
json::Value
obj;
37
json::Value
& txs = obj[jss::txs];
38
obj[jss::index] = startIndex;
39
40
for
(
auto
const
& t : trans)
41
{
42
json::Value
txJson = t->getJson(
JsonOptions::Values::None
);
43
rpc::insertDeliverMax
(txJson, t->getSTransaction()->getTxnType(), context.
apiVersion
);
44
txs.
append
(txJson);
45
}
46
47
return
obj;
48
}
49
50
}
// namespace xrpl
json::Value
Represents a JSON value.
Definition
json_value.h:117
json::Value::append
Value & append(Value const &value)
Append value to array at the end.
Definition
json_value.cpp:997
json::Value::asUInt
UInt asUInt() const
Definition
json_value.cpp:631
json::Value::isMember
bool isMember(char const *key) const
Return true if the object has a member named key.
Definition
json_value.cpp:1049
xrpl::Application::config
virtual Config & config()=0
xrpl::Config::useTxTables
bool useTxTables() const
Definition
src/xrpld/core/Config.h:366
xrpl::RelationalDatabase::getTxHistory
virtual std::vector< std::shared_ptr< Transaction > > getTxHistory(LedgerIndex startIndex)=0
getTxHistory Returns the 20 most recent transactions starting from the given number.
xrpl::ServiceRegistry::getRelationalDatabase
virtual RelationalDatabase & getRelationalDatabase()=0
xrpl::resource::kFeeMediumBurdenRpc
Charge const kFeeMediumBurdenRpc
xrpl::rpc::insertDeliverMax
void insertDeliverMax(json::Value &txJson, TxType txnType, unsigned int apiVersion)
Copy Amount field to DeliverMax field in transaction output JSON.
Definition
DeliverMax.cpp:9
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::RpcNotEnabled
@ RpcNotEnabled
Definition
ErrorCodes.h:42
xrpl::RpcInvalidParams
@ RpcInvalidParams
Definition
ErrorCodes.h:67
xrpl::RpcNoPermission
@ RpcNoPermission
Definition
ErrorCodes.h:36
xrpl::rpcError
json::Value rpcError(ErrorCodeI iError)
Definition
RPCErr.cpp:13
xrpl::doTxHistory
json::Value doTxHistory(rpc::JsonContext &)
Definition
TxHistory.cpp:19
xrpl::isUnlimited
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
Definition
Role.cpp:115
xrpl::JsonOptions::Values::None
@ None
Definition
STBase.h:27
xrpl::rpc::Context::loadType
resource::Charge & loadType
Definition
Context.h:30
xrpl::rpc::Context::role
Role role
Definition
Context.h:34
xrpl::rpc::Context::apiVersion
unsigned int apiVersion
Definition
Context.h:37
xrpl::rpc::Context::app
Application & app
Definition
Context.h:29
xrpl::rpc::JsonContext
Definition
Context.h:41
xrpl::rpc::JsonContext::params
json::Value params
Definition
Context.h:51
Generated by
1.17.0