diff --git a/src/SerializedTransaction.cpp b/src/SerializedTransaction.cpp index 9f66a25ebe..ec94093f0b 100644 --- a/src/SerializedTransaction.cpp +++ b/src/SerializedTransaction.cpp @@ -12,7 +12,7 @@ SerializedTransaction::SerializedTransaction(TransactionType type) : mType(type) mMiddleTxn.giveObject(new STAccount("SourceAccount")); mMiddleTxn.giveObject(new STUInt32("Sequence")); mMiddleTxn.giveObject(new STUInt16("Type", static_cast(type))); - mMiddleTxn.giveObject(new STUInt64("Fee")); + mMiddleTxn.giveObject(new STAmount("Fee")); mInnerTxn = STObject(mFormat->elements, "InnerTransaction"); } @@ -44,7 +44,7 @@ SerializedTransaction::SerializedTransaction(SerializerIterator& sit) Log(lsERROR) << "Transaction has invalid type"; throw std::runtime_error("Transaction has invalid type"); } - mMiddleTxn.giveObject(new STUInt64("Fee", sit.get64())); + mMiddleTxn.giveObject(STAmount::deserialize(sit, "Fee")); mInnerTxn = STObject(mFormat->elements, sit, "InnerTransaction"); } @@ -151,16 +151,16 @@ void SerializedTransaction::setSignature(const std::vector& sig) mSignature.setValue(sig); } -uint64 SerializedTransaction::getTransactionFee() const +STAmount SerializedTransaction::getTransactionFee() const { - const STUInt64* v = dynamic_cast(mMiddleTxn.peekAtPIndex(TransactionIFee)); + const STAmount* v = dynamic_cast(mMiddleTxn.peekAtPIndex(TransactionIFee)); if (!v) throw std::runtime_error("corrupt transaction"); - return v->getValue(); + return *v; } -void SerializedTransaction::setTransactionFee(uint64 fee) +void SerializedTransaction::setTransactionFee(const STAmount& fee) { - STUInt64* v = dynamic_cast(mMiddleTxn.getPIndex(TransactionIFee)); + STAmount* v = dynamic_cast(mMiddleTxn.getPIndex(TransactionIFee)); if (!v) throw std::runtime_error("corrupt transaction"); v->setValue(fee); } diff --git a/src/SerializedTransaction.h b/src/SerializedTransaction.h index 3e84ab3bf4..13dede1d25 100644 --- a/src/SerializedTransaction.h +++ b/src/SerializedTransaction.h @@ -44,8 +44,8 @@ public: uint256 getSigningHash() const; TransactionType getTxnType() const { return mType; } - uint64 getTransactionFee() const; - void setTransactionFee(uint64 fee); + STAmount getTransactionFee() const; + void setTransactionFee(const STAmount& fee); const NewcoinAddress& getSourceAccount() const { return mSourceAccount; } std::vector getSigningPubKey() const;