transfer method

Future<TransactionResponseDoc> transfer({
  1. required List<TransferStepDoc> steps,
  2. required String operator,
  3. String? contextId,
  4. bool commit = true,
})

Implementation

Future<TransactionResponseDoc> transfer({
  required List<TransferStepDoc> steps,
  required String operator,
  String? contextId,
  bool commit = true,
}) async {
  final transferSteps = steps.map((step) => step.model).toList();
  final transfer = CreateTransfer()..setSteps(transferSteps);

  final request = TransactionRequestPayload();
  if (commit) {
    request.data = (TransactionData()..transfer = transfer);
  } else {
    request.data = (TransactionData()..initiateTransfer = transfer);
  }

  final client = getServiceClient(operator);
  final envelop = await requestEnvelope(
    request: request,
    contextId: contextId != null ? hex.decode(contextId) : null,
  );
  final response = await client.tx.createTransaction(envelop);

  return TransactionResponseDoc(response, contextId);
}