vitwit / resolute

Resolute
https://resolute.vitwit.com/
Other
22 stars 17 forks source link

Add offchain sequence management for multisig accounts #1448

Open freeelancer opened 1 month ago

freeelancer commented 1 month ago

Currently the sequence used for signing multisig is taken directly from the chain. This means that if there are multiple transactions to sign, they would all be signed with the same sequence and only one can be broadcasted. By having a local sequence management, all transactions can be signed and broadcasted together.

anilcse commented 2 weeks ago

This is a good feature. Thank you @freeelancer cc @charymalloju @Hemanthghs

freeelancer commented 1 week ago

Thank you @anilcse. I see the changes and it has been a great improvement for us.

With the current changes, multisig members have to wait for a transaction to go past threshold before they can move on to sign the next transaction. Just some further suggestions to improve the UX. As a multisig user, we wish to be able to sign all our multisig transactions at one go (in the happy scenario) instead of waiting in between.

A suggestion I have to achieve this is to let the first signer of a multisig transactions determine its sequence number and for all future members to see the order of "to be signed" multisig transactions and to sign in the same order. If another signer signs with a different sequence, have a warning message and if user choose to continue, sign and delete all other signatures with different sequence numbers and reorder the "to be signed" transactions.

I understand that this might be a complex feature to implement, but I believe it would greatly benefit users (being one myself and feeling the pain of only being able to sign one tx at a time). I'm open to any solution that can achieve this goal. Any improvement in this area would be greatly appreciated.

anilcse commented 2 days ago

I missed this message @freeelancer , thank you for flagging. @Hemanthghs we should allow signing in any order right? Just the broadcast should follow the sequence order.