How does the proxy created by ProxyFactory work?

Hi @kseniya,

The minimal proxy is a simple contract that just delegates all calls to a logic contract. A delegate call is similar to a regular call, except that all code is executed in the context of the caller, not of the callee. Meaning that the state is with the minimal proxy and there can be multiple minimal proxies all pointing to the one logic contract.

The logic contract doesn’t need any proxy functionality. The only thing it may need is an initialize function, and so can inherit from Initializable to use the initializer modifier to ensure that initialize is only called once.

I suggest reading (if you haven’t already): Deep dive into the Minimal Proxy contract

Feel free to ask all the questions that you need.