I've recently proposed some enhancements to the
Context contract in the OpenZeppelin Contracts repository. The main idea is to provide more granular control over the execution context, especially when distinguishing between direct calls made by externally owned accounts (EOAs) and those made through smart contracts or proxies.
Here are the main features I've introduced:
- A modifier to ensure the caller is an EOA and not using any proxies.
- A modifier to ensure the caller is an EOA, preventing smart contract calls.
- A modifier to ensure the call is not made through a proxy.
I believe these enhancements can provide developers with more tools to control and validate the execution context of their functions, ensuring better security and functionality alignment.
I've opened an issue in the OpenZeppelin Contracts GitHub repository to discuss this proposal in detail. I'd love to get feedback from the community and see if these changes align with the needs of other developers. github link