diff --git a/JSONRPC__test_8cpp_source.html b/JSONRPC__test_8cpp_source.html
index 94ea47c941..1f83e1b4bf 100644
--- a/JSONRPC__test_8cpp_source.html
+++ b/JSONRPC__test_8cpp_source.html
@@ -2729,15 +2729,15 @@ $(function() {
Unserialize a JSON document into a Value.
-Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
virtual LoadFeeTrack & getFeeTrack()=0
-Json::Value checkFee(Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
Fill in the fee on behalf of the client.
+Json::Value checkFee(Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
Fill in the fee on behalf of the client.
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
-Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
virtual Config & config()=0
@@ -2747,11 +2747,11 @@ $(function() {
bool set(T &target, std::string const &name, Section const §ion)
Set a value from a configuration Section If the named value is not found or doesn't parse as a T,...
-Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
Json::Value trust(AccountID const &account, STAmount const &amount, std::uint32_t flags=0)
const std::array< char const *const, 4 > expMsg
-Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
diff --git a/SignFor_8cpp_source.html b/SignFor_8cpp_source.html
index 81d69b7a70..9d04c8c954 100644
--- a/SignFor_8cpp_source.html
+++ b/SignFor_8cpp_source.html
@@ -143,7 +143,7 @@ $(function() {
virtual Config & config()=0
-Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
std::chrono::seconds getValidatedLedgerAge()
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
diff --git a/SignHandler_8cpp_source.html b/SignHandler_8cpp_source.html
index 2da75c4c89..c15b08f63c 100644
--- a/SignHandler_8cpp_source.html
+++ b/SignHandler_8cpp_source.html
@@ -140,7 +140,7 @@ $(function() {
virtual Config & config()=0
-Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
bool isMember(const char *key) const
Return true if the object has a member named key.
diff --git a/SubmitMultiSigned_8cpp_source.html b/SubmitMultiSigned_8cpp_source.html
index 115e67a436..e2a48f45d7 100644
--- a/SubmitMultiSigned_8cpp_source.html
+++ b/SubmitMultiSigned_8cpp_source.html
@@ -132,7 +132,7 @@ $(function() {
LedgerMaster & ledgerMaster
Json::Value doSubmitMultiSigned(RPC::JsonContext &)
-Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
ProcessTransactionFn getProcessTxnFn(NetworkOPs &netOPs)
diff --git a/Submit_8cpp_source.html b/Submit_8cpp_source.html
index f0712cba30..f72622c482 100644
--- a/Submit_8cpp_source.html
+++ b/Submit_8cpp_source.html
@@ -296,7 +296,7 @@ $(function() {
std::pair< Validity, std::string > checkValidity(HashRouter &router, STTx const &tx, Rules const &rules, Config const &config)
Checks transaction signature and local checks.
Json::Value doSubmit(RPC::JsonContext &)
-Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
virtual Config & config()=0
static NetworkOPs::FailHard getFailHard(RPC::JsonContext const &context)
diff --git a/TransactionSign_8cpp_source.html b/TransactionSign_8cpp_source.html
index 3f0fbb4e50..3fd40390d3 100644
--- a/TransactionSign_8cpp_source.html
+++ b/TransactionSign_8cpp_source.html
@@ -91,1238 +91,1244 @@ $(function() {
20 #include <ripple/app/ledger/LedgerMaster.h>
21 #include <ripple/app/ledger/OpenLedger.h>
22 #include <ripple/app/main/Application.h>
- 23 #include <ripple/app/misc/LoadFeeTrack.h>
- 24 #include <ripple/app/misc/Transaction.h>
- 25 #include <ripple/app/misc/TxQ.h>
- 26 #include <ripple/app/paths/Pathfinder.h>
- 27 #include <ripple/app/tx/apply.h>
- 28 #include <ripple/basics/Log.h>
- 29 #include <ripple/basics/mulDiv.h>
- 30 #include <ripple/json/json_writer.h>
- 31 #include <ripple/net/RPCErr.h>
- 32 #include <ripple/protocol/ErrorCodes.h>
- 33 #include <ripple/protocol/Feature.h>
- 34 #include <ripple/protocol/STAccount.h>
- 35 #include <ripple/protocol/STParsedJSON.h>
- 36 #include <ripple/protocol/Sign.h>
- 37 #include <ripple/protocol/TxFlags.h>
- 38 #include <ripple/rpc/impl/LegacyPathFind.h>
- 39 #include <ripple/rpc/impl/RPCHelpers.h>
- 40 #include <ripple/rpc/impl/TransactionSign.h>
- 41 #include <ripple/rpc/impl/Tuning.h>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 128 bool const isMasterKey = publicKeyAcctID == accountID;
-
-
-
-
-
-
-
-
-
-
-
- 140 auto const& sle = *accountState;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 167 if (tx_json[jss::TransactionType].asString() != jss::Payment)
-
-
-
- 171 if (tx_json.
isMember(jss::DeliverMax))
-
-
-
- 175 if (tx_json[jss::DeliverMax] != tx_json[jss::Amount])
-
-
- 178 "Cannot specify differing 'Amount' and 'DeliverMax'");
-
-
- 181 tx_json[jss::Amount] = tx_json[jss::DeliverMax];
-
-
-
-
-
-
-
-
-
-
-
-
- 194 if (!tx_json.
isMember(jss::Destination))
-
-
- 197 auto const dstAccountID =
- 198 parseBase58<AccountID>(tx_json[jss::Destination].asString());
-
-
-
- 202 if ((doPath ==
false) && params.
isMember(jss::build_path))
-
-
- 205 "Field 'build_path' not allowed in this context.");
-
-
-
-
- 210 "Cannot specify both 'tx_json.Paths' and 'build_path'");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 242 std::make_shared<RippleLineCache>(
- 243 ledger, app.
journal(
"RippleLineCache")),
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 262 auto j = app.
journal(
"RPCHandler");
- 263 JLOG(j.debug()) <<
"transactionSign: build_path: "
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 301 if (!tx_json.
isMember(jss::TransactionType))
-
-
-
-
-
- 307 if (!tx_json.
isMember(jss::Account))
-
-
-
-
-
-
- 314 auto const srcAddressID =
- 315 parseBase58<AccountID>(tx_json[jss::Account].asString());
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 344 ret.
second = *srcAddressID;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 377 static transactionPreProcessResult
-
-
-
-
-
-
-
- 385 auto j = app.
journal(
"RPCHandler");
-
-
-
-
-
-
-
- 393 !(params.
isMember(jss::offline) && params[jss::offline].
asBool());
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 411 return std::move(txJsonResult);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 426 JLOG(j.debug()) <<
"transactionSign: Failed to find source account "
- 427 <<
"in current ledger: " <<
toBase58(srcAddressID);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 459 if (!tx_json.
isMember(jss::Sequence))
-
- 461 bool const hasTicketSeq =
-
- 463 if (!hasTicketSeq && !sle)
-
-
- 466 <<
"transactionSign: Failed to find source account "
- 467 <<
"in current ledger: " <<
toBase58(srcAddressID);
-
-
-
- 471 tx_json[jss::Sequence] =
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 516 if (!parsed.
object.has_value())
-
-
- 519 err[jss::error] = parsed.
error[jss::error];
- 520 err[jss::error_code] = parsed.
error[jss::error_code];
- 521 err[jss::error_message] = parsed.
error[jss::error_message];
-
-
-
-
-
-
-
-
- 530 parsed.
object->setFieldVL(
-
-
-
- 534 stpTrans = std::make_shared<STTx>(std::move(parsed.
object.value()));
-
-
-
-
-
-
-
-
-
- 544 "Exception occurred constructing serialized transaction");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 563 stpTrans->sign(pk, sk);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 581 tpTrans = std::make_shared<Transaction>(stpTrans, reason, app);
- 582 if (tpTrans->getStatus() !=
NEW)
-
-
- 585 rpcINTERNAL,
"Unable to construct transaction: " + reason);
-
-
-
-
-
-
-
-
-
-
-
- 597 tpTrans->getSTransaction()->add(s);
-
-
-
-
- 602 auto sttxNew = std::make_shared<STTx const>(sit);
-
-
-
- 606 sttxNew->getTransactionID(),
-
-
-
-
-
-
-
-
-
-
-
- 618 std::make_shared<Transaction>(sttxNew, reason, app);
-
-
-
- 622 if (!tpTransNew->getSTransaction()->isEquivalent(
- 623 *tpTrans->getSTransaction()))
-
-
-
- 627 tpTrans = std::move(tpTransNew);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 643 ret.
second = std::move(tpTrans);
-
-
-
-
-
-
-
-
-
-
-
- 655 jvResult[jss::tx_json] =
-
- 657 jvResult[jss::hash] =
to_string(tpTrans->getID());
-
-
-
-
- 662 jvResult[jss::tx_blob] =
- 663 strHex(tpTrans->getSTransaction()->getSerializer().peekData());
-
-
-
-
-
-
-
-
- 672 jvResult[jss::engine_result] = sToken;
- 673 jvResult[jss::engine_result_code] = tpTrans->getResult();
- 674 jvResult[jss::engine_result_message] = sHuman;
-
-
-
-
-
- 680 rpcINTERNAL,
"Exception occurred during JSON handling.");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 708 if (request.
isMember(jss::fee_mult_max))
-
- 710 if (request[jss::fee_mult_max].isInt())
-
- 712 mult = request[jss::fee_mult_max].
asInt();
-
-
-
-
- 717 jss::fee_mult_max,
"a positive integer"));
-
-
-
-
-
-
- 724 jss::fee_mult_max,
"a positive integer"));
-
-
- 727 if (request.
isMember(jss::fee_div_max))
-
- 729 if (request[jss::fee_div_max].isInt())
-
- 731 div = request[jss::fee_div_max].
asInt();
-
-
-
-
- 736 jss::fee_div_max,
"a positive integer"));
-
-
-
-
-
-
- 743 jss::fee_div_max,
"a positive integer"));
-
-
-
-
-
-
-
-
-
-
-
-
- 756 auto const baseFee = ledger->fees().base;
-
-
-
-
-
- 762 auto const limit = [&]() {
-
- 764 auto const result =
mulDiv(feeDefault, mult, div);
-
- 766 Throw<std::overflow_error>(
"mulDiv");
-
-
-
-
-
-
- 773 ss <<
"Fee of " << fee <<
" exceeds the requested tx limit of "
-
-
-
-
-
-
-
-
-
+ 23 #include <ripple/app/misc/DeliverMax.h>
+ 24 #include <ripple/app/misc/LoadFeeTrack.h>
+ 25 #include <ripple/app/misc/Transaction.h>
+ 26 #include <ripple/app/misc/TxQ.h>
+ 27 #include <ripple/app/paths/Pathfinder.h>
+ 28 #include <ripple/app/tx/apply.h>
+ 29 #include <ripple/basics/Log.h>
+ 30 #include <ripple/basics/mulDiv.h>
+ 31 #include <ripple/json/json_writer.h>
+ 32 #include <ripple/net/RPCErr.h>
+ 33 #include <ripple/protocol/ErrorCodes.h>
+ 34 #include <ripple/protocol/Feature.h>
+ 35 #include <ripple/protocol/STAccount.h>
+ 36 #include <ripple/protocol/STParsedJSON.h>
+ 37 #include <ripple/protocol/Sign.h>
+ 38 #include <ripple/protocol/TxFlags.h>
+ 39 #include <ripple/rpc/impl/LegacyPathFind.h>
+ 40 #include <ripple/rpc/impl/RPCHelpers.h>
+ 41 #include <ripple/rpc/impl/TransactionSign.h>
+ 42 #include <ripple/rpc/impl/Tuning.h>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 129 bool const isMasterKey = publicKeyAcctID == accountID;
+
+
+
+
+
+
+
+
+
+
+
+ 141 auto const& sle = *accountState;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 168 if (tx_json[jss::TransactionType].asString() != jss::Payment)
+
+
+
+ 172 if (tx_json.
isMember(jss::DeliverMax))
+
+
+
+ 176 if (tx_json[jss::DeliverMax] != tx_json[jss::Amount])
+
+
+ 179 "Cannot specify differing 'Amount' and 'DeliverMax'");
+
+
+ 182 tx_json[jss::Amount] = tx_json[jss::DeliverMax];
+
+
+
+
+
+
+
+
+
+
+
+
+ 195 if (!tx_json.
isMember(jss::Destination))
+
+
+ 198 auto const dstAccountID =
+ 199 parseBase58<AccountID>(tx_json[jss::Destination].asString());
+
+
+
+ 203 if ((doPath ==
false) && params.
isMember(jss::build_path))
+
+
+ 206 "Field 'build_path' not allowed in this context.");
+
+
+
+
+ 211 "Cannot specify both 'tx_json.Paths' and 'build_path'");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 243 std::make_shared<RippleLineCache>(
+ 244 ledger, app.
journal(
"RippleLineCache")),
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 263 auto j = app.
journal(
"RPCHandler");
+ 264 JLOG(j.debug()) <<
"transactionSign: build_path: "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 302 if (!tx_json.
isMember(jss::TransactionType))
+
+
+
+
+
+ 308 if (!tx_json.
isMember(jss::Account))
+
+
+
+
+
+
+ 315 auto const srcAddressID =
+ 316 parseBase58<AccountID>(tx_json[jss::Account].asString());
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 345 ret.
second = *srcAddressID;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 378 static transactionPreProcessResult
+
+
+
+
+
+
+
+ 386 auto j = app.
journal(
"RPCHandler");
+
+
+
+
+
+
+
+ 394 !(params.
isMember(jss::offline) && params[jss::offline].
asBool());
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 412 return std::move(txJsonResult);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 427 JLOG(j.debug()) <<
"transactionSign: Failed to find source account "
+ 428 <<
"in current ledger: " <<
toBase58(srcAddressID);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 460 if (!tx_json.
isMember(jss::Sequence))
+
+ 462 bool const hasTicketSeq =
+
+ 464 if (!hasTicketSeq && !sle)
+
+
+ 467 <<
"transactionSign: Failed to find source account "
+ 468 <<
"in current ledger: " <<
toBase58(srcAddressID);
+
+
+
+ 472 tx_json[jss::Sequence] =
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 517 if (!parsed.
object.has_value())
+
+
+ 520 err[jss::error] = parsed.
error[jss::error];
+ 521 err[jss::error_code] = parsed.
error[jss::error_code];
+ 522 err[jss::error_message] = parsed.
error[jss::error_message];
+
+
+
+
+
+
+
+
+ 531 parsed.
object->setFieldVL(
+
+
+
+ 535 stpTrans = std::make_shared<STTx>(std::move(parsed.
object.value()));
+
+
+
+
+
+
+
+
+
+ 545 "Exception occurred constructing serialized transaction");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 564 stpTrans->sign(pk, sk);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 582 tpTrans = std::make_shared<Transaction>(stpTrans, reason, app);
+ 583 if (tpTrans->getStatus() !=
NEW)
+
+
+ 586 rpcINTERNAL,
"Unable to construct transaction: " + reason);
+
+
+
+
+
+
+
+
+
+
+
+ 598 tpTrans->getSTransaction()->add(s);
+
+
+
+
+ 603 auto sttxNew = std::make_shared<STTx const>(sit);
+
+
+
+ 607 sttxNew->getTransactionID(),
+
+
+
+
+
+
+
+
+
+
+
+ 619 std::make_shared<Transaction>(sttxNew, reason, app);
+
+
+
+ 623 if (!tpTransNew->getSTransaction()->isEquivalent(
+ 624 *tpTrans->getSTransaction()))
+
+
+
+ 628 tpTrans = std::move(tpTransNew);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 644 ret.
second = std::move(tpTrans);
+
+
+
+
+
+
+
+
+
+
+
+ 656 jvResult[jss::tx_json] =
+
+ 658 jvResult[jss::hash] =
to_string(tpTrans->getID());
+
+
+
+
+
+ 664 jvResult[jss::tx_json],
+ 665 tpTrans->getSTransaction()->getTxnType(),
+
+
+ 668 jvResult[jss::tx_blob] =
+ 669 strHex(tpTrans->getSTransaction()->getSerializer().peekData());
+
+
+
+
+
+
+
+
+ 678 jvResult[jss::engine_result] = sToken;
+ 679 jvResult[jss::engine_result_code] = tpTrans->getResult();
+ 680 jvResult[jss::engine_result_message] = sHuman;
+
+
+
+
+
+ 686 rpcINTERNAL,
"Exception occurred during JSON handling.");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 714 if (request.
isMember(jss::fee_mult_max))
+
+ 716 if (request[jss::fee_mult_max].isInt())
+
+ 718 mult = request[jss::fee_mult_max].
asInt();
+
+
+
+
+ 723 jss::fee_mult_max,
"a positive integer"));
+
+
+
+
+
+
+ 730 jss::fee_mult_max,
"a positive integer"));
+
+
+ 733 if (request.
isMember(jss::fee_div_max))
+
+ 735 if (request[jss::fee_div_max].isInt())
+
+ 737 div = request[jss::fee_div_max].
asInt();
+
+
+
+
+ 742 jss::fee_div_max,
"a positive integer"));
+
+
+
+
+
+
+ 749 jss::fee_div_max,
"a positive integer"));
+
+
+
+
+
+
+
+
+
+
+
+
+ 762 auto const baseFee = ledger->fees().base;
+
+
+
+
+
+ 768 auto const limit = [&]() {
+
+ 770 auto const result =
mulDiv(feeDefault, mult, div);
+
+ 772 Throw<std::overflow_error>(
"mulDiv");
+
+
+
+
+
+
+ 779 ss <<
"Fee of " << fee <<
" exceeds the requested tx limit of "
+
+
+
-
-
-
-
-
-
-
-
-
- 794 using namespace detail;
-
- 796 auto j = app.
journal(
"RPCHandler");
- 797 JLOG(j.debug()) <<
"transactionSign: " << jvRequest;
-
-
- 800 SigningForParams signForParams;
-
- 802 jvRequest, role, signForParams, validatedLedgerAge, app);
-
- 804 if (!preprocResult.second)
- 805 return preprocResult.first;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 800 using namespace detail;
+
+ 802 auto j = app.
journal(
"RPCHandler");
+ 803 JLOG(j.debug()) <<
"transactionSign: " << jvRequest;
+
+
+ 806 SigningForParams signForParams;
+
+ 808 jvRequest, role, signForParams, validatedLedgerAge, app);
+
+ 810 if (!preprocResult.second)
+ 811 return preprocResult.first;
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
- 834 using namespace detail;
-
-
- 837 auto j = app.
journal(
"RPCHandler");
- 838 JLOG(j.debug()) <<
"transactionSubmit: " << jvRequest;
-
-
- 841 SigningForParams signForParams;
-
- 843 jvRequest, role, signForParams, validatedLedgerAge, app);
-
- 845 if (!preprocResult.second)
- 846 return preprocResult.first;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 863 rpcINTERNAL,
"Exception occurred during transaction submission.");
-
-
-
-
-
-
-
-
-
-
-
- 875 if (!jvRequest.
isMember(jss::tx_json))
-
-
- 878 Json::Value const& tx_json(jvRequest[jss::tx_json]);
-
-
-
-
-
-
-
- 886 if (!tx_json.
isMember(jss::Sequence))
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 840 using namespace detail;
+
+
+ 843 auto j = app.
journal(
"RPCHandler");
+ 844 JLOG(j.debug()) <<
"transactionSubmit: " << jvRequest;
+
+
+ 847 SigningForParams signForParams;
+
+ 849 jvRequest, role, signForParams, validatedLedgerAge, app);
+
+ 851 if (!preprocResult.second)
+ 852 return preprocResult.first;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 869 rpcINTERNAL,
"Exception occurred during transaction submission.");
+
+
+
+
+
+
+
+
+
+
+
+ 881 if (!jvRequest.
isMember(jss::tx_json))
+
+
+ 884 Json::Value const& tx_json(jvRequest[jss::tx_json]);
+
+
+
-
-
-
-
-
-
- 895 "When multi-signing 'tx_json.SigningPubKey' must be empty.");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 914 return (a[sfAccount] < b[sfAccount]);
-
-
-
-
-
-
-
- 922 return (a[sfAccount] == b[sfAccount]);
-
-
- 925 if (dupIter != signers.end())
-
-
- 928 err <<
"Duplicate Signers:Signer:Account entries ("
-
-
-
-
-
-
-
-
-
- 938 [&signingForID](
STObject const& elem) {
- 939 return elem[sfAccount] == signingForID;
-
-
-
- 943 err <<
"A Signer may not be the transaction's Account ("
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 963 auto j = app.
journal(
"RPCHandler");
- 964 JLOG(j.debug()) <<
"transactionSignFor: " << jvRequest;
-
-
- 967 const char accountField[] =
"account";
-
- 969 if (!jvRequest.
isMember(accountField))
-
+
+
+
+ 892 if (!tx_json.
isMember(jss::Sequence))
+
+
+
+
+
+
+
+
+ 901 "When multi-signing 'tx_json.SigningPubKey' must be empty.");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 920 return (a[sfAccount] < b[sfAccount]);
+
+
+
+
+
+
+
+ 928 return (a[sfAccount] == b[sfAccount]);
+
+
+ 931 if (dupIter != signers.end())
+
+
+ 934 err <<
"Duplicate Signers:Signer:Account entries ("
+
+
+
+
+
+
+
+
+
+ 944 [&signingForID](
STObject const& elem) {
+ 945 return elem[sfAccount] == signingForID;
+
+
+
+ 949 err <<
"A Signer may not be the transaction's Account ("
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 969 auto j = app.
journal(
"RPCHandler");
+ 970 JLOG(j.debug()) <<
"transactionSignFor: " << jvRequest;
-
- 973 auto const signerAccountID =
- 974 parseBase58<AccountID>(jvRequest[accountField].asString());
- 975 if (!signerAccountID)
-
-
-
-
-
- 981 if (!jvRequest.
isMember(jss::tx_json))
-
-
-
-
+
+ 973 const char accountField[] =
"account";
+
+ 975 if (!jvRequest.
isMember(accountField))
+
+
+
+ 979 auto const signerAccountID =
+ 980 parseBase58<AccountID>(jvRequest[accountField].asString());
+ 981 if (!signerAccountID)
+
+
+
+
-
-
+ 987 if (!jvRequest.
isMember(jss::tx_json))
+
-
-
-
-
-
+
+
+
+
+
-
-
- 998 using namespace detail;
-
-
-
-
-
-
-
-
-
- 1008 SigningForParams signForParams(
- 1009 *signerAccountID, multiSignPubKey, multiSignature);
+
+
+
+
+
+
+
+
+ 1004 using namespace detail;
+
+
+
+
+
-
- 1012 jvRequest, role, signForParams, validatedLedgerAge, app);
-
- 1014 if (!preprocResult.second)
- 1015 return preprocResult.first;
+
+
+
+ 1014 SigningForParams signForParams(
+ 1015 *signerAccountID, multiSignPubKey, multiSignature);
-
-
-
-
-
-
-
-
-
-
-
-
- 1029 auto& sttx = preprocResult.second;
-
-
-
-
-
-
-
-
-
-
-
- 1041 auto& signers = sttx->peekFieldArray(
sfSigners);
- 1042 signers.emplace_back(std::move(signer));
-
-
-
-
-
-
+
+ 1018 jvRequest, role, signForParams, validatedLedgerAge, app);
+
+ 1020 if (!preprocResult.second)
+ 1021 return preprocResult.first;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1035 auto& sttx = preprocResult.second;
+
+
+
+
+
+
+
+
+
+
+
+ 1047 auto& signers = sttx->peekFieldArray(
sfSigners);
+ 1048 signers.emplace_back(std::move(signer));
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
- 1064 unsigned apiVersion,
-
-
-
-
-
-
-
-
- 1073 auto j = app.
journal(
"RPCHandler");
- 1074 JLOG(j.debug()) <<
"transactionSubmitMultiSigned: " << jvRequest;
-
-
-
- 1078 using namespace detail;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1097 return std::move(txJsonResult);
-
-
-
+
+
+
+
+
+
+
+
+
+ 1070 unsigned apiVersion,
+
+
+
+
+
+
+
+
+ 1079 auto j = app.
journal(
"RPCHandler");
+ 1080 JLOG(j.debug()) <<
"transactionSubmitMultiSigned: " << jvRequest;
+
+
+
+ 1084 using namespace detail;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- 1106 <<
"transactionSubmitMultiSigned: Failed to find source account "
- 1107 <<
"in current ledger: " <<
toBase58(srcAddressID);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1125 err =
checkPayment(jvRequest, tx_json, srcAddressID, role, app,
false);
-
-
-
-
+
+ 1103 return std::move(txJsonResult);
+
+
+
+
+
+
+
+
+ 1112 <<
"transactionSubmitMultiSigned: Failed to find source account "
+ 1113 <<
"in current ledger: " <<
toBase58(srcAddressID);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- 1135 if (!parsedTx_json.
object)
-
-
- 1138 jvResult[
"error"] = parsedTx_json.
error[
"error"];
- 1139 jvResult[
"error_code"] = parsedTx_json.
error[
"error_code"];
- 1140 jvResult[
"error_message"] = parsedTx_json.
error[
"error_message"];
-
-
-
-
-
- 1146 std::make_shared<STTx>(std::move(parsedTx_json.
object.value()));
-
-
-
-
-
-
-
-
-
-
- 1157 "Exception while serializing transaction: " + reason);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1174 <<
" field. Field must be empty when multi-signing.";
-
-
-
-
-
-
-
-
- 1183 auto const fee = stpTrans->getFieldAmount(
sfFee);
-
-
-
-
-
- 1189 <<
" field. Fees must be specified in XRP.";
-
-
-
-
-
-
- 1196 <<
" field. Fees must be greater than zero.";
-
-
-
-
-
- 1202 if (!stpTrans->isFieldPresent(
sfSigners))
-
-
-
-
- 1207 auto& signers = stpTrans->peekFieldArray(
sfSigners);
-
- 1209 if (signers.empty())
-
-
-
-
- 1214 signers.begin(), signers.end(), [](
STObject const& obj) {
-
-
-
- 1218 obj.isFieldPresent(sfAccount) &&
- 1219 obj.isFieldPresent(sfSigningPubKey) &&
- 1220 obj.isFieldPresent(sfTxnSignature) && obj.getCount() == 3);
- 1221 }) != signers.end())
-
-
- 1224 "Signers array may only contain Signer entries.");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1248 rpcINTERNAL,
"Exception occurred during transaction submission.");
-
-
-
-
-
-
-
+ 1131 err =
checkPayment(jvRequest, tx_json, srcAddressID, role, app,
false);
+
+
+
+
+
+
+
+
+
+ 1141 if (!parsedTx_json.
object)
+
+
+ 1144 jvResult[
"error"] = parsedTx_json.
error[
"error"];
+ 1145 jvResult[
"error_code"] = parsedTx_json.
error[
"error_code"];
+ 1146 jvResult[
"error_message"] = parsedTx_json.
error[
"error_message"];
+
+
+
+
+
+ 1152 std::make_shared<STTx>(std::move(parsedTx_json.
object.value()));
+
+
+
+
+
+
+
+
+
+
+ 1163 "Exception while serializing transaction: " + reason);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1180 <<
" field. Field must be empty when multi-signing.";
+
+
+
+
+
+
+
+
+ 1189 auto const fee = stpTrans->getFieldAmount(
sfFee);
+
+
+
+
+
+ 1195 <<
" field. Fees must be specified in XRP.";
+
+
+
+
+
+
+ 1202 <<
" field. Fees must be greater than zero.";
+
+
+
+
+
+ 1208 if (!stpTrans->isFieldPresent(
sfSigners))
+
+
+
+
+ 1213 auto& signers = stpTrans->peekFieldArray(
sfSigners);
+
+ 1215 if (signers.empty())
+
+
+
+
+ 1220 signers.begin(), signers.end(), [](
STObject const& obj) {
+
+
+
+ 1224 obj.isFieldPresent(sfAccount) &&
+ 1225 obj.isFieldPresent(sfSigningPubKey) &&
+ 1226 obj.isFieldPresent(sfTxnSignature) && obj.getCount() == 3);
+ 1227 }) != signers.end())
+
+
+ 1230 "Signers array may only contain Signer entries.");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1254 rpcINTERNAL,
"Exception occurred during transaction submission.");
+
+
+
+
+
+
+
-AccountID const *const multiSigningAcctID_
+AccountID const *const multiSigningAcctID_
XRPAmount reference_fee
The cost of a reference transaction in drops.
virtual bool checkSigs() const =0
@@ -1332,7 +1338,7 @@ $(function() {
transactionPreProcessResult & operator=(transactionPreProcessResult const &)=delete
std::optional< Dest > mulDiv(Source1 value, Dest mul, Source2 div)
std::shared_ptr< OpenView const > current() const
Returns a view to the current open ledger.
-
+
@@ -1340,6 +1346,7 @@ $(function() {
Json::Value rpcError(int iError)
+void insertDeliverMax(Json::Value &tx_json, TxType txnType, unsigned int apiVersion)
Copy Amount field to DeliverMax field in transaction output JSON.
Issue const & issue() const
std::string missing_field_message(std::string const &name)
@@ -1347,9 +1354,9 @@ $(function() {
An immutable linear range of bytes.
-
+
const SF_ACCOUNT sfRegularKey
-PublicKey *const multiSignPublicKey_
+PublicKey *const multiSignPublicKey_
bool verify(PublicKey const &publicKey, Slice const &m, Slice const &sig, bool mustBeFullyCanonical) noexcept
Verify a signature on a message.
void computePathRanks(int maxPaths, std::function< bool(void)> const &continueCallback={})
Compute the rankings of the paths.
unsigned int getAPIVersionNumber(Json::Value const &jv, bool betaEnabled)
Retrieve the api version number from the json value.
@@ -1358,16 +1365,16 @@ $(function() {
const std::string fieldName
const SF_VL sfSigningPubKey
-const std::shared_ptr< STTx > second
+const std::shared_ptr< STTx > second
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
constexpr std::uint32_t tfFullyCanonicalSig
Transaction flags.
-
+
-static Json::Value checkPayment(Json::Value const ¶ms, Json::Value &tx_json, AccountID const &srcAddressID, Role const role, Application &app, bool doPath)
+static Json::Value checkPayment(Json::Value const ¶ms, Json::Value &tx_json, AccountID const &srcAddressID, Role const role, Application &app, bool doPath)
Slice slice() const noexcept
Like std::vector<char> but better.
@@ -1383,76 +1390,76 @@ $(function() {
std::optional< STObject > object
The STObject if the parse was successful.
const Json::StaticString jsonName
-static std::pair< Json::Value, Transaction::pointer > transactionConstructImpl(std::shared_ptr< STTx const > const &stpTrans, Rules const &rules, Application &app)
+static std::pair< Json::Value, Transaction::pointer > transactionConstructImpl(std::shared_ptr< STTx const > const &stpTrans, Rules const &rules, Application &app)
Json::Value object_field_error(std::string const &name)
-Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
void forceValidity(HashRouter &router, uint256 const &txid, Validity validity)
Sets the validity of a given transaction in the cache.
-transactionPreProcessResult(std::shared_ptr< STTx > &&st)
+transactionPreProcessResult(std::shared_ptr< STTx > &&st)
virtual LoadFeeTrack & getFeeTrack()=0
Json::Value error
On failure, an appropriate set of error values.
-void setPublicKey(PublicKey const &multiSignPublicKey)
+void setPublicKey(PublicKey const &multiSignPublicKey)
@ SigGoodOnly
Signature is good, but local checks fail.
-static error_code_i acctMatchesPubKey(std::shared_ptr< SLE const > accountState, AccountID const &accountID, PublicKey const &publicKey)
+static error_code_i acctMatchesPubKey(std::shared_ptr< SLE const > accountState, AccountID const &accountID, PublicKey const &publicKey)
Json::Value missing_field_error(std::string const &name)
-AccountID const & getSigner()
-Json::Value checkFee(Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
Fill in the fee on behalf of the client.
+AccountID const & getSigner()
+Json::Value checkFee(Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
Fill in the fee on behalf of the client.
std::pair< PublicKey, SecretKey > keypairForSignature(Json::Value const ¶ms, Json::Value &error, unsigned int apiVersion)
std::string expected_field_message(std::string const &name, std::string const &type)
-static transactionPreProcessResult transactionPreProcessImpl(Json::Value ¶ms, Role role, SigningForParams &signingArgs, std::chrono::seconds validatedLedgerAge, Application &app)
+static transactionPreProcessResult transactionPreProcessImpl(Json::Value ¶ms, Role role, SigningForParams &signingArgs, std::chrono::seconds validatedLedgerAge, Application &app)
std::pair< Validity, std::string > checkValidity(HashRouter &router, STTx const &tx, Rules const &rules, Config const &config)
Checks transaction signature and local checks.
bool passesLocalChecks(STObject const &st, std::string &reason)
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
-static std::pair< Json::Value, AccountID > checkTxJsonFields(Json::Value const &tx_json, Role const role, bool const verify, std::chrono::seconds validatedLedgerAge, Config const &config, LoadFeeTrack const &feeTrack, unsigned apiVersion)
+static std::pair< Json::Value, AccountID > checkTxJsonFields(Json::Value const &tx_json, Role const role, bool const verify, std::chrono::seconds validatedLedgerAge, Config const &config, LoadFeeTrack const &feeTrack, unsigned apiVersion)
virtual LedgerMaster & getLedgerMaster()=0
Keylet account(AccountID const &id) noexcept
AccountID root.
-Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
virtual Config & config()=0
-static Json::Value sortAndValidateSigners(STArray &signers, AccountID const &signingForID)
+static Json::Value sortAndValidateSigners(STArray &signers, AccountID const &signingForID)
AccountID calcAccountID(PublicKey const &pk)
Manages the current fee schedule.
-Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
Slice slice() const noexcept
SeqProxy nextQueuableSeq(std::shared_ptr< SLE const > const &sleAccount) const
Return the next sequence that would go in the TxQ for an account.
-
+
bool isMember(const char *key) const
Return true if the object has a member named key.
-Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
-static Json::Value transactionFormatResultImpl(Transaction::pointer tpTrans, unsigned apiVersion)
+static Json::Value transactionFormatResultImpl(Transaction::pointer tpTrans, unsigned apiVersion)
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
STPathSet getBestPaths(int maxPaths, STPath &fullLiquidityPath, STPathSet const &extraPaths, AccountID const &srcIssuer, std::function< bool(void)> const &continueCallback={})
-transactionPreProcessResult(Json::Value &&json)
+transactionPreProcessResult(Json::Value &&json)
std::string invalid_field_message(std::string const &name)
const SF_VL sfTxnSignature
@@ -1467,20 +1474,20 @@ $(function() {
Value removeMember(const char *key)
Remove and return the named member.
@ Valid
Signature and local checks are good / passed.
Buffer sign(PublicKey const &pk, SecretKey const &sk, Slice const &m)
Generate a signature for a message.
-Buffer *const multiSignature_
-void moveMultiSignature(Buffer &&multiSignature)
+Buffer *const multiSignature_
+void moveMultiSignature(Buffer &&multiSignature)
bool isLoadedCluster() const
Json::Value getJson(JsonOptions) const override
-bool isSingleSigning() const
+bool isSingleSigning() const
T adjacent_find(T... args)
-bool isMultiSigning() const
+bool isMultiSigning() const
std::shared_ptr< Ledger const > getValidatedLedger()
Rules controlling protocol behavior.
-static Json::Value checkMultiSignFields(Json::Value const &jvRequest)
+static Json::Value checkMultiSignFields(Json::Value const &jvRequest)
-SigningForParams(AccountID const &multiSigningAcctID, PublicKey &multiSignPublicKey, Buffer &multiSignature)
+SigningForParams(AccountID const &multiSigningAcctID, PublicKey &multiSignPublicKey, Buffer &multiSignature)
std::string to_string(Manifest const &m)
Format the specified manifest to a string for debugging purposes.
XRPAmount scaleFeeLoad(XRPAmount fee, LoadFeeTrack const &feeTrack, Fees const &fees, bool bUnlimited)
@@ -1491,7 +1498,7 @@ $(function() {
Metrics getMetrics(OpenView const &view) const
Returns fee metrics in reference fee level units.
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
-
+
static constexpr int defaultAutoFillFeeMultiplier
diff --git a/TransactionSign_8h_source.html b/TransactionSign_8h_source.html
index da59d24e87..e246d3be85 100644
--- a/TransactionSign_8h_source.html
+++ b/TransactionSign_8h_source.html
@@ -188,12 +188,12 @@ $(function() {
virtual void processTransaction(std::shared_ptr< Transaction > &transaction, bool bUnlimited, RPC::SubmitSync sync, bool bLocal, FailHard failType)=0
Process a transaction.
-Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
-Json::Value checkFee(Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
Fill in the fee on behalf of the client.
+Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value checkFee(Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
Fill in the fee on behalf of the client.
ProcessTransactionFn getProcessTxnFn(NetworkOPs &netOPs)
-Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
-Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
-Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction, RPC::SubmitSync sync)
Returns a Json::objectValue.
+Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
+Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
diff --git a/classripple_1_1RPC_1_1detail_1_1SigningForParams.html b/classripple_1_1RPC_1_1detail_1_1SigningForParams.html
index 728e6b933f..28c8337570 100644
--- a/classripple_1_1RPC_1_1detail_1_1SigningForParams.html
+++ b/classripple_1_1RPC_1_1detail_1_1SigningForParams.html
@@ -122,7 +122,7 @@ Private Attributes
-
Definition at line 51 of file TransactionSign.cpp.
+
Definition at line 52 of file TransactionSign.cpp.
◆ SigningForParams() [1/3]
@@ -147,7 +147,7 @@ Private Attributes
@@ -209,7 +209,7 @@ Private Attributes
@@ -229,7 +229,7 @@ Private Attributes
@@ -248,7 +248,7 @@ Private Attributes
@@ -267,7 +267,7 @@ Private Attributes
@@ -286,7 +286,7 @@ Private Attributes
@@ -306,7 +306,7 @@ Private Attributes
@@ -326,7 +326,7 @@ Private Attributes
@@ -351,7 +351,7 @@ Private Attributes
@@ -375,7 +375,7 @@ Private Attributes
@@ -399,7 +399,7 @@ Private Attributes
diff --git a/namespaceripple_1_1RPC.html b/namespaceripple_1_1RPC.html
index fce382f0e9..9a1083e392 100644
--- a/namespaceripple_1_1RPC.html
+++ b/namespaceripple_1_1RPC.html
@@ -2918,7 +2918,7 @@ template<class Object >
- Returns
- A JSON object containing the error results, if any
-Definition at line 690 of file TransactionSign.cpp.
+Definition at line 696 of file TransactionSign.cpp.
@@ -2974,7 +2974,7 @@ template<class Object >
Returns a Json::objectValue.
-Definition at line 786 of file TransactionSign.cpp.
+Definition at line 792 of file TransactionSign.cpp.
@@ -3042,7 +3042,7 @@ template<class Object >
Returns a Json::objectValue.
-Definition at line 824 of file TransactionSign.cpp.
+Definition at line 830 of file TransactionSign.cpp.
@@ -3098,7 +3098,7 @@ template<class Object >
Returns a Json::objectValue.
-Definition at line 954 of file TransactionSign.cpp.
+Definition at line 960 of file TransactionSign.cpp.
@@ -3166,7 +3166,7 @@ template<class Object >
Returns a Json::objectValue.
-Definition at line 1062 of file TransactionSign.cpp.
+Definition at line 1068 of file TransactionSign.cpp.
diff --git a/namespaceripple_1_1RPC_1_1detail.html b/namespaceripple_1_1RPC_1_1detail.html
index e1fe25d8ec..681f26e1e1 100644
--- a/namespaceripple_1_1RPC_1_1detail.html
+++ b/namespaceripple_1_1RPC_1_1detail.html
@@ -184,7 +184,7 @@ template<int M, int N>
@@ -246,7 +246,7 @@ template<int M, int N>
@@ -314,7 +314,7 @@ template<int M, int N>
@@ -370,7 +370,7 @@ template<int M, int N>
@@ -414,7 +414,7 @@ template<int M, int N>
@@ -452,7 +452,7 @@ template<int M, int N>
@@ -480,7 +480,7 @@ template<int M, int N>
@@ -518,7 +518,7 @@ template<int M, int N>
diff --git a/structripple_1_1RPC_1_1detail_1_1transactionPreProcessResult.html b/structripple_1_1RPC_1_1detail_1_1transactionPreProcessResult.html
index cc3f979765..2425f4ac86 100644
--- a/structripple_1_1RPC_1_1detail_1_1transactionPreProcessResult.html
+++ b/structripple_1_1RPC_1_1detail_1_1transactionPreProcessResult.html
@@ -135,7 +135,7 @@ Public Attributes
-
Definition at line 352 of file TransactionSign.cpp.
+
Definition at line 353 of file TransactionSign.cpp.
◆ transactionPreProcessResult() [1/5]
@@ -230,7 +230,7 @@ Public Attributes
@@ -258,7 +258,7 @@ Public Attributes
@@ -328,7 +328,7 @@ Public Attributes
@@ -344,7 +344,7 @@ Public Attributes