monitor/producer.go
func (m *Monitor) getOpenBlockNumber(
	el *data.JobEthLog) (block uint32, ok bool, err error) {
	var event string
	switch el.Topics[0] {
	case eth.ServiceChannelToppedUp:
		event = logChannelToppedUp
	case eth.ServiceChannelCloseRequested:
		event = logChannelCloseRequested
	case eth.ServiceCooperativeChannelClose:
		event = logCooperativeChannelClose
	case eth.ServiceUnCooperativeChannelClose:
		event = logUnCooperativeChannelClose
	default:
		return
	}

	if event != "" {
		block, err = m.blockNumber(el.Data,
			logChannelToppedUp)
		ok = true
	}
	return
}
func (m *Monitor) getOpenBlockNumber(
	el *data.JobEthLog) (block uint32, ok bool, err error) {
	var event string
	switch el.Topics[0] {
	case eth.ServiceChannelToppedUp:
		event = logChannelToppedUp
	case eth.ServiceChannelCloseRequested:
		event = logChannelCloseRequested
	case eth.ServiceCooperativeChannelClose:
		event = logCooperativeChannelClose
	case eth.ServiceUnCooperativeChannelClose:
		event = logUnCooperativeChannelClose
	default:
		return
	}

	if event != "" {
		block, err = m.blockNumber(el.Data,
			logChannelToppedUp)
		ok = true
	}
	return
}
// getOpenBlockNumber extracts the Open_block_number field of a given
// channel-related EthLog. Returns false in case it failed, i.e.
// the event has no such field.