diff --git a/src/transactions/TransactionFrame.cpp b/src/transactions/TransactionFrame.cpp index e86aad11b2..f898831b5a 100644 --- a/src/transactions/TransactionFrame.cpp +++ b/src/transactions/TransactionFrame.cpp @@ -236,7 +236,7 @@ TransactionFrame::getNumOperations() const Resource TransactionFrame::getResources(bool useByteLimitInClassic) const { - int64_t txSize = xdr::xdr_size(mEnvelope); + auto txSize = static_cast(this->getSize()); if (isSoroban()) { auto r = sorobanResources(); @@ -751,7 +751,7 @@ TransactionFrame::validateSorobanResources(SorobanNetworkConfig const& config, return false; } } - auto txSize = xdr::xdr_size(mEnvelope); + auto txSize = this->getSize(); if (txSize > config.txMaxSizeBytes()) { pushSimpleDiagnosticError( @@ -1900,4 +1900,11 @@ TransactionFrame::getDiagnosticEvents() const { return mSorobanExtension->mDiagnosticEvents; } + +uint32_t +TransactionFrame::getSize() const +{ + ZoneScoped; + return static_cast(xdr::xdr_size(mEnvelope)); +} } // namespace stellar diff --git a/src/transactions/TransactionFrame.h b/src/transactions/TransactionFrame.h index cb331409eb..0b36d98cc2 100644 --- a/src/transactions/TransactionFrame.h +++ b/src/transactions/TransactionFrame.h @@ -47,6 +47,9 @@ using TransactionFramePtr = std::shared_ptr; class TransactionFrame : public TransactionFrameBase { + private: + uint32_t getSize() const; + protected: TransactionEnvelope mEnvelope; TransactionResult mResult;