3#include <xrpl/basics/Blob.h>
4#include <xrpl/basics/CountedObject.h>
5#include <xrpl/basics/base_uint.h>
6#include <xrpl/json/json_value.h>
7#include <xrpl/protocol/AccountID.h>
8#include <xrpl/protocol/HashPrefix.h>
9#include <xrpl/protocol/PublicKey.h>
10#include <xrpl/protocol/Rules.h>
11#include <xrpl/protocol/SField.h>
12#include <xrpl/protocol/STBase.h>
13#include <xrpl/protocol/STObject.h>
14#include <xrpl/protocol/SecretKey.h>
15#include <xrpl/protocol/SeqProxy.h>
16#include <xrpl/protocol/Serializer.h>
17#include <xrpl/protocol/Sign.h>
18#include <xrpl/protocol/TxFormats.h>
20#include <boost/container/flat_set.hpp>
98 [[nodiscard]] boost::container::flat_set<AccountID>
143 [[nodiscard]] std::expected<void, std::string>
146 [[nodiscard]] std::expected<void, std::string>
197 [[nodiscard]] std::expected<void, std::string>
200 [[nodiscard]] std::expected<void, std::string>
203 [[nodiscard]] std::expected<void, std::string>
206 [[nodiscard]] std::expected<void, std::string>
209 [[nodiscard]] std::expected<void, std::string>
Rules controlling protocol behavior.
A type which can be exported to a well known binary format.
Blob getFieldVL(SField const &field) const
STObject(STObject const &)=default
std::string getFullText() const override
STBase * move(std::size_t n, void *buf) override
Blob getSignature() const
std::string getMetaSQL(std::uint32_t inLedger, std::string const &escapedMetaData) const
std::optional< std::vector< std::shared_ptr< STTx const > > > batchTxns_
STTx & operator=(STTx const &other)=delete
static std::string const & getMetaSQLInsertReplaceHeader()
STTx(STTx const &other)=default
static constexpr std::size_t kMinMultiSigners
SeqProxy getSeqProxy() const
std::expected< void, std::string > checkBatchSingleSign(STObject const &batchSigner, std::vector< UInt256 > const &txIds) const
std::expected< void, std::string > checkSign(Rules const &rules) const
Check the signature.
std::expected< void, std::string > checkSingleSign(STObject const &sigObject, HashPrefix prefix) const
std::expected< void, std::string > checkBatchMultiSign(STObject const &batchSigner, std::vector< UInt256 > const &txIds) const
void sign(PublicKey const &publicKey, SecretKey const &secretKey)
Sign the transaction as its account.
STBase * copy(std::size_t n, void *buf) const override
static constexpr std::size_t kMaxMultiSigners
TxType getTxnType() const
UInt256 getTransactionID() const
AccountID getFeePayerID() const
Blob getSigningPubKey() const
UInt256 getSigningHash() const
json::Value getJson(JsonOptions options) const override
std::vector< UInt256 > getBatchTransactionIDs() const
The IDs of the inner transactions of a Batch.
AccountID getInitiator() const
The account responsible for the authorization: the delegate when sfDelegate is present,...
SerializedTypeID getSType() const override
boost::container::flat_set< AccountID > getMentionedAccounts() const
std::expected< void, std::string > checkMultiSign(STObject const &sigObject, HashPrefix prefix) const
std::vector< std::shared_ptr< STTx const > > const & getBatchTransactions() const
The inner transactions of a Batch, built and validated at construction.
std::expected< void, std::string > checkBatchSign() const
A type that represents either a sequence value or a ticket value.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
TxType
Transaction type identifiers.
bool passesLocalChecks(STTx const &tx, std::string &)
SignatureRole
The signature slots on a transaction.
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
HashPrefix
Prefix for hashing functions.
std::vector< unsigned char > Blob
Storage for linear binary data.
std::shared_ptr< STTx const > sterilize(STTx const &stx)
Sterilize a transaction.
bool isPseudoTx(STObject const &tx)
Check whether a transaction is a pseudo-transaction.
Note, should be treated as flags that can be | and &.