20 #include <ripple/basics/Log.h>
21 #include <ripple/basics/contract.h>
22 #include <ripple/json/to_string.h>
23 #include <ripple/protocol/STAccount.h>
24 #include <ripple/protocol/TxMeta.h>
49 : mTransactionID(txid)
58 assert(affectedNodes);
82 , mIndex(static_cast<
std::uint32_t>(-1))
114 boost::container::flat_set<AccountID>
117 boost::container::flat_set<AccountID> list;
122 for (
auto const& it :
mNodes)
124 int index = it.getFieldIndex(
129 auto inner =
dynamic_cast<STObject const*
>(&it.peekAtIndex(index));
133 for (
auto const& field : *inner)
135 if (
auto sa =
dynamic_cast<STAccount const*
>(&field))
137 assert(!sa->isDefault());
138 if (!sa->isDefault())
139 list.insert(sa->value());
147 auto lim =
dynamic_cast<STAmount const*
>(&field);
152 auto issuer = lim->getIssuer();
154 if (issuer.isNonZero())
194 Throw<std::runtime_error>(
"Affected node not found");
std::enable_if_t< std::is_same< T, char >::value||std::is_same< T, unsigned char >::value, Slice > makeSlice(std::array< T, N > const &a)
void setFieldU16(SField const &field, std::uint16_t)
const SField sfTransactionMetaData
unsigned char getFieldU8(SField const &field) const
const SF_UINT256 sfLedgerIndex
void push_back(STObject const &object)
const SField sfFinalFields
constexpr TERUnderlyingType TERtoInt(TELcodes v)
const SF_AMOUNT sfTakerPays
const SF_AMOUNT sfLowLimit
const SF_AMOUNT sfDeliveredAmount
void setFieldU8(SField const &field, unsigned char)
void setFieldAmount(SField const &field, STAmount const &)
const SField sfAffectedNodes
void setFieldH256(SField const &field, uint256 const &)
const SF_AMOUNT sfTakerGets
@ transactionID
transaction plus signature to give transaction ID
const SF_AMOUNT sfHighLimit
void sort(bool(*compare)(const STObject &o1, const STObject &o2))
const SF_UINT32 sfTransactionIndex
SField const & getFName() const
std::size_t emplace_back(Args &&... args)
void add(Serializer &s) const override
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
const STBase * peekAtPField(SField const &field) const
const SF_UINT8 sfTransactionResult
const SF_UINT16 sfLedgerEntryType
STBase & getField(SField const &field)
bool isFieldPresent(SField const &field) const
const SField sfCreatedNode
std::uint32_t getFieldU32(SField const &field) const
void setFieldU32(SField const &field, std::uint32_t)
STAmount const & getFieldAmount(SField const &field) const
void reserve(std::size_t n)
uint256 getFieldH256(SField const &field) const