asyncSchnorrSign function

Future asyncSchnorrSign(
  1. String? privateKey,
  2. Map<String, dynamic> txnDetails
)

Implementation

Future<dynamic> asyncSchnorrSign(
  String? privateKey,
  Map<String, dynamic> txnDetails,
) async {
  final response = new ReceivePort();

  await Isolate.spawn(
    _isolate_SchnorrSign,
    response.sendPort,
    onExit: response.sendPort,
  );

  final sendPort = await response.first as SendPort;

  final receivePort = new ReceivePort();

  sendPort.send([privateKey, txnDetails, receivePort.sendPort]);

  try {
    final result = await receivePort.first;
    var resultString = result.toString();

    if (resultString.startsWith('@@LaksaError@@')) {
      throw resultString.substring(14);
    }
    response.close();
    return result;
  } catch (e) {
    rethrow;
  }
}