diff --git a/EIPS/eip-4337.md b/EIPS/eip-4337.md index ad59acf6534ec..8328d75258985 100644 --- a/EIPS/eip-4337.md +++ b/EIPS/eip-4337.md @@ -303,7 +303,8 @@ The paymaster scheme allows a contract to passively pay on users' behalf under a It is an important design goal of this proposal to replicate the key property of EOAs that users do not need to perform some custom action or rely on an existing user to create their wallet; they can simply generate an address locally and immediately start accepting funds. -This is accomplished by having the entry point itself create wallets using CREATE2. The `UserOperation` struct has an `initCode` field; this field would be empty for all operations by a given wallet after the first, but the first operation would fill in the `initCode`. The entry point creates the wallet, and then performs the operation. The user can compute the address of their wallet by locally running the [EIP 1014](https://eips.ethereum.org/EIPS/eip-1014) CREATE2 address formula. The salt used is the `nonce` of the `UserOperation`. +This is accomplished by having the entry point itself create wallets using CREATE2. The `UserOperation` struct has an `initCode` field; this field would be empty for all operations by a given wallet after the first, but the first operation would fill in the `initCode`. The entry point uses [EIP-2470](https://eips.ethereum.org/EIPS/eip-2470) deployer contract to create the wallet, and then performs the operation. The user can compute the address of their wallet by locally running the [EIP 1014](https://eips.ethereum.org/EIPS/eip-1014) CREATE2 address formula. The salt used is the `nonce` of the `UserOperation`. +(The EntryPoint contract has a utility method `getSenderAddress()` for that purpose) ### Entry point upgrading