diff --git a/README.md b/README.md index 18e1c2060..e10523033 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ The DAppControl contract has the option to define functions that execute at the *These functions are executed by the Execution Environment via "delegatecall." #### Permit69 -A user must have an Execution Environment (EE) instance for each DApp they would like to use. Since the EE performs ops via delegateCalls, it needs to be able to initiate token transfers from the user. Users only have to approve the Atlas contract once because Permit69 allows Atlas to transfer funds from the user if the request is from a valid EE. The user address is used as a salt for the create2 deterministic deployment of the EE contract, making it easy for Atlas to verify if the request is coming from an EE owned by that user. Permit69 is also used by DApps, but instead transfers tokens that have accumulated in the DAppControl contract, this function performs the same verification of the EE. +A user must have an Execution Environment (EE) instance for each DApp they would like to use, and the user address is used as a salt for the create2 deterministic deployment of it. If one is not already available, EEs can be deployed during execution of a user order since their deployment address is known beforehand, this gas cost is covered by the solver so UX is never impacted. The EE performs ops via delegateCalls, so it needs to be able to initiate token transfers from the user. Users only have to approve the Atlas contract once because Permit69 allows Atlas to transfer funds from the user if the request is from a valid EE for that user (checked by verifying the user address is one of the salts for the EE address). Permit69 is also used by DApps, but instead transfers tokens that have accumulated in the DAppControl contract, this function performs the same verification of the EE. ### Atlas Frontend / Infrastructure Flow