docs: function methodToAbi (method) {
    const length = method.length;
    const typesStart = method.indexOf('(');
    const typesEnd = method.indexOf(')');
  
    if (typesStart === -1) {
      throw new Error(`Missing start ( in call to decodeMethod with ${method}`);
    } else if (typesEnd === -1) {
      throw new Error(`Missing end ) in call to decodeMethod with ${method}`);
    } else if (typesEnd < typesStart) {
      throw new Error(`End ) is before start ( in call to decodeMethod with ${method}`);
    } else if (typesEnd !== length - 1) {
      throw new Error(`Extra characters after end ) in call to decodeMethod with ${method}`);
    }
  
    const name = method.substr(0, typesStart);
    const types = method.substr(typesStart + 1, length - (typesStart + 1) - 1).split(',');
    const inputs = types.filter((_type) => _type.length).map((_type) => {
      const type = fromParamType(toParamType(_type));
  
      return { type };
    });
  
    return { type: 'function', name, inputs };
  }