mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Santize locally submited transactions.
This commit is contained in:
@@ -44,6 +44,24 @@ uint32 NetworkOPs::getCurrentLedgerID()
|
||||
return mLedgerMaster->getCurrentLedger()->getLedgerSeq();
|
||||
}
|
||||
|
||||
// Sterilize transaction through serialization.
|
||||
void NetworkOPs::submitTransaction(Transaction::pointer tpTrans)
|
||||
{
|
||||
Serializer s;
|
||||
|
||||
tpTrans->getSTransaction()->add(s);
|
||||
|
||||
std::vector<unsigned char> vucTransaction = s.getData();
|
||||
|
||||
SerializerIterator sit(s);
|
||||
|
||||
Transaction::pointer tpTransNew = Transaction::sharedTransaction(s.getData(), true);
|
||||
|
||||
assert(tpTransNew);
|
||||
|
||||
(void) NetworkOPs::processTransaction(tpTransNew);
|
||||
}
|
||||
|
||||
Transaction::pointer NetworkOPs::processTransaction(Transaction::pointer trans, uint32 tgtLedger, Peer* source)
|
||||
{
|
||||
Transaction::pointer dbtx = theApp->getMasterTransaction().fetch(trans->getID(), true);
|
||||
|
||||
@@ -100,7 +100,11 @@ public:
|
||||
uint256 getCurrentLedger()
|
||||
{ return mLedgerMaster->getCurrentLedger()->getHash(); }
|
||||
|
||||
// transaction operations
|
||||
//
|
||||
// Transaction operations
|
||||
//
|
||||
void submitTransaction(Transaction::pointer tpTrans);
|
||||
|
||||
Transaction::pointer processTransaction(Transaction::pointer transaction, uint32 targetLedger = 0,
|
||||
Peer* source = NULL);
|
||||
Transaction::pointer findTransactionByID(const uint256& transactionID);
|
||||
|
||||
@@ -463,7 +463,7 @@ Json::Value RPCServer::doAccountEmailSet(const Json::Value ¶ms)
|
||||
uint256(),
|
||||
NewcoinAddress());
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -572,7 +572,7 @@ Json::Value RPCServer::doAccountMessageSet(const Json::Value& params) {
|
||||
uint256(),
|
||||
naMessagePubKey);
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -624,7 +624,7 @@ Json::Value RPCServer::doAccountWalletSet(const Json::Value& params) {
|
||||
uWalletLocator,
|
||||
NewcoinAddress());
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -822,7 +822,7 @@ Json::Value RPCServer::doNicknameSet(const Json::Value& params)
|
||||
saMinimumOffer,
|
||||
vucSignature);
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -897,7 +897,7 @@ Json::Value RPCServer::doOfferCreate(const Json::Value ¶ms)
|
||||
saTakerGets,
|
||||
uExpiration);
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -940,7 +940,7 @@ Json::Value RPCServer::doOfferCancel(const Json::Value ¶ms)
|
||||
0, // YYY No source tag
|
||||
uSequence);
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -1026,7 +1026,7 @@ Json::Value RPCServer::doPasswordFund(const Json::Value ¶ms)
|
||||
0, // YYY No source tag
|
||||
naDstAccountID);
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -1112,7 +1112,7 @@ Json::Value RPCServer::doPasswordSet(const Json::Value& params)
|
||||
naRegular0Public.getAccountPublic(),
|
||||
vucGeneratorSig);
|
||||
|
||||
(void) mNetOps->processTransaction(trns);
|
||||
(void) mNetOps->submitTransaction(trns);
|
||||
|
||||
Json::Value obj(Json::objectValue);
|
||||
|
||||
@@ -1186,7 +1186,7 @@ Json::Value RPCServer::doRippleLineSet(const Json::Value& params)
|
||||
saLimitAmount,
|
||||
uAcceptRate);
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -1274,7 +1274,7 @@ Json::Value RPCServer::doRippleLinesGet(const Json::Value ¶ms)
|
||||
// Amount reported is positive if current account hold's other account's IOUs.
|
||||
// Amount reported is negative if other account hold's current account's IOUs.
|
||||
jPeer["balance"] = saBalance.getText();
|
||||
jPeer["currency"] = saBalance.getCurrencyHuman();
|
||||
jPeer["currency"] = saBalance.getHumanCurrency();
|
||||
jPeer["limit"] = saLimit.getText();
|
||||
jPeer["limit_peer"] = saLimitPeer.getText();
|
||||
|
||||
@@ -1424,7 +1424,7 @@ Json::Value RPCServer::doSend(const Json::Value& params)
|
||||
saDstAmount); // Initial funds in XNS.
|
||||
}
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -1434,9 +1434,9 @@ Json::Value RPCServer::doSend(const Json::Value& params)
|
||||
obj["srcAccountID"] = naSrcAccountID.humanAccountID();
|
||||
obj["dstAccountID"] = naDstAccountID.humanAccountID();
|
||||
obj["srcAmount"] = saSrcAmount.getText();
|
||||
obj["srcISO"] = saSrcAmount.getCurrencyHuman();
|
||||
obj["srcISO"] = saSrcAmount.getHumanCurrency();
|
||||
obj["dstAmount"] = saDstAmount.getText();
|
||||
obj["dstISO"] = saDstAmount.getCurrencyHuman();
|
||||
obj["dstISO"] = saDstAmount.getHumanCurrency();
|
||||
|
||||
return obj;
|
||||
}
|
||||
@@ -1810,7 +1810,7 @@ Json::Value RPCServer::doWalletAdd(const Json::Value& params)
|
||||
naNewAccountPublic,
|
||||
vucSignature);
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
@@ -1885,7 +1885,7 @@ Json::Value RPCServer::doWalletClaim(const Json::Value& params)
|
||||
naRegular0Public.getAccountPublic(),
|
||||
vucGeneratorSig);
|
||||
|
||||
(void) mNetOps->processTransaction(trns);
|
||||
(void) mNetOps->submitTransaction(trns);
|
||||
|
||||
Json::Value obj(Json::objectValue);
|
||||
|
||||
@@ -1963,7 +1963,7 @@ Json::Value RPCServer::doWalletCreate(const Json::Value& params)
|
||||
naDstAccountID,
|
||||
saInitialFunds); // Initial funds in XNC.
|
||||
|
||||
(void) mNetOps->processTransaction(trans);
|
||||
(void) mNetOps->submitTransaction(trans);
|
||||
|
||||
obj["transaction"] = trans->getSTransaction()->getJson(0);
|
||||
obj["status"] = trans->getStatus();
|
||||
|
||||
Reference in New Issue
Block a user