Skip to content

Commit 7825949

Browse files
committed
feat(taker-bloc): Implement maker fallback with logging (#2715)
* fix(dex): refactor maker fallback logging * refactor(dex-repository): using logging package and reduce best orders * fix: rebase duplication and formatting issues
1 parent 6047c57 commit 7825949

File tree

2 files changed

+276
-169
lines changed

2 files changed

+276
-169
lines changed

lib/bloc/dex_repository.dart

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import 'package:logging/logging.dart' show Logger;
12
import 'package:rational/rational.dart';
23
import 'package:web_dex/app_config/app_config.dart';
34
import 'package:web_dex/mm2/mm2_api/mm2_api.dart';
45
import 'package:web_dex/mm2/mm2_api/rpc/base.dart';
56
import 'package:web_dex/mm2/mm2_api/rpc/best_orders/best_orders.dart';
67
import 'package:web_dex/mm2/mm2_api/rpc/best_orders/best_orders_request.dart';
7-
import 'package:web_dex/mm2/mm2_api/rpc/setprice/setprice_request.dart';
88
import 'package:web_dex/mm2/mm2_api/rpc/max_taker_vol/max_taker_vol_request.dart';
99
import 'package:web_dex/mm2/mm2_api/rpc/max_taker_vol/max_taker_vol_response.dart';
1010
import 'package:web_dex/mm2/mm2_api/rpc/min_trading_vol/min_trading_vol.dart';
@@ -13,6 +13,7 @@ import 'package:web_dex/mm2/mm2_api/rpc/my_recent_swaps/my_recent_swaps_request.
1313
import 'package:web_dex/mm2/mm2_api/rpc/my_swap_status/my_swap_status_req.dart';
1414
import 'package:web_dex/mm2/mm2_api/rpc/sell/sell_request.dart';
1515
import 'package:web_dex/mm2/mm2_api/rpc/sell/sell_response.dart';
16+
import 'package:web_dex/mm2/mm2_api/rpc/setprice/setprice_request.dart';
1617
import 'package:web_dex/mm2/mm2_api/rpc/trade_preimage/trade_preimage_errors.dart';
1718
import 'package:web_dex/mm2/mm2_api/rpc/trade_preimage/trade_preimage_request.dart';
1819
import 'package:web_dex/mm2/mm2_api/rpc/trade_preimage/trade_preimage_response.dart';
@@ -21,12 +22,13 @@ import 'package:web_dex/model/swap.dart';
2122
import 'package:web_dex/model/text_error.dart';
2223
import 'package:web_dex/model/trade_preimage.dart';
2324
import 'package:web_dex/services/mappers/trade_preimage_mappers.dart';
24-
import 'package:web_dex/shared/utils/utils.dart';
25+
import 'package:web_dex/shared/utils/utils.dart' show fract2rat;
2526

2627
class DexRepository {
2728
DexRepository(this._mm2Api);
2829

2930
final Mm2Api _mm2Api;
31+
final _log = Logger('DexRepository');
3032

3133
Future<SellResponse> sell(SellRequest request) async {
3234
try {
@@ -37,17 +39,27 @@ class DexRepository {
3739
}
3840
}
3941

40-
Future<Map<String, dynamic>?> setPrice(SetPriceRequest request) async {
42+
Future<String> setPrice(SetPriceRequest request) async {
4143
try {
42-
return await _mm2Api.setprice(request);
44+
final Map<String, dynamic>? response = await _mm2Api.setprice(request);
45+
if (response == null) {
46+
throw Exception('Null response from setprice');
47+
}
48+
49+
final Object? error = response['error'];
50+
if (error != null) {
51+
throw Exception(error.toString());
52+
}
53+
54+
final String? uuid = response['result']?['uuid'] as String?;
55+
if (uuid == null) {
56+
throw Exception('Missing uuid in setprice response');
57+
}
58+
59+
return uuid;
4360
} catch (e, s) {
44-
log(
45-
'Error setprice ${request.base}/${request.rel}: $e',
46-
path: 'dex_repository => setPrice',
47-
trace: s,
48-
isError: true,
49-
).ignore();
50-
return <String, dynamic>{'error': e.toString()};
61+
_log.severe('Error setprice ${request.base}/${request.rel}', e, s);
62+
rethrow;
5163
}
5264
}
5365

@@ -89,12 +101,10 @@ class DexRepository {
89101
),
90102
);
91103
} catch (e, s) {
92-
log(
93-
e.toString(),
94-
path:
95-
'swaps_service => getTradePreimage => mapTradePreimageResponseToTradePreimage',
96-
trace: s,
97-
isError: true,
104+
_log.severe(
105+
'swaps_service => getTradePreimage => mapTradePreimageResponseToTradePreimage',
106+
e,
107+
s,
98108
);
99109
return DataFromService(error: TextError(error: 'Something wrong'));
100110
}
@@ -148,7 +158,7 @@ class DexRepository {
148158
try {
149159
return BestOrders.fromJson(response!);
150160
} catch (e, s) {
151-
log('Error parsing best_orders response: $e', trace: s, isError: true);
161+
_log.severe('Error parsing best_orders response', e, s);
152162

153163
return BestOrders(
154164
error: TextError(

0 commit comments

Comments
 (0)