@@ -15,17 +15,25 @@ import (
1515)
1616
1717// BeginBlocker called at the beginning of each block
18- func BeginBlocker (ctx sdk.Context , k keeper.Keeper ) {
18+ func BeginBlocker (ctx sdk.Context , k keeper.Keeper ) error {
1919 updatePools (ctx , k )
20+
21+ return nil
2022}
2123
2224// EndBlocker called at the end of each block
23- func EndBlocker (ctx sdk.Context , k keeper.Keeper ) {
25+ func EndBlocker (ctx sdk.Context , k keeper.Keeper ) error {
26+ // handle pending loans
2427 handlePendingLoans (ctx , k )
28+
29+ // handle active loans
2530 handleActiveLoans (ctx , k )
2631
32+ // handle liquidated loans
2733 handleLiquidatedLoans (ctx , k )
28- handleRepayments (ctx , k )
34+
35+ // handle repayments
36+ return handleRepayments (ctx , k )
2937}
3038
3139// handleActiveLoans handles pending loans
@@ -123,7 +131,7 @@ func handleActiveLoans(ctx sdk.Context, k keeper.Keeper) {
123131
124132 currentPrice , err := k .GetPrice (ctx , pricePair )
125133 if err != nil {
126- k .Logger (ctx ).Info ("failed to get price" , "pair" , pricePair , "err" , err )
134+ k .Logger (ctx ).Warn ("failed to get price" , "pair" , pricePair , "err" , err )
127135 }
128136
129137 dlcMeta := k .GetDLCMeta (ctx , loan .VaultAddress )
@@ -259,7 +267,7 @@ func handleLiquidatedLoans(ctx sdk.Context, k keeper.Keeper) {
259267 if len (cet .DCMSignatures ) != 0 {
260268 signedTx , txHash , err := types .BuildSignedCet (cet .Tx , loan .BorrowerAuthPubKey , cet .BorrowerAdaptedSignatures , loan .DCM , cet .DCMSignatures , cetType )
261269 if err != nil {
262- k .Logger (ctx ).Info ("failed to build signed liquidation cet" , "loan id" , loan .VaultAddress , "err" , err )
270+ k .Logger (ctx ).Error ("failed to build signed liquidation cet" , "loan id" , loan .VaultAddress , "err" , err )
263271 } else {
264272 cet .SignedTxHex = hex .EncodeToString (signedTx )
265273
@@ -286,7 +294,7 @@ func handleLiquidatedLoans(ctx sdk.Context, k keeper.Keeper) {
286294}
287295
288296// handleRepayments handles repayments
289- func handleRepayments (ctx sdk.Context , k keeper.Keeper ) {
297+ func handleRepayments (ctx sdk.Context , k keeper.Keeper ) error {
290298 // get all repaid loans
291299 loans := k .GetLoans (ctx , types .LoanStatus_Repaid )
292300
@@ -297,11 +305,7 @@ func handleRepayments(ctx sdk.Context, k keeper.Keeper) {
297305 continue
298306 }
299307
300- // check if the repayment cet has been signed
301308 dlcMeta := k .GetDLCMeta (ctx , loan .VaultAddress )
302- if len (dlcMeta .RepaymentCet .SignedTxHex ) != 0 {
303- continue
304- }
305309
306310 // check if the DCM adaptor signatures have been submitted
307311 if len (dlcMeta .RepaymentCet .DCMAdaptorSignatures ) == 0 {
@@ -333,12 +337,15 @@ func handleRepayments(ctx sdk.Context, k keeper.Keeper) {
333337 // build signed repayment cet
334338 signedTx , txHash , err := types .BuildSignedCet (dlcMeta .RepaymentCet .Tx , loan .BorrowerPubKey , dlcMeta .RepaymentCet .BorrowerSignatures , loan .DCM , dlcMeta .RepaymentCet .DCMAdaptedSignatures , types .CetType_REPAYMENT )
335339 if err != nil {
336- k .Logger (ctx ).Info ("failed to build signed repayment cet" , "loan id" , loan .VaultAddress , "err" , err )
340+ k .Logger (ctx ).Error ("failed to build signed repayment cet" , "loan id" , loan .VaultAddress , "err" , err )
337341 } else {
338342 dlcMeta .RepaymentCet .SignedTxHex = hex .EncodeToString (signedTx )
339343
344+ // complete repayment
340345 if err := k .CompleteRepayment (ctx , loan ); err != nil {
341- k .Logger (ctx ).Info ("failed to complete repayment" , "loan id" , loan .VaultAddress , "err" , err )
346+ // unexpected error
347+ k .Logger (ctx ).Error ("failed to complete repayment" , "loan id" , loan .VaultAddress , "err" , err )
348+ return err
342349 }
343350
344351 // emit event
@@ -353,6 +360,8 @@ func handleRepayments(ctx sdk.Context, k keeper.Keeper) {
353360
354361 k .SetDLCMeta (ctx , loan .VaultAddress , dlcMeta )
355362 }
363+
364+ return nil
356365}
357366
358367// updatePools updates all active pools at the beginning of each block
0 commit comments