19:15:03 <sipa> #startmeeting
19:15:03 <lightningbot> Meeting started Fri Nov 16 19:15:03 2018 UTC.  The chair is sipa. Information about MeetBot at http://wiki.debian.org/MeetBot.
19:15:03 <lightningbot> Useful Commands: #action #agreed #help #info #idea #link #topic.
19:15:42 <sipa> topics?
19:16:13 <provoostenator> Not really, I need to catch up on review and testing.
19:16:42 <instagibbs> #14565 needs rebase/more review
19:16:44 <gribble> https://github.com/bitcoin/bitcoin/issues/14565 | Overhaul importmulti logic by sipa · Pull Request #14565 · bitcoin/bitcoin · GitHub
19:16:49 <meshcollider> Hi
19:17:24 <sipa> yeah, i need to get back to that
19:17:28 <meshcollider> Yeah I need to rebase #14491 on it to
19:17:31 <gribble> https://github.com/bitcoin/bitcoin/issues/14491 | Allow descriptor imports with importmulti by MeshCollider · Pull Request #14491 · bitcoin/bitcoin · GitHub
19:17:41 <sipa> and i need to add more tests
19:17:48 <sipa> and address ryanofsky_'s comments
19:18:45 <instagibbs> gwillen, any update on psbt signing stuff?
19:19:10 <provoostenator> For those reading (the logs): ##hwi is a fun place for those interesting in _hardware_ wallet support, and there's some overlap with this effort.
19:19:11 <sipa> a question i had, how do we progress with things like #14481 ?
19:19:14 <gribble> https://github.com/bitcoin/bitcoin/issues/14481 | Add P2SH-P2WSH support to listunspent RPC by MeshCollider · Pull Request #14481 · bitcoin/bitcoin · GitHub
19:19:25 <gwillen> instagibbs: no update, other than I think https://github.com/bitcoin/bitcoin/pull/14588 getting in happened since the last time we had this meeting
19:20:12 <sipa> because it seems to me that using descriptors instead of lists of keys/redeemscript/witnessnessscript in sign* RPCs will be a much better user experience
19:20:22 <gwillen> I still owe another PR of PSBT related refactoring, and I have a working demo of offline signing UI if anybody wants to play with it (it's the same one I had around this time last week already)
19:20:37 <provoostenator> How would listunspent return descriptors?
19:20:56 <sipa> provoostenator: #14477
19:21:00 <sipa> already implemented
19:21:00 <meshcollider> provoostenator: accept, not return
19:21:01 <gribble> https://github.com/bitcoin/bitcoin/issues/14477 | Add ability to convert solvability info to descriptor by sipa · Pull Request #14477 · bitcoin/bitcoin · GitHub
19:21:09 <sipa> meshcollider: no, return
19:21:19 <instagibbs> the stuff you need to pass to other calls
19:21:23 <provoostenator> Ah ok, by converting scripts, that makes sense.
19:21:28 <meshcollider> Oh right
19:21:42 <provoostenator> And ultimately if the wallet contains descriptors, then it would just take that descriptor and an array of indexes?
19:21:59 <sipa> provoostenator: sure, but i'm talking about right now
19:22:24 <sipa> we can also add descriptor responses to addmultisig etc
19:22:33 <provoostenator> I like the idea of using descriptors for both inputs and outputs wherever feasible.
19:22:38 <instagibbs> basically we're taking advantage of descriptors pre-descriptor-record based wallets
19:22:52 <meshcollider> After I've finished reviewing the last few wallet PRs adding more descriptor support is what I really want to work on anyway
19:23:10 <sipa> that would mean adding descriptor support to signrawtransaction etc
19:23:24 <instagibbs> is there a list of places to be added?
19:23:31 <instagibbs> or is that an action item
19:23:42 <sipa> that's a good idea, we should make such a list
19:23:45 <sipa> i'll open an issue
19:23:51 <provoostenator> Yes please
19:23:51 <meshcollider> +1
19:24:26 <sipa> the question is then: do we go for that, or do we also try to keep the pre-descriptor approach functional?
19:24:49 <sipa> (which needs things like 14481, because listunspent + signrawtransactionwithkey is pretty much broken right now)
19:24:59 <meshcollider> I feel like it would have to be deprecated like accounts were
19:25:26 <sipa> i don't think there is a strong need to actually remove it
19:25:29 <meshcollider> 14481 is only broken for P2SH-P2WSH I think
19:25:34 <sipa> it's more a question of do we keep updating it with new stuff
19:26:16 <meshcollider> Ah yep, well if we're keeping the old stuff it at least needs to be maintained to a working level right
19:26:23 <meshcollider> But not new features no, IMO
19:27:02 <sipa> ok, fair
19:27:27 <ryanofsky_> 14481 also adds a test for signrawtransaction, though that could be added separately
19:28:04 <sipa> ryanofsky_: ah, good
19:28:39 <meshcollider> See also #11708
19:28:43 <gribble> https://github.com/bitcoin/bitcoin/issues/11708 | Add P2SH-P2WSH support to signrawtransaction and listunspent RPC by MeshCollider · Pull Request #11708 · bitcoin/bitcoin · GitHub
19:28:52 <meshcollider> Which was the precursor to 14481
19:29:33 <meshcollider> Which it sounds like is actually a better approach to resurrect after all
19:33:00 <sipa> another topic: #13932
19:33:02 <gribble> https://github.com/bitcoin/bitcoin/issues/13932 | Additional utility RPCs for PSBT by achow101 · Pull Request #13932 · bitcoin/bitcoin · GitHub
19:33:18 <sipa> achow101: when rebase?
19:33:25 <achow101> later today
19:34:09 <sipa> i was thinking about a processpsbtwithdescriptor RPC, and was wondering if it should be integrated with utxoupdatepsbt
19:34:25 <meshcollider> Ok I have to go now, I'll catch up on the rest later today
19:34:32 <sipa> as we have all the pieces in place now
19:35:09 <sipa> or should we keep them separate, where you'd first run utxoupdatepsbt, then processpsbtwithdescriptor to fill in scripts, and then sign (which could be done by any signer, or with processpsbtwithdescriptor at once)
19:35:15 <instagibbs> sipa, would that be a "stateless" call?
19:35:42 <sipa> utxoupdatepsbt is not stateless (it looks at the UTXO set), but processpsbtwithdescriptor would be
19:36:06 <instagibbs> was asking about latter
19:36:26 <instagibbs> so it would involve passing in xprv-containing descriptors when signing required
19:37:04 <sipa> i was thinking you could give it either public descriptors, private descriptors, or private keys separately
19:39:25 <achow101> i think it should stay separate
19:40:42 <sipa> i have a slight preference for that as well, but it's less convenient
19:41:25 <achow101> but do you really need a descriptor to process a psbt? what if we just made it a simple signer?
19:41:34 <achow101> the descriptor is only needed for finalizing
19:42:14 <achow101> i guess you could also fill in keys from a descriptor
19:42:16 <sipa> achow101: to fill in witnessscript/redeemscripts/keys
19:42:19 <sipa> so yes
19:45:36 <provoostenator> Just a key could be a handy shortcut for some descriptors, but perhaps the base case should be a descriptor.
19:46:02 <sipa> provoostenator: just a key is for the case where you have an xpub-based descriptor, and a private key separately
19:46:21 <provoostenator> For the unambiguous case if you have pwpk(blah xpub blah) then if you pass in an xpriv that's clear.
19:46:30 <provoostenator> Right
19:46:59 <provoostenator> But that would just be a shortcut for pwpk(blah xpriv blah)
19:46:59 <sipa> or when the PSBT already has all script fields, and all you have is a private key
19:47:44 <sipa> i'll add them to the issue i'm opening
19:47:49 <sipa> anything else we want to discuss?
19:54:08 <provoostenator> Nope
19:54:53 <sipa> as decreed by provoostenator:
19:54:56 <sipa> #endmeeting