code: def encodeABI(cls, fn_name, args=None, kwargs=None, data=None):
          
          fn_abi, fn_selector, fn_arguments = get_function_info(
              fn_name, contract_abi=cls.abi, args=args, kwargs=kwargs,
          )
  
          if data is None:
              data = fn_selector
  
          return encode_abi(cls.web3, fn_abi, fn_arguments, data)
docs: Encodes the arguments using the Ethereum ABI for the contract function
          that matches the given name and arguments..
  
          :param data: defaults to function selector