prepareDetailed method
Future<PrepareDetailedResponseCompat>
prepareDetailed({
- required String chainId,
- required String from,
- required CallCompat call,
- required Currency localCurrency,
override
Implementation
@override
Future<PrepareDetailedResponseCompat> prepareDetailed({
required String chainId,
required String from,
required CallCompat call,
required Currency localCurrency,
}) async {
try {
final response = await methodChannel.invokeMethod<dynamic>(
'prepareDetailed',
{
'chainId': chainId,
'from': from,
'call': call.toJson(),
'localCurrency': localCurrency.name,
},
);
if (response.containsKey('available')) {
final responseData = _handlePlatformResult(response['available']);
return PrepareDetailedResponseCompat.success(
value: PrepareDetailedResponseSuccessCompat.available(
value: UiFieldsCompat.fromJson(
responseData,
),
),
);
}
if (response.containsKey('notRequired')) {
final responseData = _handlePlatformResult(response['notRequired']);
return PrepareDetailedResponseCompat.success(
value: PrepareDetailedResponseSuccessCompat.notRequired(
value: PrepareResponseNotRequiredCompat.fromJson(
responseData,
),
),
);
}
if ((response ?? {}).containsKey('error')) {
final error = response!['error']!['error'];
final reason = response!['error']?['reason'];
return PrepareDetailedResponseCompat.error(
value: PrepareResponseError(
error: BridgingError.fromString(error),
reason: reason ?? response['reason'] ?? '',
),
);
}
throw PlatformException(
code: 'prepareDetailed',
message: 'unable to parse response',
);
} on PlatformException catch (e) {
debugPrint('[$runtimeType] prepareDetailed $e');
rethrow;
} catch (e, s) {
debugPrint('[$runtimeType] prepareDetailed $e');
debugPrint(s.toString());
rethrow;
}
}