Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
TransactionFilter.hpp
1#pragma once
2
3#include "data/Types.hpp"
4#include "rpc/common/Types.hpp"
5
6#include <rpcspec/handlers/account_tx/Types.hpp>
7#include <xrpl/protocol/AccountID.h>
8
9#include <optional>
10
11namespace rpc {
12
16using DelegateFilter = rpc::spec::handlers::account_tx::DelegateFilter;
17
21// TODO: consider moving to rpc-spec later on
23public:
27 struct CheckResult {
34 CheckResult(xrpl::AccountID account, DelegateFilter::Role role)
35 : account{account}, role{role}
36 {
37 }
38
39 xrpl::AccountID account;
40 DelegateFilter::Role role;
41 };
42
43 virtual ~TransactionFilter() = default;
44
52 [[nodiscard]] virtual std::optional<CheckResult>
53 check(data::TransactionAndMetadata const& txnPlusMeta) const = 0;
54};
55
56} // namespace rpc
Interface for filtering transactions.
Definition TransactionFilter.hpp:22
virtual std::optional< CheckResult > check(data::TransactionAndMetadata const &txnPlusMeta) const =0
Check if a transaction blob matches the filter criteria.
This namespace contains all the RPC logic and handlers.
Definition AMMHelpers.cpp:17
rpc::spec::handlers::account_tx::DelegateFilter DelegateFilter
The delegate filter used to narrow account_tx by delegation.
Definition TransactionFilter.hpp:16
Represents a transaction and its metadata bundled together.
Definition Types.hpp:49
CheckResult(xrpl::AccountID account, DelegateFilter::Role role)
Construct a check result.
Definition TransactionFilter.hpp:34