6 #ifndef IROHA_PROTO_PROPOSAL_FACTORY_HPP 7 #define IROHA_PROTO_PROPOSAL_FACTORY_HPP 15 #include "proposal.pb.h" 19 template <
typename Val
idator>
29 : validator_{config} {}
36 createProtoProposal(height, created_time, transactions));
45 return std::make_unique<Proposal>(
46 createProtoProposal(height, created_time, transactions));
53 const iroha::protocol::Proposal &proposal) {
54 return validate(std::make_unique<Proposal>(proposal));
58 iroha::protocol::Proposal createProtoProposal(
62 iroha::protocol::Proposal proposal;
64 proposal.set_height(height);
65 proposal.set_created_time(created_time);
67 for (
const auto &tx : transactions) {
68 *proposal.add_transactions() =
77 std::unique_ptr<Proposal> proposal) {
78 if (
auto error = validator_.validate(*proposal)) {
79 return iroha::expected::makeError(error->toString());
82 return iroha::expected::makeValue<std::unique_ptr<interface::Proposal>>(
91 #endif // IROHA_PROTO_PROPOSAL_FACTORY_HPP uint64_t HeightType
Type of height (for Block, Proposal etc)
Definition: types.hpp:48
Definition: unsafe_proposal_factory.hpp:22
Definition: transaction.hpp:14
boost::any_range< Transaction, boost::forward_traversal_tag, const Transaction & > TransactionsCollectionType
Definition: unsafe_proposal_factory.hpp:27
Definition: result_fwd.hpp:27
std::unique_ptr< interface::Proposal > unsafeCreateProposal(interface::types::HeightType height, interface::types::TimestampType created_time, UnsafeTransactionsCollectionType transactions) override
Definition: proto_proposal_factory.hpp:41
Definition: proto_proposal_factory.hpp:20
interface::UnsafeProposalFactory::TransactionsCollectionType UnsafeTransactionsCollectionType
Definition: proto_proposal_factory.hpp:26
FactoryResult< std::unique_ptr< interface::Proposal > > createProposal(interface::types::HeightType height, interface::types::TimestampType created_time, TransactionsCollectionType transactions) override
Definition: proto_proposal_factory.hpp:31
boost::any_range< Transaction, boost::forward_traversal_tag, const Transaction & > TransactionsCollectionType
Definition: proposal_factory.hpp:30
Definition: proposal_factory.hpp:22
ProtoProposalFactory(std::shared_ptr< validation::ValidatorsConfig > config)
Definition: proto_proposal_factory.hpp:28
FactoryResult< std::unique_ptr< interface::Proposal > > createProposal(const iroha::protocol::Proposal &proposal)
Definition: proto_proposal_factory.hpp:52
Definition: command_executor.hpp:12
interface::ProposalFactory::TransactionsCollectionType TransactionsCollectionType
Definition: proto_proposal_factory.hpp:24
uint64_t TimestampType
Type of timestamp.
Definition: types.hpp:67