LedgerHQ / ledger-fresh-management

This is where product topics are discussed for Ledger Fresh
Apache License 2.0
14 stars 2 forks source link

[Web] - Smart-contract wallet deployment #71

Open qd-qd opened 1 year ago

qd-qd commented 1 year ago

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

github-actions[bot] commented 1 year ago

Task monitoring 📝


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.

qd-qd commented 1 year ago

Adjusted the difficulty from 5 to 2 as indicated by @yogh333 in #107

yogh333 commented 1 year ago

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.