How can a user send a userOperation without having to use an EOA? Don't get how the EOA is abstracted, unless there is an Executor account signing those userOperations
2 Answers
A user can call a contract that can in turn call a function in another contract. If it is a delegatecall, then the msg.sender would still be the EOA but if it is a regular call, it is technically the intermediary contract making the call.
The UserOperation is sent to a different mempool serviced by new programs called Bundlers. The operation ends up on-chain via a call by the Bundler to a whitelisted contract called an EntryPoint, passing the UserOperation to it.
There's lot more stuff going on, too much to discuss here.