createTransfer method

Future<TransactionResponseDoc> createTransfer({
  1. required String fromAccountId,
  2. required String toAccountId,
  3. required int amount,
  4. required String operator,
  5. String memo = '',
  6. List<Attachment> attachments = const [],
  7. Contract? contract,
  8. String? contextId,
  9. SelfTransfer? selfTransfer,
})

Implementation

Future<TransactionResponseDoc> createTransfer({
  required String fromAccountId,
  required String toAccountId,
  required int amount,
  required String operator,
  String memo = '',
  List<Attachment> attachments = const [],
  Contract? contract,
  String? contextId,
  SelfTransfer? selfTransfer,
}) async {
  final metadata = <Any>[...attachments.map(Metadata.attachment)];
  if (memo.isNotEmpty) {
    metadata.add(Metadata.memo(memo));
  }
  if (contract != null) {
    metadata.add(Metadata.contract(contract));
    contextId = contract.contractId;
  }
  if (selfTransfer != null) {
    metadata.add(Metadata.selfTransfer(selfTransfer));
  }

  return transfer(
    steps: [
      TransferStepDoc.fromFields(
        fromAccountId: fromAccountId,
        toAccountId: toAccountId,
        amount: amount,
        metadata: metadata,
      ),
    ],
    operator: operator,
    contextId: contextId,
  );
}