-
Notifications
You must be signed in to change notification settings - Fork 170
/
handle_leverage.go
91 lines (79 loc) · 2.79 KB
/
handle_leverage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package query
import (
"context"
"github.com/gogo/protobuf/proto"
lvtypes "github.com/umee-network/umee/v5/x/leverage/types"
)
// HandleLeverageParams handles the get the x/leverage module's parameters.
func (q UmeeQuery) HandleLeverageParams(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
return qs.Params(ctx, &lvtypes.QueryParams{})
}
// HandleRegisteredTokens handles the get all registered tokens query and response.
func (q UmeeQuery) HandleRegisteredTokens(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
if len(q.RegisteredTokens.BaseDenom) != 0 {
return qs.RegisteredTokens(ctx, &lvtypes.QueryRegisteredTokens{
BaseDenom: q.RegisteredTokens.BaseDenom,
})
}
return qs.RegisteredTokens(ctx, &lvtypes.QueryRegisteredTokens{})
}
// HandleMarketSummary queries a base asset's current borrowing and supplying conditions.
func (q UmeeQuery) HandleMarketSummary(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
return qs.MarketSummary(ctx, &lvtypes.QueryMarketSummary{Denom: q.MarketSummary.Denom})
}
// HandleAccountBalances queries an account's current supply, collateral, and borrow positions.
func (q UmeeQuery) HandleAccountBalances(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
req := &lvtypes.QueryAccountBalances{Address: q.AccountBalances.Address}
return qs.AccountBalances(ctx, req)
}
// HandleAccountSummary queries USD values representing an account's total
// positions and borrowing limits. It requires oracle prices to return successfully.
func (q UmeeQuery) HandleAccountSummary(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
req := &lvtypes.QueryAccountSummary{Address: q.AccountSummary.Address}
return qs.AccountSummary(ctx, req)
}
// HandleLiquidationTargets queries a list of all borrower account addresses eligible for liquidation.
func (q UmeeQuery) HandleLiquidationTargets(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
return qs.LiquidationTargets(ctx, &lvtypes.QueryLiquidationTargets{})
}
// HandleBadDebts queries bad debts.
func (q UmeeQuery) HandleBadDebts(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
return qs.BadDebts(ctx, &lvtypes.QueryBadDebts{})
}
// HandleBadDebts queries bad debts.
func (q UmeeQuery) HandleMaxWithdraw(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
req := &lvtypes.QueryMaxWithdraw{Address: q.MaxWithdraw.Address, Denom: q.MaxWithdraw.Denom}
return qs.MaxWithdraw(ctx, req)
}
// HandleMaxBorrow queries max borrow.
func (q UmeeQuery) HandleMaxBorrow(
ctx context.Context,
qs lvtypes.QueryServer,
) (proto.Message, error) {
req := &lvtypes.QueryMaxBorrow{Address: q.MaxBorrow.Address, Denom: q.MaxBorrow.Denom}
return qs.MaxBorrow(ctx, req)
}