Account Factory
The Account Factory is a contract that is used to create and manage Abstract Accounts, which can be interacted with via the contract or the Account Console.
To recap from that chapter, an Abstract Account is composed of a Manager and a Proxy contract. Those contracts will be created for you by the Account Factory using the latest versions of these contracts, which are store on the Version Control contract.
Flow Diagram
When a developer requests the creation of an account, the following internal process is initiated:
sequenceDiagram
autonumber
actor U as User
participant F as Account Factory
participant VC as Version Control
participant M as New Manager
participant P as New Proxy
U ->> F: CreateAccount
F -->>+ VC: Query for Manager reference
VC -->>- F: Manager code_id
F-->>+VC: Query for Proxy reference
VC-->>-F: Proxy code_id
F->F: Compute Instantiate2 Addresses
F-x+M: Instantiate Manager
F-x+P: Instantiate Proxy
F->>VC: Register Account
If you want to see in details how this is accomplished, please refer to our Github repository.