27 namespace graphene {
namespace protocol {
28 struct predicate_result;
101 template<
typename Visitor>
102 vector<typename Visitor::result_type>
visit( Visitor&& visitor )
104 vector<typename Visitor::result_type> results;
105 for(
auto& op : operations )
106 results.push_back(op.visit( std::forward<Visitor>( visitor ) ));
109 template<
typename Visitor>
110 vector<typename Visitor::result_type>
visit( Visitor&& visitor )
const 112 vector<typename Visitor::result_type> results;
113 for(
auto& op : operations )
114 results.push_back(op.visit( std::forward<Visitor>( visitor ) ));
119 flat_set<account_id_type>& owner,
120 vector<authority>& other,
121 bool ignore_custom_operation_required_auths )
const;
154 set<public_key_type> get_required_signatures(
156 const flat_set<public_key_type>& available_keys,
157 const std::function<
const authority*(account_id_type)>& get_active,
158 const std::function<
const authority*(account_id_type)>& get_owner,
159 bool allow_non_immediate_owner,
160 bool ignore_custom_operation_required_authorities,
180 const std::function<
const authority*(account_id_type)>& get_active,
181 const std::function<
const authority*(account_id_type)>& get_owner,
183 bool allow_non_immediate_owner,
184 bool ignore_custom_operation_required_auths,
193 set<public_key_type> minimize_required_signatures(
195 const flat_set<public_key_type>& available_keys,
196 const std::function<
const authority*(account_id_type)>& get_active,
197 const std::function<
const authority*(account_id_type)>& get_owner,
199 bool allow_non_immediate_owner,
200 bool ignore_custom_operation_required_auths,
214 virtual const flat_set<public_key_type>& get_signature_keys(
const chain_id_type& chain_id )
const;
241 virtual void validate()
const override;
242 virtual const flat_set<public_key_type>& get_signature_keys(
const chain_id_type& chain_id )
const override;
245 mutable bool _validated =
false;
246 mutable uint64_t _packed_size = 0;
268 void verify_authority(
const vector<operation>& ops,
const flat_set<public_key_type>& sigs,
269 const std::function<
const authority*(account_id_type)>& get_active,
270 const std::function<
const authority*(account_id_type)>& get_owner,
272 bool allow_non_immediate_owner,
273 bool ignore_custom_operation_required_auths,
275 bool allow_committee =
false,
276 const flat_set<account_id_type>& active_approvals = flat_set<account_id_type>(),
277 const flat_set<account_id_type>& owner_approvals = flat_set<account_id_type>() );
virtual const transaction_id_type & id() const
digest_type sig_digest(const chain_id_type &chain_id) const
future_extensions::flat_set_type extensions_type
fc::time_point_sec expiration
Identifies a weighted set of keys and accounts that must approve operations.
#define FC_REFLECT(TYPE, MEMBERS)
Specializes fc::reflector for TYPE.
map< custom_authority_id_type, rejected_predicate > rejected_predicate_map
vector< operation > operations
void verify_authority(const vector< operation > &ops, const flat_set< public_key_type > &sigs, const std::function< const authority *(account_id_type)> &get_active, const std::function< const authority *(account_id_type)> &get_owner, const custom_authority_lookup &get_custom, bool allow_non_immediate_owner, bool ignore_custom_operation_required_auths, uint32_t max_recursion=GRAPHENE_MAX_SIG_CHECK_DEPTH, bool allow_committee=false, const flat_set< account_id_type > &active_approvals=flat_set< account_id_type >(), const flat_set< account_id_type > &owner_approvals=flat_set< account_id_type >())
precomputable_transaction(const signed_transaction &tx)
std::function< vector< authority >(account_id_type, const operation &, rejected_predicate_map *)> custom_authority_lookup
transaction_id_type _tx_id_buffer
flat_set< public_key_type > _signees
groups operations that should be applied atomically
void set_reference_block(const block_id_type &reference_block)
precomputable_transaction(signed_transaction &&tx)
virtual ~transaction()=default
vector< operation_result > operation_results
void set_expiration(fc::time_point_sec expiration_time)
uint32_t ref_block_prefix
#define GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION(type)
extensions_type extensions
#define GRAPHENE_MAX_SIG_CHECK_DEPTH
adds a signature to a transaction
digest_type digest() const
Calculate the digest for a transaction.
void get_required_authorities(flat_set< account_id_type > &active, flat_set< account_id_type > &owner, vector< authority > &other, bool ignore_custom_operation_required_auths) const
precomputable_transaction()
virtual uint64_t get_packed_size() const
virtual void validate() const
#define FC_REFLECT_DERIVED(TYPE, INHERITS, MEMBERS)
Specializes fc::reflector for TYPE where type inherits other reflected classes.
signed_transaction(const transaction &trx=transaction())
processed_transaction(const signed_transaction &trx=signed_transaction())
an elliptic curve private key.
captures the result of evaluating the operations contained in the transaction
vector< signature_type > signatures
vector< typename Visitor::result_type > visit(Visitor &&visitor)
visit all operations
vector< typename Visitor::result_type > visit(Visitor &&visitor) const