mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Cleanups. Move the sequence number into the middle transaction.
This commit is contained in:
@@ -18,7 +18,7 @@ enum SOE_Field
|
||||
sfGeneric=0,
|
||||
|
||||
// common fields
|
||||
sfFlags, sfSequence, sfExtensions, sfTargetLedger, sfSourceTag, sfIdentifier,
|
||||
sfFlags, sfExtensions, sfTargetLedger, sfSourceTag, sfIdentifier,
|
||||
sfDestination, sfTarget, sfAmount, sfCurrency,
|
||||
sfAmountIn, sfAmountOut, sfCurrencyIn, sfCurrencyOut,
|
||||
sfInvoiceID,
|
||||
|
||||
@@ -8,6 +8,7 @@ SerializedTransaction::SerializedTransaction(TransactionType type)
|
||||
|
||||
mMiddleTxn.giveObject(new STUInt32("Magic", TransactionMagic));
|
||||
mMiddleTxn.giveObject(new STVariableLength("SigningAccount"));
|
||||
mMiddleTxn.giveObject(new STUInt32("Sequence"));
|
||||
mMiddleTxn.giveObject(new STUInt8("Type", static_cast<unsigned char>(type)));
|
||||
mMiddleTxn.giveObject(new STUInt64("Fee"));
|
||||
|
||||
@@ -28,6 +29,7 @@ SerializedTransaction::SerializedTransaction(SerializerIterator& sit, int length
|
||||
|
||||
mMiddleTxn.giveObject(new STUInt32("Magic", TransactionMagic));
|
||||
mMiddleTxn.giveObject(new STVariableLength("SigningAccount", sit.getVL()));
|
||||
mMiddleTxn.giveObject(new STUInt32("Sequence", sit.get32()));
|
||||
|
||||
int type=sit.get32();
|
||||
mMiddleTxn.giveObject(new STUInt32("Type", type));
|
||||
@@ -104,32 +106,46 @@ void SerializedTransaction::setSignature(const std::vector<unsigned char>& sig)
|
||||
|
||||
uint32 SerializedTransaction::getVersion() const
|
||||
{
|
||||
const STUInt32* v=dynamic_cast<const STUInt32*>(mMiddleTxn.peekAtPIndex(0));
|
||||
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(0));
|
||||
STUInt32* v=dynamic_cast<STUInt32*>(mMiddleTxn.getPIndex(TransactionIVersion));
|
||||
if(!v) throw(std::runtime_error("corrupt transaction"));
|
||||
v->setValue(ver);
|
||||
}
|
||||
|
||||
uint64 SerializedTransaction::getTransactionFee() const
|
||||
{
|
||||
const STUInt64* v=dynamic_cast<const STUInt64*>(mMiddleTxn.peekAtPIndex(3));
|
||||
const STUInt64* v=dynamic_cast<const STUInt64*>(mMiddleTxn.peekAtPIndex(TransactionIFee));
|
||||
if(!v) throw(std::runtime_error("corrupt transaction"));
|
||||
return v->getValue();
|
||||
}
|
||||
|
||||
void SerializedTransaction::setTransactionFee(uint64 fee)
|
||||
{
|
||||
STUInt64* v=dynamic_cast<STUInt64*>(mMiddleTxn.getPIndex(3));
|
||||
STUInt64* v=dynamic_cast<STUInt64*>(mMiddleTxn.getPIndex(TransactionIFee));
|
||||
if(!v) throw(std::runtime_error("corrupt transaction"));
|
||||
v->setValue(fee);
|
||||
}
|
||||
|
||||
uint32 SerializedTransaction::getSequence() const
|
||||
{
|
||||
const STUInt32* v=dynamic_cast<const STUInt32*>(mMiddleTxn.peekAtPIndex(TransactionISequence));
|
||||
if(!v) throw(std::runtime_error("corrupt transaction"));
|
||||
return v->getValue();
|
||||
}
|
||||
|
||||
void SerializedTransaction::setSequence(uint32 seq)
|
||||
{
|
||||
STUInt32* v=dynamic_cast<STUInt32*>(mMiddleTxn.getPIndex(TransactionISequence));
|
||||
if(!v) throw(std::runtime_error("corrupt transaction"));
|
||||
v->setValue(seq);
|
||||
}
|
||||
|
||||
int SerializedTransaction::getITFieldIndex(SOE_Field field) const
|
||||
{
|
||||
return mInnerTxn.getFieldIndex(field);
|
||||
|
||||
@@ -70,15 +70,15 @@ public:
|
||||
uint256 getITFieldH256(SOE_Field field) const { return mInnerTxn.getValueFieldH256(field); }
|
||||
std::vector<unsigned char> getITFieldVL(SOE_Field field) const { return mInnerTxn.getValueFieldVL(field); }
|
||||
std::vector<TaggedListItem> getITFieldTL(SOE_Field field) const { return mInnerTxn.getValueFieldTL(field); }
|
||||
void SetITFieldU8(SOE_Field field, unsigned char v) { return mInnerTxn.setValueFieldU8(field, v); }
|
||||
void SetITFieldU16(SOE_Field field, uint16 v) { return mInnerTxn.setValueFieldU16(field, v); }
|
||||
void SetITFieldU32(SOE_Field field, uint32 v) { return mInnerTxn.setValueFieldU32(field, v); }
|
||||
void SetITFieldU64(SOE_Field field, uint32 v) { return mInnerTxn.setValueFieldU64(field, v); }
|
||||
void SetITFieldH160(SOE_Field field, const uint160& v) { return mInnerTxn.setValueFieldH160(field, v); }
|
||||
void SetITFieldH256(SOE_Field field, const uint256& v) { return mInnerTxn.setValueFieldH256(field, v); }
|
||||
void SetITFieldVL(SOE_Field field, const std::vector<unsigned char>& v)
|
||||
void setITFieldU8(SOE_Field field, unsigned char v) { return mInnerTxn.setValueFieldU8(field, v); }
|
||||
void setITFieldU16(SOE_Field field, uint16 v) { return mInnerTxn.setValueFieldU16(field, v); }
|
||||
void setITFieldU32(SOE_Field field, uint32 v) { return mInnerTxn.setValueFieldU32(field, v); }
|
||||
void setITFieldU64(SOE_Field field, uint32 v) { return mInnerTxn.setValueFieldU64(field, v); }
|
||||
void setITFieldH160(SOE_Field field, const uint160& v) { return mInnerTxn.setValueFieldH160(field, v); }
|
||||
void setITFieldH256(SOE_Field field, const uint256& v) { return mInnerTxn.setValueFieldH256(field, v); }
|
||||
void setITFieldVL(SOE_Field field, const std::vector<unsigned char>& v)
|
||||
{ return mInnerTxn.setValueFieldVL(field, v); }
|
||||
void SetITFieldTL(SOE_Field field, const std::vector<TaggedListItem>& v)
|
||||
void setITFieldTL(SOE_Field field, const std::vector<TaggedListItem>& v)
|
||||
{ return mInnerTxn.setValueFieldTL(field, v); }
|
||||
|
||||
// optional field functions
|
||||
|
||||
@@ -7,7 +7,6 @@ TransactionFormat InnerTxnFormats[]=
|
||||
{
|
||||
{ "MakePayment", ttMAKE_PAYMENT, {
|
||||
{ S_FIELD(Flags), STI_UINT16, SOE_FLAGS, 0 },
|
||||
{ S_FIELD(Sequence), STI_UINT32, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(Destination), STI_ACCOUNT, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(Amount), STI_UINT64, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(Currency), STI_HASH160, SOE_IFFLAG, 1 },
|
||||
@@ -19,7 +18,6 @@ TransactionFormat InnerTxnFormats[]=
|
||||
},
|
||||
{ "Invoice", ttINVOICE, {
|
||||
{ S_FIELD(Flags), STI_UINT16, SOE_FLAGS, 0 },
|
||||
{ S_FIELD(Sequence), STI_UINT32, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(Target), STI_ACCOUNT, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(Amount), STI_UINT64, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(Currency), STI_HASH160, SOE_IFFLAG, 1 },
|
||||
@@ -32,7 +30,6 @@ TransactionFormat InnerTxnFormats[]=
|
||||
},
|
||||
{ "Offer", ttEXCHANGE_OFFER, {
|
||||
{ S_FIELD(Flags), STI_UINT16, SOE_FLAGS, 0 },
|
||||
{ S_FIELD(Sequence), STI_UINT32, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(AmountIn), STI_UINT64, SOE_REQUIRED, 0 },
|
||||
{ S_FIELD(CurrencyIn), STI_HASH160, SOE_IFFLAG, 2 },
|
||||
{ S_FIELD(AmountOut), STI_UINT64, SOE_REQUIRED, 0 },
|
||||
|
||||
Reference in New Issue
Block a user