diff --git a/libraries/chain/include/graphene/chain/protocol/transaction.hpp b/libraries/chain/include/graphene/chain/protocol/transaction.hpp index e5b3d692..3979de13 100644 --- a/libraries/chain/include/graphene/chain/protocol/transaction.hpp +++ b/libraries/chain/include/graphene/chain/protocol/transaction.hpp @@ -87,16 +87,20 @@ namespace graphene { namespace chain { /// visit all operations template - void visit( Visitor&& visitor ) + vector visit( Visitor&& visitor ) { + vector results; for( auto& op : operations ) - op.visit( std::forward( visitor ) ); + results.push_back(op.visit( std::forward( visitor ) )); + return results; } template - void visit( Visitor&& visitor )const + vector visit( Visitor&& visitor )const { + vector results; for( auto& op : operations ) - op.visit( std::forward( visitor ) ); + results.push_back(op.visit( std::forward( visitor ) )); + return results; } void get_required_authorities( flat_set& active, flat_set& owner, vector& other )const; @@ -157,7 +161,7 @@ namespace graphene { namespace chain { void clear() { operations.clear(); signatures.clear(); } }; - void verify_authority( const vector& ops, const flat_set& sigs, + void verify_authority( const vector& ops, const flat_set& sigs, const std::function& get_active, const std::function& get_owner, uint32_t max_recursion = GRAPHENE_MAX_SIG_CHECK_DEPTH,