Antoine Poinsot
fa7c46b503
descriptor: introduce a method to get the satisfaction size
...
In the wallet code, we are currently estimating the size of a signed
input by doing a dry run of the signing logic. This is unnecessary as
all outputs we are able to sign for can be represented by a descriptor,
and we can derive the size of a satisfaction ("signature") from the
descriptor itself directly.
In addition, this approach does not scale: getting the size of a
satisfaction through a dry run of the signing logic is only possible for
the most basic scripts.
This commit introduces the computation of the size of satisfaction per
descriptor. It's a bit intricate for 2 main reasons:
- We want to conserve the behaviour of the current dry-run logic used by
the wallet that sometimes assumes ECDSA signatures will be low-r,
sometimes not (when we don't create them).
- We need to account for the witness discount. A single descriptor may
sometimes benefit of it, sometimes not (for instance `pk()` if used as
top-level versus if used inside `wsh()`).
2023-08-25 12:40:11 +02:00
..
2023-08-17 15:26:34 -04:00
2023-08-14 17:39:49 -04:00
2023-08-08 17:50:41 +02:00
2023-06-12 19:47:19 +01:00
2022-08-13 13:55:38 +01:00
2023-08-17 15:37:41 -04:00
2023-08-07 22:31:46 +02:00
2023-06-15 10:27:56 -06:00
2023-08-14 17:38:27 -04:00
2023-05-20 12:08:13 +02:00
2023-08-17 12:54:16 +01:00
2022-09-29 16:43:30 +01:00
2023-01-31 18:48:50 +01:00
2022-10-23 15:03:04 +01:00
2023-08-17 12:54:16 +01:00
2023-08-14 17:39:49 -04:00
2022-12-24 23:49:50 +00:00
2023-08-14 17:39:49 -04:00
2023-08-17 16:18:56 -04:00
2023-08-25 12:40:11 +02:00
2023-07-18 15:25:05 +01:00
2023-07-24 22:33:40 -07:00
2023-08-25 12:40:11 +02:00
2023-07-27 14:24:52 +02:00
2023-08-14 17:38:27 -04:00
2023-08-25 12:40:11 +02:00
2023-05-26 13:41:07 -03:00
2023-06-29 11:59:31 +01:00
2023-08-16 14:48:06 +02:00
2023-06-29 16:14:07 -06:00
2023-05-29 13:26:31 +02:00
2023-08-14 17:39:49 -04:00
2023-08-14 17:38:27 -04:00
2023-05-26 15:47:55 -07:00
2023-05-26 15:47:55 -07:00
2023-05-24 12:03:18 -07:00
2022-12-24 23:49:50 +00:00
2023-02-01 11:33:35 +01:00
2023-05-04 20:57:51 +01:00
2023-05-20 12:08:13 +02:00
2023-03-23 12:55:18 +01:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-08-15 07:30:48 +05:30
2023-08-15 07:30:48 +05:30
2023-07-11 12:30:56 -04:00
2023-05-20 12:08:13 +02:00
2023-07-25 17:40:07 +02:00
2023-05-20 12:08:13 +02:00
2023-05-20 12:08:13 +02:00
2023-06-16 10:38:19 +01:00
2023-08-05 10:42:56 +02:00
2023-02-15 14:42:28 -08:00
2023-07-17 13:27:46 +02:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-07-24 16:23:38 -04:00
2023-05-25 19:24:05 +02:00
2023-05-25 19:24:05 +02:00
2023-05-10 10:39:58 +02:00
2023-05-10 10:39:58 +02:00
2023-04-20 06:08:22 -07:00
2023-06-16 10:38:19 +01:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-03-23 19:38:38 +01:00
2023-03-23 19:38:38 +01:00
2023-08-14 17:38:27 -04:00
2023-07-25 17:40:07 +02:00
2023-07-25 17:40:07 +02:00
2023-08-14 17:39:49 -04:00
2023-01-31 11:50:10 +00:00
2023-08-07 22:31:46 +02:00
2023-08-05 10:45:19 +02:00
2023-03-15 16:42:42 +01:00
2023-03-15 16:42:42 +01:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-04-19 10:48:30 +02:00
2023-05-09 18:48:52 +02:00
2023-05-20 12:08:13 +02:00
2023-03-23 12:52:00 +01:00
2023-04-03 14:41:22 +01:00
2022-12-24 23:49:50 +00:00
2023-07-12 10:01:51 +02:00
2022-12-12 21:06:04 +00:00
2022-12-12 21:06:04 +00:00
2023-05-09 18:47:14 +02:00
2023-06-28 12:20:25 +01:00
2022-12-24 23:49:50 +00:00
2023-05-20 12:08:13 +02:00
2023-03-23 12:55:18 +01:00
2023-08-17 12:54:16 +01:00
2023-07-10 10:47:17 -03:00
2023-08-14 17:39:49 -04:00
2023-08-14 17:38:27 -04:00
2023-06-23 14:22:33 -04:00
2023-06-23 14:22:33 -04:00
2023-06-15 10:27:56 -06:00
2023-06-15 10:27:56 -06:00
2023-08-17 12:54:16 +01:00
2023-08-10 11:58:59 +02:00
2022-06-23 15:33:01 +02:00
2022-07-21 10:42:09 +01:00
2023-02-27 13:53:29 +00:00
2023-02-03 22:33:14 +01:00
2022-09-13 17:15:17 +01:00
2022-11-17 14:52:45 +00:00
2023-07-19 10:26:11 +01:00
2023-08-10 11:58:59 +02:00
2023-06-16 10:38:19 +01:00
2023-01-28 15:24:13 +00:00
2023-03-23 19:38:38 +01:00
2023-05-30 11:39:59 -04:00
2022-12-24 23:49:50 +00:00
2023-08-17 10:52:06 +01:00
2023-07-25 21:51:20 +01:00
2022-12-24 23:49:50 +00:00
2023-08-17 13:15:42 +01:00
2023-08-17 13:15:42 +01:00
2023-06-05 11:02:47 -04:00
2023-07-17 13:27:46 +02:00
2023-06-28 16:35:45 -05:00
2023-05-26 13:41:07 -03:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-08-14 17:38:27 -04:00
2023-08-14 17:38:27 -04:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-03-26 15:49:52 +02:00
2023-07-11 19:26:52 +02:00
2023-05-15 10:18:58 +02:00
2023-08-14 17:38:27 -04:00
2023-04-21 14:06:12 -04:00
2023-06-23 14:22:33 -04:00
2023-07-26 17:09:23 -04:00
2023-08-17 15:31:27 -04:00
2023-08-17 15:26:34 -04:00
2023-04-03 14:44:48 +01:00
2023-06-12 10:24:14 -03:00
2023-01-12 13:42:44 +00:00
2023-06-16 10:38:19 +01:00
2022-12-24 23:49:50 +00:00
2023-08-03 10:35:22 +02:00
2023-06-28 09:52:33 +02:00
2023-06-28 09:52:33 +02:00
2023-08-14 17:38:27 -04:00
2023-07-24 15:32:35 +02:00
2023-07-19 18:12:42 +02:00
2023-07-19 18:12:42 +02:00
2023-01-25 09:33:26 +01:00
2023-04-19 10:48:30 +02:00
2022-12-24 23:49:50 +00:00
2023-01-31 11:50:10 +00:00
2023-08-08 16:04:22 +02:00
2023-08-08 16:03:40 +02:00
2023-06-28 09:52:27 +02:00
2023-06-28 09:52:27 +02:00
2023-08-17 10:52:06 +01:00
2023-08-17 10:52:06 +01:00
2023-06-20 10:23:08 +02:00
2023-06-20 10:23:08 +02:00
2023-07-17 13:27:46 +02:00
2022-12-10 14:34:44 -06:00
2023-06-28 15:12:12 -04:00
2023-08-17 10:52:06 +01:00
2023-08-17 10:52:06 +01:00
2023-02-01 11:33:35 +01:00
2023-01-05 09:05:14 +00:00
2023-05-15 10:18:58 +02:00
2023-01-03 19:31:29 -06:00
2022-12-24 23:49:50 +00:00
2022-12-24 23:49:50 +00:00
2023-05-20 12:08:13 +02:00