completeOperationDeposit method

Future<OperationEventsVersionedMixin> completeOperationDeposit({
  1. required OperationId id,
  2. OperationDepositSecret? secret,
})

Completes an OperationDeposit.

Authentication

Mandatory if the secret argument is not specified (or is null).

Result

One of the following OperationEvents may be produced on success:

Idempotent

Succeeds as no-op (and returns no OperationEvent) if the OperationDeposit with the specified id is completed or failed already.

Implementation

Future<OperationEventsVersionedMixin> completeOperationDeposit({
  required OperationId id,
  OperationDepositSecret? secret,
}) async {
  Log.debug(
    'completeOperationDeposit(id: $id, secret: ${secret?.obscured})',
    '$runtimeType',
  );

  final variables = CompleteOperationDepositArguments(id: id, secret: secret);
  final QueryResult res = await client.mutate(
    MutationOptions(
      operationName: 'CompleteOperationDeposit',
      document: CompleteOperationDepositMutation(
        variables: variables,
      ).document,
      variables: variables.toJson(),
    ),
    onException: (data) {
      final fromJson = CompleteOperationDeposit$Mutation.fromJson(
        data,
      ).completeOperationDeposit;

      if (fromJson == null) {
        return null;
      }

      return CompleteOperationDepositException(
        (fromJson
                as CompleteOperationDeposit$Mutation$CompleteOperationDeposit$CompleteOperationDepositError)
            .code,
      );
    },
  );

  return CompleteOperationDeposit$Mutation.fromJson(
        res.data!,
      ).completeOperationDeposit
      as CompleteOperationDeposit$Mutation$CompleteOperationDeposit$OperationEventsVersioned;
}