{
  "founder": "achow101",
  "channel": "#bitcoin-core-dev",
  "network": "libera",
  "id": "b1da31d6132042ed8de1500654e3f58d",
  "name": "#bitcoin-core-dev",
  "chair": "achow101",
  "chairs": [
    "achow101"
  ],
  "nicks": {
    "achow101": 35,
    "core-meetingbot": 3,
    "meshcollider": 3,
    "provoostenator": 38,
    "sipa": 39,
    "fjahr": 2,
    "michaelfolkson": 1,
    "gene": 1,
    "gribble": 2,
    "bitcoin-git": 2,
    "sanket1729_": 5
  },
  "start_time": "2021-11-19T19:00:31+00:00",
  "end_time": "2021-11-19T19:46:20+00:00",
  "active": false,
  "original_topic": "Bitcoin Core development discussion and commit log | Feel free to watch, but please take commentary and usage questions to #bitcoin | Channel logs: http://www.erisian.com.au/bitcoin-core-dev/, http://gnusha.org/bitcoin-core-dev/ | Meeting topics http://gnusha.org/bitcoin-core-dev/proposedmeetingtopics.txt / http://gnusha.org/bitcoin-core-dev/proposedwalletmeetingtopics.txt",
  "current_topic": "how to estimate sizes for taproot inputs (achow101)",
  "messages": [
    {
      "id": "df8e5487f09e4595be1be2d90223d2dc",
      "sender": "achow101",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2021-11-19T19:00:31+00:00"
    },
    {
      "id": "9d8f826f59004d50be1af9e1dfe725fd",
      "sender": "core-meetingbot",
      "payload": "Meeting started Fri Nov 19 19:00:31 2021 UTC.  The chair is achow101. Information about MeetBot at https://bitcoin.jonasschnelli.ch/ircmeetings.",
      "action": false,
      "timestamp": "2021-11-19T19:00:31+00:00"
    },
    {
      "id": "4feaa1cbb6f14564bdc79be648c1e375",
      "sender": "core-meetingbot",
      "payload": "Available commands: action commands idea info link nick",
      "action": false,
      "timestamp": "2021-11-19T19:00:32+00:00"
    },
    {
      "id": "4f73314860484f8a83b43d33ab8404da",
      "sender": "meshcollider",
      "payload": "Anyone around for a wallet meeting?",
      "action": false,
      "timestamp": "2021-11-19T19:00:32+00:00"
    },
    {
      "id": "a6a378f8ca244b5e81446fc6ae4dab5d",
      "sender": "provoostenator",
      "payload": "hi",
      "action": false,
      "timestamp": "2021-11-19T19:00:37+00:00"
    },
    {
      "id": "f8996bbe39f5479eb3afda385151dcc3",
      "sender": "meshcollider",
      "payload": "Oh hi :)",
      "action": false,
      "timestamp": "2021-11-19T19:00:39+00:00"
    },
    {
      "id": "0c84bceced094facb0c3342f82ff274d",
      "sender": "achow101",
      "payload": "#bitcoin-core-dev Wallet Meeting: achow101 _aj_ amiti ariard BlueMatt cfields Chris_Stewart_5 darosior digi_james dongcarl elichai2 emilengler fanquake fjahr gleb glozow gmaxwell gwillen hebasto instagibbs jamesob jarolrod jb55 jeremyrubin jl2012 jnewbery jonasschnelli jonatack jtimon kallewoof kanzure kvaciral laanwj larryruane lightlike luke-jr maaku marcofalke meshcollider michagogo moneyball morcos nehan NicolasDorier paveljanik petertodd",
      "action": false,
      "timestamp": "2021-11-19T19:00:54+00:00"
    },
    {
      "id": "bf8d0373475e41c09c44f7309047a7e2",
      "sender": "achow101",
      "payload": "phantomcircuit promag provoostenator ryanofsky sdaftuar sipa vasild",
      "action": false,
      "timestamp": "2021-11-19T19:00:54+00:00"
    },
    {
      "id": "fdca84becc7b423289454002e45edc4c",
      "sender": "achow101",
      "payload": "meshcollider: it seems so",
      "action": false,
      "timestamp": "2021-11-19T19:01:02+00:00"
    },
    {
      "id": "242b08efdcf7493bb0ed9ddbd2dc368d",
      "sender": "sipa",
      "payload": "hi",
      "action": false,
      "timestamp": "2021-11-19T19:01:15+00:00"
    },
    {
      "id": "3eedc359530840e8b0745ab26ca5cef0",
      "sender": "provoostenator",
      "payload": "Tl&dr achow101 has many PR's,  most need review :-)",
      "action": false,
      "timestamp": "2021-11-19T19:01:18+00:00"
    },
    {
      "id": "04d4d9f599264ce88a6ce3c650b6d74b",
      "sender": "achow101",
      "payload": "I have one pre-proposed meeting topic",
      "action": false,
      "timestamp": "2021-11-19T19:01:41+00:00"
    },
    {
      "id": "17966ad50d7b4789b8e8a5efb32b0666",
      "sender": "achow101",
      "payload": "are there additional topics we should discuss today?",
      "action": false,
      "timestamp": "2021-11-19T19:01:57+00:00"
    },
    {
      "id": "60056b27dc994be28af8bf0852580f26",
      "sender": "fjahr",
      "payload": "hi",
      "action": false,
      "timestamp": "2021-11-19T19:01:58+00:00"
    },
    {
      "id": "dc0ba0e502ac4efe9bc7422d2e7f19a5",
      "sender": "michaelfolkson",
      "payload": "hi",
      "action": false,
      "timestamp": "2021-11-19T19:02:14+00:00"
    },
    {
      "id": "ff58a06ac11a47d79a00f94f0f7607b2",
      "sender": "achow101",
      "payload": "#topic how to estimate sizes for taproot inputs (achow101)",
      "action": false,
      "timestamp": "2021-11-19T19:02:42+00:00"
    },
    {
      "id": "a7de429c1e1a4a4187c1d4abc26ebde4",
      "sender": "core-meetingbot",
      "payload": "topic: how to estimate sizes for taproot inputs (achow101)",
      "action": false,
      "timestamp": "2021-11-19T19:02:43+00:00"
    },
    {
      "id": "e8bfaa4f9cd54651b445d6d7776739b4",
      "sender": "sipa",
      "payload": "that's a hard one",
      "action": false,
      "timestamp": "2021-11-19T19:02:59+00:00"
    },
    {
      "id": "24072943421d4f5e866cf25152a2d13f",
      "sender": "gene",
      "payload": "hi",
      "action": false,
      "timestamp": "2021-11-19T19:03:04+00:00"
    },
    {
      "id": "f995cca60c3c4044b1ae61b78464b9db",
      "sender": "sipa",
      "payload": "one early idea from a while ago was that descriptors themselves can contain hints about which keys are available",
      "action": false,
      "timestamp": "2021-11-19T19:03:20+00:00"
    },
    {
      "id": "182639325ac84713bdac297d60596432",
      "sender": "provoostenator",
      "payload": "That would suggest different participants have different descriptors.",
      "action": false,
      "timestamp": "2021-11-19T19:03:39+00:00"
    },
    {
      "id": "de43eeb0453e4dee9901e9a65c0a30a1",
      "sender": "sipa",
      "payload": "indeed",
      "action": false,
      "timestamp": "2021-11-19T19:03:43+00:00"
    },
    {
      "id": "2c6b7c9913d24b68a180b49fd470c451",
      "sender": "achow101",
      "payload": "sipa: how does miniscript deal with this problem?",
      "action": false,
      "timestamp": "2021-11-19T19:04:11+00:00"
    },
    {
      "id": "d9d40e033e0141e6ba91decef6d62ae8",
      "sender": "sipa",
      "payload": "the question is the same",
      "action": false,
      "timestamp": "2021-11-19T19:04:28+00:00"
    },
    {
      "id": "a60fd314ddd343b980ff42c3045eb4e6",
      "sender": "sipa",
      "payload": "sanket1729_: ping",
      "action": false,
      "timestamp": "2021-11-19T19:04:42+00:00"
    },
    {
      "id": "ab04ad48a886485d82605d2a6f58d7a2",
      "sender": "provoostenator",
      "payload": "Every wallet should be able to know what it can sign with?",
      "action": false,
      "timestamp": "2021-11-19T19:05:05+00:00"
    },
    {
      "id": "4e30d23bd3d8423aba85e1c7fdcd52d6",
      "sender": "sipa",
      "payload": "miniscript as logic for doing size estimation given a set of availability information for keys/preimages",
      "action": false,
      "timestamp": "2021-11-19T19:05:15+00:00"
    },
    {
      "id": "740947a17b2e490095abfda78b7bbb00",
      "sender": "sipa",
      "payload": "*has",
      "action": false,
      "timestamp": "2021-11-19T19:05:23+00:00"
    },
    {
      "id": "2a982b2bdbb04ef1b50b1a682f223653",
      "sender": "provoostenator",
      "payload": "The more tricky part is if a wallet can sign in 2 ways, but another wallet can only sign in 1",
      "action": false,
      "timestamp": "2021-11-19T19:05:25+00:00"
    },
    {
      "id": "1ef35b4acee743a0b5b6301bd87efa09",
      "sender": "achow101",
      "payload": "one part of this issue is that not all information is available to watch only wallets",
      "action": false,
      "timestamp": "2021-11-19T19:05:42+00:00"
    },
    {
      "id": "6db91f0a1a0f4d9da63b1b94d7786b4a",
      "sender": "achow101",
      "payload": "I have a branch that does do better estimation if private keys are available as it will end up estimating with the branch it will sign with",
      "action": false,
      "timestamp": "2021-11-19T19:06:12+00:00"
    },
    {
      "id": "242d5f06a02a4a9483fe726fa0095462",
      "sender": "provoostenator",
      "payload": "Maybe WalletDescriptor can hold and serialize more info for this puprose?",
      "action": false,
      "timestamp": "2021-11-19T19:06:24+00:00"
    },
    {
      "id": "0fe91590cdfa463e9cf52a4eaa95bec7",
      "sender": "sipa",
      "payload": "it's perhaps metadata that should live outside of descriptors",
      "action": false,
      "timestamp": "2021-11-19T19:06:43+00:00"
    },
    {
      "id": "0d492187495c4d24b65dfd1df1ca1d63",
      "sender": "fjahr",
      "payload": "the underlying assumption of taproot is there is one cooperative path that should be the default, can't we assume the key spent then by default and only fall back to other hints when they are present?",
      "action": false,
      "timestamp": "2021-11-19T19:06:50+00:00"
    },
    {
      "id": "0bb39e42fa144e6ab8c6ea52cc5a1492",
      "sender": "provoostenator",
      "payload": "WalletDescriptor tracks the range, creation time.  Though it doesn't track if the descriptor is change or not. So I supporse this info could be elsewhere too",
      "action": false,
      "timestamp": "2021-11-19T19:07:25+00:00"
    },
    {
      "id": "523e5434f0d646a59bba3fb08266e0de",
      "sender": "achow101",
      "payload": "fjahr: the problem is how do you know when to fallback",
      "action": false,
      "timestamp": "2021-11-19T19:07:34+00:00"
    },
    {
      "id": "b8465d4251de4d85bc6bf3e93172f776",
      "sender": "achow101",
      "payload": "in particular if the inputs are not being chosen by the user",
      "action": false,
      "timestamp": "2021-11-19T19:08:01+00:00"
    },
    {
      "id": "93581f28e8614313b1e3dde5e64fd99c",
      "sender": "achow101",
      "payload": "#23502 implements going with the largest case, but this means it will overpay if there is a script path",
      "action": false,
      "timestamp": "2021-11-19T19:09:01+00:00"
    },
    {
      "id": "3bcffa91d5ca4aee884704c68649bb38",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/23502 | wallet: Avoid underpaying transaction fees when signing taproot spends by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #23502 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2021-11-19T19:09:02+00:00"
    },
    {
      "id": "e224dedf2a5a4f61ae27ab9c467a62dd",
      "sender": "sipa",
      "payload": "and it's complicated further by the fact that in psbt-land, you may be choosing the transaction before knowing who can sign",
      "action": false,
      "timestamp": "2021-11-19T19:09:02+00:00"
    },
    {
      "id": "31c0ae9584db4f5e9d153192e912cf21",
      "sender": "provoostenator",
      "payload": "For now we could be lazy and just assume the keypath is used,  unless the send RPC specifies a script path?",
      "action": false,
      "timestamp": "2021-11-19T19:09:06+00:00"
    },
    {
      "id": "7d95b4b3eb374c0db4fd70eb37853f3e",
      "sender": "provoostenator",
      "payload": "Similary a PSBT could specify the script path (needs a new field).",
      "action": false,
      "timestamp": "2021-11-19T19:09:30+00:00"
    },
    {
      "id": "37f6804c90cc4e98b1a8de1359de4a5e",
      "sender": "provoostenator",
      "payload": "(send RPC or any of the other sending and signing RPC's)",
      "action": false,
      "timestamp": "2021-11-19T19:10:07+00:00"
    },
    {
      "id": "2a2fae863e7b4c07a1618b4a450a1e27",
      "sender": "sipa",
      "payload": "for PSBT i think the problem decomposes into two separate ones",
      "action": false,
      "timestamp": "2021-11-19T19:10:15+00:00"
    },
    {
      "id": "13e0faa68bff4a3e9f4ae206379860e2",
      "sender": "achow101",
      "payload": "provoostenator: how would that work if you don't know what inputs will be chosen?",
      "action": false,
      "timestamp": "2021-11-19T19:10:28+00:00"
    },
    {
      "id": "08216f0c8a644298b05ad4439cf94b2b",
      "sender": "provoostenator",
      "payload": "You mean for SIGHASH_SINGLE type transactions?",
      "action": false,
      "timestamp": "2021-11-19T19:11:25+00:00"
    },
    {
      "id": "1f3546712c6c4b23adeec148bceeb4f8",
      "sender": "sipa",
      "payload": "one is the ability to tell walletcreatefundedstuffs which keys will be present at signing, to make it better estimate the signing cost",
      "action": false,
      "timestamp": "2021-11-19T19:11:30+00:00"
    },
    {
      "id": "d17975f04fd94c2dbfe9af2dac400e28",
      "sender": "provoostenator",
      "payload": "Or do you mean as part of coin selection?",
      "action": false,
      "timestamp": "2021-11-19T19:11:52+00:00"
    },
    {
      "id": "68c29218caef430599dc049d9cebfdb7",
      "sender": "sipa",
      "payload": "coin selection",
      "action": false,
      "timestamp": "2021-11-19T19:11:59+00:00"
    },
    {
      "id": "f0270ba8bdaa42eb932bdb98bbfb4dde",
      "sender": "provoostenator",
      "payload": "We'd have to asses for each coin which paths are available, seems indeed painful.",
      "action": false,
      "timestamp": "2021-11-19T19:12:11+00:00"
    },
    {
      "id": "2cdd8cfb422d43668e3dada699d55676",
      "sender": "sipa",
      "payload": "the other is making processpsbt only emit information about key/script paths whose signing cost falls within the intended feerate",
      "action": false,
      "timestamp": "2021-11-19T19:12:15+00:00"
    },
    {
      "id": "c776d0d5d5ea4d07b0e6b8e879f2bebb",
      "sender": "sipa",
      "payload": "so if it's instructed to construct something which assuming a key path will be used, it needn't include information about script paths at all (of which there could be tons)",
      "action": false,
      "timestamp": "2021-11-19T19:12:46+00:00"
    },
    {
      "id": "636c2b00776d449cb4cefffcdc665e14",
      "sender": "achow101",
      "payload": "sipa: the latter sounds doable, the first, not so much",
      "action": false,
      "timestamp": "2021-11-19T19:14:38+00:00"
    },
    {
      "id": "8ae0d91fdbe4497293ade704f44c7ded",
      "sender": "provoostenator",
      "payload": "I guess every wallet UTXO could be associated with entries in the wallet database the represent the fee and required keys for the keypath and each scriptpath?",
      "action": false,
      "timestamp": "2021-11-19T19:14:43+00:00"
    },
    {
      "id": "dec18a9d9e9f405b94ff5cc47bfb729b",
      "sender": "provoostenator",
      "payload": "(not the fee,  but the weight to spend)",
      "action": false,
      "timestamp": "2021-11-19T19:15:03+00:00"
    },
    {
      "id": "fbb5623951124f0595f25de65bbd629c",
      "sender": "bitcoin-git",
      "payload": "[bitcoin] hebasto opened pull request #23556: build, qt: Fix regression in rendering on macOS Big Sur (master...211119-macstyle) https://github.com/bitcoin/bitcoin/pull/23556",
      "action": false,
      "timestamp": "2021-11-19T19:15:35+00:00"
    },
    {
      "id": "8238a7ab719749eeb33657bdf4db77c8",
      "sender": "provoostenator",
      "payload": "Or perhaps things can be simplified, because within each descriptor the rules are the same.",
      "action": false,
      "timestamp": "2021-11-19T19:18:06+00:00"
    },
    {
      "id": "514c3279c14d4e52a857aba06f14f860",
      "sender": "achow101",
      "payload": "provoostenator: I don't think it would be necessary to associate anything with each utxo",
      "action": false,
      "timestamp": "2021-11-19T19:18:35+00:00"
    },
    {
      "id": "f5e4c272dbe547378ab050e4cb2d6890",
      "sender": "achow101",
      "payload": "it's all with the descriptors, we need to be able to figure out what will be available at signing for each descriptor",
      "action": false,
      "timestamp": "2021-11-19T19:19:00+00:00"
    },
    {
      "id": "db8c30163b854322a10b303858777e70",
      "sender": "sanket1729_",
      "payload": "hello",
      "action": false,
      "timestamp": "2021-11-19T19:19:31+00:00"
    },
    {
      "id": "08649de750c240f887fa0c33f0699b0b",
      "sender": "sanket1729_",
      "payload": "achow101: the information about potentially available singing keys can be in the psbt right?",
      "action": false,
      "timestamp": "2021-11-19T19:20:33+00:00"
    },
    {
      "id": "5286e74061c34fc2a7ca9b20086cfe37",
      "sender": "sipa",
      "payload": "sanket1729_: that's too late",
      "action": false,
      "timestamp": "2021-11-19T19:20:44+00:00"
    },
    {
      "id": "a1c211e18e0a4108bfe03695334db3f6",
      "sender": "sipa",
      "payload": "you need this information when doing coin selection",
      "action": false,
      "timestamp": "2021-11-19T19:20:56+00:00"
    },
    {
      "id": "582ecfc0e7614769934a9d8bc2c8218b",
      "sender": "achow101",
      "payload": "sanket1729_: yes, but the question is for constructing the PSBT in the first place",
      "action": false,
      "timestamp": "2021-11-19T19:20:57+00:00"
    },
    {
      "id": "55d1b96e38d748799a16042b58628dc6",
      "sender": "achow101",
      "payload": "when inputs are being chosen",
      "action": false,
      "timestamp": "2021-11-19T19:21:08+00:00"
    },
    {
      "id": "d9fbfdf1c0044a08ae36816a7361233b",
      "sender": "sanket1729_",
      "payload": "yeah, why can you not have that while inputs are chosen? You just choose the change output last?",
      "action": false,
      "timestamp": "2021-11-19T19:21:38+00:00"
    },
    {
      "id": "57887ee85dea49feb869d2db140062bc",
      "sender": "achow101",
      "payload": "one possibility is to add an option to all the fund/send rpcs that has a list of key (origins?) of the keys that will be available at signing?",
      "action": false,
      "timestamp": "2021-11-19T19:22:00+00:00"
    },
    {
      "id": "fdc74013d6ad423992aca902c6a132d0",
      "sender": "provoostenator",
      "payload": "I just realized the availability is not static.",
      "action": false,
      "timestamp": "2021-11-19T19:22:41+00:00"
    },
    {
      "id": "3f111378badd44d3a17cdc417392f105",
      "sender": "provoostenator",
      "payload": "So yeah, providing it at coin selection time seems the only way.",
      "action": false,
      "timestamp": "2021-11-19T19:22:53+00:00"
    },
    {
      "id": "eec9fc2a83404f1b938729e3c3ff9e71",
      "sender": "provoostenator",
      "payload": "E.g. in a 3-of-3 setup with scriptpath(s) for 2-of-3 fallback,  the wallet can't know if you have 2 or 3 signers available.",
      "action": false,
      "timestamp": "2021-11-19T19:23:32+00:00"
    },
    {
      "id": "f9c63f10a2184895a6b521aee7dc12a7",
      "sender": "sipa",
      "payload": "sanket1729_: there is no algorithmic difficulty here",
      "action": false,
      "timestamp": "2021-11-19T19:23:38+00:00"
    },
    {
      "id": "31a7534ecb1e473c9360811907691792",
      "sender": "sipa",
      "payload": "more a logistical",
      "action": false,
      "timestamp": "2021-11-19T19:23:42+00:00"
    },
    {
      "id": "c20850f5c1fa4744a32ad281dd83ea1f",
      "sender": "sipa",
      "payload": "how does the right information get to be available to the right things",
      "action": false,
      "timestamp": "2021-11-19T19:23:55+00:00"
    },
    {
      "id": "f5d0e43bda3d44d69b326095f65267d1",
      "sender": "sipa",
      "payload": "e.g. do descriptors need metadata about all keys, whether they will or won't be oresent",
      "action": false,
      "timestamp": "2021-11-19T19:24:28+00:00"
    },
    {
      "id": "4b11891382aa4d95b172a8217189a5fe",
      "sender": "provoostenator",
      "payload": "Maybe by default we assume everything is available (keypath), and then there's an option to provide fingerprints.",
      "action": false,
      "timestamp": "2021-11-19T19:24:30+00:00"
    },
    {
      "id": "3c064ec7735b42c48f9d00e64d2d0c25",
      "sender": "sipa",
      "payload": "what if that information changes",
      "action": false,
      "timestamp": "2021-11-19T19:24:33+00:00"
    },
    {
      "id": "8300a892e1e44735a30d615a67699834",
      "sender": "provoostenator",
      "payload": "And/or explictly point to script paths",
      "action": false,
      "timestamp": "2021-11-19T19:24:39+00:00"
    },
    {
      "id": "1e26faca37db4c4ba682dffa0fda83d9",
      "sender": "achow101",
      "payload": "sipa: one thing that would be useful is for a way to say in a descriptor that the internal key is bogus",
      "action": false,
      "timestamp": "2021-11-19T19:24:54+00:00"
    },
    {
      "id": "b9ee0cd16ee146f3ae7e6abc9e3e8cd3",
      "sender": "provoostenator",
      "payload": "tr(null)",
      "action": false,
      "timestamp": "2021-11-19T19:25:31+00:00"
    },
    {
      "id": "dbf5ee550ab843db859d4e176707b78a",
      "sender": "sipa",
      "payload": "achow101: we definitely need that, but i think that's somewhat orthogonal",
      "action": false,
      "timestamp": "2021-11-19T19:25:47+00:00"
    },
    {
      "id": "bc9326572acd40fcb376c4024054d9e4",
      "sender": "sipa",
      "payload": "there should just be a convenient way of constructing script-only tr descriptors",
      "action": false,
      "timestamp": "2021-11-19T19:26:03+00:00"
    },
    {
      "id": "fa37a96cbcf34cfc8c1f50835f56d551",
      "sender": "sipa",
      "payload": "the reason why i didn't include that already is because there are many ways of doing that",
      "action": false,
      "timestamp": "2021-11-19T19:27:31+00:00"
    },
    {
      "id": "88f682633c844ad988b21d8ea3057fd1",
      "sender": "sipa",
      "payload": "including ones that are more private",
      "action": false,
      "timestamp": "2021-11-19T19:27:54+00:00"
    },
    {
      "id": "565be90cfa5646a9a77ca2ad5f9df673",
      "sender": "sipa",
      "payload": "but more complex",
      "action": false,
      "timestamp": "2021-11-19T19:28:02+00:00"
    },
    {
      "id": "791c30c41957438588492b8b73e632a0",
      "sender": "achow101",
      "payload": "sipa: it's kind of relevant as whether or not the script path is taken has a significant impact on the estimated size",
      "action": false,
      "timestamp": "2021-11-19T19:28:03+00:00"
    },
    {
      "id": "656264f70e5f43118822785fc506e1d7",
      "sender": "sipa",
      "payload": "right",
      "action": false,
      "timestamp": "2021-11-19T19:28:43+00:00"
    },
    {
      "id": "32cb90934cd24399b38ffed2872edb34",
      "sender": "sanket1729_",
      "payload": "> sipa: one is the ability to tell walletcreatefundedstuffs which keys will be present at signing, to make it better estimate the signing cost. Is this hard to do logistically? Can we not use psbtv2 here?",
      "action": false,
      "timestamp": "2021-11-19T19:28:50+00:00"
    },
    {
      "id": "891e23e6dc2c422e8fd3952f6474154f",
      "sender": "sipa",
      "payload": "sanket1729_: pabtv2 is just a format, the information has to come from somewhere",
      "action": false,
      "timestamp": "2021-11-19T19:29:17+00:00"
    },
    {
      "id": "6802153e003e4a14b89d34b0c484925c",
      "sender": "sanket1729_",
      "payload": "But the change output does not need to fixed",
      "action": false,
      "timestamp": "2021-11-19T19:29:33+00:00"
    },
    {
      "id": "c0ad6234d3dd425d9cdff22d96322bad",
      "sender": "achow101",
      "payload": "sanket1729_: there is no guarantee that a change output exists",
      "action": false,
      "timestamp": "2021-11-19T19:29:46+00:00"
    },
    {
      "id": "09e2b0b9e7eb45a98344b54e0c4e67a5",
      "sender": "sipa",
      "payload": "nor that it is recognizable",
      "action": false,
      "timestamp": "2021-11-19T19:29:55+00:00"
    },
    {
      "id": "442c7fc9f4da4569a0a079e586529516",
      "sender": "achow101",
      "payload": "and coin selection now operates on effective values, so being able to calculate the fee for each input is necessary",
      "action": false,
      "timestamp": "2021-11-19T19:30:09+00:00"
    },
    {
      "id": "eb8e15ee27b249c8bcb723325b2db7ab",
      "sender": "sipa",
      "payload": "or that it is acceptable for particular signers to modify it",
      "action": false,
      "timestamp": "2021-11-19T19:30:14+00:00"
    },
    {
      "id": "0383ef9644ef4bcc8a9d4ae3fa86049a",
      "sender": "bitcoin-git",
      "payload": "[bitcoin] whitslack opened pull request #23557: configure.ac: remove Bashism (master...fix-configure-bashism) https://github.com/bitcoin/bitcoin/pull/23557",
      "action": false,
      "timestamp": "2021-11-19T19:31:21+00:00"
    },
    {
      "id": "152f5ae368e84d049f09181b64e284c5",
      "sender": "provoostenator",
      "payload": "^ Antiba strikes again!",
      "action": false,
      "timestamp": "2021-11-19T19:32:58+00:00"
    },
    {
      "id": "48f62a24ae6b400d9b19a4ca21d4b833",
      "sender": "achow101",
      "payload": "anyways, it seems like the only real solution is to add options that allow the user to specify what will be available",
      "action": false,
      "timestamp": "2021-11-19T19:33:04+00:00"
    },
    {
      "id": "a26f9278ef104c57be3a48d6b3340d74",
      "sender": "sipa",
      "payload": "yeah...",
      "action": false,
      "timestamp": "2021-11-19T19:33:51+00:00"
    },
    {
      "id": "42af553bc8a9403aa0ab584690aa2d39",
      "sender": "provoostenator",
      "payload": "In any case that's a good start.",
      "action": false,
      "timestamp": "2021-11-19T19:34:05+00:00"
    },
    {
      "id": "6c6e69668d6f478cae2e0badbcfbac66",
      "sender": "achow101",
      "payload": "what if no availability information is provided?",
      "action": false,
      "timestamp": "2021-11-19T19:34:29+00:00"
    },
    {
      "id": "d011adcbf1d644b7aea3b1cab93272ef",
      "sender": "achow101",
      "payload": "assume worst case? or assume key path?",
      "action": false,
      "timestamp": "2021-11-19T19:34:40+00:00"
    },
    {
      "id": "670fafebac434f3f9dcbc56c2cf66de8",
      "sender": "provoostenator",
      "payload": "So the current PR's either underestimate or overestimate the fee? That seems pretty bad.",
      "action": false,
      "timestamp": "2021-11-19T19:34:45+00:00"
    },
    {
      "id": "99f113aa11b54c2297b99ef28fae0e46",
      "sender": "provoostenator",
      "payload": "I would assume keypath",
      "action": false,
      "timestamp": "2021-11-19T19:34:57+00:00"
    },
    {
      "id": "1f69c7ed2e504bb1a95200d0da698ef0",
      "sender": "achow101",
      "payload": "provoostenator: currently we underestimate, #23502 changes to always overestimate so at least we never underpay",
      "action": false,
      "timestamp": "2021-11-19T19:35:18+00:00"
    },
    {
      "id": "e58ad18364fa4311a40c9eb7f158b904",
      "sender": "gribble",
      "payload": "https://github.com/bitcoin/bitcoin/issues/23502 | wallet: Avoid underpaying transaction fees when signing taproot spends by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #23502 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
      "action": false,
      "timestamp": "2021-11-19T19:35:20+00:00"
    },
    {
      "id": "296384e91b304641b64a2967c9135595",
      "sender": "provoostenator",
      "payload": "And warn if you then try to sign scriptpath",
      "action": false,
      "timestamp": "2021-11-19T19:35:23+00:00"
    },
    {
      "id": "06e266f1bf7e41d7a2f16be72006081f",
      "sender": "provoostenator",
      "payload": "Maybe we shouldn't even automatically pick a scriptpath for signing.",
      "action": false,
      "timestamp": "2021-11-19T19:35:56+00:00"
    },
    {
      "id": "e0d9d5d5ab6a4b29ae337a9612cc0c48",
      "sender": "sipa",
      "payload": "the problem is that signing isn't a single step",
      "action": false,
      "timestamp": "2021-11-19T19:36:11+00:00"
    },
    {
      "id": "556474f588544454be58a706f8846c37",
      "sender": "provoostenator",
      "payload": "At least not until we figure out this fee dilemma.",
      "action": false,
      "timestamp": "2021-11-19T19:36:13+00:00"
    },
    {
      "id": "341228698feb4a54919126516fed3c1f",
      "sender": "provoostenator",
      "payload": "Right, there's a dummy signer to get the fee estimate, and then the real signer?",
      "action": false,
      "timestamp": "2021-11-19T19:36:37+00:00"
    },
    {
      "id": "67f5b0bbd64d4973b551e0d921ca38cb",
      "sender": "sipa",
      "payload": "it's not an issue as long as all tr supports in non-aggregated keys and single-key pk scripts",
      "action": false,
      "timestamp": "2021-11-19T19:36:43+00:00"
    },
    {
      "id": "d949acb54262460d91462910dd6cfd32",
      "sender": "sipa",
      "payload": "but just because you don't have the keypath private key, does not mean nobody had",
      "action": false,
      "timestamp": "2021-11-19T19:37:06+00:00"
    },
    {
      "id": "2af14eab325740ba90a249e908c49968",
      "sender": "sipa",
      "payload": "meshcollider: btw, i'm reviewing the error location PR, but got sidetracked again",
      "action": false,
      "timestamp": "2021-11-19T19:38:15+00:00"
    },
    {
      "id": "f643f09c6a724ea1bd6693820beaf3dd",
      "sender": "provoostenator",
      "payload": "I think in a wallet without private keys, you can assume _someone_ has the keypath private key.",
      "action": false,
      "timestamp": "2021-11-19T19:38:16+00:00"
    },
    {
      "id": "64704b3a8344482a9234487766f4ec27",
      "sender": "provoostenator",
      "payload": "In  a wallet with private keys, but where you don't have the internal key, it's tricker.",
      "action": false,
      "timestamp": "2021-11-19T19:38:33+00:00"
    },
    {
      "id": "8f3621dd34274409a81fe548e370ca3c",
      "sender": "meshcollider",
      "payload": "sipa: thanks! No worries :)",
      "action": false,
      "timestamp": "2021-11-19T19:38:48+00:00"
    },
    {
      "id": "97350e16b8854c4582c900c2fed9ec14",
      "sender": "provoostenator",
      "payload": "But from the above discussion I gather we should still pick the keypath and just assuem someone else signs it. Unless the user says otherwise",
      "action": false,
      "timestamp": "2021-11-19T19:38:57+00:00"
    },
    {
      "id": "0b2f25dc927943a0b6e22d3b43628567",
      "sender": "achow101",
      "payload": "provoostenator: in a wallet with private keys, we can know there is a private key and choose the path that uses it",
      "action": false,
      "timestamp": "2021-11-19T19:39:01+00:00"
    },
    {
      "id": "827342f10ad344c6987ab9248d2dc5f7",
      "sender": "achow101",
      "payload": "(assuming pk scripts only)",
      "action": false,
      "timestamp": "2021-11-19T19:39:08+00:00"
    },
    {
      "id": "50114ba0f6624d73a8c404f91383d254",
      "sender": "provoostenator",
      "payload": "But that may not be desireable, because that path might be a fallback option.",
      "action": false,
      "timestamp": "2021-11-19T19:39:24+00:00"
    },
    {
      "id": "20df52af34734c6eaae29f5c419a60f4",
      "sender": "achow101",
      "payload": "but always assuming keypath might mean we underpay the fee accidentally",
      "action": false,
      "timestamp": "2021-11-19T19:40:22+00:00"
    },
    {
      "id": "bc00f13f61ae42239c33ed4e61ee5323",
      "sender": "provoostenator",
      "payload": "(I guess the example here would be a 1-of-2 threshold signature with single key fallbacks)",
      "action": false,
      "timestamp": "2021-11-19T19:40:24+00:00"
    },
    {
      "id": "52e0cf302ccd4a13bbb9b2658dd59945",
      "sender": "sipa",
      "payload": "another possibility is not caring too much about it, because unless you have giant scripts/scriptsizes, it won't make a giant different to the vsize",
      "action": false,
      "timestamp": "2021-11-19T19:40:42+00:00"
    },
    {
      "id": "55ce07c15df64ed5ab03f352e6069a36",
      "sender": "provoostenator",
      "payload": "We would have to assume it for both coin selection and signing.",
      "action": false,
      "timestamp": "2021-11-19T19:40:50+00:00"
    },
    {
      "id": "8b81f1146809456e9d4326f00dd21af5",
      "sender": "sipa",
      "payload": "also assuming a functioning block space market, which may be a dream...",
      "action": false,
      "timestamp": "2021-11-19T19:41:15+00:00"
    },
    {
      "id": "fe85b98fa84442d08839a07801a85aeb",
      "sender": "achow101",
      "payload": "sipa: the jump from keypath to any script path is pretty significant",
      "action": false,
      "timestamp": "2021-11-19T19:41:25+00:00"
    },
    {
      "id": "b3f669ad9f504289b7d9ef100240338e",
      "sender": "provoostenator",
      "payload": "And spending the wrong fee is not good for privacy.",
      "action": false,
      "timestamp": "2021-11-19T19:41:53+00:00"
    },
    {
      "id": "0a1b89e9cb8d4cf08c91d9ae6e4e8f6e",
      "sender": "achow101",
      "payload": "(a basic script path is at least 1.5 times larger than keypath)",
      "action": false,
      "timestamp": "2021-11-19T19:42:23+00:00"
    },
    {
      "id": "91895e6aabb348868328d2661873d126",
      "sender": "provoostenator",
      "payload": "E.g. a 1.5 sat/byte transaction would strongly suggest there was a keypath.",
      "action": false,
      "timestamp": "2021-11-19T19:43:06+00:00"
    },
    {
      "id": "f4e2fe5605ff47c78405396b9f36374d",
      "sender": "sipa",
      "payload": "provoostenator: i was assuming a functioning block space market; i agree that dealing with minrelay situation is harder",
      "action": false,
      "timestamp": "2021-11-19T19:44:03+00:00"
    },
    {
      "id": "e077955a95cc4e0285dab61f2f84cc9f",
      "sender": "achow101",
      "payload": "any other topics to discuss?",
      "action": false,
      "timestamp": "2021-11-19T19:45:16+00:00"
    },
    {
      "id": "4abc3fb7ef3842f1bd7141123ce771d6",
      "sender": "achow101",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2021-11-19T19:46:20+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "df8e5487f09e4595be1be2d90223d2dc",
        "sender": "achow101",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2021-11-19T19:00:31+00:00"
      },
      "operand": null,
      "id": "df8e5487f09e4595be1be2d90223d2dc",
      "timestamp": "2021-11-19T19:00:31+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "ff58a06ac11a47d79a00f94f0f7607b2",
        "sender": "achow101",
        "payload": "#topic how to estimate sizes for taproot inputs (achow101)",
        "action": false,
        "timestamp": "2021-11-19T19:02:42+00:00"
      },
      "operand": "how to estimate sizes for taproot inputs (achow101)",
      "id": "ff58a06ac11a47d79a00f94f0f7607b2",
      "timestamp": "2021-11-19T19:02:42+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "3bcffa91d5ca4aee884704c68649bb38",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/23502 | wallet: Avoid underpaying transaction fees when signing taproot spends by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #23502 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2021-11-19T19:09:02+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/23502",
      "id": "3bcffa91d5ca4aee884704c68649bb38",
      "timestamp": "2021-11-19T19:09:02+00:00"
    },
    {
      "event_type": "LINK",
      "message": {
        "id": "e58ad18364fa4311a40c9eb7f158b904",
        "sender": "gribble",
        "payload": "https://github.com/bitcoin/bitcoin/issues/23502 | wallet: Avoid underpaying transaction fees when signing taproot spends by achow101 \u00c3\u0082\u00c2\u00b7 Pull Request #23502 \u00c3\u0082\u00c2\u00b7 bitcoin/bitcoin \u00c3\u0082\u00c2\u00b7 GitHub",
        "action": false,
        "timestamp": "2021-11-19T19:35:20+00:00"
      },
      "operand": "https://github.com/bitcoin/bitcoin/issues/23502",
      "id": "e58ad18364fa4311a40c9eb7f158b904",
      "timestamp": "2021-11-19T19:35:20+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "4abc3fb7ef3842f1bd7141123ce771d6",
        "sender": "achow101",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2021-11-19T19:46:20+00:00"
      },
      "operand": null,
      "id": "4abc3fb7ef3842f1bd7141123ce771d6",
      "timestamp": "2021-11-19T19:46:20+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}