Skip to content

Commit d925f20

Browse files
committed
fix(x/escrow): implement deposit source
Signed-off-by: Artur Troian <[email protected]>
1 parent 65d0a37 commit d925f20

File tree

2 files changed

+3
-205
lines changed

2 files changed

+3
-205
lines changed

x/deployment/handler/server.go

Lines changed: 0 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -92,152 +92,6 @@ func (ms msgServer) CreateDeployment(goCtx context.Context, msg *types.MsgCreate
9292
return &types.MsgCreateDeploymentResponse{}, nil
9393
}
9494

95-
//func (ms msgServer) authorizeDeposit(sctx sdk.Context, msg sdk.Msg) ([]ev1.Deposit, error) {
96-
// // find the DepositDeploymentAuthorization given to the owner by the depositor and check
97-
// // acceptance
98-
//
99-
// depositors := make([]ev1.Deposit, 0, 1)
100-
//
101-
// hasDeposit, valid := msg.(types.HasDeposit)
102-
// if !valid {
103-
//
104-
// }
105-
//
106-
// hasID, valid := msg.(types.HasDeploymentID)
107-
// if !valid {
108-
//
109-
// }
110-
//
111-
// did := hasID.GetID()
112-
// owner, err := sdk.AccAddressFromBech32(did.Owner)
113-
// if err != nil {
114-
// return nil, err
115-
// }
116-
//
117-
// dep := hasDeposit.GetDeposit()
118-
// denom := dep.Amount.Denom
119-
//
120-
// remainder := sdkmath.NewInt(dep.Amount.Amount.Int64())
121-
//
122-
// for _, source := range dep.Sources {
123-
// switch source {
124-
// case deposit.SourceBalance:
125-
// spendableAmount := ms.bkeeper.SpendableCoin(sctx, owner, denom)
126-
//
127-
// if spendableAmount.Amount.IsPositive() {
128-
// requestedSpend := sdk.NewCoin(denom, remainder)
129-
//
130-
// if spendableAmount.IsLT(requestedSpend) {
131-
// requestedSpend = spendableAmount
132-
// }
133-
// depositors = append(depositors, ev1.Deposit{
134-
// Depositor: owner.String(),
135-
// Height: sctx.BlockHeight(),
136-
// Balance: sdk.NewDecCoinFromCoin(requestedSpend),
137-
// })
138-
//
139-
// remainder = remainder.Sub(requestedSpend.Amount)
140-
// }
141-
// case deposit.SourceGrant:
142-
// msgTypeUrl := (&types.DepositAuthorization{}).MsgTypeURL()
143-
//
144-
// ms.authzKeeper.GetGranteeGrantsByMsgType(sctx, owner, msgTypeUrl, func(ctx context.Context, granter sdk.AccAddress, authorization authz.Authorization, expiration *time.Time) bool {
145-
// deplAuthz, valid := authorization.(*types.DepositAuthorization)
146-
// if !valid {
147-
// return false
148-
// }
149-
//
150-
// allowedSpend := sdk.Coin{
151-
// Denom: denom,
152-
// Amount: sdkmath.NewInt(deplAuthz.SpendLimit.Amount.Int64()),
153-
// }
154-
//
155-
// nDeposit := deposit.Deposit{
156-
// Amount: sdk.NewCoin(denom, remainder),
157-
// Sources: nil,
158-
// }
159-
//
160-
// var authzMsg sdk.Msg
161-
// switch m := msg.(type) {
162-
// case *types.MsgCreateDeployment:
163-
// authzMsg = types.NewMsgCreateDeployment(m.ID, m.Groups, m.Hash, nDeposit)
164-
// case *types.MsgDepositDeployment:
165-
// authzMsg = types.NewMsgDepositDeployment(m.ID, nDeposit)
166-
// }
167-
//
168-
// resp, err := authorization.Accept(ctx, authzMsg)
169-
// if err != nil {
170-
// return false
171-
// }
172-
//
173-
// if resp.Delete {
174-
// err = ms.authzKeeper.DeleteGrant(ctx, owner, granter, msgTypeUrl)
175-
// } else if resp.Updated != nil {
176-
// err = ms.authzKeeper.SaveGrant(ctx, owner, granter, resp.Updated, expiration)
177-
// }
178-
//
179-
// if !resp.Accept {
180-
// return false
181-
// }
182-
//
183-
// deplAuthz = resp.Updated.(*types.DepositAuthorization)
184-
//
185-
// allowedSpend = allowedSpend.Sub(deplAuthz.SpendLimit)
186-
//
187-
// depositors = append(depositors, ev1.Deposit{
188-
// Depositor: owner.String(),
189-
// Height: sctx.BlockHeight(),
190-
// Balance: sdk.NewDecCoinFromCoin(allowedSpend),
191-
// })
192-
// remainder = remainder.Sub(allowedSpend.Amount)
193-
//
194-
// return remainder.IsZero()
195-
// })
196-
// }
197-
//
198-
// if remainder.IsZero() {
199-
// break
200-
// }
201-
// }
202-
//
203-
// if !remainder.IsZero() {
204-
// // following check is for sanity. if value is negative, math above went horribly wrong
205-
// if remainder.IsNegative() {
206-
// return nil, fmt.Errorf("%w: deposit overflow", v1.ErrInvalidDeposit)
207-
// } else {
208-
// return nil, fmt.Errorf("%w: insufficient balance", v1.ErrInvalidDeposit)
209-
// }
210-
// }
211-
//
212-
// return depositors, nil
213-
//}
214-
215-
//func (ms msgServer) DepositDeployment(goCtx context.Context, msg *types.MsgDepositDeployment) (*types.MsgDepositDeploymentResponse, error) {
216-
// ctx := sdk.UnwrapSDKContext(goCtx)
217-
//
218-
// deployment, found := ms.deployment.GetDeployment(ctx, msg.ID)
219-
// if !found {
220-
// return &types.MsgDepositDeploymentResponse{}, v1.ErrDeploymentNotFound
221-
// }
222-
//
223-
// if deployment.State != v1.DeploymentActive {
224-
// return &types.MsgDepositDeploymentResponse{}, v1.ErrDeploymentClosed
225-
// }
226-
//
227-
// deposits, err := aauthz.AuthorizeDeposit(ctx, ms.authzKeeper, ms.bkeeper, msg)
228-
// if err != nil {
229-
// return nil, err
230-
// }
231-
//
232-
// eID := types.EscrowAccountForDeployment(msg.ID)
233-
//
234-
// if err = ms.escrow.AccountDeposit(ctx, eID, deposits); err != nil {
235-
// return &types.MsgDepositDeploymentResponse{}, err
236-
// }
237-
//
238-
// return &types.MsgDepositDeploymentResponse{}, nil
239-
//}
240-
24195
func (ms msgServer) UpdateDeployment(goCtx context.Context, msg *types.MsgUpdateDeployment) (*types.MsgUpdateDeploymentResponse, error) {
24296
ctx := sdk.UnwrapSDKContext(goCtx)
24397

x/escrow/keeper/keeper.go

Lines changed: 3 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ func (k *keeper) AuthorizeDeposits(sctx sdk.Context, msg sdk.Msg) ([]etypes.Depo
202202
depositors = append(depositors, etypes.Depositor{
203203
Owner: owner.String(),
204204
Height: sctx.BlockHeight(),
205+
Source: deposit.SourceBalance,
205206
Balance: sdk.NewDecCoinFromCoin(requestedSpend),
206207
})
207208

@@ -253,6 +254,7 @@ func (k *keeper) AuthorizeDeposits(sctx sdk.Context, msg sdk.Msg) ([]etypes.Depo
253254
depositors = append(depositors, etypes.Depositor{
254255
Owner: granter.String(),
255256
Height: sctx.BlockHeight(),
257+
Source: deposit.SourceBalance,
256258
Balance: sdk.NewDecCoinFromCoin(spendableAmount),
257259
})
258260
remainder = remainder.Sub(spendableAmount.Amount)
@@ -291,10 +293,6 @@ func (k *keeper) AccountClose(ctx sdk.Context, id escrowid.Account) error {
291293
acc.State.State = etypes.StateClosed
292294
acc.dirty = true
293295

294-
if err := k.accountWithdraw(ctx, &acc); err != nil {
295-
return err
296-
}
297-
298296
for idx := range payments {
299297
payments[idx].State.State = etypes.StateClosed
300298
payments[idx].dirty = true
@@ -738,7 +736,7 @@ func (k *keeper) saveAccount(ctx sdk.Context, obj account) error {
738736
}
739737

740738
// if depositor is not an owner then funds came from the grant.
741-
if d.Owner != obj.State.Owner {
739+
if d.Source == deposit.SourceGrant {
742740
owner, err := sdk.AccAddressFromBech32(obj.State.Owner)
743741
if err != nil {
744742
return err
@@ -841,60 +839,6 @@ func (k *keeper) accountOpenPayments(ctx sdk.Context, id escrowid.Account) []pay
841839
return payments
842840
}
843841

844-
func (k *keeper) accountWithdraw(ctx sdk.Context, obj *account) error {
845-
//if obj.Balance.Amount.LT(sdkmath.LegacyNewDec(1)) {
846-
// return nil
847-
//}
848-
//
849-
//owner, err := sdk.AccAddressFromBech32(obj.Owner)
850-
//if err != nil {
851-
// return err
852-
//}
853-
//
854-
//if !obj.Balance.Amount.LT(sdkmath.LegacyNewDec(1)) {
855-
// withdrawal := sdk.NewCoin(obj.Balance.Denom, obj.Balance.Amount.TruncateInt())
856-
//
857-
// if err = k.bkeeper.SendCoinsFromModuleToAccount(ctx, v1.ModuleName, owner, sdk.NewCoins(withdrawal)); err != nil {
858-
// ctx.Logger().Error("account withdraw", "err", err, "id", obj.ID)
859-
// return err
860-
// }
861-
// obj.Balance = obj.Balance.Sub(sdk.NewDecCoinFromCoin(withdrawal))
862-
//}
863-
864-
//if obj.Balance.IsPositive() {
865-
// depositor, err := sdk.AccAddressFromBech32(obj.Depositor)
866-
// if err != nil {
867-
// return err
868-
// }
869-
//
870-
// withdrawal := sdk.NewCoin(obj.Balance.Denom, obj.Funds.Amount.TruncateInt())
871-
// if err = k.bkeeper.SendCoinsFromModuleToAccount(ctx, v1.ModuleName, depositor, sdk.NewCoins(withdrawal)); err != nil {
872-
// ctx.Logger().Error("account withdraw", "err", err, "id", obj.ID)
873-
// return err
874-
// }
875-
//
876-
// obj.Funds = obj.Funds.Sub(sdk.NewDecCoinFromCoin(withdrawal))
877-
//
878-
// msg := &dv1.MsgDepositDeployment{Amount: sdk.NewCoin(obj.Balance.Denom, sdkmath.NewInt(0))}
879-
//
880-
// // Funds field is solely to track deposits via authz.
881-
// // check if there is active deployment authorization from given depositor
882-
// // if exists, increase allowed authz deposit by remainder in the Funds, it will allow owner to reuse active authz
883-
// // without asking for renew.
884-
// authorization, expiration := k.authzKeeper.GetAuthorization(ctx, owner, depositor, sdk.MsgTypeURL(msg))
885-
// dauthz, valid := authorization.(*dv1.DepositAuthorization)
886-
// if valid && authorization != nil {
887-
// dauthz.SpendLimit = dauthz.SpendLimit.Add(withdrawal)
888-
// err = k.authzKeeper.SaveGrant(ctx, owner, depositor, dauthz, expiration)
889-
// if err != nil {
890-
// return err
891-
// }
892-
// }
893-
//}
894-
895-
return nil
896-
}
897-
898842
func (k *keeper) paymentWithdraw(ctx sdk.Context, obj *payment) error {
899843
owner, err := sdk.AccAddressFromBech32(obj.State.Owner)
900844
if err != nil {

0 commit comments

Comments
 (0)