mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-06 02:07:07 +00:00
This change reorganizes the `tx/transactors` directory for consistency and discoverability. There are no behavioral changes, this is a pure refactor. Underscores were chosen as the way to separate multi-words as this is the more popular option in C++ projects. Specific changes: - Rename all subdirectories to lowercase/snake_case (`AMM` → `amm`, `Check` → `check`, `NFT` → `nft`, `PermissionedDomain` → `permissioned_domain`, etc.) - Merge `AMM/` and `Offer/` into `dex/`, including `PermissionedDEXHelpers` - Rename `MPT/` → `token/`, absorbing `SetTrust` and `Clawback` - Move top-level transactors into named groups: `account/`, `bridge/`, `credentials/`, `did/`, `escrow/`, `oracle/`, `payment/`, `payment_channel/`, `system/` - Update all include paths across the codebase and `transactions.macro`
76 lines
1.7 KiB
C++
76 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <xrpl/protocol/Rules.h>
|
|
#include <xrpl/protocol/STTx.h>
|
|
#include <xrpl/tx/SignerEntries.h>
|
|
#include <xrpl/tx/Transactor.h>
|
|
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
namespace xrpl {
|
|
|
|
/**
|
|
See the README.md for an overview of the SetSignerList transaction that
|
|
this class implements.
|
|
*/
|
|
class SetSignerList : public Transactor
|
|
{
|
|
private:
|
|
// Values determined during preCompute for use later.
|
|
enum Operation { unknown, set, destroy };
|
|
Operation do_{unknown};
|
|
std::uint32_t quorum_{0};
|
|
std::vector<SignerEntries::SignerEntry> signers_;
|
|
|
|
public:
|
|
static constexpr ConsequencesFactoryType ConsequencesFactory{Blocker};
|
|
|
|
explicit SetSignerList(ApplyContext& ctx) : Transactor(ctx)
|
|
{
|
|
}
|
|
|
|
static std::uint32_t
|
|
getFlagsMask(PreflightContext const& ctx);
|
|
|
|
static NotTEC
|
|
preflight(PreflightContext const& ctx);
|
|
|
|
TER
|
|
doApply() override;
|
|
void
|
|
preCompute() override;
|
|
|
|
// Interface used by DeleteAccount
|
|
static TER
|
|
removeFromLedger(
|
|
ServiceRegistry& registry,
|
|
ApplyView& view,
|
|
AccountID const& account,
|
|
beast::Journal j);
|
|
|
|
private:
|
|
static std::tuple<NotTEC, std::uint32_t, std::vector<SignerEntries::SignerEntry>, Operation>
|
|
determineOperation(STTx const& tx, ApplyFlags flags, beast::Journal j);
|
|
|
|
static NotTEC
|
|
validateQuorumAndSignerEntries(
|
|
std::uint32_t quorum,
|
|
std::vector<SignerEntries::SignerEntry> const& signers,
|
|
AccountID const& account,
|
|
beast::Journal j,
|
|
Rules const&);
|
|
|
|
TER
|
|
replaceSignerList();
|
|
TER
|
|
destroySignerList();
|
|
|
|
void
|
|
writeSignersToSLE(SLE::pointer const& ledgerEntry, std::uint32_t flags) const;
|
|
};
|
|
|
|
using SignerListSet = SetSignerList;
|
|
|
|
} // namespace xrpl
|