Open Parsh opened 4 weeks ago
As far as I'm aware, this is done by HWI on the first time display address or sign tx is called for the multisig, and the call for registration is not exposed independently by HWI.
I wasn't able to register the wallet policy descriptor during signing w/ Ledger, however, I can see that the display_multisig_address has a parameter where a descriptor can be passed. Shall we therefore expose this method via our desktop app?
Well, we should expose the display address regardless, but can Also utilize it for the registration
Upon going through the display_multisig_address method, it doesn't feel like it is built to consume a wallet policy descriptor like we've in case of Assisted Vault:
wsh(andor(pk([7569FB6F/48h/0h/0h/2h]xpub6FCu8GLu8erohpwprL56WV5PDyHYuNkaHJkNUZ6sHbLMzc8aC3htp8xuxFp2cRBXZbYEQnK6nxwc8FGSRKDp9itjS9r1JzmEgVUrBRCY4ZZ/<0;1>/*),or_i(c:or_i(pk_h([D3581891/48h/0h/0h/2h]xpub6F9vndtyzVd55uZrJxr2YU4JAX4tPLUGviu54b26jjaxx4VZ41mnmLvCw6HoMJL9wqXCgG63PKzpTJdiwuqJPKBy3rbSUF5uVH8pVmeSW68/<0;1>/*),pk_h([32a79517/48h/0h/0h/2h]xpub6E2yYbUi6EGwwWdG8vTAnogCJxYL9UBvzzbWXMWjMbfn17BewsTHj52LgRSZJJmYVCiDisA5v73vFEUQ2RFF833xXbwwJASfcd3R6GGCESY/<0;1>/*)),after(856722)),and_v(and_v(v:pk([D3581891/48h/0h/0h/2h]xpub6F9vndtyzVd55uZrJxr2YU4JAX4tPLUGviu54b26jjaxx4VZ41mnmLvCw6HoMJL9wqXCgG63PKzpTJdiwuqJPKBy3rbSUF5uVH8pVmeSW68/<2;3>/*),v:pk([32a79517/48h/0h/0h/2h]xpub6E2yYbUi6EGwwWdG8vTAnogCJxYL9UBvzzbWXMWjMbfn17BewsTHj52LgRSZJJmYVCiDisA5v73vFEUQ2RFF833xXbwwJASfcd3R6GGCESY/<2;3>/*)),after(856725))))
If it can then we are good to go.
Liana is using the following to interface w/ hardware wallets that currently support miniscript: https://github.com/wizardsardine/async-hwi
This is an issue only for Ledger I think, not BitBox02. Since Ledger only keeps the hmac from the registration, which we'll need to pass it when we want to use a registered wallet. However HWI doesn't support it currently, so some changes will be required to HWI to support that.
Task Description Currently, the desktop app doesn't support the registration of an output descriptor for Ledger, BitBox etc.
We'll require this functionality in order to register the wallet policy for the upcoming miniscript-based Assisted Vault feature.