fn estimate_vbytes(&self) -> usize {
    Self::estimate_vbytes_with(self.inputs.len(), &self.outputs)
  }
Estimate the size in virtual bytes of the transaction under construction.
We initialize wallets with taproot descriptors only, so we know that all
inputs are taproot key path spends, which allows us to know that witnesses
will all consist of single Schnorr signatures.
src/wallet/transaction_builder.rs