code: def transfer(self, from_acct: Account, b58_to_address: str, value: int, payer_acct: Account, gas_limit: int,
                   gas_price: int) -> str:
          
          func = InvokeFunction('transfer')
          if not isinstance(value, int):
              raise SDKException(ErrorCode.param_err('the data type of value should be int.'))
          if value < 0:
              raise SDKException(ErrorCode.param_err('the value should be equal or great than 0.'))
          if not isinstance(from_acct, Account):
              raise SDKException(ErrorCode.param_err('the data type of from_acct should be Account.'))
          Oep4.__b58_address_check(b58_to_address)
          from_address = from_acct.get_address().to_bytes()
          to_address = Address.b58decode(b58_to_address).to_bytes()
          func.set_params_value(from_address, to_address, value)
          tx_hash = self.__sdk.get_network().send_neo_vm_transaction(self.__hex_contract_address, from_acct, payer_acct,
                                                                     gas_limit, gas_price, func, False)
          return tx_hash
docs: This interface is used to call the Transfer method in ope4
          that transfer an amount of tokens from one account to another account.
  
          :param from_acct: an Account class that send the oep4 token.
          :param b58_to_address: a base58 encode address that receive the oep4 token.
          :param value: an int value that indicate the amount oep4 token that will be transferred in this transaction.
          :param payer_acct: an Account class that used to pay for the transaction.
          :param gas_limit: an int value that indicate the gas limit.
          :param gas_price: an int value that indicate the gas price.
          :return: the hexadecimal transaction hash value.