diff --git a/src/SerializedTransaction.cpp b/src/SerializedTransaction.cpp index 3b1f7fdc8f..205ac767e2 100644 --- a/src/SerializedTransaction.cpp +++ b/src/SerializedTransaction.cpp @@ -75,6 +75,21 @@ std::string SerializedTransaction::getText() const return ret; } +std::vector SerializedTransaction::getAffectedAccounts() const +{ + std::vector accounts; + accounts.push_back(mSourceAccount); + + for(boost::ptr_vector::const_iterator it = mInnerTxn.peekData().begin(), + end = mInnerTxn.peekData().end(); it != end ; ++it) + { + const STAccount* sa = dynamic_cast(&*it); + if (sa != NULL) // FIXME: Should we check for duplicates? + accounts.push_back(sa->getValueNCA()); + } + return accounts; +} + int SerializedTransaction::getTransaction(Serializer& s, bool include_length) const { int l = getLength(); diff --git a/src/SerializedTransaction.h b/src/SerializedTransaction.h index bdcae423d2..00c221bef0 100644 --- a/src/SerializedTransaction.h +++ b/src/SerializedTransaction.h @@ -103,6 +103,8 @@ public: void makeITFieldPresent(SOE_Field field); void makeITFieldAbsent(SOE_Field field); + std::vector getAffectedAccounts() const; + // whole transaction functions int getTransaction(Serializer& s, bool include_length) const; uint256 getTransactionID() const;