code: def mediated_transfer_async(
              self,
              token_network_identifier: TokenNetworkID,
              amount: PaymentAmount,
              target: TargetAddress,
              identifier: PaymentID,
              fee: FeeAmount = MEDIATION_FEE,
              secret: Secret = None,
              secret_hash: SecretHash = None,
      ) -> PaymentStatus:
          
          if secret is None:
              if secret_hash is None:
                  secret = random_secret()
              else:
                  secret = EMPTY_SECRET
  
          payment_status = self.start_mediated_transfer_with_secret(
              token_network_identifier=token_network_identifier,
              amount=amount,
              fee=fee,
              target=target,
              identifier=identifier,
              secret=secret,
              secret_hash=secret_hash,
          )
  
          return payment_status
docs: Transfer `amount` between this node and `target`.
  
          This method will start an asynchronous transfer, the transfer might fail
          or succeed depending on a couple of factors:
  
              - Existence of a path that can be used, through the usage of direct
                or intermediary channels.
              - Network speed, making the transfer sufficiently fast so it doesn't
                expire.