leather-io / extension

Leather browser extension
https://leather.io
MIT License
303 stars 142 forks source link

Add automatic BNS name registration handling #2754

Open markmhendrickson opened 2 years ago

markmhendrickson commented 2 years ago

To smoothen out the process for registering BNS names

For example:

Requested during a Twitter Space with the community in October 2022

cc @bilalanees98 for input on whether these (or other) wallet enhancements would help with common registration problems

kyranjamie commented 2 years ago

We should extremely careful about—or completely avoid—implementing features like this:

It should be the responsibility of an app to take care of this. They won't be able to automate it completely, but the experience could still be improved I'm sure.

bilalanees98 commented 2 years ago

I agree with all the points that @kyranjamie has raised. Additionally there will be technical challenges involved.

To answer the initial questions:

Automatically queue up name-register calls for the user upon broadcasting of name-preorder

For the name-preorder a salt is necessary. Its used to create the salted hash of the name that is broadcast. (This is what stops other users from front-running the domain in the preorder step). This salt needs to be broadcast during the register step. For btc.us this is randomly calculated and stored on gaia. Since, it is not possible for another application to access btc.us specific data on gaia then this info will have to be passed to the wallet and I am not sure if this is possible.

Automatically retry name-register calls if they first fail

Automatic retrying won't fix the reason why the tx failed. e.g. if the register tx failed because the preorder was not found then retrying will not do anything. Automating any process to cater to network uncertainty entirely is not possible imo.

aulneau commented 2 years ago

I don't think the wallet should ever automatically re-submit transactions, but I do think the wallet should support BNS functionality built in. If we're thinking about it from the users perspective, BNS is a built-in primitive that has special treatment in the ecosystem/network, and wallets should provide special treatment to those transactions as they help push the overall experience forward in many positive ways.