execute method

  1. @override
Future<ExecuteDetailsCompat> execute({
  1. required UiFieldsCompat uiFields,
  2. required List<PrimitiveSignatureCompat> routeTxnSigs,
  3. required PrimitiveSignatureCompat initialTxnSig,
})
override

⚠️ This method is experimental. Use with caution.

Implementation

@override
Future<ExecuteDetailsCompat> execute({
  required UiFieldsCompat uiFields,
  required List<PrimitiveSignatureCompat> routeTxnSigs,
  required PrimitiveSignatureCompat initialTxnSig,
}) async {
  try {
    final response = await methodChannel.invokeMethod<dynamic>(
      'execute',
      {
        'orchestrationId': uiFields.routeResponse.orchestrationId,
        'routeTxnSigs': routeTxnSigs.map((e) => e.hexValue).toList(),
        'initialTxnSig': initialTxnSig.hexValue,
      },
    );

    if (response is Map) {
      return ExecuteDetailsCompat(
        initialTxnReceipt: response['initialTxnReceipt'] as String,
        initialTxnHash: response['initialTxnHash'] as String,
      );
    }

    throw PlatformException(
      code: 'execute',
      message: 'unable to parse response',
    );
  } on PlatformException catch (e) {
    debugPrint('[$runtimeType] execute $e');
    rethrow;
  } catch (e, s) {
    debugPrint('[$runtimeType] prepareDetailed $e');
    debugPrint(s.toString());
    rethrow;
  }
}