I'm writing a function in my contract that is supposed to run only if I receive a transfer notification from "eosio.token". The way I handle eosio.token transfer notification is similar to this (but not exactly, I changed the condition so that my function will be called ONLY when the "code" is "eosio.token"). My function is a public function but it is not defined in the ABI file.
My question is: Is it safe to assume a user has no way to call this function except through pushing a transfer action with "eosio.token"?