code: function getKeys(params, key, allowEmpty) {
    if (!Array.isArray(params)) { throw new Error(`[ethjs-util] method getKeys expecting type Array as 'params' input, got '${typeof params}'`); }
    if (typeof key !== 'string') { throw new Error(`[ethjs-util] method getKeys expecting type String for input 'key' got '${typeof key}'.`); }
  
    var result = []; // eslint-disable-line
  
    for (var i = 0; i < params.length; i++) { // eslint-disable-line
      var value = params[i][key]; // eslint-disable-line
      if (allowEmpty && !value) {
        value = '';
      } else if (typeof(value) !== 'string') {
        throw new Error('invalid abi');
      }
      result.push(value);
    }
  
    return result;
  }
docs: getKeys([{a: 1, b: 2}, {a: 3, b: 4}], 'a') => [1, 3]
  
  @method getKeys get specific key from inner object array of objects
  @param {String} params
  @param {String} key
  @param {Boolean} allowEmpty
  @returns {Array} output just a simple array of output keys