From abccd3aeb627eef49a33429a87233b853bb22d86 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Fri, 18 May 2012 20:17:28 -0700 Subject: [PATCH] More toward using STAmount. --- src/Ledger.h | 2 +- src/SerializedTransaction.cpp | 6 +++--- src/SerializedTypes.h | 1 + src/Transaction.cpp | 4 ++-- src/TransactionEngine.cpp | 6 +++++- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Ledger.h b/src/Ledger.h index c9e1390b8..665f5a145 100644 --- a/src/Ledger.h +++ b/src/Ledger.h @@ -99,7 +99,7 @@ public: const uint256& getParentHash() const { return mParentHash; } const uint256& getTransHash() const { return mTransHash; } const uint256& getAccountHash() const { return mAccountHash; } - STAmount getTotalCoins() const { return mTotCoins; } + uint64 getTotalCoins() const { return mTotCoins; } uint64 getCloseTimeNC() const { return mCloseTime; } uint32 getLedgerSeq() const { return mLedgerSeq; } uint16 getInterval() const { return mLedgerInterval; } diff --git a/src/SerializedTransaction.cpp b/src/SerializedTransaction.cpp index bfa342a5e..ebdf54d7d 100644 --- a/src/SerializedTransaction.cpp +++ b/src/SerializedTransaction.cpp @@ -11,7 +11,7 @@ SerializedTransaction::SerializedTransaction(TransactionType type) : mType(type) mMiddleTxn.giveObject(new STAccount("SourceAccount")); mMiddleTxn.giveObject(new STUInt32("Sequence")); mMiddleTxn.giveObject(new STUInt8("Type", static_cast(type))); - mMiddleTxn.giveObject(new STUInt64("Fee")); + mMiddleTxn.giveObject(new STAmount("Fee")); mInnerTxn=STObject(mFormat->elements, "InnerTransaction"); } @@ -37,7 +37,7 @@ SerializedTransaction::SerializedTransaction(SerializerIterator& sit, int length mMiddleTxn.giveObject(new STUInt32("Type", static_cast(mType))); mFormat = getTxnFormat(mType); if (!mFormat) throw std::runtime_error("Transaction has invalid type"); - mMiddleTxn.giveObject(new STUInt64("Fee", sit.get64())); + mMiddleTxn.giveObject(new STAmount("Fee", sit.get64())); mInnerTxn = STObject(mFormat->elements, sit, "InnerTransaction"); } @@ -169,7 +169,7 @@ STAmount SerializedTransaction::getTransactionFee() const void SerializedTransaction::setTransactionFee(STAmount saFee) { - STUInt64* v = dynamic_cast(mMiddleTxn.getPIndex(TransactionIFee)); + STAmount* v = dynamic_cast(mMiddleTxn.getPIndex(TransactionIFee)); if (!v) throw std::runtime_error("corrupt transaction"); v->setValue(saFee); } diff --git a/src/SerializedTypes.h b/src/SerializedTypes.h index b10a9cbdc..8cd7d33b9 100644 --- a/src/SerializedTypes.h +++ b/src/SerializedTypes.h @@ -227,6 +227,7 @@ public: int getOffset() const { return mOffset; } uint64 getValue() const { return mValue; } + void setValue(const STAmount& v) { mValue=v; } bool isNative() const { return mIsNative; } const uint160& getCurrency() const { return mCurrency; } void zero() { mOffset = mIsNative ? -100 : 0; mValue = 0; } diff --git a/src/Transaction.cpp b/src/Transaction.cpp index d7ffcbf24..167469f44 100644 --- a/src/Transaction.cpp +++ b/src/Transaction.cpp @@ -159,7 +159,7 @@ Transaction::pointer Transaction::setCreate( { mTransaction->setITFieldU32(sfFlags, tfCreateAccount); mTransaction->setITFieldAccount(sfDestination, naCreateAccountID); - mTransaction->setITFieldU64(sfAmount, uFund); + mTransaction->setITFieldAmount(sfAmount, uFund); sign(naPrivateKey); @@ -192,7 +192,7 @@ Transaction::pointer Transaction::setPayment( STAmount saAmount) { mTransaction->setITFieldAccount(sfDestination, toAccount); - mTransaction->setITFieldU64(sfAmount, saAmount); + mTransaction->setITFieldAmount(sfAmount, saAmount); sign(naPrivateKey); diff --git a/src/TransactionEngine.cpp b/src/TransactionEngine.cpp index c907819f6..a693b4758 100644 --- a/src/TransactionEngine.cpp +++ b/src/TransactionEngine.cpp @@ -120,7 +120,11 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran if (saSrcBalance < saPaid) { - std::cerr << "applyTransaction: Delay transaction: insufficent balance" << std::endl; + std::cerr + << str(boost::format("applyTransaction: Delay transaction: insufficent balance: balance=%s paid=%s") + % saSrcBalance + % saPaid) + << std::endl; return terINSUF_FEE_B; }