Bugfixes.

This commit is contained in:
JoelKatz
2012-06-01 15:41:26 -07:00
parent c32e18d2ff
commit 6be5c42720
2 changed files with 4 additions and 31 deletions

View File

@@ -8,14 +8,13 @@ SerializedTransaction::SerializedTransaction(TransactionType type) : mType(type)
mFormat = getTxnFormat(type);
if (mFormat == NULL) throw std::runtime_error("invalid transaction type");
mMiddleTxn.giveObject(new STUInt32("Magic", TransactionMagic));
mMiddleTxn.giveObject(new STVariableLength("SigningPubKey"));
mMiddleTxn.giveObject(new STAccount("SourceAccount"));
mMiddleTxn.giveObject(new STUInt32("Sequence"));
mMiddleTxn.giveObject(new STUInt16("Type", static_cast<uint16>(type)));
mMiddleTxn.giveObject(new STAmount("Fee"));
mInnerTxn=STObject(mFormat->elements, "InnerTransaction");
mInnerTxn = STObject(mFormat->elements, "InnerTransaction");
}
SerializedTransaction::SerializedTransaction(SerializerIterator& sit, int length)
@@ -27,10 +26,6 @@ SerializedTransaction::SerializedTransaction(SerializerIterator& sit, int length
mSignature.setValue(sit.getVL());
if (sit.get32() != TransactionMagic)
throw std::runtime_error("Transaction has invalid magic");
mMiddleTxn.giveObject(new STUInt32("Magic", TransactionMagic));
mMiddleTxn.giveObject(new STVariableLength("SigningPubKey", sit.getVL()));
STAccount sa("SourceAccount", sit.getVL());
@@ -94,14 +89,11 @@ std::vector<NewcoinAddress> SerializedTransaction::getAffectedAccounts() const
return accounts;
}
int SerializedTransaction::getTransaction(Serializer& s, bool include_length) const
void SerializedTransaction::add(Serializer& s) const
{
int l = getLength();
if (include_length) s.add32(l);
mSignature.add(s);
mMiddleTxn.add(s);
mInnerTxn.add(s);
return l;
}
bool SerializedTransaction::isEquivalent(const SerializedType& t) const
@@ -117,6 +109,7 @@ bool SerializedTransaction::isEquivalent(const SerializedType& t) const
uint256 SerializedTransaction::getSigningHash() const
{
Serializer s;
s.add32(TransactionMagic);
mMiddleTxn.add(s);
mInnerTxn.add(s);
return s.getSHA512Half();
@@ -156,20 +149,6 @@ void SerializedTransaction::setSignature(const std::vector<unsigned char>& sig)
mSignature.setValue(sig);
}
uint32 SerializedTransaction::getVersion() const
{
const STUInt32* v = dynamic_cast<const STUInt32*>(mMiddleTxn.peekAtPIndex(TransactionIVersion));
if (!v) throw std::runtime_error("corrupt transaction");
return v->getValue();
}
void SerializedTransaction::setVersion(uint32 ver)
{
STUInt32* v = dynamic_cast<STUInt32*>(mMiddleTxn.getPIndex(TransactionIVersion));
if (!v) throw std::runtime_error("corrupt transaction");
v->setValue(ver);
}
STAmount SerializedTransaction::getTransactionFee() const
{
const STAmount* v = dynamic_cast<const STAmount*>(mMiddleTxn.peekAtPIndex(TransactionIFee));

View File

@@ -34,7 +34,7 @@ public:
SerializedTypeID getSType() const { return STI_TRANSACTION; }
std::string getFullText() const;
std::string getText() const;
void add(Serializer& s) const { getTransaction(s, true); }
void add(Serializer& s) const;
virtual bool isEquivalent(const SerializedType& t) const;
// outer transaction functions / signature functions
@@ -43,10 +43,6 @@ public:
void setSignature(const std::vector<unsigned char>& s);
uint256 getSigningHash() const;
// middle transaction functions
uint32 getVersion() const;
void setVersion(uint32);
TransactionType getTxnType() const { return mType; }
STAmount getTransactionFee() const;
void setTransactionFee(STAmount saFee);
@@ -111,8 +107,6 @@ public:
std::vector<NewcoinAddress> getAffectedAccounts() const;
// whole transaction functions
int getTransaction(Serializer& s, bool include_length) const;
uint256 getTransactionID() const;
virtual Json::Value getJson(int options) const;