code: func (q *queue) DeliverReceipts(id string, receiptList [][]*types.Receipt) (int, error) {
  	q.lock.Lock()
  	defer q.lock.Unlock()
  
  	reconstruct := func(header *types.Header, index int, result *fetchResult) error {
  		if types.DeriveSha(types.Receipts(receiptList[index])) != header.ReceiptHash {
  			return errInvalidReceipt
  		}
  		result.Receipts = receiptList[index]
  		return nil
  	}
  	return q.deliver(id, q.receiptTaskPool, q.receiptTaskQueue, q.receiptPendPool, q.receiptDonePool, receiptReqTimer, len(receiptList), reconstruct)
  }
docs: // DeliverReceipts injects a receipt retrieval response into the results queue.
  // The method returns the number of transaction receipts accepted from the delivery
  // and also wakes any threads waiting for data delivery.