ChainSafe / Multix

Use a Multisig to do anything, on Polkadot
https://multix.chainsafe.io/
Apache License 2.0
27 stars 21 forks source link

Incorrect insufficient balance message #534

Open ansermino opened 6 months ago

ansermino commented 6 months ago

Description The insufficent balance message indicated it is the "Signing with" but in this case it is the multisig that has insufficient balance.

Update: Increasing the multisig balance fixed the insufficient balance, confirming the message is incorrect.

Prerequisites

Add any setup info / environment / account specifics that need to be in place prior to the test

Steps To Reproduce

Using

  1. Go to Multix at 'https://multix.chainsafe.io/'
  2. Select "Set identity"

Expected Behaviour The message should indicate it is the multisig, or leave it to the user to determine which account.

Console Error N/A

Screenshots / Video

Screenshot 2024-04-18 at 12 18 42 PM

Test Host Specifics

Available on request.

Tbaut commented 6 months ago

I've a hard time reproducing it. I don't think that the multisig needs any fund to do this, and from my tests, the error message is actually accurate. Are you absolutely sure that the account that was submitting has enough transferable funds?

In this example, the depost is 20 PAS for a multisig tx or setting an identity. Just like your example, the pure and one of the signatory has >20. The multisig has not enough (2) but it shouldn't matter afaik.

https://github.com/ChainSafe/Multix/assets/33178835/a18314fd-1327-4b6d-a7aa-e747a9e1c3e3

asnaith commented 5 months ago

Hey @Tbaut I was trying to work this out.

Whilst looking into it I noticed that the fee for setting the Identity comes from the balance of the Pure not the balance of the Signatory (expected) but currently if the signatory has less than 20 Paseo we see the error message below.

CleanShot 2024-05-07 at 15 01 53@2x

This seems incorrect because I think the signatory only needs a small amount of PAS (about 0.02) to pay for the tx of the proposal they are submitting, the signatory account should not need the full amount required as it's not the account paying the identity fee?

If a proposing signatory has above 21 Paseo so that they can avoid this error and submit the change I confirmed there is only 0.02 PAS deducted from the proposing signatory account so could it be a problem where we are checking that there is enough for a reserve fee when one is not required?

This might not be specifically related to Identity either because I'm seeing the same elsewhere:

CleanShot 2024-05-08 at 11 41 32@2x

Tbaut commented 5 months ago

You're mistaking and mixing the deposit for the multisig TX, and the one for the identity. Both are paid by different parties, and both are required. There's an entry in the wiki for it. Replace the pure proxy by identity and that works. https://github.com/ChainSafe/Multix/wiki/Why-are-funds-reserved%3F

My video above also shows that the signatory needs 20, so it's not a surprise. The OP says they have enough funds, everywhere beside the multisig, but to me this is not needed, and the UI seems fine. This is what I can't reproduce.

asnaith commented 5 months ago

@Tbaut ah yes of course, sorry. Indeed I forgot about the temp reserve as anti-spam / chain bloat measure.

So I was only seeing the 0.02 PAS deduction from the account with >20 because I was running through the whole flow and signing with the second signatory for approval (therefore getting the temp reserve back by the time I checked balance again).