onlyEOAEx modifier that ensures call is from EOA might not hold true in the future
modifier `onlyEOAEx` is used to ensure calls are only made from EOA. However, EIP 3074 suggests that using `onlyEOAEx` modifier to ensure calls are only from EOA might not hold true.\\nFor `onlyEOAEx`, `tx.origin` is used to ensure that the caller is from an EOA and not a smart contract.\\n```\\n    modifier onlyEOAEx() {\\n        if (!allowContractCalls && !whitelistedContracts[msg.sender]) {\\n            if (msg.sender != tx.origin) revert NOT_EOA(msg.sender);\\n        }\\n        _;\\n    }\\n```\\n\\nHowever, according to EIP 3074,\\nThis EIP introduces two EVM instructions AUTH and AUTHCALL. The first sets a context variable authorized based on an ECDSA signature. The second sends a call as the authorized account. This essentially delegates control of the externally owned account (EOA) to a smart contract.\\nTherefore, using tx.origin to ensure msg.sender is an EOA will not hold true in the event EIP 3074 goes through.
```\\n    modifier onlyEOAEx() {\\n        if (!allowContractCalls && !whitelistedContracts[msg.sender]) {\\n            if (isContract(msg.sender)) revert NOT_EOA(msg.sender);\\n        }\\n        _;\\n    }\\n```\\n
Using modifier `onlyEOAEx` to ensure calls are made only from EOA will not hold true in the event EIP 3074 goes through.
```\\n    modifier onlyEOAEx() {\\n        if (!allowContractCalls && !whitelistedContracts[msg.sender]) {\\n            if (msg.sender != tx.origin) revert NOT_EOA(msg.sender);\\n        }\\n        _;\\n    }\\n```\\n