203        lastClosedLedger && 
isFlagLedger(lastClosedLedger->seq()),
 
  204        "ripple::FeeVoteImpl::doVoting : has a flag ledger");
 
  215    auto const& rules = lastClosedLedger->rules();
 
  216    if (rules.enabled(featureXRPFees))
 
  221            if (
auto const field = ~val->at(~xrpField);
 
  222                field && field->native())
 
  224                auto const vote = field->xrp();
 
  236        for (
auto const& val : 
set)
 
  238            if (!val->isTrusted())
 
  240            doVote(val, baseFeeVote, sfBaseFeeDrops);
 
  241            doVote(val, baseReserveVote, sfReserveBaseDrops);
 
  242            doVote(val, incReserveVote, sfReserveIncrementDrops);
 
  249                         auto const& valueField) {
 
  250            if (
auto const field = val->at(~valueField))
 
  253                auto const vote = *field;
 
  257                        XRPAmount{unsafe_cast<XRPAmount::value_type>(vote)});
 
  270        for (
auto const& val : 
set)
 
  272            if (!val->isTrusted())
 
  274            doVote(val, baseFeeVote, sfBaseFee);
 
  275            doVote(val, baseReserveVote, sfReserveBase);
 
  276            doVote(val, incReserveVote, sfReserveIncrement);
 
  284    auto const baseFee = baseFeeVote.
getVotes();
 
  285    auto const baseReserve = baseReserveVote.
getVotes();
 
  286    auto const incReserve = incReserveVote.
getVotes();
 
  288    auto const seq = lastClosedLedger->info().seq + 1;
 
  291    if (baseFee.second || baseReserve.second || incReserve.second)
 
  294            << 
"We are voting for a fee change: " << baseFee.first << 
"/" 
  295            << baseReserve.first << 
"/" << incReserve.first;
 
  297        STTx feeTx(ttFEE, [=, &rules](
auto& obj) {
 
  299            obj[sfLedgerSequence] = seq;
 
  300            if (rules.enabled(featureXRPFees))
 
  302                obj[sfBaseFeeDrops] = baseFee.first;
 
  303                obj[sfReserveBaseDrops] = baseReserve.first;
 
  304                obj[sfReserveIncrementDrops] = incReserve.first;
 
  312                obj[sfReserveBase] = baseReserve.first.dropsAs<
std::uint32_t>(
 
  314                obj[sfReserveIncrement] =
 
  321        uint256 txID = feeTx.getTransactionID();
 
  328        if (!initialPosition->addGiveItem(
 
  332            JLOG(
journal_.
warn()) << 
"Ledger already had fee change";
 
 
void doVoting(std::shared_ptr< ReadView const > const &lastClosedLedger, std::vector< std::shared_ptr< STValidation > > const &parentValidations, std::shared_ptr< SHAMap > const &initialPosition) override
Cast our local vote on the fee.
 
bool set(T &target, std::string const &name, Section const §ion)
Set a value from a configuration Section If the named value is not found or doesn't parse as a T,...