Zondax / ledger-polkadot

Polkadot app for Ledger Nano S and X
Apache License 2.0
67 stars 32 forks source link

Issue with multisig.AsMulti #174

Closed ansermino closed 1 year ago

ansermino commented 1 year ago

I am trying to use my Ledger with a multisig. When I submit a call to multisig.AsMulti to call proxy.createPure I get this error message:

multisig.asMulti
Call nesting not supported

According to the readme both of these calls are supported.

I am using a Nano S Plus, firmware 1.1.0, Polkadot app 19.9360.2.

:link: zboto Link

carlosala commented 1 year ago

The issue with that is that proxy.createPure is not nesting supported, so it can't be called from another method. Which is the workflow where you need that call to be nesting supported?

ansermino commented 1 year ago

I am attempting to deploy a multsig which controls a pure proxy so that the multsig can later be changed by transferring ownership of the proxy.

I suppose a work around would be to deploy the proxy and then transfer ownership.

Can you expand on what it means to be "nesting supported"? If we're using a multsig it would be nice to know which other calls are not supported.

carlosala commented 1 year ago

A call supports nesting when it can be called from a extrinsic, not being the extrinsic itself. For example, utility.batch extrinstic takes, as parameters, other calls to be performed. The calls inside need to support nesting. You can see in the readme which calls do support it. If you need that proxy.createPure, there's no problem to add it 👌🏻 We have this differentiation to avoid recursively have nested calls, which may hit the limit of the device. In the case of proxy.createPure, there's no issue at all. It'll be supported in the next version 👌🏻

ansermino commented 1 year ago

I think it would definitely make sense to support as it's the recommended and most common way of deploying a multisig.

For me this issue can be considered closed. Support in future release would be awesome :)

ansermino commented 1 year ago

Please make sure to include killPure as well. This is required to unlock the locked tokens from creating a pure proxy and destroy the proxy.