Skip to content

Tokens held by MSA-owned accounts can be withdrawn #2388

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

Open
1 task done
JoeCap08055 opened this issue May 5, 2025 · 0 comments · May be fixed by #2402
Open
1 task done

Tokens held by MSA-owned accounts can be withdrawn #2388

JoeCap08055 opened this issue May 5, 2025 · 0 comments · May be fixed by #2402
Assignees

Comments

@JoeCap08055
Copy link
Collaborator

JoeCap08055 commented May 5, 2025

Feature Description

Details

Related to #2351, a holder of a control key for an MSA should be able to "withdraw" tokens held by the associated address to another address

A/C

  • Only the complete balance held by the MSA account may be withdrawn
  • The withdrawal MUST be approved by a Control Key of the MSA that is the source of the withdrawal
  • The withdrawal MUST be from the holder of the private key of the address the tokens are withdrawing to
  • The MSA Control Key MUST approve the specific address the withdrawal is going to
  • MSAs holding tokens may not be retired until tokens are withdrawn
  • Allow Withdrawal as free extrinsic

Options

Winner: Withdrawal Tx is submitted by the token withdrawal target (with signature from MSA Control Key)

  1. Withdrawal Tx is submitted by the MSA Control Key (with signature from withdrawal target) Don't want some control keys to have to do the act of moving tokens
  2. Withdrawal Tx is submitted by the token withdrawal target (with signature from MSA Control Key)
  3. Withdrawal Tx takes a long-term, persistent approval step submitted by the MSA Control Key and then a withdrawal step submitted by the token withdrawal target Control Key permissions is effectively the same
  4. Withdrawal Tx takes a one-time per withdrawal approval step submitted by the MSA Control Key and then a withdrawal step submitted by the token withdrawal target Uselessly complex
  5. Withdrawal Tx via Control Key permissions (see below) Future

Withdrawal Tx via Control Key permissions

  • Add permissions to control keys (specifically payout permission, but future support for capacity only permission setting)
  • Add way to add generic control key to MSA with permissions (non-permission version exists on chain, not in FA yet)
  • Withdrawal as free extrinsic with fees paid by the MSA balance

Discussion

(to be moved to A/C once requirements are fully determined):

  • Q: Any restrictions on the destination address? Nope
  • Q: Do we want to require a signature to prove control of the destination address? Is transactor, so has tx signature
  • It's currently possible to send tokens to an MSA that does not exist (either not-yet-created, or retired)
    • Q: Do we want to prohibit, in any way, sending tokens to a retired MSA? No
    • Q: Do we want to prohibit retiring an MSA that has a token balance (ie, require to withdraw tokens before retiring)? Yes

Searched for Related Issues

  • I have done a search for related issues and either found none, or noted them
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant