CatapultServer  v0.5.0.1 (Elephant)
MosaicSupplyChangeBuilder.h
Go to the documentation of this file.
1 
21 #pragma once
22 #include "TransactionBuilder.h"
24 
25 namespace catapult { namespace builders {
26 
29  public:
30  using Transaction = model::MosaicSupplyChangeTransaction;
31  using EmbeddedTransaction = model::EmbeddedMosaicSupplyChangeTransaction;
32 
33  public:
37 
38  public:
40  void setMosaicId(UnresolvedMosaicId mosaicId);
41 
44 
46  void setDelta(Amount delta);
47 
48  public:
51  size_t size() const;
52 
54  std::unique_ptr<Transaction> build() const;
55 
57  std::unique_ptr<EmbeddedTransaction> buildEmbedded() const;
58 
59  private:
60  template<typename TTransaction>
61  size_t sizeImpl() const;
62 
63  template<typename TTransaction>
64  std::unique_ptr<TTransaction> buildImpl() const;
65 
66  private:
70  };
71 }}
catapult::validators::DEFINE_STATEFUL_VALIDATOR
DEFINE_STATEFUL_VALIDATOR(EligibleHarvester, [](const auto &notification, const auto &context) { cache::ImportanceView view(context.Cache.template sub< cache::AccountStateCache >());return view.canHarvest(notification.Signer, context.Height) ? ValidationResult::Success :Failure_Core_Block_Harvester_Ineligible;})
catapult::builders::TransactionBuilder::signer
const Key & signer() const
Returns signer.
Definition: TransactionBuilder.h:41
MosaicSupplyChangeTransaction.h
AccountRestrictionCache.h
catapult::cache::MosaicCache
Synchronized cache composed of mosaic information.
Definition: MosaicCache.h:33
catapult::model::MosaicSupplyChangeDirection
MosaicSupplyChangeDirection
Supply change directions.
Definition: MosaicTypes.h:27
catapult::builders::MosaicSupplyChangeBuilder::sizeImpl
size_t sizeImpl() const
Definition: MosaicSupplyChangeBuilder.cpp:57
catapult::validators::ValidatorContext::Cache
const cache::ReadOnlyCatapultCache & Cache
Catapult cache.
Definition: ValidatorContext.h:62
catapult::builders::MosaicSupplyChangeBuilder::buildImpl
std::unique_ptr< TTransaction > buildImpl() const
catapult::builders::MosaicSupplyChangeBuilder::MosaicSupplyChangeBuilder
MosaicSupplyChangeBuilder(model::NetworkIdentifier networkIdentifier, const Key &signer)
Definition: MosaicSupplyChangeBuilder.cpp:25
catapult::builders::MosaicSupplyChangeBuilder::setDelta
void setDelta(Amount delta)
Sets the amount of the change to delta.
Definition: MosaicSupplyChangeBuilder.cpp:40
ValidatorContext.h
catapult::validators::Notification
model::AccountAddressNotification Notification
Definition: AddressValidator.cpp:27
catapult::model::ResolverContext::resolve
MosaicId resolve(UnresolvedMosaicId mosaicId) const
Resolves mosaic id (mosaicId).
Definition: ResolverContext.cpp:41
catapult::builders::MosaicSupplyChangeBuilder::m_delta
Amount m_delta
Definition: MosaicSupplyChangeBuilder.h:69
catapult::cache::ReadOnlyCatapultCache::sub
const TCache::CacheReadOnlyType & sub() const
Gets a specific sub cache read-only view.
Definition: ReadOnlyCatapultCache.h:35
catapult::model::MosaicSupplyChangeDirection::Decrease
Decreases the supply.
MAKE_STATEFUL_VALIDATOR
#define MAKE_STATEFUL_VALIDATOR(NAME, HANDLER)
Definition: ValidatorTypes.h:123
catapult::builders::MosaicSupplyChangeBuilder::Transaction
model::MosaicSupplyChangeTransaction Transaction
Definition: MosaicSupplyChangeBuilder.h:30
AccountRestrictionView.h
catapult::validators::DECLARE_STATEFUL_VALIDATOR
DECLARE_STATEFUL_VALIDATOR(Address, Notification)(model
Definition: AddressValidator.cpp:29
catapult::builders::MosaicSupplyChangeBuilder::m_mosaicId
UnresolvedMosaicId m_mosaicId
Definition: MosaicSupplyChangeBuilder.h:67
MosaicSupplyChangeBuilder.h
catapult::utils::BaseValue< uint64_t, Amount_tag >
catapult::builders::MosaicSupplyChangeBuilder::setDirection
void setDirection(model::MosaicSupplyChangeDirection direction)
Sets the supply change direction to direction.
Definition: MosaicSupplyChangeBuilder.cpp:36
catapult::builders::MosaicSupplyChangeBuilder::EmbeddedTransaction
model::EmbeddedMosaicSupplyChangeTransaction EmbeddedTransaction
Definition: MosaicSupplyChangeBuilder.h:31
catapult::validators::ValidatorContext
Contextual information passed to stateful validators.
Definition: ValidatorContext.h:32
catapult::model::AccountRestrictionType::MosaicId
Account restriction type is a mosaic id.
MosaicCache.h
catapult::builders::MosaicSupplyChangeBuilder::buildEmbedded
std::unique_ptr< EmbeddedTransaction > buildEmbedded() const
Builds a new embedded mosaic supply change transaction.
Definition: MosaicSupplyChangeBuilder.cpp:52
catapult::model::MosaicFlags::Supply_Mutable
Mosaic supply is mutable.
catapult::validators::BalanceTransferNotification
model::BalanceTransferNotification BalanceTransferNotification
Definition: BalanceValidator.cpp:28
Address.h
TransactionBuilder.h
Validators.h
AccountStateCache.h
catapult::model::NetworkIdentifier
NetworkIdentifier
Possible network identifiers.
Definition: NetworkInfo.h:45
catapult::cache::AccountStateCache
Synchronized cache composed of stateful account information.
Definition: AccountStateCache.h:72
catapult::builders::TransactionBuilder
Base transaction builder.
Definition: TransactionBuilder.h:31
catapult::validators::ValidationResult::Success
Validation succeeded.
catapult::validators::ValidatorContext::Resolvers
const model::ResolverContext Resolvers
Alias resolvers.
Definition: ValidatorContext.h:59
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::model::AccountAddressNotification
Notification of use of an account address.
Definition: Notifications.h:57
catapult::builders::MosaicSupplyChangeBuilder
Builder for a mosaic supply change transaction.
Definition: MosaicSupplyChangeBuilder.h:28
catapult::utils::ByteArray< Key_Size, Key_tag >
catapult::builders::MosaicSupplyChangeBuilder::size
size_t size() const
Definition: MosaicSupplyChangeBuilder.cpp:44
catapult::builders::MosaicSupplyChangeBuilder::setMosaicId
void setMosaicId(UnresolvedMosaicId mosaicId)
Sets the id of the affected mosaic to mosaicId.
Definition: MosaicSupplyChangeBuilder.cpp:32
Validators.h
catapult::builders::TransactionType
model::AggregateTransaction TransactionType
Definition: AggregateTransactionBuilder.cpp:28
catapult::builders::MosaicSupplyChangeBuilder::build
std::unique_ptr< Transaction > build() const
Builds a new mosaic supply change transaction.
Definition: MosaicSupplyChangeBuilder.cpp:48
catapult::builders::MosaicSupplyChangeBuilder::m_direction
model::MosaicSupplyChangeDirection m_direction
Definition: MosaicSupplyChangeBuilder.h:68