@@ -34,6 +34,7 @@ type rollappCriteria struct {
34
34
MinFeePercentage sdk.Dec
35
35
OperatorFeeShare sdk.Dec
36
36
SettlementValidated bool
37
+ spendLimit sdk.Coins // keep private to exclude from hash, as spendLimit decreases as orders are fulfilled
37
38
}
38
39
39
40
func (l * lp ) hasBalance (amount sdk.Coins ) bool {
@@ -131,6 +132,7 @@ func (or *orderTracker) loadLPs(ctx context.Context) error {
131
132
132
133
for _ , grant := range grants .Grants {
133
134
if grant .Authorization == nil {
135
+ or .logger .Error ("nil authorization" , zap .Any ("grant" , grant ))
134
136
continue
135
137
}
136
138
@@ -157,13 +159,17 @@ func (or *orderTracker) loadLPs(ctx context.Context) error {
157
159
balance : resp .Balances ,
158
160
}
159
161
162
+ l , existLP := or .lps [grant .Granter ]
163
+
160
164
for _ , rollapp := range g .Rollapps {
161
165
// check if the rollapp is supported
162
166
if ! or .isRollappSupported (rollapp .RollappId ) {
167
+ or .logger .Debug ("unsupported rollapp" , zap .String ("rollapp" , rollapp .RollappId ))
163
168
continue
164
169
}
165
170
// check the operator fee is the minimum for what the operator wants
166
171
if rollapp .OperatorFeeShare .Dec .LT (or .minOperatorFeeShare ) {
172
+ or .logger .Debug ("operator fee share too low" , zap .String ("rollapp" , rollapp .RollappId ))
167
173
continue
168
174
}
169
175
@@ -175,26 +181,32 @@ func (or *orderTracker) loadLPs(ctx context.Context) error {
175
181
RollappID : rollapp .RollappId ,
176
182
Denoms : denoms ,
177
183
MaxPrice : rollapp .MaxPrice ,
184
+ spendLimit : rollapp .SpendLimit ,
178
185
MinFeePercentage : rollapp .MinFeePercentage .Dec ,
179
186
OperatorFeeShare : rollapp .OperatorFeeShare .Dec ,
180
187
SettlementValidated : rollapp .SettlementValidated ,
181
188
}
189
+ if existLP {
190
+ r , existRA := l .Rollapps [rollapp .RollappId ]
191
+ lpsUpdated = existRA && rollapp .SpendLimit .IsAnyGT (r .spendLimit )
192
+ }
182
193
}
183
194
184
195
if len (lp .Rollapps ) == 0 {
196
+ or .logger .Debug ("no supported rollapps, skipping LP" , zap .String ("address" , grant .Granter ))
185
197
continue
186
198
}
187
199
188
200
lp .setHash ()
189
201
190
- l , ok := or .lps [grant .Granter ]
191
- if ok {
202
+ if existLP {
192
203
if l .hash != lp .hash {
193
204
or .logger .Info ("LP updated" , zap .String ("address" , grant .Granter ))
194
205
lpsUpdated = true
195
206
}
196
207
} else {
197
208
or .logger .Info ("LP added" , zap .String ("address" , grant .Granter ))
209
+ lpsUpdated = true
198
210
}
199
211
200
212
or .lps [grant .Granter ] = lp
0 commit comments