code: func ExtractChannelConfig(configEnvelope []byte) ([]byte, error) {
  
  	envelope := &common.Envelope{}
  	err := proto.Unmarshal(configEnvelope, envelope)
  	if err != nil {
  		return nil, errors.Wrap(err, "unmarshal config envelope failed")
  	}
  
  	payload := &common.Payload{}
  	err = proto.Unmarshal(envelope.Payload, payload)
  	if err != nil {
  		return nil, errors.Wrap(err, "unmarshal envelope payload failed")
  	}
  
  	configUpdateEnvelope := &common.ConfigUpdateEnvelope{}
  	err = proto.Unmarshal(payload.Data, configUpdateEnvelope)
  	if err != nil {
  		return nil, errors.Wrap(err, "unmarshal config update envelope")
  	}
  
  	return configUpdateEnvelope.ConfigUpdate, nil
  }
docs: // ExtractChannelConfig extracts the protobuf 'ConfigUpdate' object out of the 'ConfigEnvelope'.