mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-18 21:10:02 +00:00
respond to comments
This commit is contained in:
@@ -60,7 +60,7 @@ def create_transaction_parser():
|
||||
SETTING_DEFAULTS = {
|
||||
"delegable": "Delegation::Delegable",
|
||||
"amendment": "uint256{}",
|
||||
"privileges": "NoPriv",
|
||||
"privileges": "Privilege::NoPriv",
|
||||
}
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ def parse_settings(settings_str):
|
||||
|
||||
Args:
|
||||
settings_str: A string like '({.delegable = Delegation::NotDelegable,
|
||||
.privileges = CreateAcct | MayCreateMpt})', or '({})'.
|
||||
.privileges = Privilege::CreateAcct})', or '({})'.
|
||||
|
||||
Returns:
|
||||
A dict with a value for every key in SETTING_DEFAULTS.
|
||||
@@ -123,7 +123,7 @@ def parse_transaction_args(args_list):
|
||||
Args:
|
||||
args_list: A list of parsed arguments from pyparsing, e.g.,
|
||||
['ttPAYMENT', '0', 'Payment',
|
||||
'({.privileges = CreateAcct | MayCreateMpt})', '({...})']
|
||||
'({.privileges = Privilege::CreateAcct})', '({...})']
|
||||
|
||||
Returns:
|
||||
A dict with parsed transaction information.
|
||||
|
||||
@@ -61,7 +61,7 @@ private:
|
||||
struct TxDelegationEntry
|
||||
{
|
||||
uint256 amendment;
|
||||
Delegation delegable{NotDelegable};
|
||||
Delegation delegable{Delegation::NotDelegable};
|
||||
};
|
||||
|
||||
std::unordered_set<TxType> granularTxTypes_;
|
||||
|
||||
@@ -3,14 +3,12 @@
|
||||
#include <xrpl/basics/base_uint.h>
|
||||
#include <xrpl/basics/safe_cast.h>
|
||||
|
||||
#include <cstdint>
|
||||
#include <type_traits>
|
||||
|
||||
namespace xrpl {
|
||||
|
||||
// Injected bare enumerators (xrpl::Delegable / xrpl::NotDelegable) are required by preprocessor
|
||||
// tricks in tests and macro-generated code; enum class would break that.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-use-enum-class)
|
||||
enum Delegation { Delegable, NotDelegable };
|
||||
enum class Delegation { Delegable, NotDelegable };
|
||||
|
||||
/**
|
||||
* Operations a transaction is permitted to perform, as a bitfield.
|
||||
@@ -18,9 +16,7 @@ enum Delegation { Delegable, NotDelegable };
|
||||
* These are declared per-transaction in transactions.macro (via
|
||||
* TxSettings::privileges) and enforced in InvariantCheck.cpp.
|
||||
*/
|
||||
// Bitwise flags, used in macro files
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-use-enum-class)
|
||||
enum Privilege {
|
||||
enum class Privilege : std::uint16_t {
|
||||
NoPriv = 0x0000, // The transaction can not do any of the enumerated operations
|
||||
CreateAcct = 0x0001, // The transaction can create a new ACCOUNT_ROOT object.
|
||||
CreatePseudoAcct = 0x0002, // The transaction can create a pseudo account,
|
||||
@@ -42,12 +38,24 @@ enum Privilege {
|
||||
MayCreateMpt = 0x2000, // The transaction MAY create an MPT object, except for issuer.
|
||||
};
|
||||
|
||||
// The inner static_cast is not redundant: the underlying type is narrower than
|
||||
// `int`, so the operands integer-promote and the result has to be narrowed back.
|
||||
// safeCast rejects that narrowing, but every input bit is a Privilege bit by
|
||||
// construction, so the result is always representable.
|
||||
constexpr Privilege
|
||||
operator|(Privilege lhs, Privilege rhs)
|
||||
{
|
||||
return safeCast<Privilege>(
|
||||
safeCast<std::underlying_type_t<Privilege>>(lhs) |
|
||||
safeCast<std::underlying_type_t<Privilege>>(rhs));
|
||||
using Underlying = std::underlying_type_t<Privilege>;
|
||||
return static_cast<Privilege>(
|
||||
static_cast<Underlying>(safeCast<Underlying>(lhs) | safeCast<Underlying>(rhs)));
|
||||
}
|
||||
|
||||
constexpr Privilege
|
||||
operator&(Privilege lhs, Privilege rhs)
|
||||
{
|
||||
using Underlying = std::underlying_type_t<Privilege>;
|
||||
return static_cast<Privilege>(
|
||||
static_cast<Underlying>(safeCast<Underlying>(lhs) & safeCast<Underlying>(rhs)));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -66,7 +74,7 @@ struct TxSettings
|
||||
/**
|
||||
* Whether an account may delegate this transaction to another account.
|
||||
*/
|
||||
Delegation delegable = Delegable;
|
||||
Delegation delegable{Delegation::Delegable};
|
||||
|
||||
/**
|
||||
* The amendment gating this transaction, or uint256{} if always available.
|
||||
@@ -82,7 +90,7 @@ struct TxSettings
|
||||
/**
|
||||
* Operations this transaction is permitted to perform.
|
||||
*/
|
||||
Privilege privileges = NoPriv;
|
||||
Privilege privileges{Privilege::NoPriv};
|
||||
};
|
||||
|
||||
} // namespace xrpl
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
*
|
||||
* struct TxSettings
|
||||
* {
|
||||
* Delegation delegable = Delegable;
|
||||
* Delegation delegable{Delegation::Delegable};
|
||||
* uint256 amendment{};
|
||||
* Privilege privileges = NoPriv;
|
||||
* Privilege privileges{Privilege::NoPriv};
|
||||
* };
|
||||
*
|
||||
* Name only the settings that differ from those defaults, in declaration
|
||||
@@ -47,7 +47,7 @@
|
||||
# include <xrpl/tx/transactors/payment/Payment.h>
|
||||
#endif
|
||||
TRANSACTION(ttPAYMENT, 0, Payment,
|
||||
({.privileges = CreateAcct | MayCreateMpt}),
|
||||
({.privileges = Privilege::CreateAcct | Privilege::MayCreateMpt}),
|
||||
({
|
||||
{sfDestination, SoeRequired},
|
||||
{sfAmount, SoeRequired, SoeMptSupported},
|
||||
@@ -131,7 +131,7 @@ TRANSACTION(ttREGULAR_KEY_SET, 5, SetRegularKey,
|
||||
# include <xrpl/tx/transactors/dex/OfferCreate.h>
|
||||
#endif
|
||||
TRANSACTION(ttOFFER_CREATE, 7, OfferCreate,
|
||||
({.privileges = MayCreateMpt}),
|
||||
({.privileges = Privilege::MayCreateMpt}),
|
||||
({
|
||||
{sfTakerPays, SoeRequired, SoeMptSupported},
|
||||
{sfTakerGets, SoeRequired, SoeMptSupported},
|
||||
@@ -226,7 +226,7 @@ TRANSACTION(ttCHECK_CREATE, 16, CheckCreate, ({}), ({
|
||||
# include <xrpl/tx/transactors/check/CheckCash.h>
|
||||
#endif
|
||||
TRANSACTION(ttCHECK_CASH, 17, CheckCash,
|
||||
({.privileges = MayCreateMpt}),
|
||||
({.privileges = Privilege::MayCreateMpt}),
|
||||
({
|
||||
{sfCheckID, SoeRequired},
|
||||
{sfAmount, SoeOptional, SoeMptSupported},
|
||||
@@ -269,7 +269,7 @@ TRANSACTION(ttTRUST_SET, 20, TrustSet, ({}), ({
|
||||
TRANSACTION(ttACCOUNT_DELETE, 21, AccountDelete,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.privileges = MustDeleteAcct,
|
||||
.privileges = Privilege::MustDeleteAcct,
|
||||
}),
|
||||
({
|
||||
{sfDestination, SoeRequired},
|
||||
@@ -284,7 +284,7 @@ TRANSACTION(ttACCOUNT_DELETE, 21, AccountDelete,
|
||||
# include <xrpl/tx/transactors/nft/NFTokenMint.h>
|
||||
#endif
|
||||
TRANSACTION(ttNFTOKEN_MINT, 25, NFTokenMint,
|
||||
({.privileges = ChangeNftCounts}),
|
||||
({.privileges = Privilege::ChangeNftCounts}),
|
||||
({
|
||||
{sfNFTokenTaxon, SoeRequired},
|
||||
{sfTransferFee, SoeOptional},
|
||||
@@ -300,7 +300,7 @@ TRANSACTION(ttNFTOKEN_MINT, 25, NFTokenMint,
|
||||
# include <xrpl/tx/transactors/nft/NFTokenBurn.h>
|
||||
#endif
|
||||
TRANSACTION(ttNFTOKEN_BURN, 26, NFTokenBurn,
|
||||
({.privileges = ChangeNftCounts}),
|
||||
({.privileges = Privilege::ChangeNftCounts}),
|
||||
({
|
||||
{sfNFTokenID, SoeRequired},
|
||||
{sfOwner, SoeOptional},
|
||||
@@ -352,7 +352,8 @@ TRANSACTION(ttCLAWBACK, 30, Clawback, ({}), ({
|
||||
TRANSACTION(ttAMM_CLAWBACK, 31, AMMClawback,
|
||||
({
|
||||
.amendment = featureAMMClawback,
|
||||
.privileges = MayDeleteAcct | OverrideFreeze | MayAuthorizeMpt,
|
||||
.privileges = Privilege::MayDeleteAcct | Privilege::OverrideFreeze |
|
||||
Privilege::MayAuthorizeMpt,
|
||||
}),
|
||||
({
|
||||
{sfHolder, SoeRequired},
|
||||
@@ -368,7 +369,7 @@ TRANSACTION(ttAMM_CLAWBACK, 31, AMMClawback,
|
||||
TRANSACTION(ttAMM_CREATE, 35, AMMCreate,
|
||||
({
|
||||
.amendment = featureAMM,
|
||||
.privileges = CreatePseudoAcct | MayCreateMpt,
|
||||
.privileges = Privilege::CreatePseudoAcct | Privilege::MayCreateMpt,
|
||||
}),
|
||||
({
|
||||
{sfAmount, SoeRequired, SoeMptSupported},
|
||||
@@ -399,7 +400,7 @@ TRANSACTION(ttAMM_DEPOSIT, 36, AMMDeposit,
|
||||
TRANSACTION(ttAMM_WITHDRAW, 37, AMMWithdraw,
|
||||
({
|
||||
.amendment = featureAMM,
|
||||
.privileges = MayDeleteAcct | MayAuthorizeMpt,
|
||||
.privileges = Privilege::MayDeleteAcct | Privilege::MayAuthorizeMpt,
|
||||
}),
|
||||
({
|
||||
{sfAsset, SoeRequired, SoeMptSupported},
|
||||
@@ -443,7 +444,7 @@ TRANSACTION(ttAMM_BID, 39, AMMBid,
|
||||
TRANSACTION(ttAMM_DELETE, 40, AMMDelete,
|
||||
({
|
||||
.amendment = featureAMM,
|
||||
.privileges = MustDeleteAcct | MayDeleteMpt,
|
||||
.privileges = Privilege::MustDeleteAcct | Privilege::MayDeleteMpt,
|
||||
}),
|
||||
({
|
||||
{sfAsset, SoeRequired, SoeMptSupported},
|
||||
@@ -497,7 +498,7 @@ TRANSACTION(ttXCHAIN_ACCOUNT_CREATE_COMMIT, 44, XChainAccountCreateCommit,
|
||||
TRANSACTION(ttXCHAIN_ADD_CLAIM_ATTESTATION, 45, XChainAddClaimAttestation,
|
||||
({
|
||||
.amendment = featureXChainBridge,
|
||||
.privileges = CreateAcct,
|
||||
.privileges = Privilege::CreateAcct,
|
||||
}),
|
||||
({
|
||||
{sfXChainBridge, SoeRequired},
|
||||
@@ -518,7 +519,7 @@ TRANSACTION(ttXCHAIN_ADD_CLAIM_ATTESTATION, 45, XChainAddClaimAttestation,
|
||||
TRANSACTION(ttXCHAIN_ADD_ACCOUNT_CREATE_ATTESTATION, 46, XChainAddAccountCreateAttestation,
|
||||
({
|
||||
.amendment = featureXChainBridge,
|
||||
.privileges = CreateAcct,
|
||||
.privileges = Privilege::CreateAcct,
|
||||
}),
|
||||
({
|
||||
{sfXChainBridge, SoeRequired},
|
||||
@@ -618,7 +619,7 @@ TRANSACTION(ttLEDGER_STATE_FIX, 53, LedgerStateFix,
|
||||
TRANSACTION(ttMPTOKEN_ISSUANCE_CREATE, 54, MPTokenIssuanceCreate,
|
||||
({
|
||||
.amendment = featureMPTokensV1,
|
||||
.privileges = CreateMptIssuance,
|
||||
.privileges = Privilege::CreateMptIssuance,
|
||||
}),
|
||||
({
|
||||
{sfAssetScale, SoeOptional},
|
||||
@@ -636,7 +637,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_CREATE, 54, MPTokenIssuanceCreate,
|
||||
TRANSACTION(ttMPTOKEN_ISSUANCE_DESTROY, 55, MPTokenIssuanceDestroy,
|
||||
({
|
||||
.amendment = featureMPTokensV1,
|
||||
.privileges = DestroyMptIssuance,
|
||||
.privileges = Privilege::DestroyMptIssuance,
|
||||
}),
|
||||
({
|
||||
{sfMPTokenIssuanceID, SoeRequired},
|
||||
@@ -666,7 +667,7 @@ TRANSACTION(ttMPTOKEN_ISSUANCE_SET, 56, MPTokenIssuanceSet,
|
||||
TRANSACTION(ttMPTOKEN_AUTHORIZE, 57, MPTokenAuthorize,
|
||||
({
|
||||
.amendment = featureMPTokensV1,
|
||||
.privileges = MustAuthorizeMpt,
|
||||
.privileges = Privilege::MustAuthorizeMpt,
|
||||
}),
|
||||
({
|
||||
{sfMPTokenIssuanceID, SoeRequired},
|
||||
@@ -764,7 +765,8 @@ TRANSACTION(ttVAULT_CREATE, 65, VaultCreate,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureSingleAssetVault,
|
||||
.privileges = CreatePseudoAcct | CreateMptIssuance | MustModifyVault,
|
||||
.privileges = Privilege::CreatePseudoAcct | Privilege::CreateMptIssuance |
|
||||
Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfAsset, SoeRequired, SoeMptSupported},
|
||||
@@ -787,7 +789,7 @@ TRANSACTION(ttVAULT_SET, 66, VaultSet,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureSingleAssetVault,
|
||||
.privileges = MustModifyVault,
|
||||
.privileges = Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfVaultID, SoeRequired},
|
||||
@@ -804,7 +806,8 @@ TRANSACTION(ttVAULT_DELETE, 67, VaultDelete,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureSingleAssetVault,
|
||||
.privileges = MustDeleteAcct | DestroyMptIssuance | MustModifyVault,
|
||||
.privileges = Privilege::MustDeleteAcct | Privilege::DestroyMptIssuance |
|
||||
Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfVaultID, SoeRequired},
|
||||
@@ -819,7 +822,7 @@ TRANSACTION(ttVAULT_DEPOSIT, 68, VaultDeposit,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureSingleAssetVault,
|
||||
.privileges = MayAuthorizeMpt | MustModifyVault,
|
||||
.privileges = Privilege::MayAuthorizeMpt | Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfVaultID, SoeRequired},
|
||||
@@ -834,7 +837,8 @@ TRANSACTION(ttVAULT_WITHDRAW, 69, VaultWithdraw,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureSingleAssetVault,
|
||||
.privileges = MayDeleteMpt | MayAuthorizeMpt | MustModifyVault,
|
||||
.privileges = Privilege::MayDeleteMpt | Privilege::MayAuthorizeMpt |
|
||||
Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfVaultID, SoeRequired},
|
||||
@@ -851,7 +855,7 @@ TRANSACTION(ttVAULT_CLAWBACK, 70, VaultClawback,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureSingleAssetVault,
|
||||
.privileges = MayDeleteMpt | MustModifyVault,
|
||||
.privileges = Privilege::MayDeleteMpt | Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfVaultID, SoeRequired},
|
||||
@@ -883,7 +887,7 @@ TRANSACTION(ttLOAN_BROKER_SET, 74, LoanBrokerSet,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureLendingProtocol,
|
||||
.privileges = CreatePseudoAcct | MayAuthorizeMpt,
|
||||
.privileges = Privilege::CreatePseudoAcct | Privilege::MayAuthorizeMpt,
|
||||
}),
|
||||
({
|
||||
{sfVaultID, SoeRequired},
|
||||
@@ -903,7 +907,7 @@ TRANSACTION(ttLOAN_BROKER_DELETE, 75, LoanBrokerDelete,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureLendingProtocol,
|
||||
.privileges = MustDeleteAcct | MayAuthorizeMpt,
|
||||
.privileges = Privilege::MustDeleteAcct | Privilege::MayAuthorizeMpt,
|
||||
}),
|
||||
({
|
||||
{sfLoanBrokerID, SoeRequired},
|
||||
@@ -931,7 +935,7 @@ TRANSACTION(ttLOAN_BROKER_COVER_WITHDRAW, 77, LoanBrokerCoverWithdraw,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureLendingProtocol,
|
||||
.privileges = MayAuthorizeMpt,
|
||||
.privileges = Privilege::MayAuthorizeMpt,
|
||||
}),
|
||||
({
|
||||
{sfLoanBrokerID, SoeRequired},
|
||||
@@ -963,7 +967,7 @@ TRANSACTION(ttLOAN_SET, 80, LoanSet,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureLendingProtocol,
|
||||
.privileges = MayAuthorizeMpt | MustModifyVault,
|
||||
.privileges = Privilege::MayAuthorizeMpt | Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfLoanBrokerID, SoeRequired},
|
||||
@@ -1009,7 +1013,7 @@ TRANSACTION(ttLOAN_MANAGE, 82, LoanManage,
|
||||
// All of the LoanManage options will modify the vault, but the
|
||||
// transaction can succeed without options, essentially making it
|
||||
// a noop.
|
||||
.privileges = MayModifyVault,
|
||||
.privileges = Privilege::MayModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfLoanID, SoeRequired},
|
||||
@@ -1023,7 +1027,7 @@ TRANSACTION(ttLOAN_PAY, 84, LoanPay,
|
||||
({
|
||||
.delegable = Delegation::NotDelegable,
|
||||
.amendment = featureLendingProtocol,
|
||||
.privileges = MayAuthorizeMpt | MustModifyVault,
|
||||
.privileges = Privilege::MayAuthorizeMpt | Privilege::MustModifyVault,
|
||||
}),
|
||||
({
|
||||
{sfLoanID, SoeRequired},
|
||||
|
||||
@@ -21,7 +21,7 @@ class AMMBidBuilder;
|
||||
* Type: ttAMM_BID (39)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureAMM
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AMMBidBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AMMClawbackBuilder;
|
||||
* Type: ttAMM_CLAWBACK (31)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureAMMClawback
|
||||
* Privileges: MayDeleteAcct | OverrideFreeze | MayAuthorizeMpt
|
||||
* Privileges: Privilege::MayDeleteAcct | Privilege::OverrideFreeze | Privilege::MayAuthorizeMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AMMClawbackBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AMMCreateBuilder;
|
||||
* Type: ttAMM_CREATE (35)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureAMM
|
||||
* Privileges: CreatePseudoAcct | MayCreateMpt
|
||||
* Privileges: Privilege::CreatePseudoAcct | Privilege::MayCreateMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AMMCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AMMDeleteBuilder;
|
||||
* Type: ttAMM_DELETE (40)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureAMM
|
||||
* Privileges: MustDeleteAcct | MayDeleteMpt
|
||||
* Privileges: Privilege::MustDeleteAcct | Privilege::MayDeleteMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AMMDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AMMDepositBuilder;
|
||||
* Type: ttAMM_DEPOSIT (36)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureAMM
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AMMDepositBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AMMVoteBuilder;
|
||||
* Type: ttAMM_VOTE (38)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureAMM
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AMMVoteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AMMWithdrawBuilder;
|
||||
* Type: ttAMM_WITHDRAW (37)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureAMM
|
||||
* Privileges: MayDeleteAcct | MayAuthorizeMpt
|
||||
* Privileges: Privilege::MayDeleteAcct | Privilege::MayAuthorizeMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AMMWithdrawBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AccountDeleteBuilder;
|
||||
* Type: ttACCOUNT_DELETE (21)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: MustDeleteAcct
|
||||
* Privileges: Privilege::MustDeleteAcct
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AccountDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class AccountSetBuilder;
|
||||
* Type: ttACCOUNT_SET (3)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use AccountSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class BatchBuilder;
|
||||
* Type: ttBATCH (71)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureBatchV1_1
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use BatchBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class CheckCancelBuilder;
|
||||
* Type: ttCHECK_CANCEL (18)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use CheckCancelBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class CheckCashBuilder;
|
||||
* Type: ttCHECK_CASH (17)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: MayCreateMpt
|
||||
* Privileges: Privilege::MayCreateMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use CheckCashBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class CheckCreateBuilder;
|
||||
* Type: ttCHECK_CREATE (16)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use CheckCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class ClawbackBuilder;
|
||||
* Type: ttCLAWBACK (30)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use ClawbackBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class ConfidentialMPTClawbackBuilder;
|
||||
* Type: ttCONFIDENTIAL_MPT_CLAWBACK (89)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureConfidentialTransfer
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use ConfidentialMPTClawbackBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class ConfidentialMPTConvertBuilder;
|
||||
* Type: ttCONFIDENTIAL_MPT_CONVERT (85)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureConfidentialTransfer
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use ConfidentialMPTConvertBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class ConfidentialMPTConvertBackBuilder;
|
||||
* Type: ttCONFIDENTIAL_MPT_CONVERT_BACK (87)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureConfidentialTransfer
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use ConfidentialMPTConvertBackBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class ConfidentialMPTMergeInboxBuilder;
|
||||
* Type: ttCONFIDENTIAL_MPT_MERGE_INBOX (86)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureConfidentialTransfer
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use ConfidentialMPTMergeInboxBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class ConfidentialMPTSendBuilder;
|
||||
* Type: ttCONFIDENTIAL_MPT_SEND (88)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureConfidentialTransfer
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use ConfidentialMPTSendBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class CredentialAcceptBuilder;
|
||||
* Type: ttCREDENTIAL_ACCEPT (59)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureCredentials
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use CredentialAcceptBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class CredentialCreateBuilder;
|
||||
* Type: ttCREDENTIAL_CREATE (58)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureCredentials
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use CredentialCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class CredentialDeleteBuilder;
|
||||
* Type: ttCREDENTIAL_DELETE (60)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureCredentials
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use CredentialDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class DIDDeleteBuilder;
|
||||
* Type: ttDID_DELETE (50)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureDID
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use DIDDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class DIDSetBuilder;
|
||||
* Type: ttDID_SET (49)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureDID
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use DIDSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class DelegateSetBuilder;
|
||||
* Type: ttDELEGATE_SET (64)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featurePermissionDelegationV1_1
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use DelegateSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class DepositPreauthBuilder;
|
||||
* Type: ttDEPOSIT_PREAUTH (19)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use DepositPreauthBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class EnableAmendmentBuilder;
|
||||
* Type: ttAMENDMENT (100)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use EnableAmendmentBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class EscrowCancelBuilder;
|
||||
* Type: ttESCROW_CANCEL (4)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use EscrowCancelBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class EscrowCreateBuilder;
|
||||
* Type: ttESCROW_CREATE (1)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use EscrowCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class EscrowFinishBuilder;
|
||||
* Type: ttESCROW_FINISH (2)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use EscrowFinishBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LedgerStateFixBuilder;
|
||||
* Type: ttLEDGER_STATE_FIX (53)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: fixNFTokenPageLinks
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LedgerStateFixBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanBrokerCoverClawbackBuilder;
|
||||
* Type: ttLOAN_BROKER_COVER_CLAWBACK (78)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanBrokerCoverClawbackBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanBrokerCoverDepositBuilder;
|
||||
* Type: ttLOAN_BROKER_COVER_DEPOSIT (76)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanBrokerCoverDepositBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanBrokerCoverWithdrawBuilder;
|
||||
* Type: ttLOAN_BROKER_COVER_WITHDRAW (77)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: MayAuthorizeMpt
|
||||
* Privileges: Privilege::MayAuthorizeMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanBrokerCoverWithdrawBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanBrokerDeleteBuilder;
|
||||
* Type: ttLOAN_BROKER_DELETE (75)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: MustDeleteAcct | MayAuthorizeMpt
|
||||
* Privileges: Privilege::MustDeleteAcct | Privilege::MayAuthorizeMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanBrokerDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanBrokerSetBuilder;
|
||||
* Type: ttLOAN_BROKER_SET (74)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: CreatePseudoAcct | MayAuthorizeMpt
|
||||
* Privileges: Privilege::CreatePseudoAcct | Privilege::MayAuthorizeMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanBrokerSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanDeleteBuilder;
|
||||
* Type: ttLOAN_DELETE (81)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanManageBuilder;
|
||||
* Type: ttLOAN_MANAGE (82)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: MayModifyVault
|
||||
* Privileges: Privilege::MayModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanManageBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanPayBuilder;
|
||||
* Type: ttLOAN_PAY (84)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: MayAuthorizeMpt | MustModifyVault
|
||||
* Privileges: Privilege::MayAuthorizeMpt | Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanPayBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class LoanSetBuilder;
|
||||
* Type: ttLOAN_SET (80)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureLendingProtocol
|
||||
* Privileges: MayAuthorizeMpt | MustModifyVault
|
||||
* Privileges: Privilege::MayAuthorizeMpt | Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use LoanSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class MPTokenAuthorizeBuilder;
|
||||
* Type: ttMPTOKEN_AUTHORIZE (57)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureMPTokensV1
|
||||
* Privileges: MustAuthorizeMpt
|
||||
* Privileges: Privilege::MustAuthorizeMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use MPTokenAuthorizeBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class MPTokenIssuanceCreateBuilder;
|
||||
* Type: ttMPTOKEN_ISSUANCE_CREATE (54)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureMPTokensV1
|
||||
* Privileges: CreateMptIssuance
|
||||
* Privileges: Privilege::CreateMptIssuance
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use MPTokenIssuanceCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class MPTokenIssuanceDestroyBuilder;
|
||||
* Type: ttMPTOKEN_ISSUANCE_DESTROY (55)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureMPTokensV1
|
||||
* Privileges: DestroyMptIssuance
|
||||
* Privileges: Privilege::DestroyMptIssuance
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use MPTokenIssuanceDestroyBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class MPTokenIssuanceSetBuilder;
|
||||
* Type: ttMPTOKEN_ISSUANCE_SET (56)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureMPTokensV1
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use MPTokenIssuanceSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class NFTokenAcceptOfferBuilder;
|
||||
* Type: ttNFTOKEN_ACCEPT_OFFER (29)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use NFTokenAcceptOfferBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class NFTokenBurnBuilder;
|
||||
* Type: ttNFTOKEN_BURN (26)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: ChangeNftCounts
|
||||
* Privileges: Privilege::ChangeNftCounts
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use NFTokenBurnBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class NFTokenCancelOfferBuilder;
|
||||
* Type: ttNFTOKEN_CANCEL_OFFER (28)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use NFTokenCancelOfferBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class NFTokenCreateOfferBuilder;
|
||||
* Type: ttNFTOKEN_CREATE_OFFER (27)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use NFTokenCreateOfferBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class NFTokenMintBuilder;
|
||||
* Type: ttNFTOKEN_MINT (25)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: ChangeNftCounts
|
||||
* Privileges: Privilege::ChangeNftCounts
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use NFTokenMintBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class NFTokenModifyBuilder;
|
||||
* Type: ttNFTOKEN_MODIFY (61)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureDynamicNFT
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use NFTokenModifyBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class OfferCancelBuilder;
|
||||
* Type: ttOFFER_CANCEL (8)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use OfferCancelBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class OfferCreateBuilder;
|
||||
* Type: ttOFFER_CREATE (7)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: MayCreateMpt
|
||||
* Privileges: Privilege::MayCreateMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use OfferCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class OracleDeleteBuilder;
|
||||
* Type: ttORACLE_DELETE (52)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featurePriceOracle
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use OracleDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class OracleSetBuilder;
|
||||
* Type: ttORACLE_SET (51)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featurePriceOracle
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use OracleSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class PaymentBuilder;
|
||||
* Type: ttPAYMENT (0)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: CreateAcct | MayCreateMpt
|
||||
* Privileges: Privilege::CreateAcct | Privilege::MayCreateMpt
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use PaymentBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class PaymentChannelClaimBuilder;
|
||||
* Type: ttPAYCHAN_CLAIM (15)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use PaymentChannelClaimBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class PaymentChannelCreateBuilder;
|
||||
* Type: ttPAYCHAN_CREATE (13)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use PaymentChannelCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class PaymentChannelFundBuilder;
|
||||
* Type: ttPAYCHAN_FUND (14)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use PaymentChannelFundBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class PermissionedDomainDeleteBuilder;
|
||||
* Type: ttPERMISSIONED_DOMAIN_DELETE (63)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featurePermissionedDomains
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use PermissionedDomainDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class PermissionedDomainSetBuilder;
|
||||
* Type: ttPERMISSIONED_DOMAIN_SET (62)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featurePermissionedDomains
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use PermissionedDomainSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class SetFeeBuilder;
|
||||
* Type: ttFEE (101)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use SetFeeBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class SetRegularKeyBuilder;
|
||||
* Type: ttREGULAR_KEY_SET (5)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use SetRegularKeyBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class SignerListSetBuilder;
|
||||
* Type: ttSIGNER_LIST_SET (12)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use SignerListSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class SponsorshipSetBuilder;
|
||||
* Type: ttSPONSORSHIP_SET (91)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureSponsor
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use SponsorshipSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class SponsorshipTransferBuilder;
|
||||
* Type: ttSPONSORSHIP_TRANSFER (90)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureSponsor
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use SponsorshipTransferBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class TicketCreateBuilder;
|
||||
* Type: ttTICKET_CREATE (10)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use TicketCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class TrustSetBuilder;
|
||||
* Type: ttTRUST_SET (20)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use TrustSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class UNLModifyBuilder;
|
||||
* Type: ttUNL_MODIFY (102)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: uint256{}
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use UNLModifyBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class VaultClawbackBuilder;
|
||||
* Type: ttVAULT_CLAWBACK (70)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureSingleAssetVault
|
||||
* Privileges: MayDeleteMpt | MustModifyVault
|
||||
* Privileges: Privilege::MayDeleteMpt | Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use VaultClawbackBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class VaultCreateBuilder;
|
||||
* Type: ttVAULT_CREATE (65)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureSingleAssetVault
|
||||
* Privileges: CreatePseudoAcct | CreateMptIssuance | MustModifyVault
|
||||
* Privileges: Privilege::CreatePseudoAcct | Privilege::CreateMptIssuance | Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use VaultCreateBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class VaultDeleteBuilder;
|
||||
* Type: ttVAULT_DELETE (67)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureSingleAssetVault
|
||||
* Privileges: MustDeleteAcct | DestroyMptIssuance | MustModifyVault
|
||||
* Privileges: Privilege::MustDeleteAcct | Privilege::DestroyMptIssuance | Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use VaultDeleteBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class VaultDepositBuilder;
|
||||
* Type: ttVAULT_DEPOSIT (68)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureSingleAssetVault
|
||||
* Privileges: MayAuthorizeMpt | MustModifyVault
|
||||
* Privileges: Privilege::MayAuthorizeMpt | Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use VaultDepositBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class VaultSetBuilder;
|
||||
* Type: ttVAULT_SET (66)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureSingleAssetVault
|
||||
* Privileges: MustModifyVault
|
||||
* Privileges: Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use VaultSetBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class VaultWithdrawBuilder;
|
||||
* Type: ttVAULT_WITHDRAW (69)
|
||||
* Delegable: Delegation::NotDelegable
|
||||
* Amendment: featureSingleAssetVault
|
||||
* Privileges: MayDeleteMpt | MayAuthorizeMpt | MustModifyVault
|
||||
* Privileges: Privilege::MayDeleteMpt | Privilege::MayAuthorizeMpt | Privilege::MustModifyVault
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use VaultWithdrawBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainAccountCreateCommitBuilder;
|
||||
* Type: ttXCHAIN_ACCOUNT_CREATE_COMMIT (44)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainAccountCreateCommitBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainAddAccountCreateAttestationBuilder;
|
||||
* Type: ttXCHAIN_ADD_ACCOUNT_CREATE_ATTESTATION (46)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: CreateAcct
|
||||
* Privileges: Privilege::CreateAcct
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainAddAccountCreateAttestationBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainAddClaimAttestationBuilder;
|
||||
* Type: ttXCHAIN_ADD_CLAIM_ATTESTATION (45)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: CreateAcct
|
||||
* Privileges: Privilege::CreateAcct
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainAddClaimAttestationBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainClaimBuilder;
|
||||
* Type: ttXCHAIN_CLAIM (43)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainClaimBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainCommitBuilder;
|
||||
* Type: ttXCHAIN_COMMIT (42)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainCommitBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainCreateBridgeBuilder;
|
||||
* Type: ttXCHAIN_CREATE_BRIDGE (48)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainCreateBridgeBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainCreateClaimIDBuilder;
|
||||
* Type: ttXCHAIN_CREATE_CLAIM_ID (41)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainCreateClaimIDBuilder to construct new transactions.
|
||||
|
||||
@@ -21,7 +21,7 @@ class XChainModifyBridgeBuilder;
|
||||
* Type: ttXCHAIN_MODIFY_BRIDGE (47)
|
||||
* Delegable: Delegation::Delegable
|
||||
* Amendment: featureXChainBridge
|
||||
* Privileges: NoPriv
|
||||
* Privileges: Privilege::NoPriv
|
||||
*
|
||||
* Immutable wrapper around STTx providing type-safe field access.
|
||||
* Use XChainModifyBridgeBuilder to construct new transactions.
|
||||
|
||||
@@ -251,7 +251,7 @@ Permission::isDelegable(std::uint32_t permissionValue, Rules const& rules) const
|
||||
|
||||
// Tx-level permissions require the transaction type itself to be delegable, and
|
||||
// the corresponding amendment enabled.
|
||||
return txIt != txDelegationMap_.end() && txIt->second.delegable != NotDelegable &&
|
||||
return txIt != txDelegationMap_.end() && txIt->second.delegable != Delegation::NotDelegable &&
|
||||
amendmentEnabled(txIt->second);
|
||||
}
|
||||
|
||||
|
||||
@@ -260,7 +260,8 @@ TransfersNotFrozen::validateFrozenState(
|
||||
// individually-frozen or deep-frozen AMM trust lines.
|
||||
// Post-fixCleanup3_4_0: AMMClawbacks are allowed to override all freeze types.
|
||||
bool const isAMMLine = change.line->isFlag(lsfAMMNode);
|
||||
if ((fixOverrideFreeze || !isAMMLine || globalFreeze) && hasPrivilege(tx, OverrideFreeze))
|
||||
if ((fixOverrideFreeze || !isAMMLine || globalFreeze) &&
|
||||
hasPrivilege(tx, Privilege::OverrideFreeze))
|
||||
{
|
||||
JLOG(j.debug()) << "Invariant check allowing funds to be moved "
|
||||
<< (change.balanceChangeSign > 0 ? "to" : "from")
|
||||
|
||||
@@ -47,9 +47,9 @@ namespace xrpl {
|
||||
#undef TRANSACTION
|
||||
|
||||
#define UNWRAP(...) __VA_ARGS__
|
||||
#define TRANSACTION(tag, value, name, settings, ...) \
|
||||
case tag: { \
|
||||
return (TxSettings UNWRAP settings).privileges & priv; \
|
||||
#define TRANSACTION(tag, value, name, settings, ...) \
|
||||
case tag: { \
|
||||
return ((TxSettings UNWRAP settings).privileges & priv) != Privilege::NoPriv; \
|
||||
}
|
||||
|
||||
bool
|
||||
@@ -442,7 +442,7 @@ AccountRootsNotDeleted::finalize(
|
||||
// transaction when the total AMM LP Tokens balance goes to 0.
|
||||
// A successful AccountDelete or AMMDelete MUST delete exactly
|
||||
// one account root.
|
||||
if (hasPrivilege(tx, MustDeleteAcct) && isTesSuccess(result))
|
||||
if (hasPrivilege(tx, Privilege::MustDeleteAcct) && isTesSuccess(result))
|
||||
{
|
||||
if (accountsDeleted_ == 1)
|
||||
return true;
|
||||
@@ -463,7 +463,7 @@ AccountRootsNotDeleted::finalize(
|
||||
// A successful AMMWithdraw/AMMClawback MAY delete one account root
|
||||
// when the total AMM LP Tokens balance goes to 0. Not every AMM withdraw
|
||||
// deletes the AMM account, accountsDeleted_ is set if it is deleted.
|
||||
if (hasPrivilege(tx, MayDeleteAcct) && isTesSuccess(result) && accountsDeleted_ == 1)
|
||||
if (hasPrivilege(tx, Privilege::MayDeleteAcct) && isTesSuccess(result) && accountsDeleted_ == 1)
|
||||
return true;
|
||||
|
||||
if (accountsDeleted_ == 0)
|
||||
@@ -766,14 +766,15 @@ ValidNewAccountRoot::finalize(
|
||||
}
|
||||
|
||||
// From this point on we know exactly one account was created.
|
||||
if (hasPrivilege(tx, CreateAcct | CreatePseudoAcct) && isTesSuccess(result))
|
||||
if (hasPrivilege(tx, Privilege::CreateAcct | Privilege::CreatePseudoAcct) &&
|
||||
isTesSuccess(result))
|
||||
{
|
||||
bool const pseudoAccount =
|
||||
(pseudoAccount_ &&
|
||||
(view.rules().enabled(featureSingleAssetVault) ||
|
||||
view.rules().enabled(featureLendingProtocol)));
|
||||
|
||||
if (pseudoAccount && !hasPrivilege(tx, CreatePseudoAcct))
|
||||
if (pseudoAccount && !hasPrivilege(tx, Privilege::CreatePseudoAcct))
|
||||
{
|
||||
JLOG(j.fatal()) << "Invariant failed: pseudo-account created by a "
|
||||
"wrong transaction type";
|
||||
|
||||
@@ -208,7 +208,7 @@ ValidMPTIssuance::finalize(
|
||||
}
|
||||
|
||||
auto const txnType = tx.getTxnType();
|
||||
if (hasPrivilege(tx, CreateMptIssuance))
|
||||
if (hasPrivilege(tx, Privilege::CreateMptIssuance))
|
||||
{
|
||||
if (mptIssuancesCreated_ == 0)
|
||||
{
|
||||
@@ -229,7 +229,7 @@ ValidMPTIssuance::finalize(
|
||||
return mptIssuancesCreated_ == 1 && mptIssuancesDeleted_ == 0;
|
||||
}
|
||||
|
||||
if (hasPrivilege(tx, DestroyMptIssuance))
|
||||
if (hasPrivilege(tx, Privilege::DestroyMptIssuance))
|
||||
{
|
||||
if (mptIssuancesDeleted_ == 0)
|
||||
{
|
||||
@@ -256,7 +256,8 @@ ValidMPTIssuance::finalize(
|
||||
// non-amendment-gated side effects.
|
||||
bool const enforceEscrowFinish = (txnType == ttESCROW_FINISH) &&
|
||||
(rules.enabled(featureSingleAssetVault) || lendingProtocolEnabled);
|
||||
if (hasPrivilege(tx, MustAuthorizeMpt | MayAuthorizeMpt) || enforceEscrowFinish)
|
||||
if (hasPrivilege(tx, Privilege::MustAuthorizeMpt | Privilege::MayAuthorizeMpt) ||
|
||||
enforceEscrowFinish)
|
||||
{
|
||||
bool const submittedByIssuer = tx.isFieldPresent(sfHolder);
|
||||
|
||||
@@ -272,7 +273,7 @@ ValidMPTIssuance::finalize(
|
||||
"succeeded but deleted issuances";
|
||||
return false;
|
||||
}
|
||||
if (mptV2Enabled && hasPrivilege(tx, MayAuthorizeMpt) &&
|
||||
if (mptV2Enabled && hasPrivilege(tx, Privilege::MayAuthorizeMpt) &&
|
||||
(txnType == ttAMM_WITHDRAW || txnType == ttAMM_CLAWBACK))
|
||||
{
|
||||
if (submittedByIssuer && txnType == ttAMM_WITHDRAW && mptokensCreated_ > 0)
|
||||
@@ -308,7 +309,7 @@ ValidMPTIssuance::finalize(
|
||||
return false;
|
||||
}
|
||||
else if (
|
||||
!submittedByIssuer && hasPrivilege(tx, MustAuthorizeMpt) &&
|
||||
!submittedByIssuer && hasPrivilege(tx, Privilege::MustAuthorizeMpt) &&
|
||||
(mptokensCreated_ + mptokensDeleted_ != 1))
|
||||
{
|
||||
// if the holder submitted this tx, then a mptoken must be
|
||||
@@ -321,7 +322,7 @@ ValidMPTIssuance::finalize(
|
||||
return true;
|
||||
}
|
||||
|
||||
if (hasPrivilege(tx, MayCreateMpt))
|
||||
if (hasPrivilege(tx, Privilege::MayCreateMpt))
|
||||
{
|
||||
bool const submittedByIssuer = tx.isFieldPresent(sfHolder);
|
||||
|
||||
@@ -376,7 +377,7 @@ ValidMPTIssuance::finalize(
|
||||
return true;
|
||||
}
|
||||
|
||||
if (hasPrivilege(tx, MayDeleteMpt) &&
|
||||
if (hasPrivilege(tx, Privilege::MayDeleteMpt) &&
|
||||
((txnType == ttAMM_DELETE && mptokensDeleted_ <= 2) || mptokensDeleted_ == 1) &&
|
||||
mptokensCreated_ == 0 && mptIssuancesCreated_ == 0 && mptIssuancesDeleted_ == 0)
|
||||
return true;
|
||||
@@ -837,7 +838,7 @@ ValidMPTTransfer::finalize(
|
||||
ReadView const& view,
|
||||
beast::Journal const& j)
|
||||
{
|
||||
if (hasPrivilege(tx, OverrideFreeze))
|
||||
if (hasPrivilege(tx, Privilege::OverrideFreeze))
|
||||
return true;
|
||||
|
||||
// DEX transactions (AMM[Create,Deposit], cross-currency payments, offer creates) are
|
||||
|
||||
@@ -206,7 +206,7 @@ NFTokenCountTracking::finalize(
|
||||
ReadView const& view,
|
||||
beast::Journal const& j) const
|
||||
{
|
||||
if (!hasPrivilege(tx, ChangeNftCounts))
|
||||
if (!hasPrivilege(tx, Privilege::ChangeNftCounts))
|
||||
{
|
||||
if (beforeMintedTotal_ != afterMintedTotal_)
|
||||
{
|
||||
|
||||
@@ -346,7 +346,7 @@ ValidVault::finalize(
|
||||
|
||||
if (afterVault_.empty() && beforeVault_.empty())
|
||||
{
|
||||
if (hasPrivilege(tx, MustModifyVault))
|
||||
if (hasPrivilege(tx, Privilege::MustModifyVault))
|
||||
{
|
||||
JLOG(j.fatal()) << //
|
||||
"Invariant failed: vault operation succeeded without modifying "
|
||||
@@ -357,7 +357,8 @@ ValidVault::finalize(
|
||||
|
||||
return true; // Not a vault operation
|
||||
}
|
||||
if (!(hasPrivilege(tx, MustModifyVault) || hasPrivilege(tx, MayModifyVault)))
|
||||
if (!(hasPrivilege(tx, Privilege::MustModifyVault) ||
|
||||
hasPrivilege(tx, Privilege::MayModifyVault)))
|
||||
{
|
||||
JLOG(j.fatal()) << //
|
||||
"Invariant failed: vault updated by a wrong transaction type";
|
||||
|
||||
@@ -2725,10 +2725,10 @@ class Delegate_test : public beast::unit_test::Suite
|
||||
#undef TRANSACTION
|
||||
|
||||
#define UNWRAP(...) __VA_ARGS__
|
||||
#define TRANSACTION(tag, value, name, settings, ...) \
|
||||
if ((xrpl::TxSettings UNWRAP settings).delegable == xrpl::Delegable) \
|
||||
{ \
|
||||
delegableCount++; \
|
||||
#define TRANSACTION(tag, value, name, settings, ...) \
|
||||
if ((xrpl::TxSettings UNWRAP settings).delegable == xrpl::Delegation::Delegable) \
|
||||
{ \
|
||||
delegableCount++; \
|
||||
}
|
||||
|
||||
#include <xrpl/protocol/detail/transactions.macro>
|
||||
|
||||
Reference in New Issue
Block a user