Open qd-qd opened 1 year ago
This is an automatic post that is intended to facilitate the follow-up of the project. This post is meant to be edited throughout the life of the project.
Adjusted the difficulty from 5 to 2 as indicated by @yogh333 in #107
To me there is a backend module needed as well as some work in frontend [Web] module. That's why I have created #107. The Deployment service appears also as a module in the global system architecture.
Header
Name of the task: Smart-contract wallet deployment
Name of the module: Web
Difficulty: 2
Waiting for: #53 #54 #56 #69 #70
Body
Short description
Now that we are able to create an authenticator using WebAuthn and connect any Ledger devices to use it as a signer, we should be able to deploy the on-chain smart-contract wallet. This is the goal of this task.
Full description
During the initialization flow, after the creation of the authenticator or the connection of any Ledger devices by the user, get the public key of the signer and pass it to the back-end function that will deploy the smart-contract account on behalf of the user. The goal of this task is to develop this back-end function. The public key controlled by the user would be passed as a constructor argument of the smart-contract wallet in order to save it as an authorized signer. The deployment transaction would be fired by a signer controlled by Ledger. The transaction will target the Universal Deployer Contract (UDC) in order to deploy the new smart-contract account.
Ledger won't have any permissions on the deployed account. We use the meta-transaction pattern in order to pay the fees on behalf of the user. In the future, if the paymaster paradigm is supported by the network, this part of the backend will be removed to favor direct interaction.
Once this task is done, the "Create Wallet" flow described in Figma should be fully integrated.
Additionals ressources