CatapultServer  v0.5.0.1 (Elephant)
AccountRestrictionView.h
Go to the documentation of this file.
1 
21 #pragma once
24 #include "catapult/types.h"
25 
26 namespace catapult { namespace cache { class ReadOnlyCatapultCache; } }
27 
28 namespace catapult { namespace validators {
29 
32  public:
35 
36  public:
38  bool initialize(const Address& address);
39 
42  template<typename TRestrictionValue>
44  const auto& restrictions = m_iter.get();
45  return restrictions.template restriction<TRestrictionValue>(restrictionType);
46  }
47 
49  template<typename TRestrictionValue>
50  bool isAllowed(model::AccountRestrictionType restrictionType, const TRestrictionValue& value) {
51  auto typedRestriction = get<TRestrictionValue>(restrictionType);
52  if (0 == typedRestriction.size())
53  return true;
54 
55  const auto& descriptor = typedRestriction.descriptor();
56  if (state::AccountRestrictionOperationType::Allow == descriptor.operationType())
57  return typedRestriction.contains(value);
58  else
59  return !typedRestriction.contains(value);
60  }
61 
62  private:
66  >;
67 
70  };
71 }}
Observers.h
catapult::validators::DEFINE_ACCOUNT_RESTRICTION_MODIFICATION_VALIDATOR
DEFINE_ACCOUNT_RESTRICTION_MODIFICATION_VALIDATOR(AccountAddressRestrictionValueModification, model::ModifyAccountAddressRestrictionValueNotification, Address) DEFINE_ACCOUNT_RESTRICTION_MODIFICATION_VALIDATOR(AccountMosaicRestrictionValueModification
catapult::validators::AccountRestrictionView::FindIterator
cache::AccountRestrictionCacheTypes::CacheReadOnlyType::ReadOnlyFindIterator< cache::AccountRestrictionCacheView::const_iterator, cache::AccountRestrictionCacheDelta::const_iterator > FindIterator
Definition: AccountRestrictionView.h:66
catapult::model::AccountRestrictionType
AccountRestrictionType
Account restriction types.
Definition: AccountRestrictionTypes.h:31
AccountRestrictionCache.h
catapult::validators::AccountRestrictionView
A view on top of a catapult cache cache for retrieving a typed account restriction.
Definition: AccountRestrictionView.h:31
ValidatorContext.h
catapult::validators::ValidationResult
ValidationResult
Enumeration of all possible validation results.
Definition: ValidationResult.h:51
catapult::state::TypedAccountRestriction
Typed account restriction.
Definition: TypedAccountRestriction.h:29
catapult::model::EntityType
EntityType
Enumeration of entity types.
Definition: EntityType.h:43
catapult::validators::AccountRestrictionView::m_cache
const cache::ReadOnlyCatapultCache & m_cache
Definition: AccountRestrictionView.h:68
DEFINE_ACCOUNT_RESTRICTION_MODIFICATION_OBSERVER
#define DEFINE_ACCOUNT_RESTRICTION_MODIFICATION_OBSERVER(RESTRICTION_VALUE_NAME)
Definition: AccountRestrictionValueModificationObserver.cpp:74
catapult::cache::ReadOnlyCatapultCache::sub
const TCache::CacheReadOnlyType & sub() const
Gets a specific sub cache read-only view.
Definition: ReadOnlyCatapultCache.h:35
catapult::model::ModifyAccountAddressRestrictionValueNotification
ModifyAccountRestrictionValueNotification< UnresolvedAddress, RestrictionAccount_Address_Modification_Notification > ModifyAccountAddressRestrictionValueNotification
Definition: AccountRestrictionNotifications.h:115
catapult::model::ModifyAccountOperationRestrictionValueNotification
ModifyAccountRestrictionValueNotification< EntityType, RestrictionAccount_Operation_Modification_Notification > ModifyAccountOperationRestrictionValueNotification
Definition: AccountRestrictionNotifications.h:119
catapult::cache::ReadOnlyArtifactCache::ReadOnlyFindIterator
Find iterator returned by ReadOnlyArtifactCache::find.
Definition: ReadOnlyArtifactCache.h:33
AccountRestrictionView.h
catapult::validators::AccountRestrictionView::get
state::TypedAccountRestriction< TRestrictionValue > get(model::AccountRestrictionType restrictionType) const
Definition: AccountRestrictionView.h:43
catapult::validators::AccountRestrictionView::initialize
bool initialize(const Address &address)
Tries to initialize the internal iterator for account restriction with address.
Definition: AccountRestrictionView.cpp:30
catapult::cache::detail::CacheFindIterator
An iterator that is returned by cache find functions.
Definition: CacheMixins.h:142
catapult::cache::AccountRestrictionCache
Synchronized cache composed of account restriction information.
Definition: AccountRestrictionCache.h:36
catapult::state::ToVector
auto ToVector(T value)
Converts value to a vector.
Definition: AccountRestrictionUtils.h:30
catapult::validators::@566::OperationType
OperationType
Definition: MultisigAggregateSufficientCosignersValidator.cpp:32
catapult::cache::ReadOnlyArtifactCache::ReadOnlyFindIterator::get
const TValue & get() const
Gets a const value.
Definition: ReadOnlyArtifactCache.h:53
Address.h
catapult::cache::ReadOnlyArtifactCache::ReadOnlyFindIterator::tryGet
const TValue * tryGet() const
Tries to get a const value.
Definition: ReadOnlyArtifactCache.h:58
catapult::model::PublicKeyToAddress
Address PublicKeyToAddress(const Key &publicKey, NetworkIdentifier networkIdentifier)
Creates an address from a public key (publicKey) for the network identified by networkIdentifier.
Definition: Address.cpp:50
catapult::model::AccountRestrictionModificationType
AccountRestrictionModificationType
Account restriction modification type.
Definition: AccountRestrictionTypes.h:51
Validators.h
ValidationResult.h
catapult::validators::AccountRestrictionView::AccountRestrictionView
AccountRestrictionView(const cache::ReadOnlyCatapultCache &cache)
Creates a view around cache.
Definition: AccountRestrictionView.cpp:27
AccountRestrictionUtils.h
ReadOnlyCatapultCache.h
catapult::validators::ValidationResult::Success
Validation succeeded.
catapult::validators::AccountRestrictionView::isAllowed
bool isAllowed(model::AccountRestrictionType restrictionType, const TRestrictionValue &value)
Returns true if value is allowed.
Definition: AccountRestrictionView.h:50
catapult::state::AccountRestrictionOperationType::Allow
Account restriction contains allowed values.
catapult::state::AccountRestrictionOperationType
AccountRestrictionOperationType
Operation type.
Definition: AccountRestrictionDescriptor.h:28
types.h
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::cache::ConstAccessorMixin::const_iterator
detail::CacheFindIterator< TCacheDescriptor, TValueAdapter, SetIteratorType, const ValueType > const_iterator
Find (const) iterator.
Definition: CacheMixins.h:198
catapult::utils::ByteArray< Address_Decoded_Size, Address_tag >
catapult::model::CosignatoryModificationType::Del
Remove cosignatory.
m_cache
const cache::CatapultCache & m_cache
Definition: JointValidator.cpp:84
catapult::cache::ReadOnlyCatapultCache
A read-only overlay on top of a catapult cache.
Definition: ReadOnlyCatapultCache.h:27
catapult::model::ModifyAccountMosaicRestrictionValueNotification
ModifyAccountRestrictionValueNotification< UnresolvedMosaicId, RestrictionAccount_Mosaic_Modification_Notification > ModifyAccountMosaicRestrictionValueNotification
Definition: AccountRestrictionNotifications.h:117
catapult::model::CosignatoryModificationType::Add
Add cosignatory.
catapult::validators::AccountRestrictionView::m_iter
FindIterator m_iter
Definition: AccountRestrictionView.h:69