Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: MultiSign wallet/transactions #1546

Open
AndreyKortosov opened this issue Sep 26, 2024 · 0 comments
Open

[Feature]: MultiSign wallet/transactions #1546

AndreyKortosov opened this issue Sep 26, 2024 · 0 comments
Labels
RTV Label for the project RTV

Comments

@AndreyKortosov
Copy link

User stories

As a I want to So that
One of the Team Get access to a corporate wallet I have control under corporate transactions
One of the Team Make transactions from the corporate wallet and request signs from my colleagues My colleagues may have up-to-date information
One of the Team See the transaction that required my sign I have control under corporate transactions

Acceptance criteria

  1. The user wants to create a corporate wallet.
    1. The Polkaswap allows to creation of a MultiSign wallet (MST) on the Account page.
      1. If the user logged with the Fearless wallet, Polkaswap is allowed to create an MST account.
        1. Otherwise, Polkaswap shows the message only
          1. MultiSign account is available in Polkaswap. Please log in via Fearless Wallet and gain control over your team. If you don't have the Fearless wallet please create it.
  2. The user logs in via Fearless Wallet and on the Account page creates the MST wallet
    1. The Polkaswap requests the necessary information:
      1. Name of the company/team, wallet name.
        1. Input field
        2. Store at local
        3. Can be edited in the future
      2. Participants of the team
        1. via adding SORA accounts/addresses
      3. Set up a threshold for processing the transactions
        1. At least 1
        2. The threshold can't be more than amount of participants.
    2. During the creation of the MST wallet, Polkaswap shows the warning that the MST wallet cannot possibly change in the future, only the name.
    3. After providing all the necessary information, the Polkaswap requests to create an MST wallet in the blockchain.
      1. In response MST wallet address.
      2. All other participants should repeat the steps and provide the same list of users and the threshold.
  3. The user enters to MST wallet
    1. The Polkaswap shows the MST wallet on the Account page.
      1. The Polkaswap shows the private account of the user and the MST wallet separately.
        1. The user can participate only in one MST wallet.
        2. If the user doesn't participate in any team, the Polkaswap suggests creating it.
    2. The Polkaswap shows
      1. Corporate balances
        1. The current implementation
      2. List of transactions
        1. All transactions with this MST wallet.
    3. The Polkaswap shows the badge of the MST wallet near the private account on the right and up place, near settings.
      1. By clicking, the Polkaswap opens the MST wallet
    4. The Polkaswap allows the user to switch between a private account and an MST wallet by clicking on the wallet on the right and up the place.
  4. The user wants to make a transaction.
    1. In the MST wallet all transactions under multisign
    2. If the user is in the MST wallet the Polkaswap
      1. allows to set up the transaction
      2. shows a message about additional signs
    3. After signing and confirmation
      1. the Polkaswap creates the message to the blockchain
        1. the Polkaswap requests Fearless Wallet to encode the transaction details
      2. the Polkaswap sends a request to the blockchain to sign the transaction
      3. The blockchain handles the transaction
        1. Store encoded message to the system.remark
        2. Store to MultiSign storage request for additional signs
    4. The Polkaswap shows the confirmation about the sent transaction to additional signs.
  5. The user receives a notification about a new MST transaction, which is waiting for the sign.
    1. By clicking the notification, the Polkaswap opens the MST transaction
  6. The user opens a list of multisign transactions via the Account page.
    1. The Polkaswap shows all multisign transactions across the MST wallet.
      1. New transactions that require additional sign on the top of the list.
        1. It's a transaction from that MST wallet and hasn't been processed yet (signs less than a threshold).
      2. The old one below is sorted by date.
      3. By clicking on the transaction, the Polkaswap shows information about the transaction and a button to provide a sign (if necessary).
        1. The Polkaswap gets information about the transaction from system.remark of the block.
        2. The Polkaswap uses the Fearless Wallet to decode the information.
        3. The sign flow is common like for personal wallets.
      4. When the user provides the sign
        1. The Polkaswap check is enough sign for processing.
          1. If not, the Polkaswap shows the user a message about not having enough signs to proceed with the transaction.
            1. The Polkaswap sends to the blockchain an additional sign for the transaction.
        2. The amount of signs equal to the threshold, the Polkaswap processes the transaction.
          1. The blockchain processes the transaction.
  7. The user wants to change the participants of the team.
    1. The Polkaswap doesn't allow a change in participants of the team and threshold.
    2. The Polkaswap suggests creating a new corporate wallet.

Definition of Done

  • The user can create an MST wallet only with the Fearless wallet and with 3 teammates, with 2 thresholds.
  • The user can create MST transactions with requests to teammates' signs
  • The user can shift between the MST wallet and the private wallet.
  • The user can see the sign request of the MST transaction.
  • The user can sign the MST transaction of a teammate.
@AndreyKortosov AndreyKortosov added the RTV Label for the project RTV label Sep 26, 2024
@stefashkaa stefashkaa removed their assignment Jan 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
RTV Label for the project RTV
Projects
Status: In Progress
Development

No branches or pull requests

2 participants