update insuficient funds error

This commit is contained in:
Denis Angell
2023-01-24 17:12:45 -05:00
committed by Richard Holland
parent ac72ef80a4
commit 5d6726ce07
4 changed files with 18 additions and 54 deletions

View File

@@ -712,11 +712,11 @@ PayChanClaim::doApply()
}
if (reqBalance > chanFunds)
return tecUNFUNDED_PAYMENT;
return tecINSUFFICIENT_FUNDS;
if (reqBalance <= chanBalance)
// nothing requested
return tecUNFUNDED_PAYMENT;
return tecINSUFFICIENT_FUNDS;
auto sled = ctx_.view().peek(keylet::account(dst));
if (!sled)

View File

@@ -558,7 +558,7 @@ trustAdjustLockedBalance(
JLOG(j.trace()) << "trustAdjustLockedBalance: "
<< "lockedBalance(" << finalLockedBalance
<< ") > balance(" << balance << ") = true\n";
return tecUNFUNDED_PAYMENT;
return tecINSUFFICIENT_FUNDS;
}
if (finalLockedBalance < beast::zero)
@@ -841,7 +841,7 @@ trustTransferLockedBalance(
{
JLOG(j.trace()) << "trustTransferLockedBalance could not find "
"sfLockedBalance/sfLockCount on source line";
return tecUNFUNDED_PAYMENT;
return tecINSUFFICIENT_FUNDS;
}
// decrement source balance
@@ -866,7 +866,7 @@ trustTransferLockedBalance(
<< "trustTransferLockedBalance amount > lockedBalance: "
<< "amount=" << amount
<< " lockedBalance=" << priorLockedBalance;
return tecUNFUNDED_PAYMENT;
return tecINSUFFICIENT_FUNDS;
}
STAmount finalBalance = priorBalance - amount;

View File

@@ -2155,7 +2155,7 @@ struct Escrow_test : public beast::unit_test::suite
env(escrow(daniel, bob, USD(51)),
finish_time(env.now() + 1s),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
// Removed 3 Account Reserve/Increment XRP tests
// See line 602
@@ -2164,7 +2164,7 @@ struct Escrow_test : public beast::unit_test::suite
env.close();
env(escrow(daniel, bob, USD(51)),
finish_time(env.now() + 1s),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
}
{ // Specify incorrect sequence number

View File

@@ -326,7 +326,7 @@ struct PayChan_test : public beast::unit_test::suite
// claim again
preBob = env.balance(bob);
env(claim(bob, chan, reqBal, authAmt, Slice(sig), alice.pk()),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
BEAST_EXPECT(channelBalance(*env.current(), chan) == chanBal);
BEAST_EXPECT(channelAmount(*env.current(), chan) == chanAmt);
BEAST_EXPECT(env.balance(bob) == preBob - feeDrops);
@@ -2108,7 +2108,7 @@ struct PayChan_test : public beast::unit_test::suite
// A transaction that generates a tec still consumes its ticket.
env(claim(bob, chan, reqBal, authAmt, Slice(sig), alice.pk()),
ticket::use(bobTicketSeq++),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
env.require(tickets(bob, env.seq(bob) - bobTicketSeq));
BEAST_EXPECT(env.seq(bob) == bobSeq);
@@ -2242,7 +2242,7 @@ struct PayChan_test : public beast::unit_test::suite
ter(tecNO_ENTRY));
// not enough funds
env(create(alice, bob, USD(10000), settleDelay, pk),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
{
// No signature claim with bad amounts (negative)
@@ -2302,7 +2302,7 @@ struct PayChan_test : public beast::unit_test::suite
preBob = env.balance(bob, USD.issue());
preLocked = lockedAmount(env, alice, gw, USD);
env(claim(bob, chan, reqBal, authAmt, Slice(sig), alice.pk()),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
postLocked = lockedAmount(env, alice, gw, USD);
BEAST_EXPECT(channelBalance(*env.current(), chan) == chanBal);
BEAST_EXPECT(channelAmount(*env.current(), chan) == chanAmt);
@@ -4497,7 +4497,7 @@ struct PayChan_test : public beast::unit_test::suite
// A transaction that generates a tec still consumes its ticket.
env(claim(bob, chan, reqBal, authAmt, Slice(sig), alice.pk()),
ticket::use(bobTicketSeq++),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
env.require(tickets(bob, env.seq(bob) - bobTicketSeq));
BEAST_EXPECT(env.seq(bob) == bobSeq);
@@ -4675,41 +4675,9 @@ struct PayChan_test : public beast::unit_test::suite
auto const authAmt = reqBal + USD(100);
// env(claim(gw, chan, reqBal, authAmt), ter(tecNO_LINE));
// TODO: FIX THIS
// auto const sig = signClaimICAuth(gw.pk(), gw.sk(), chan, authAmt);
// env(claim(bob, chan, reqBal, authAmt, Slice(sig), gw.pk()));
// env.close();
}
{
Env env{*this, features};
env.fund(XRP(10000), alice, bob, gw);
auto const sig = signClaimICAuth(gw.pk(), gw.sk(), chan, authAmt);
env(claim(bob, chan, reqBal, authAmt, Slice(sig), gw.pk()));
env.close();
env.trust(USD(1000), alice);
env.trust(USD(1000), bob);
env.close();
env(pay(gw, alice, USD(1000)));
env(pay(gw, bob, USD(1000)));
env.close();
auto const pk = alice.pk();
auto const settleDelay = 100s;
auto const chan = channel(alice, bob, env.seq(alice));
env(create(alice, bob, USD(1000), settleDelay, pk));
env.close();
BEAST_EXPECT(channelBalance(*env.current(), chan) == USD(0));
BEAST_EXPECT(channelAmount(*env.current(), chan) == USD(1000));
auto chanBal = channelBalance(*env.current(), chan);
auto chanAmt = channelAmount(*env.current(), chan);
BEAST_EXPECT(chanBal == USD(0));
BEAST_EXPECT(chanAmt == USD(1000));
auto preBob = env.balance(bob);
auto const delta = USD(50);
auto reqBal = chanBal + delta;
auto authAmt = reqBal + USD(100);
assert(reqBal <= chanAmt);
auto const preLocked = lockedAmount(env, alice, gw, USD);
BEAST_EXPECT(preLocked == USD(1000));
env(claim(alice, chan, reqBal, authAmt));
}
{
// test create paychan from issuer with ic
@@ -4831,13 +4799,9 @@ struct PayChan_test : public beast::unit_test::suite
auto const alice = Account("alice");
auto const bob = Account("bob");
auto const carol = Account("carol");
auto const gw = Account{"gateway"};
auto const USD = gw["USD"];
auto const aliceUSD = alice["USD"];
auto const bobUSD = bob["USD"];
// test TransferRate
{
Env env{*this, features};
@@ -4986,7 +4950,8 @@ struct PayChan_test : public beast::unit_test::suite
env(claim(bob, chan, reqBal, authAmt, Slice(sig), alice.pk()));
env.close();
auto const postBobLimit = limitAmount(env, bob, gw, USD);
// BEAST_EXPECT(postBobLimit == preBobLimit + delta);
// bobs limit is NOT changed
BEAST_EXPECT(postBobLimit == preBobLimit);
}
// test asfRequireAuth
{
@@ -5022,10 +4987,9 @@ struct PayChan_test : public beast::unit_test::suite
env(create(alice, bob, USD(100), settleDelay, pk));
env.close();
auto const delta = USD(50);
auto chanBal = channelBalance(*env.current(), chan);
auto chanAmt = channelAmount(*env.current(), chan);
auto reqBal = chanBal + delta;
auto reqBal = USD(50);
auto authAmt = reqBal + USD(100);
// alice can claim
env(claim(alice, chan, reqBal, authAmt));
@@ -5146,7 +5110,7 @@ struct PayChan_test : public beast::unit_test::suite
auto const preLocked = lockedAmount(env, alice, gw, USD);
BEAST_EXPECT(preLocked == USD(1000));
env(create(alice, bob, USD(10000), settleDelay, pk),
ter(tecUNFUNDED_PAYMENT));
ter(tecINSUFFICIENT_FUNDS));
}
}