Who calls the smart contract wallet?
because the rest of the ecosystem assumes that one address represents one entity and won’t be able to distinguish the individual users
We said that the wallet contract’s executeOp method can be called by anyone, so we could just ask someone else with an EOA to call it for us.
as part of the executor’s call, the wallet will transfer some ETH to the executor to compensate the executor for any gas used
To try to avoid this scenario, the executor can try simulating the executeOp operation locally, likely with debug_traceCall
A dishonest wallet could do this intentionally,
For example, it would prevent the wallet from interacting with Uniswap, which uses TIMESTAMP extensively.
With this implementation, the executor gets refunded for gas no matter what.
This is great for the executor! But it’s actually a pretty big problem for the wallet…
does two things: i
Now things look great for the wallet! It won’t be charged for gas except for operations it authorized.
But now that we have an entry point contract that’s not tied to just one wallet, we can save some gas by collecting a bunch of user operations from different people, then executing them all in a single transaction!
lowering fees for performing cold storage accesses (accessing the same storage several times in a transaction is cheaper after the first time).
will save gas by not repeatedly paying a fixed 21,000 gas fee
Now that we have bundling, we can stop calling these participants “executors” and start calling them by their real name, bundlers.
Over time, we might expect that bundlers and block builders merge into the same role.
A bundler can benefit by also being a block builder, because if they can choose the block that their bundle is included in, they can reduce or even eliminate the possibility of operations failing during execution after succeeding in simulation. Further, block builders and bundlers can benefit in similar ways by knowing how to extract MEV.
Just as nodes store ordinary transactions in a mempool and broadcast them to other nodes, bundlers can store validated user ops in a mempool and broadcast them to other bundlers.
Glasp is a social web highlighter that people can highlight and organize quotes and thoughts from the web, and access other like-minded people’s learning.