Skip to content

Commit 6ddfa56

Browse files
committed
fix: lease close reason
1 parent 5cd6b27 commit 6ddfa56

8 files changed

Lines changed: 210 additions & 76 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,4 @@ Ref: https://keepachangelog.com/en/1.0.0/
4747
### Bug Fixes
4848

4949
* Fix bug in ditribution and querying rewards
50+
* Fixe bug in Lease close reason

x/deployment/handler/keepers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
// MarketKeeper Interface includes market methods
1919
type MarketKeeper interface {
2020
CreateOrder(ctx sdk.Context, id types.GroupID, spec v1beta4.GroupSpec) (mtypes.Order, error)
21-
OnGroupClosed(ctx sdk.Context, id types.GroupID) error
21+
OnGroupClosed(ctx sdk.Context, id types.GroupID, state v1beta4.Group_State) error
2222
}
2323

2424
type EscrowKeeper interface {

x/deployment/handler/server.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ func (ms msgServer) CloseGroup(goCtx context.Context, msg *types.MsgCloseGroup)
158158
if err != nil {
159159
return nil, err
160160
}
161-
_ = ms.market.OnGroupClosed(ctx, group.ID)
161+
_ = ms.market.OnGroupClosed(ctx, group.ID, types.GroupClosed)
162162

163163
return &types.MsgCloseGroupResponse{}, nil
164164
}
@@ -182,7 +182,7 @@ func (ms msgServer) PauseGroup(goCtx context.Context, msg *types.MsgPauseGroup)
182182
if err != nil {
183183
return nil, err
184184
}
185-
_ = ms.market.OnGroupClosed(ctx, group.ID)
185+
_ = ms.market.OnGroupClosed(ctx, group.ID, types.GroupPaused)
186186

187187
return &types.MsgPauseGroupResponse{}, nil
188188
}

x/market/handler/handler_test.go

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -292,12 +292,13 @@ func TestMarketFullFlowCloseDeployment(t *testing.T) {
292292
require.Equal(t, expectedOverdraft, eacc.State.Funds[0].Amount.Abs())
293293
require.Equal(t, expectedOverdraft, epmnt.State.Unsettled.Amount)
294294

295-
// lease must be in closed state
295+
// lease must be in insufficient funds state due to overdrawn escrow
296296
lease, found := suite.MarketKeeper().GetLease(ctx, lid)
297297
require.True(t, found)
298-
require.Equal(t, v1.LeaseClosed, lease.State)
298+
require.Equal(t, v1.LeaseInsufficientFunds, lease.State)
299+
require.Equal(t, v1.LeaseClosedReasonInsufficientFunds, lease.Reason)
299300

300-
// lease must be in closed state
301+
// bid must be in closed state
301302
bidObj, found := suite.MarketKeeper().GetBid(ctx, bid)
302303
require.True(t, found)
303304
require.Equal(t, types.BidClosed, bidObj.State)
@@ -544,7 +545,7 @@ func TestMarketFullFlowCloseLease(t *testing.T) {
544545
require.True(t, found)
545546
require.Equal(t, v1.LeaseClosed, lease.State)
546547

547-
// lease must be in closed state
548+
// bid must be in closed state
548549
bidObj, found := suite.MarketKeeper().GetBid(ctx, bid)
549550
require.True(t, found)
550551
require.Equal(t, types.BidClosed, bidObj.State)
@@ -782,7 +783,7 @@ func TestMarketFullFlowCloseBid(t *testing.T) {
782783
require.True(t, found)
783784
require.Equal(t, v1.LeaseClosed, lease.State)
784785

785-
// lease must be in closed state
786+
// bid must be in closed state
786787
bidObj, found := suite.MarketKeeper().GetBid(ctx, bid)
787788
require.True(t, found)
788789
require.Equal(t, types.BidClosed, bidObj.State)
@@ -1427,26 +1428,3 @@ func (st *testSuite) createProvider(attr attr.Attributes) ptypes.Provider {
14271428

14281429
return prov
14291430
}
1430-
1431-
func (st *testSuite) createDeployment() (dv1.Deployment, dtypes.Groups) {
1432-
st.t.Helper()
1433-
1434-
deployment := testutil.Deployment(st.t)
1435-
group := testutil.DeploymentGroup(st.t, deployment.ID, 0)
1436-
group.GroupSpec.Resources = dtypes.ResourceUnits{
1437-
{
1438-
Resources: testutil.ResourceUnits(st.t),
1439-
Count: 1,
1440-
Price: testutil.AkashDecCoinRandom(st.t),
1441-
},
1442-
}
1443-
groups := dtypes.Groups{
1444-
group,
1445-
}
1446-
1447-
for i := range groups {
1448-
groups[i].State = dtypes.GroupOpen
1449-
}
1450-
1451-
return deployment, groups
1452-
}

x/market/hooks/external.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type MarketKeeper interface {
2020
GetOrder(ctx sdk.Context, id mv1.OrderID) (mtypes.Order, bool)
2121
GetBid(ctx sdk.Context, id mv1.BidID) (mtypes.Bid, bool)
2222
GetLease(ctx sdk.Context, id mv1.LeaseID) (mv1.Lease, bool)
23-
OnGroupClosed(ctx sdk.Context, id dv1.GroupID) error
23+
OnGroupClosed(ctx sdk.Context, id dv1.GroupID, state dtypes.Group_State) error
2424
OnOrderClosed(ctx sdk.Context, order mtypes.Order) error
2525
OnBidClosed(ctx sdk.Context, bid mtypes.Bid) error
2626
OnLeaseClosed(ctx sdk.Context, lease mv1.Lease, state mv1.Lease_State, reason mv1.LeaseClosedReason) error

x/market/hooks/hooks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func (h *hooks) OnEscrowAccountClosed(ctx sdk.Context, obj etypes.Account) error
5757
if err != nil {
5858
return err
5959
}
60-
err = h.mkeeper.OnGroupClosed(ctx, group.ID)
60+
err = h.mkeeper.OnGroupClosed(ctx, group.ID, gstate)
6161
if err != nil {
6262
return err
6363
}

x/market/keeper/keeper.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ type IKeeper interface {
2828
OnBidClosed(ctx sdk.Context, bid types.Bid) error
2929
OnOrderClosed(ctx sdk.Context, order types.Order) error
3030
OnLeaseClosed(ctx sdk.Context, lease mv1.Lease, state mv1.Lease_State, reason mv1.LeaseClosedReason) error
31-
OnGroupClosed(ctx sdk.Context, id dtypes.GroupID) error
31+
OnGroupClosed(ctx sdk.Context, id dtypes.GroupID, state dtypesBeta.Group_State) error
3232
GetOrder(ctx sdk.Context, id mv1.OrderID) (types.Order, bool)
3333
GetBid(ctx sdk.Context, id mv1.BidID) (types.Bid, bool)
3434
GetLease(ctx sdk.Context, id mv1.LeaseID) (mv1.Lease, bool)
@@ -319,6 +319,7 @@ func (k Keeper) OnLeaseClosed(ctx sdk.Context, lease mv1.Lease, state mv1.Lease_
319319

320320
lease.State = state
321321
lease.ClosedOn = ctx.BlockHeight()
322+
lease.Reason = reason
322323

323324
store := ctx.KVStore(k.skey)
324325

@@ -347,16 +348,23 @@ func (k Keeper) OnLeaseClosed(ctx sdk.Context, lease mv1.Lease, state mv1.Lease_
347348
}
348349

349350
// OnGroupClosed updates state of all orders, bids and leases in group to closed
350-
func (k Keeper) OnGroupClosed(ctx sdk.Context, id dtypes.GroupID) error {
351+
func (k Keeper) OnGroupClosed(ctx sdk.Context, id dtypes.GroupID, state dtypesBeta.Group_State) error {
352+
leaseState := mv1.LeaseClosed
353+
leaseReason := mv1.LeaseClosedReasonOwner
354+
355+
if state == dtypesBeta.GroupInsufficientFunds {
356+
leaseState = mv1.LeaseInsufficientFunds
357+
leaseReason = mv1.LeaseClosedReasonInsufficientFunds
358+
}
359+
351360
processClose := func(ctx sdk.Context, bid types.Bid) error {
352361
err := k.OnBidClosed(ctx, bid)
353362
if err != nil {
354363
return err
355364
}
356365

357366
if lease, ok := k.GetLease(ctx, bid.ID.LeaseID()); ok {
358-
// OnGroupClosed is callable by x/deployment only so only reason is owner
359-
err = k.OnLeaseClosed(ctx, lease, mv1.LeaseClosed, mv1.LeaseClosedReasonOwner)
367+
err = k.OnLeaseClosed(ctx, lease, leaseState, leaseReason)
360368
if err != nil {
361369
return err
362370
}

0 commit comments

Comments
 (0)