Compare commits

..

17 Commits

Author SHA1 Message Date
Vinnie Falco
f0624581d1 Set version to 0.30.1-hf1 2016-02-11 18:19:31 -05:00
Vinnie Falco
cb23352a35 Revert "Set version to 0.30.1-hf1"
This reverts commit 9fea06ad84.
2016-02-11 18:19:08 -05:00
Vinnie Falco
9fea06ad84 Set version to 0.30.1-hf1 2016-02-11 15:48:32 -05:00
Miguel Portilla
2beeb9a293 Improved reporting for delivered_amount:
* Determine tx success from metadata result.
* Report delivered_amount for legacy account_tx queries.
2016-02-11 15:47:40 -05:00
Nik Bougalis
c717006c44 Set version to 0.30.1 2016-02-08 15:37:02 -08:00
Nik Bougalis
fd33d693c4 Merge remote-tracking branch 'upstream/master' 2016-02-08 15:36:04 -08:00
Nik Bougalis
31ecb4dcf3 Revert "Set version to 0.30.1"
This reverts commit 5a4e900a21.
2016-02-08 15:35:22 -08:00
Nik Bougalis
5a4e900a21 Set version to 0.30.1 2016-02-03 14:49:07 -08:00
Nik Bougalis
5062e65277 Set version to 0.30.1-rc4 2016-01-27 13:33:07 -08:00
seelabs
bd44880d5a Enforce no-ripple constraints 2016-01-27 13:32:38 -08:00
Nik Bougalis
ad2383bd4b Set version to 0.30.0-hf2 2016-01-27 12:27:27 -08:00
Nik Bougalis
5b5a01989c Improve compile-time OpenSSL version check 2016-01-27 12:27:18 -08:00
seelabs
c17f7e8b37 Enforce no-ripple constraints 2016-01-26 13:52:41 -08:00
Nik Bougalis
5f4fe9fccb Set version to 0.30.1-rc3 2016-01-20 15:56:16 -08:00
Nik Bougalis
db9885e1fc Delete unfunded offers in predictable order 2016-01-20 15:56:10 -08:00
Nik Bougalis
bdfb5fa2bc Set version to 0.30.1-rc2 2016-01-14 13:36:34 -08:00
Nik Bougalis
b2c9179100 Increase minimum local fee 2016-01-14 13:36:18 -08:00
9 changed files with 50 additions and 19 deletions

View File

@@ -1858,8 +1858,15 @@ void LedgerConsensusImp::addLoad(STValidation::ref val)
std::uint32_t fee = std::max(
app_.getFeeTrack().getLocalFee(),
app_.getFeeTrack().getClusterFee());
std::uint32_t ref = app_.getFeeTrack().getLoadBase();
if (fee > ref)
std::uint32_t loadBase = app_.getFeeTrack().getLoadBase();
// Hard code the minimum fee for now:
std::uint32_t const minFee = 10000;
std::uint32_t const refFee = 10;
fee = std::max(fee, (minFee * loadBase + refFee - 1) / refFee);
if (fee > loadBase)
val->setFieldU32(sfLoadFee, fee);
}

View File

@@ -799,6 +799,19 @@ TER PathState::checkNoRipple (
if (terStatus != tesSUCCESS)
return terStatus;
}
if (!nodes_[i - 1].isAccount() &&
nodes_[i].isAccount() &&
nodes_[i + 1].isAccount() &&
nodes_[i -1].issue_.account != nodes_[i].account_)
{ // offer -> account -> account
auto const& currencyID = nodes_[i].issue_.currency;
terStatus = checkNoRipple (
nodes_[i-1].issue_.account, nodes_[i].account_, nodes_[i+1].account_,
currencyID);
if (terStatus != tesSUCCESS)
return terStatus;
}
}
return tesSUCCESS;

View File

@@ -32,7 +32,7 @@ namespace {
static
TER
deleteOffers (ApplyView& view,
OfferSet const& offers, beast::Journal j)
std::set<uint256> const& offers, beast::Journal j)
{
for (auto& e: offers)
if (TER r = offerDelete (view,
@@ -201,7 +201,7 @@ TER RippleCalc::rippleCalculate ()
getRate (saDstAmountReq_, saMaxAmountReq_) : 0;
// Offers that became unfunded.
OfferSet unfundedOffersFromBestPaths;
std::set<uint256> unfundedOffersFromBestPaths;
int iPass = 0;

View File

@@ -106,10 +106,10 @@ public:
PaymentSandbox& view;
// If the transaction fails to meet some constraint, still need to delete
// unfunded offers.
// unfunded offers in a deterministic order (hence the ordered container).
//
// Offers that were found unfunded.
path::OfferSet permanentlyUnfundedOffers_;
std::set<uint256> permanentlyUnfundedOffers_;
// First time working in reverse a funding source was mentioned. Source may
// only be used there.

View File

@@ -30,8 +30,6 @@ namespace path {
using NodeIndex = unsigned int;
using OfferSet = hash_set <uint256>;
}
using AccountIssueToNodeIndex = hash_map <AccountIssue, path::NodeIndex>;

View File

@@ -35,7 +35,7 @@ char const* getRawVersionString ()
//
// The build version number (edit this for each release)
//
"0.30.1-rc1"
"0.30.1-hf1"
//
// Must follow the format described here:
//

View File

@@ -163,7 +163,7 @@ Json::Value doAccountTx (RPC::Context& context)
{
auto meta = it.second->getJson (1);
addPaymentDeliveredAmount (meta, context, it.first, it.second);
jvObj[jss::meta] = meta;
jvObj[jss::meta] = std::move(meta);
std::uint32_t uLedgerIndex = it.second->getLgrSeq ();

View File

@@ -29,6 +29,7 @@
#include <ripple/resource/Fees.h>
#include <ripple/rpc/Context.h>
#include <ripple/rpc/impl/LookupLedger.h>
#include <ripple/rpc/impl/Utilities.h>
#include <ripple/server/Role.h>
namespace ripple {
@@ -183,7 +184,10 @@ Json::Value doAccountTxOld (RPC::Context& context)
{
std::uint32_t uLedgerIndex = it->second->getLgrSeq ();
jvObj[jss::meta] = it->second->getJson (0);
auto meta = it->second->getJson(0);
addPaymentDeliveredAmount(meta, context, it->first, it->second);
jvObj[jss::meta] = std::move(meta);
jvObj[jss::validated]
= bValidated
&& uValidatedMin <= uLedgerIndex

View File

@@ -39,20 +39,29 @@ addPaymentDeliveredAmount (
{
// We only want to add a "delivered_amount" field if the transaction
// succeeded - otherwise nothing could have been delivered.
if (!transaction || transaction->getResult () != tesSUCCESS)
if (! transaction)
return;
auto serializedTx = transaction->getSTransaction ();
if (!serializedTx || serializedTx->getTxnType () != ttPAYMENT)
if (! serializedTx || serializedTx->getTxnType () != ttPAYMENT)
return;
// If the transaction explicitly specifies a DeliveredAmount in the
// metadata then we use it.
if (transactionMeta && transactionMeta->hasDeliveredAmount ())
if (transactionMeta)
{
if (transactionMeta->getResultTER() != tesSUCCESS)
return;
// If the transaction explicitly specifies a DeliveredAmount in the
// metadata then we use it.
if (transactionMeta->hasDeliveredAmount ())
{
meta[jss::delivered_amount] =
transactionMeta->getDeliveredAmount ().getJson (1);
return;
}
}
else if (transaction->getResult() != tesSUCCESS)
{
meta[jss::delivered_amount] =
transactionMeta->getDeliveredAmount ().getJson (1);
return;
}