eth-infinitism/account-abstraction

Is there a way to skip the bundler and pay for the transactions with one account?

nickjuntilla opened this issue · 3 comments

I am pretty excited about account abstraction, but I'm not clear if all these steps are required for the most general purpose which is operating a lot of accounts from a central account. Is there a way to simply submit transactions directly to the account contracts and pay for the gas from the submitter? Do we need to have a bundler, an entry point and a paymaster to accomplish this?

If you want to submit a UserOperation without a bundler, simply call entryPoint.handleOps([userOp]) from your own EOA. It will pay for the gas, it will be refunded from the account.
Since it is fully trusted, you can skip the off-chain validation phase, and set gas fees to 0.
The whole point of AA is to let account work without having such a dedicated EOA.

If you want to submit a UserOperation without a bundler, simply call entryPoint.handleOps([userOp]) from your own EOA. It will pay for the gas, it will be refunded from the account. Since it is fully trusted, you can skip the off-chain validation phase, and set gas fees to 0. The whole point of AA is to let account work without having such a dedicated EOA.

@drortirosh In that case you only are able to pay for your own transactions in ETH, right? Or I'm missing some not typical use case with this approach?

Thank you :)

if your account "a" submits your own handleOps, then it doesn't matter if the UserOp pays to "a" and "a" pays for the transaction, or if the UserOp doesn't pay anything, and "a" pays everything - you own both the userop and the calling account.
Yes, of course, all payments are in eth, since that's the only way to make payments on Ethereum networks.
We do allow the use of "paymaster", but it doesn't replace the need for a bundler to pay the transaction in eth (and get compensated from the paymaster)
The logic of "calculate token price and charge the user" is something internal to the paymaster, unrelated to the bundler or the EntryPoint contract.