code: def handle_unlock(
          mediator_state: MediatorTransferState,
          state_change: ReceiveUnlock,
          channelidentifiers_to_channels: ChannelMap,
  ) -> TransitionResult[MediatorTransferState]:
      
      events = list()
      balance_proof_sender = state_change.balance_proof.sender
      channel_identifier = state_change.balance_proof.channel_identifier
  
      for pair in mediator_state.transfers_pair:
          if pair.payer_transfer.balance_proof.sender == balance_proof_sender:
              channel_state = channelidentifiers_to_channels.get(channel_identifier)
  
              if channel_state:
                  is_valid, channel_events, _ = channel.handle_unlock(
                      channel_state,
                      state_change,
                  )
                  events.extend(channel_events)
  
                  if is_valid:
                      unlock = EventUnlockClaimSuccess(
                          pair.payee_transfer.payment_identifier,
                          pair.payee_transfer.lock.secrethash,
                      )
                      events.append(unlock)
  
                      send_processed = SendProcessed(
                          recipient=balance_proof_sender,
                          channel_identifier=CHANNEL_IDENTIFIER_GLOBAL_QUEUE,
                          message_identifier=state_change.message_identifier,
                      )
                      events.append(send_processed)
  
                      pair.payer_state = 'payer_balance_proof'
  
      iteration = TransitionResult(mediator_state, events)
      return iteration
docs: Handle a ReceiveUnlock state change.