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

Multisig operations. Use indexer for getting multisig operations #3112

Open
pgolovkin opened this issue Feb 5, 2025 · 0 comments
Open

Multisig operations. Use indexer for getting multisig operations #3112

pgolovkin opened this issue Feb 5, 2025 · 0 comments
Assignees
Labels
Enhancement Added to issues and PRs when improving how feature works but without significant changes

Comments

@pgolovkin
Copy link
Collaborator

pgolovkin commented Feb 5, 2025

The problem

There are 3 problems with current approach for getting and decoding multisig operations:

  1. Multisig operations that are executed or rejected won't be added into the operations list because they are removed from multisig pallet storage.
  2. Multisig operations call data may be retrieved only from the archive node if it was created more then 30 blocks ago (~180 seconds on Polkadot)
  3. If runtime upgrade happened before the user gets the multisig operation it may not be decoded.

Proposed solution

Use indexer for getting operation list.
Pros:

  1. The user will get all multisig operations including executed and rejected
  2. The user will get correct block number when the operation was executed, rejected, signed
  3. The call data and decoded call data will be always provided for exectued transaction
  4. The call data will be always provided for ongoing and rejected operations if call data was sent to blockchain
  5. The call data decoding will be decoupled from the runtime update
  6. If multisig initiated with batch, proxy call it will be decoded
    Cons:
  7. Indexer may not be available
  8. Indexer may be attacked and the user will get wrong decoded operation information

How to avoid security risks

  1. Compare call hash and hash(call data)
  2. For ongoing operations check if operation with call hash exists on the blockchain in multisig pallet storage
@pgolovkin pgolovkin converted this from a draft issue Feb 5, 2025
@pgolovkin pgolovkin added the Enhancement Added to issues and PRs when improving how feature works but without significant changes label Feb 5, 2025
@Asmadek Asmadek moved this from Todo to Development in Nova Spektr development Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement Added to issues and PRs when improving how feature works but without significant changes
Projects
Status: Development
Development

No branches or pull requests

2 participants