|
xrpld
|
Track the list of "amendments". More...


Public Member Functions | |
| AmendmentTableImpl (ServiceRegistry ®istry, std::chrono::seconds majorityTime, std::vector< FeatureInfo > const &supported, Section const &enabled, Section const &vetoed, beast::Journal journal) | |
| UInt256 | find (std::string const &name) const override |
| bool | veto (UInt256 const &amendment) override |
| bool | unVeto (UInt256 const &amendment) override |
| bool | enable (UInt256 const &amendment) override |
| bool | isEnabled (UInt256 const &amendment) const override |
| bool | isSupported (UInt256 const &amendment) const override |
| bool | hasUnsupportedEnabled () const override |
| returns true if one or more amendments on the network have been enabled that this server does not support | |
| std::optional< NetClock::time_point > | firstUnsupportedExpected () const override |
| json::Value | getJson (bool isAdmin) const override |
| json::Value | getJson (UInt256 const &, bool isAdmin) const override |
| Returns a json::ValueType::Object. | |
| bool | needValidatedLedger (LedgerIndex seq) const override |
| Called to determine whether the amendment logic needs to process a new validated ledger. | |
| void | doValidatedLedger (LedgerIndex seq, std::set< UInt256 > const &enabled, MajorityAmendmentsT const &majority) override |
| void | trustChanged (HashSet< PublicKey > const &allTrusted) override |
| std::vector< UInt256 > | doValidation (std::set< UInt256 > const &enabledAmendments) const override |
| std::vector< UInt256 > | getDesired () const override |
| std::map< UInt256, std::uint32_t > | doVoting (Rules const &rules, NetClock::time_point closeTime, std::set< UInt256 > const &enabledAmendments, MajorityAmendmentsT const &majorityAmendments, std::vector< std::shared_ptr< STValidation > > const &validations) override |
| void | doValidatedLedger (std::shared_ptr< ReadView const > const &lastValidatedLedger) |
| Called when a new fully-validated ledger is accepted. | |
| void | doVoting (std::shared_ptr< ReadView const > const &lastClosedLedger, std::vector< std::shared_ptr< STValidation > > const &parentValidations, std::shared_ptr< SHAMap > const &initialPosition, beast::Journal j) |
Private Member Functions | |
| AmendmentState & | add (UInt256 const &amendment, std::scoped_lock< std::mutex > const &lock) |
| AmendmentState * | get (UInt256 const &amendment, std::scoped_lock< std::mutex > const &lock) |
| AmendmentState const * | get (UInt256 const &amendment, std::scoped_lock< std::mutex > const &lock) const |
| void | injectJson (json::Value &v, UInt256 const &amendment, AmendmentState const &state, bool isAdmin, std::scoped_lock< std::mutex > const &lock) const |
| void | persistVote (UInt256 const &amendment, std::string const &name, AmendmentVote vote) const |
Private Attributes | |
| std::mutex | mutex_ |
| HashMap< UInt256, AmendmentState > | amendmentMap_ |
| std::uint32_t | lastUpdateSeq_ {0} |
| TrustedVotes | previousTrustedVotes_ |
| std::chrono::seconds const | majorityTime_ |
| std::unique_ptr< AmendmentSet > | lastVote_ |
| bool | unsupportedEnabled_ {false} |
| std::optional< NetClock::time_point > | firstUnsupportedExpected_ |
| beast::Journal const | j_ |
| DatabaseCon & | db_ |
Track the list of "amendments".
An "amendment" is an option that can affect transaction processing rules. Amendments are proposed and then adopted or rejected by the network. An Amendment is uniquely identified by its AmendmentID, a 256-bit key.
Definition at line 402 of file AmendmentTable.cpp.
| xrpl::AmendmentTableImpl::AmendmentTableImpl | ( | ServiceRegistry & | registry, |
| std::chrono::seconds | majorityTime, | ||
| std::vector< FeatureInfo > const & | supported, | ||
| Section const & | enabled, | ||
| Section const & | vetoed, | ||
| beast::Journal | journal ) |
Definition at line 521 of file AmendmentTable.cpp.
|
private |
Definition at line 653 of file AmendmentTable.cpp.
|
private |
Definition at line 660 of file AmendmentTable.cpp.
|
private |
Definition at line 668 of file AmendmentTable.cpp.
|
private |
Definition at line 963 of file AmendmentTable.cpp.
|
private |
Definition at line 694 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 680 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 707 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 720 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 733 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 753 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 761 of file AmendmentTable.cpp.
|
overridevirtual |
returns true if one or more amendments on the network have been enabled that this server does not support
Implements xrpl::AmendmentTable.
Definition at line 769 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 776 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 1002 of file AmendmentTable.cpp.
|
overridevirtual |
Returns a json::ValueType::Object.
Implements xrpl::AmendmentTable.
Definition at line 1021 of file AmendmentTable.cpp.
|
overridevirtual |
Called to determine whether the amendment logic needs to process a new validated ledger.
(If it could have changed things.)
Implements xrpl::AmendmentTable.
Definition at line 908 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 919 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 956 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 783 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 810 of file AmendmentTable.cpp.
|
overridevirtual |
Implements xrpl::AmendmentTable.
Definition at line 817 of file AmendmentTable.cpp.
|
inherited |
Called when a new fully-validated ledger is accepted.
Definition at line 104 of file AmendmentTable.h.
|
inherited |
Definition at line 161 of file AmendmentTable.h.
|
mutableprivate |
Definition at line 405 of file AmendmentTable.cpp.
|
private |
Definition at line 407 of file AmendmentTable.cpp.
|
private |
Definition at line 408 of file AmendmentTable.cpp.
|
private |
Definition at line 411 of file AmendmentTable.cpp.
|
private |
Definition at line 414 of file AmendmentTable.cpp.
|
private |
Definition at line 418 of file AmendmentTable.cpp.
|
private |
Definition at line 421 of file AmendmentTable.cpp.
|
private |
Definition at line 426 of file AmendmentTable.cpp.
|
private |
Definition at line 428 of file AmendmentTable.cpp.
|
private |
Definition at line 431 of file AmendmentTable.cpp.