code: def send_lockedtransfer(
          transfer_description: TransferDescriptionWithSecretState,
          channel_state: NettingChannelState,
          message_identifier: MessageID,
          block_number: BlockNumber,
  ) -> SendLockedTransfer:
      
      assert channel_state.token_network_identifier == transfer_description.token_network_identifier
  
      lock_expiration = get_initial_lock_expiration(
          block_number,
          channel_state.reveal_timeout,
      )
  
      # The payment amount and the fee amount must be included in the locked
      # amount, as a guarantee to the mediator that the fee will be claimable
      # on-chain.
      total_amount = PaymentWithFeeAmount(
          transfer_description.amount + transfer_description.allocated_fee,
      )
  
      lockedtransfer_event = channel.send_lockedtransfer(
          channel_state=channel_state,
          initiator=transfer_description.initiator,
          target=transfer_description.target,
          amount=total_amount,
          message_identifier=message_identifier,
          payment_identifier=transfer_description.payment_identifier,
          expiration=lock_expiration,
          secrethash=transfer_description.secrethash,
      )
      return lockedtransfer_event
docs: Create a mediated transfer using channel.