mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-13 07:35:57 +00:00
Eliminate need for ledger in delivered_amount calculation (RIPD-860)
This commit is contained in:
@@ -17,9 +17,6 @@
|
|||||||
*/
|
*/
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
||||||
#include "boost/date_time/posix_time/posix_time.hpp"
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
namespace ripple {
|
namespace ripple {
|
||||||
namespace RPC {
|
namespace RPC {
|
||||||
|
|
||||||
@@ -45,24 +42,18 @@ addPaymentDeliveredAmount (
|
|||||||
if (transactionMeta && transactionMeta->hasDeliveredAmount ())
|
if (transactionMeta && transactionMeta->hasDeliveredAmount ())
|
||||||
{
|
{
|
||||||
meta[jss::delivered_amount] =
|
meta[jss::delivered_amount] =
|
||||||
transactionMeta->getDeliveredAmount ().getJson (1);
|
transactionMeta->getDeliveredAmount ().getJson (1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auto ledger = context.netOps.getLedgerBySeq (transaction->getLedger ()))
|
// Ledger 4594095 is the first ledger in which the DeliveredAmount field
|
||||||
|
// was present when a partial payment was made and its absence indicates
|
||||||
|
// that the amount delivered is listed in the Amount field.
|
||||||
|
if (transaction->getLedger () >= 4594095)
|
||||||
{
|
{
|
||||||
// If the ledger closed at 2014-Jan-24 at 04:50:10 or later, then
|
meta[jss::delivered_amount] =
|
||||||
// the absence of the DeliveredAmount field indicates that the
|
serializedTx->getFieldAmount (sfAmount).getJson (1);
|
||||||
// actual amount delivered is in the Amount field.
|
return;
|
||||||
boost::posix_time::ptime const cutoff (
|
|
||||||
boost::posix_time::time_from_string ("2014-01-24 04:50:10"));
|
|
||||||
|
|
||||||
if (ledger->getCloseTime () >= cutoff)
|
|
||||||
{
|
|
||||||
meta[jss::delivered_amount] =
|
|
||||||
serializedTx->getFieldAmount (sfAmount).getJson (1);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise we report "unavailable" which cannot be parsed into a
|
// Otherwise we report "unavailable" which cannot be parsed into a
|
||||||
|
|||||||
Reference in New Issue
Block a user