|
| static NotTEC | preflight (PreflightContext const &ctx) |
| static XRPAmount | calculateBaseFee (ReadView const &view, STTx const &tx) |
| static TER | preclaim (PreclaimContext const &ctx) |
| static NotTEC | checkSeqProxy (ReadView const &view, STTx const &tx, beast::Journal j) |
| static NotTEC | checkPriorTxAndLastLedger (PreclaimContext const &ctx) |
| static TER | checkFee (PreclaimContext const &ctx, XRPAmount baseFee) |
| static NotTEC | checkSign (PreclaimContext const &ctx) |
| static XRPAmount | calculateBaseFee (ReadView const &view, STTx const &tx, std::uint32_t extraBaseFeeMultiplier) |
| template<class T> |
| static NotTEC | invokePreflight (PreflightContext const &ctx) |
| template<> |
| NotTEC | invokePreflight (PreflightContext const &ctx) |
| template<> |
| NotTEC | invokePreflight (PreflightContext const &ctx) |
| static NotTEC | checkGranularSemantics (ReadView const &view, STTx const &tx, std::unordered_set< GranularPermissionType > const &heldGranularPermissions) |
| | This function can be overridden to introduce additional semantic constraints beyond the granular template validation for granular permissions.
|
| template<class T> |
| static NotTEC | invokeCheckPermission (ReadView const &view, STTx const &tx) |
| | Checks whether the transaction is authorized to be executed by the delegated account.
|
| static NotTEC | checkSponsor (ReadView const &view, STTx const &tx) |
| static TER | ticketDelete (ApplyView &view, AccountID const &account, uint256 const &ticketIndex, beast::Journal j) |
|
| static NotTEC | checkSign (ReadView const &view, ApplyFlags flags, std::optional< uint256 const > const &parentBatchId, AccountID const &idAccount, STObject const &sigObject, beast::Journal const j, bool permitUncreatedAccount=false) |
| static XRPAmount | minimumFee (ServiceRegistry ®istry, XRPAmount baseFee, Fees const &fees, ApplyFlags flags) |
| | Compute the minimum fee required to process a transaction with a given baseFee based on the current server load.
|
| static XRPAmount | calculateOwnerReserveFee (ReadView const &view, STTx const &tx) |
| static bool | checkExtraFeatures (PreflightContext const &ctx) |
| static std::uint32_t | getFlagsMask (PreflightContext const &ctx) |
| static NotTEC | preflightSigValidated (PreflightContext const &ctx) |
| static bool | validDataLength (std::optional< Slice > const &slice, std::size_t maxLength) |
| template<class T> |
| static bool | validNumericRange (std::optional< T > value, T max, T min=T{}) |
| template<class T, class Unit> |
| static bool | validNumericRange (std::optional< T > value, unit::ValueUnit< Unit, T > max, unit::ValueUnit< Unit, T > min=unit::ValueUnit< Unit, T >{}) |
| template<class T> |
| static bool | validNumericMinimum (std::optional< T > value, T min=T{}) |
| | Minimum will usually be zero.
|
| template<class T, class Unit> |
| static bool | validNumericMinimum (std::optional< T > value, unit::ValueUnit< Unit, T > min=unit::ValueUnit< Unit, T >{}) |
| | Minimum will usually be zero.
|
| static NotTEC | checkSingleSign (ReadView const &view, AccountID const &idSigner, AccountID const &idAccount, SLE::const_pointer sleAccount, beast::Journal const j) |
| static NotTEC | checkMultiSign (ReadView const &view, ApplyFlags flags, AccountID const &id, STObject const &sigObject, beast::Journal const j) |
Merges the confidential inbox balance into the spending balance.
In the confidential transfer system, incoming funds are deposited into an "inbox" balance that the recipient cannot immediately spend. This prevents front-running attacks where an attacker could invalidate a pending transaction by sending funds to the sender. This transaction merges the inbox into the spending balance, making those funds available for spending.
- Cryptographic Operations:
- Homomorphic Addition: Adds the encrypted inbox balance to the encrypted spending balance using ElGamal homomorphic properties.
- Zero Encryption: Resets the inbox to an encryption of zero.
- Note
- This transaction requires no zero-knowledge proofs because it only combines encrypted values that the holder already owns. The homomorphic properties of ElGamal encryption ensure correctness.
- See also
- ConfidentialMPTSend, ConfidentialMPTConvert
Definition at line 36 of file tx/transactors/token/ConfidentialMPTMergeInbox.h.
Check transaction-specific post-conditions after all entries have been visited.
Called once after every modified ledger entry has been passed to visitInvariantEntry. Returns true if all transaction-specific invariants hold, or false to fail the transaction with tecINVARIANT_FAILED.
- Parameters
-
| tx | the transaction being applied. |
| result | the tentative TER result so far. |
| fee | the fee consumed by the transaction. |
| view | read-only view of the ledger after the transaction. |
| j | journal for logging invariant failures. |
- Returns
- true if all invariants pass; false otherwise.
Implements xrpl::Transactor.
Definition at line 163 of file ConfidentialMPTMergeInbox.cpp.
Checks whether the transaction is authorized to be executed by the delegated account.
This function enforces the strict permission check hierarchy. It is explicitly designed NOT to be overridden. Derived transactors must instead implement checkGranularSemantics to add custom validation logic for granular permissions.
The evaluation proceeds as follows:
- If transaction-level permission is granted, the function immediately returns tesSUCCESS.
- If transaction-level permission is not granted, the function checks whether the transaction matches the granular permission template defined in permissions.macro. If it does, it then calls checkGranularSemantics to perform any additional, fine-grained validation.
Definition at line 298 of file Transactor.h.
|
|
protectedpure virtualinherited |
Inspect a single ledger entry modified by this transaction.
Called once for every SLE created, modified, or deleted by the transaction, before finalizeInvariants. Implementations should accumulate whatever state they need to verify transaction-specific post-conditions.
- Parameters
-
| isDelete | true if the entry was erased from the ledger. |
| before | the entry's state before the transaction (nullptr for newly created entries). |
| after | the entry's state as supplied by the apply logic for this transaction. For deletions, this is the SLE being erased and is not guaranteed to be null; callers must use isDelete rather than after == nullptr to detect deletions. |
Implemented in xrpl::AccountDelete, xrpl::AccountSet, xrpl::AMMBid, xrpl::AMMClawback, xrpl::AMMCreate, xrpl::AMMDelete, xrpl::AMMDeposit, xrpl::AMMVote, xrpl::AMMWithdraw, xrpl::Batch, xrpl::BridgeModify, xrpl::Change, xrpl::CheckCancel, xrpl::CheckCash, xrpl::CheckCreate, xrpl::Clawback, xrpl::CredentialAccept, xrpl::CredentialCreate, xrpl::CredentialDelete, xrpl::DelegateSet, xrpl::DepositPreauth, xrpl::DIDDelete, xrpl::DIDSet, xrpl::EscrowCancel, xrpl::EscrowCreate, xrpl::EscrowFinish, xrpl::LedgerStateFix, xrpl::LoanBrokerCoverClawback, xrpl::LoanBrokerCoverDeposit, xrpl::LoanBrokerCoverWithdraw, xrpl::LoanBrokerDelete, xrpl::LoanBrokerSet, xrpl::LoanDelete, xrpl::LoanManage, xrpl::LoanPay, xrpl::LoanSet, xrpl::MPTokenAuthorize, xrpl::MPTokenIssuanceCreate, xrpl::MPTokenIssuanceDestroy, xrpl::MPTokenIssuanceSet, xrpl::NFTokenAcceptOffer, xrpl::NFTokenBurn, xrpl::NFTokenCancelOffer, xrpl::NFTokenCreateOffer, xrpl::NFTokenMint, xrpl::NFTokenModify, xrpl::OfferCancel, xrpl::OfferCreate, xrpl::OracleDelete, xrpl::OracleSet, xrpl::Payment, xrpl::PaymentChannelClaim, xrpl::PaymentChannelCreate, xrpl::PaymentChannelFund, xrpl::PermissionedDomainDelete, xrpl::PermissionedDomainSet, xrpl::SetRegularKey, xrpl::SignerListSet, xrpl::SponsorshipSet, xrpl::SponsorshipTransfer, xrpl::TicketCreate, xrpl::TrustSet, xrpl::VaultClawback, xrpl::VaultCreate, xrpl::VaultDelete, xrpl::VaultDeposit, xrpl::VaultSet, xrpl::VaultWithdraw, xrpl::XChainAddAccountCreateAttestation, xrpl::XChainAddClaimAttestation, xrpl::XChainClaim, xrpl::XChainCommit, xrpl::XChainCreateAccountCommit, xrpl::XChainCreateBridge, and xrpl::XChainCreateClaimID.