xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
xrpld
app
misc
detail
AccountTxPaging.cpp
1
#include <xrpld/app/misc/detail/AccountTxPaging.h>
2
3
#include <xrpld/app/ledger/LedgerMaster.h>
4
#include <xrpld/app/ledger/LedgerPersistence.h>
5
#include <xrpld/app/main/Application.h>
6
#include <xrpld/app/misc/Transaction.h>
7
8
#include <xrpl/basics/Blob.h>
9
#include <xrpl/basics/Slice.h>
10
#include <xrpl/core/NetworkIDService.h>
11
#include <xrpl/protocol/SField.h>
12
#include <xrpl/protocol/STTx.h>
13
#include <xrpl/protocol/Serializer.h>
14
#include <xrpl/protocol/TxMeta.h>
15
16
#include <
cstdint
>
17
#include <
memory
>
18
#include <
string
>
19
#include <
utility
>
20
21
namespace
xrpl
{
22
23
void
24
convertBlobsToTxResult
(
25
RelationalDatabase::AccountTxs
& to,
26
std::uint32_t
ledgerIndex,
27
std::string
const
& status,
28
Blob
const
& rawTxn,
29
Blob
const
& rawMeta,
30
Application
& app)
31
{
32
SerialIter
it(
makeSlice
(rawTxn));
33
auto
txn =
std::make_shared<STTx const>
(it);
34
std::string
reason;
35
36
auto
tr =
std::make_shared<Transaction>
(txn, reason, app);
37
38
auto
metaset =
std::make_shared<TxMeta>
(tr->getID(), ledgerIndex, rawMeta);
39
40
// if properly formed meta is available we can use it to generate ctid
41
if
(metaset->getAsObject().isFieldPresent(sfTransactionIndex))
42
{
43
tr->setStatus(
44
Transaction::sqlTransactionStatus
(status),
45
ledgerIndex,
46
metaset->getAsObject().getFieldU32(sfTransactionIndex),
47
app.
getNetworkIDService
().
getNetworkID
());
48
}
49
else
50
{
51
tr->setStatus(
Transaction::sqlTransactionStatus
(status), ledgerIndex);
52
}
53
54
to.
emplace_back
(std::move(tr), metaset);
55
};
56
57
void
58
saveLedgerAsync
(
Application
& app,
std::uint32_t
seq)
59
{
60
if
(
auto
l = app.
getLedgerMaster
().
getLedgerBySeq
(seq))
61
pendSaveValidated
(app, l,
false
,
false
);
62
}
63
64
}
// namespace xrpl
std::string
xrpl::Application
Definition
Application.h:94
xrpl::LedgerMaster::getLedgerBySeq
std::shared_ptr< Ledger const > getLedgerBySeq(std::uint32_t index)
Finds a ledger by sequence, preferring the validated chain.
Definition
LedgerMaster.cpp:1762
xrpl::NetworkIDService::getNetworkID
virtual std::uint32_t getNetworkID() const noexcept=0
Get the configured network ID.
xrpl::RelationalDatabase::AccountTxs
std::vector< AccountTx > AccountTxs
Definition
RelationalDatabase.h:103
xrpl::SerialIter
Definition
Serializer.h:478
xrpl::ServiceRegistry::getNetworkIDService
virtual NetworkIDService & getNetworkIDService()=0
xrpl::ServiceRegistry::getLedgerMaster
virtual LedgerMaster & getLedgerMaster()=0
xrpl::Transaction::sqlTransactionStatus
static TransStatus sqlTransactionStatus(boost::optional< std::string > const &status)
Definition
Transaction.cpp:74
cstdint
std::vector::emplace_back
T emplace_back(T... args)
std::uint32_t
std::make_shared
T make_shared(T... args)
memory
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::convertBlobsToTxResult
void convertBlobsToTxResult(RelationalDatabase::AccountTxs &to, std::uint32_t ledgerIndex, std::string const &status, Blob const &rawTxn, Blob const &rawMeta, Application &app)
Definition
AccountTxPaging.cpp:24
xrpl::saveLedgerAsync
void saveLedgerAsync(Application &app, std::uint32_t seq)
Definition
AccountTxPaging.cpp:58
xrpl::pendSaveValidated
bool pendSaveValidated(ServiceRegistry ®istry, std::shared_ptr< Ledger const > const &ledger, bool isSynchronous, bool isCurrent)
Save, or arrange to save, a fully-validated ledger.
Definition
LedgerPersistence.cpp:51
xrpl::makeSlice
Slice makeSlice(std::array< T, N > const &a)
Definition
Slice.h:228
xrpl::Blob
std::vector< unsigned char > Blob
Storage for linear binary data.
Definition
Blob.h:11
string
utility
Generated by
1.17.0