{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":145017475,"defaultBranch":"master","name":"rust-miniscript","ownerLogin":"rust-bitcoin","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-08-16T17:06:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/37084147?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1700690745.0","currentOid":""},"activityList":{"items":[{"before":"15ddc863fffda57ddf58accfa8bc20291687ceaa","after":"351ffa8dfec4588687188f541205185290135fbb","ref":"refs/heads/master","pushedAt":"2024-05-14T13:43:33.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#684: Follow up from cron-daily-fuzz PR\n\nbd1df30a7944133374c4696f652515a8cdd1fba2 Sort fuzz files when finding (Tobin C. Harding)\n73d81e5f145f8ff8c107602a337eb7c0d31dec11 Follow up from cron-daily-fuzz PR (Tobin C. Harding)\n\nPull request description:\n\n I royally botched up PR #683 which changed fuzzing to run daily, fix it up by doing:\n\n - Use the correct yaml file name in `generate-files.sh`.\n - Actually run `generate-files.sh` to generate the yaml file.\n - Fix the time UTC comment (the other times were correctly set).\n\nACKs for top commit:\n apoelstra:\n ACK bd1df30a7944133374c4696f652515a8cdd1fba2\n\nTree-SHA512: 2af4c030398a79d1de2b2b5d49a399806e21681e5783d97bc139deb6004fed6b34461fb3547070a767d6fff1f76421c775a0a7d1ddc1de05dc50a3d08682618d","shortMessageHtmlLink":"Merge #684: Follow up from cron-daily-fuzz PR"}},{"before":"45904881e0d6f27f8b81ab310c4739cc14429a9b","after":"15ddc863fffda57ddf58accfa8bc20291687ceaa","ref":"refs/heads/master","pushedAt":"2024-05-08T12:46:47.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#685: Allow unexpected_cfgs\n\ned869d7a77e1cbe87f826398492bf697f47f6c25 Allow unexpected_cfgs (Tobin C. Harding)\nbea260d9de1a0d7a73144e2e0e12af4f350e8436 Use rustfmt::skip instead of cfg_attr (Tobin C. Harding)\n\nPull request description:\n\n Rust `nightly` just introduced a new lint that breaks us, disable it.\n\n Same as https://github.com/rust-bitcoin/rust-bitcoin/pull/2748\n\n Please see 2748 for full description of the issue this resolves.\n\n Note, the first patch uses `rustfmt::skip` instead of `cfg_attr` to save triggering the lint in example code.\n\nACKs for top commit:\n apoelstra:\n ACK ed869d7a77e1cbe87f826398492bf697f47f6c25\n\nTree-SHA512: 9c158fa90eca8973ec8afec4b1bc334bce78bc6735ed945d40c36efb21f2728ea2b3c9179a5ee3e5638340be80a8ae49ae460ad1b13915d6cebcc2f9fcd1a538","shortMessageHtmlLink":"Merge #685: Allow unexpected_cfgs"}},{"before":"3e74aaebe1c280e9429c269f3a92422722c88754","after":"45904881e0d6f27f8b81ab310c4739cc14429a9b","ref":"refs/heads/master","pushedAt":"2024-05-02T16:32:46.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#683: CI: Run fuzzer daily\n\n44ddbe3484029bf42c33928ac1dd7d9a5c8cee84 CI: Run fuzzer daily (Tobin C. Harding)\n\nPull request description:\n\n Update the `fuzz/generate-files.sh` script to mimic that in `rust-bitcoin` and generate a new fuzz job that runs the fuzz tests daily for an hour.\n\n Run the fuzz job the time that `rust-bitcoin` fuzz job finishes - I don't know if that matters. I still don't know if there are org wide limits or just repo limits but it doesn't hurt to run at a different time.\n\nACKs for top commit:\n storopoli:\n ACK 44ddbe3484029bf42c33928ac1dd7d9a5c8cee84\n apoelstra:\n ACK 44ddbe3484029bf42c33928ac1dd7d9a5c8cee84\n\nTree-SHA512: 6c6bbdeea56f1c06f3da13ebd72cf053ffe199e45be7ce688070e259aa75bced28ca716eebf9e8470de91411a589a3a356b2de6869ad8c1b2945de3d6768eccd","shortMessageHtmlLink":"Merge #683: CI: Run fuzzer daily"}},{"before":"60ad2c9c2117b49da6e77eaa63c1207c7f03427a","after":"3e74aaebe1c280e9429c269f3a92422722c88754","ref":"refs/heads/master","pushedAt":"2024-05-01T11:45:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#678: CI: Pin cc for MSRV build\n\nfb0fc1d0e2d5908cb1733de726ebec500f873acf CI: Pin cc for MSRV build (Tobin C. Harding)\n\nPull request description:\n\n The `cc` dependency just stopped working for MSRV build with error\n\n error: package `cc v1.0.96` cannot be built because it requires\n rustc 1.63 or newer, while the currently active rustc version is\n 1.56.1\n\n Pin `cc` back to an earlier version for MSRV build.\n\nACKs for top commit:\n apoelstra:\n ACK fb0fc1d0e2d5908cb1733de726ebec500f873acf\n\nTree-SHA512: 95b952ed2c5c3ac0580fbc1017b6fb8b50c6ced1b5b80b58749fa734b5256d03e82a9baa2305dc37a642d9ae732a60a0b68d783c88f54b480a91b1e1eaa86fe7","shortMessageHtmlLink":"Merge #678: CI: Pin cc for MSRV build"}},{"before":"9eb4375080a25ea640aec5b3fdcc02df9c4098e2","after":"60ad2c9c2117b49da6e77eaa63c1207c7f03427a","ref":"refs/heads/master","pushedAt":"2024-04-08T13:23:18.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#676: Use threshold in Terminal and Satisfaction\n\n6925ae66b9fc9183652c14f660ce3b62ba0707d6 clippy: remove now-unneeded i64 import (Andrew Poelstra)\n0fb47b7fcde70e71321d726465b0ff885b20b3b5 satisfaction: use new Threshold type (Andrew Poelstra)\nff8f07769a5cd68cf3c8701d856739f58f00a996 miniscript: use new Threshold type for thresh (Andrew Poelstra)\n95f8dacdcf83eec03a485faa790100e5263ea139 compiler: eliminate unused error paths (Andrew Poelstra)\n\nPull request description:\n\n This completes the \"threshold\" conversion and completely drops the various ad-hoc error paths related to threshold values (most of which were just random strings).\n\n The next set of PRs will be related to cleaning up errors in general a bit, to strongly-type things and add span information. But I am struggling a bit with how to box the associated error types for the MiniscriptKey types so it may be a while. (Very hard to do this in a std/nostd compatible way and the final result will probably be inconvenient/annoying for users.)\n\nACKs for top commit:\n tcharding:\n ACK 6925ae66b9fc9183652c14f660ce3b62ba0707d6\n sanket1729:\n ACK 6925ae66b9fc9183652c14f660ce3b62ba0707d6\n\nTree-SHA512: 04344be051cb5b16f691eafdb64818ffd44c9adc15f71ad6c664e9f337dc4ed52be66a540bf5c99eeb4b384a95d93e2518f290b84cf6abf9cb092e789b57a3fa","shortMessageHtmlLink":"Merge #676: Use threshold in Terminal and Satisfaction"}},{"before":"f83eb6429aba720b913d25ff20ba39c3a11ea56f","after":"9eb4375080a25ea640aec5b3fdcc02df9c4098e2","ref":"refs/heads/master","pushedAt":"2024-04-06T13:34:03.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#674: Use `Threshold` type in concrete policy and in Terminal::multi/multi_a\n\n79d3f7e15c90de9caad70ef72e1fd7f9cd92cc8e sortedmulti: eliminate allocation in constructor_check (Andrew Poelstra)\nf62322d4fb43805f6bd8a4e5b2f1d59c01890a03 miniscript: use new Threshold type for multi/multi_a (Andrew Poelstra)\n1ced03bf71b383f45f8c100ab16732c6a3594455 policy: use Threshold in concrete policy (Andrew Poelstra)\n\nPull request description:\n\n Some more large but mostly-mechanical diffs. This is able to eliminate a bunch of error paths, though the actual error variants can't be removed until we also convert Terminal::thresh in the next PR(s). At that point we will start to see the real benefits of this type because fallible functions will become fallible and massive amounts of compiler error-checking can just go away entirely.\n\n Also removes the allocation in `SortedMulti::constructor_check` that was pointed out in #660.\n\nACKs for top commit:\n sanket1729:\n ACK 79d3f7e15c90de9caad70ef72e1fd7f9cd92cc8e\n tcharding:\n ACK 79d3f7e15c90de9caad70ef72e1fd7f9cd92cc8e\n\nTree-SHA512: 98828910c6fea91608b9f7dc15f68999ac4555e2e8eac28c04bd3e70f7c5e74dfeb7902805e606a3ad5a7ba36f77d4dc0c47f189b7ff591a8c4fd7abcccbefc7","shortMessageHtmlLink":"Merge #674: Use Threshold type in concrete policy and in Terminal::…"}},{"before":"a548edd122788028a77c0e25a33aeb6ffb736d19","after":"f83eb6429aba720b913d25ff20ba39c3a11ea56f","ref":"refs/heads/master","pushedAt":"2024-04-02T14:06:44.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#660: Introduce Threshold type and use it in SortedMulti as a preview\n\n50bf40485654f9a32dc310e94b9e2c63a30e27c5 policy: use new Threshold type in semantic policy (Andrew Poelstra)\n5964ec3de4d04934370c52cc18b2c5824fcf5f2e sortedmulti: use new Threshold type internally (Andrew Poelstra)\n36ea5cc000866babcc9037c767926de881032fb5 expression: add method to validate and construct a threshold (Andrew Poelstra)\n452615b5dd1d5e5fc2b3fc0b27b771296c274d96 rename expression.rs to expression/mod.rs (Andrew Poelstra)\ndbf7b32d32ee2e84d5ce7e8337920b12cf46e622 primitives: introduce Threshold type (Andrew Poelstra)\n30a3b595f7dc6b16cbdbee549040d80a078f7f8d psbt: fix \"redundant target\" doc warning (Andrew Poelstra)\n\nPull request description:\n\n I have a big branch which uses this type throughout the codebase. I split it up into pieces (separate commit for its use in each policy type, for its use in multi/multi_a, for its use in Terminal::thresh, etc) but it's still a pretty big diff.\n\n Despite the size of the diff I think this is definitely worth doing -- in my current branch we have eliminated a ton of error paths, including a ton of badly-typed ones (grepping the codebase for `errstr` shows I've reduced it from 30 instances to 18).\n\n This PR simply introduces the new `Threshold` type and uses it in `SortedMultiVec` to show how the API works. Later PRs will do the more invasive stuff.\n\nACKs for top commit:\n tcharding:\n ACK 50bf40485654f9a32dc310e94b9e2c63a30e27c5\n sanket1729:\n ACK 50bf40485654f9a32dc310e94b9e2c63a30e27c5.\n\nTree-SHA512: 084034f43a66cb6e73446549aad1e1a01f7f0067e7ab3b401f8d819f7375f7a0f6b695c013e3917f550d07b579dcd8ca21adf6dd854bb82c824911e8d1ead152","shortMessageHtmlLink":"Merge #660: Introduce Threshold type and use it in SortedMulti as a p…"}},{"before":"f44943d21bbf2f23342f15b6fe6e0b96ca8bc646","after":"a548edd122788028a77c0e25a33aeb6ffb736d19","ref":"refs/heads/master","pushedAt":"2024-04-01T23:58:30.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#671: CI: Lint the crate and examples\n\na410c06b3f1a452f4fa1095558d8f0618ca371af CI: Lint the crate (Tobin C. Harding)\n597db61a1cd9fb8bdf96b94177d8d9d5f468e8a2 Remove explicit lifetime (Tobin C. Harding)\n362328162919e91049458613e5eefc1a528eda5a Remove unnecessary reference (Tobin C. Harding)\n\nPull request description:\n\n We are not currently running the linter in CI, do so.\n\nACKs for top commit:\n apoelstra:\n ACK a410c06b3f1a452f4fa1095558d8f0618ca371af\n\nTree-SHA512: 7173394e5fa857e557093ce1ddf4f06d9143c2c37f484800b55f31c6ebef49fad884b277d642426fc0ef0bf5c8971859655fb1607a5c6953d0deb0fd1c094d63","shortMessageHtmlLink":"Merge #671: CI: Lint the crate and examples"}},{"before":"cbfe9914a24f972077d1115165fa08280be2ab87","after":"f44943d21bbf2f23342f15b6fe6e0b96ca8bc646","ref":"refs/heads/master","pushedAt":"2024-03-29T14:07:15.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#670: Fix all lint errors and warnings\n\n76346427f9f1ea8624ca6e1e1bb228a718c26e88 Use struct update syntax (Tobin C. Harding)\n2bc083e607da8609d82123cd3505071898e4a14a Use iterator instead of manual loop (Tobin C. Harding)\n6d663e15cee0586579fd5ef00812b3875b6ae382 Allow range loop in test code (Tobin C. Harding)\na8c156e8787798f8d2b728d9adc54332a865c015 Use map instead of and_then (Tobin C. Harding)\nd5662dae0152f27bb81e464dbc9a91cd409e8109 Remove redundant closure (Tobin C. Harding)\n90f1585a2f163f6328952fd56b272a6e05457e08 Remove redundant clone (Tobin C. Harding)\n409d4b08af6213ab75fb78f78e68be2b024e5da3 Remove explicit reference (Tobin C. Harding)\n9ec6b1767f2c182a40349b8d58e3c88252dafc61 Remove redundant field names in struct initialization (Tobin C. Harding)\n\nPull request description:\n\n After doing #668 I wanted to be able to use the `just sane` command before pushing PRs, so fix the lint issues.\n\nACKs for top commit:\n apoelstra:\n ACK 76346427f9f1ea8624ca6e1e1bb228a718c26e88 thanks! we should re-enabled Clippy in CI in this repo...I believe we disabled it due to a clippy bug in July\n\nTree-SHA512: 1e953f2fc1a6e649324293a84abf1be54feca6095111653af046aacf17a83e6ae15452fe8825599ccbfae0ea84fe7d1988c8b72d5dd902c9d0fb1d34e660ef8b","shortMessageHtmlLink":"Merge #670: Fix all lint errors and warnings"}},{"before":"599bc698c4d885f6dc2c2ca89164ee17995f582f","after":"cbfe9914a24f972077d1115165fa08280be2ab87","ref":"refs/heads/master","pushedAt":"2024-03-28T16:33:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#668: Add justfile\n\n9f5849f64cebe8d0a5756d3007fdfe6d2676185f Add justfile (Tobin C. Harding)\n\nPull request description:\n\n Add a `just` config file with various useful commands. Note that a bunch of these commands do not succeed currently on master, specifically:\n\n - just lint\n - just docsrs\n - just sane\n\n Will fix as separate PRs\n\nACKs for top commit:\n apoelstra:\n ACK 9f5849f64cebe8d0a5756d3007fdfe6d2676185f\n\nTree-SHA512: 59e7c0feb72e43f3b3e9e89d1d6549f57c7fa7ca1cd48eb845ef90ddec7374c2478380c5763a041849c5113153139fb90e2b2865a1c72532aadd618d24449816","shortMessageHtmlLink":"Merge #668: Add justfile"}},{"before":"481784ef2b2f2c011105e88591ba1bae2497b472","after":"599bc698c4d885f6dc2c2ca89164ee17995f582f","ref":"refs/heads/master","pushedAt":"2024-03-28T16:07:51.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#669: Remove explicit link target\n\nd1175a53e4ccf53c8680bfd5b6401449daf15b63 Remove explicit link target (Tobin C. Harding)\n\nPull request description:\n\n When building the rustdocs clippy emits:\n\n warning: redundant explicit link target\n\n As suggested, remove the explicit link target. Do not fix column width because this rustdoc block is already a mess - just make the change while keeping the diff small.\n\nACKs for top commit:\n apoelstra:\n ACK d1175a53e4ccf53c8680bfd5b6401449daf15b63\n\nTree-SHA512: 2b09a7f44403af8c625793d93b313a4d6e7520bd6dd91f00fde07c2821e361f437f5e5766bf85a907d5f8cbfb6778effe0ace9bd823a67a731b4eb0dfbd09e7b","shortMessageHtmlLink":"Merge #669: Remove explicit link target"}},{"before":"fb3f36a94988b388fb1f467d79a0facadc71f542","after":"481784ef2b2f2c011105e88591ba1bae2497b472","ref":"refs/heads/master","pushedAt":"2024-03-28T15:40:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#666: Manually implement is_uncompressed for BitcoinKey\n\n52198dd62da7c4066f6f04fc38aa418480a5e5af Manually implement is_uncompressed for BitcoinKey (Tobin C. Harding)\n\nPull request description:\n\n The `interpreter::BitcoinKey` uses the default implementation of `MiniscriptKey`, which means `is_uncompressed` returns `false`. However if the full key is a `bitcoin::PublicKey` it may be compressed.\n\n Manually implement `MiniscriptKey::is_uncompressed` for `BitcoinKey` and return the compressedness of the inner full key.\n\n Originally done, and discussed, in #620.\n\nACKs for top commit:\n apoelstra:\n ACK 52198dd62da7c4066f6f04fc38aa418480a5e5af\n\nTree-SHA512: 59f514d24120cfc452e60c361f851280b0515e4b63eb5d2a94d84e39821e6c80f3af07eee5fc5f80bd7198d2e09c6e4465f6f6ef3e8f38dba87ef77a2e1a3b9a","shortMessageHtmlLink":"Merge #666: Manually implement is_uncompressed for BitcoinKey"}},{"before":"4aaedf533c79b08592fd3c7e57a5e43b5e04ed60","after":"fb3f36a94988b388fb1f467d79a0facadc71f542","ref":"refs/heads/master","pushedAt":"2024-03-26T13:07:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#664: Return Weight type for max_weight_to_satisfy methods\n\n7c5f3dc5b54373c12cad430d356f29bce33e9dc4 Return Weight type for max_weight_to_satisfy methods (yancy)\n\nPull request description:\n\n Return Weight type for max_weight_to_satisfy methods.\n\nACKs for top commit:\n apoelstra:\n ACK 7c5f3dc5b54373c12cad430d356f29bce33e9dc4\n\nTree-SHA512: 7e6f32dc1f55927b90ed739f54460546229f1958136bf67418fd738f30c51f674469cf69d2b24cf5e8ff99b152461b289682446f881f6ad6640deb057e3624d3","shortMessageHtmlLink":"Merge #664: Return Weight type for max_weight_to_satisfy methods"}},{"before":"57197149b1247f61260ce187068940c23593dd64","after":"4aaedf533c79b08592fd3c7e57a5e43b5e04ed60","ref":"refs/heads/master","pushedAt":"2024-03-23T14:40:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#661: Upgrade bech32 dependency\n\n6bd6301641851d3bf55ad35ee88c890d21836638 Upgrade bech32 dependency (Tobin C. Harding)\n\nPull request description:\n\n Upgrade to the newest release of the `bech32` crate.\n\nACKs for top commit:\n apoelstra:\n ACK 6bd6301641851d3bf55ad35ee88c890d21836638\n sanket1729:\n ACK 6bd6301641851d3bf55ad35ee88c890d21836638\n\nTree-SHA512: 82a3381aaae588d491915768b835ed9da0cb1e70ab7fecddb47949846fac76773a889e6b44de02e6fcdeac2e301b4d628b40bbc74727f74f211ecaefcc348938","shortMessageHtmlLink":"Merge #661: Upgrade bech32 dependency"}},{"before":"f6ffc3ee8a657f1af319742cbdbc62752fea7bf5","after":"57197149b1247f61260ce187068940c23593dd64","ref":"refs/heads/master","pushedAt":"2024-03-18T13:16:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#659: Derives `Hash` for pub items\n\nb3027a959523fca50e70d0f7903009f3a47e07b7 Derives `Hash` for pub items (harshit933)\n\nPull request description:\n\n This commit dervies `Hash` for enums and structs which also derives `Eq`.\n\n Fixes #226\n\nACKs for top commit:\n apoelstra:\n ACK b3027a959523fca50e70d0f7903009f3a47e07b7\n\nTree-SHA512: dee335382b48c5aeb3e10b0df8b1cf9c8ced3be09e98a1e59895f22e5882cd786b97fef069fe8de6069ab80a8cc7126afa82ff8053fbb96a3b95a9717a92b35b","shortMessageHtmlLink":"Merge #659: Derives Hash for pub items"}},{"before":"b68bf1354af83f2ebe473ef28b09f461f546a804","after":"f6ffc3ee8a657f1af319742cbdbc62752fea7bf5","ref":"refs/heads/master","pushedAt":"2024-03-12T23:23:02.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#657: compiler: improve logic when deciding between conjunctions and multi/multi_a\n\n200991dbed0411bcad36990b366feddc7580ae0b compiler: improve logic for deciding between thresholds and ands (Andrew Poelstra)\nbc3b8dc2ec549d3b8e98c54f3347bac4a18b87b8 policy: rename Threshold variant to Thresh (Andrew Poelstra)\n78db616daa4335f211493436d8aa27613cda4bf4 consolidate some FIXMEs (Andrew Poelstra)\n0666aef121424357b7f4e254f3ac950894ab8236 error: remove some unused variants (Andrew Poelstra)\nb2ec4a878d66ad660948c081c266c46a6b9ffc2a clippy: fix some nits introduced by #651 (Andrew Poelstra)\n\nPull request description:\n\n The compiler logic when encountering thresholds of pks is currently a bit confused, and therefore chooses multi/multi_a in cases where this is not the most efficient compilation.\n\n This PR fixes that, and also brings in a few other cleanup commits that I had laying around.\n\n This does **not** fix #656, which I didn't know how to approach.\n\nACKs for top commit:\n sanket1729:\n ACK 200991dbed0411bcad36990b366feddc7580ae0b\n\nTree-SHA512: 252a60891cf1c1d1cd3ded88d97122fd1e76bd25807770f4843ae68bd2d854fc617518f26be86dcb57cd7fc369e1a4be81daa42ee1a6d4bc976dbad6dc1150f6","shortMessageHtmlLink":"Merge #657: compiler: improve logic when deciding between conjunction…"}},{"before":"22dad5ef957e37aa6694a53c311272608604653c","after":"b68bf1354af83f2ebe473ef28b09f461f546a804","ref":"refs/heads/master","pushedAt":"2024-03-08T13:57:47.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#654: Several locktime improvements\n\n422b83cb198976ee0932686dc7dd4bdf396a9c8b interpreter: use `relative::LockTime` for constraints from Miniscript (Andrew Poelstra)\nfc42e48022052935f8d657c7e7755513e8d83223 miniscript: use RelLockTime in Terminal (Andrew Poelstra)\nc490f49fcb7eab6794b0c40c83d397f8cd02fe2d policy: use `RelLockTime` in semantic and concrete policies (Andrew Poelstra)\na7a1b9a4876e89cfedc2f03130108b107a3864cd miniscript: use RelLockTime in `Satisfaction` (Andrew Poelstra)\nfc6bfa8f57cd050d5ab7c887ca9e15928a7c6416 introduce RelLockTime type (Andrew Poelstra)\n637720a8280bfdaeb457cd0f7ec364f945f278b7 plan/satisfy: use relative::LockTime instead of Sequence to indicate relative locktimes (Andrew Poelstra)\nbd6ef65f8697501b3798cabe9ab0b6a5aa01b761 interpreter: rename \"age\" to \"sequence\" (Andrew Poelstra)\n950b79389502b045b603903989b8d58c2382cd74 AbsLockTime: move to module, consolidate error checking (Andrew Poelstra)\n60d7c98db16a3c41fb9fabdd53545e40b64826e9 types: drop unused \"strongness\" errors (Andrew Poelstra)\n2f667789a72894ac82a3e5a23d5f1b968230f09d types: replace closure with iterator (Andrew Poelstra)\n\nPull request description:\n\n This PR:\n * Changes user-facing \"check locktime\" functions to use `bitcoin::relative::LockTime` rather than `Sequence` numbers.\n * Introduces a new `RelLockTime` type analogous to `AbsLockTime` which is used to provide a locktime type that implements `Ord`.\n * In both types, validate that the locktimes are legal for use in Miniscript during creation, rather than during typechecking or validity checks.\n * In many places, replace manual code with the new `is_implied_by` method from rust-bitcoin.\n\n This might be a little hard to review because it messes with locktime code which is so easy to get backward. But it appears that there are pretty extensive unit tests which caught several iterations of this where I did get them backward. Going forward things should be much easier to maintain because we have stronger types and an encapsulated `is_implied_by` method.\n\n The next PR will do a similar thing with thresholds to validate the `0 < k <= n` invariant when thresholds are created, avoiding the repeated and inconsistent post-hoc error checking logic.\n\n Fixes #270\n\nACKs for top commit:\n sanket1729:\n ACK 422b83cb198976ee0932686dc7dd4bdf396a9c8b\n\nTree-SHA512: 42a749a405c142c7ec468b2fd2e8c3c559c31e6eacf72a351c4dd24887385fa74d8128982a70cef69489c4ef72d6247860e1cd96e52ec83a00bdee0e3359d9b8","shortMessageHtmlLink":"Merge #654: Several locktime improvements"}},{"before":"dcbef520580db76e5e6bd8fa5d17b5cf329d739a","after":"22dad5ef957e37aa6694a53c311272608604653c","ref":"refs/heads/master","pushedAt":"2024-03-07T14:25:57.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#651: add conditional formatting for Terminal\n\n395aab8131061f4c24b8d105132ad50e65275189 unify debug/display impl for Terminal (Riccardo Casatta)\n752acb378f3c7a6bc9b1f284f7060a1b43d841ab apply immediate dispatch in generic fn (Riccardo Casatta)\n426c34d4309e8c7f844958642e651ca68acdb0a8 add conditional formatting for Terminal (Riccardo Casatta)\n\nPull request description:\n\n fmt functions produce big binaries.\n\n
\n cargo bloat --release --example big --all-features -n 1000000 --full-fn | grep astelem | grep fmt\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h75ba3ce6da61d374\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h6786aa26184b9ff6\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h03f9c2155559a440\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h00e63af9b88389b4\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::hb60190c99fd48d17\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::ha9001c527b4cc4d6\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::ha726829fe4f3bf2b\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h95a7eadaa261d645\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h819e09dcb99bbc52\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h6ef89d30f9f4cb57\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h693edb5e35f9fc08\n 0.0% 0.1% 2.8KiB miniscript miniscript::miniscript::astelem::>::fmt::h27891ccf9609c782\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::he0a63893fe76f527\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h86eba44cb7298c4f\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h37a4628264df8c3b\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h2f3a9d297ec35dea\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h879ad74922a70f16\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h7dc2d9bc27c88fab\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h7578352fd420fc88\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h1809b9931776159e\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::hf7760e0f27d70db4\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h9adfe0d7e2bfdd42\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h61cdb06e2a061932\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h44e1ab5daacde0df\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h2646ddd57694241b\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::he31fd2e9b12960f9\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::hbefb77c4050bd5c9\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::hb4deb7ef951af7af\n 0.0% 0.1% 2.7KiB miniscript miniscript::miniscript::astelem::>::fmt::h80ee1108b955f2b4\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::hc779f37cb81f761a\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::hc4ac4a9b598fbdfb\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h5cca31d73f30c3c7\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h4588410e445d16c6\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::heb60f683c9e55e36\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::hbe7939a797fcce35\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::ha536af3ff4313ed1\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h8969ddab726dea7f\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h7fca0d80a428dd24\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h6b4909db760a4721\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h5ed643a399966d49\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h1ed7d512c859a5a9\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::hfd9775e798913648\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::hf87563509ea7253d\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::hb8b75c9c988d95c3\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h87b650968eb119ba\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h9986ae4314d85479\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h74343d637646e38a\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h680da8fa0ec0142c\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h6197658ba03f1fdf\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h961e1a4b75732a11\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h57b3cd148371177a\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h13d43f019a96d314\n 0.0% 0.1% 2.6KiB miniscript miniscript::miniscript::astelem::>::fmt::h008ca416c1ebc0d7\n 0.0% 0.1% 2.5KiB miniscript miniscript::miniscript::astelem::>::fmt::h82a27926db80dc37\n 0.0% 0.1% 2.5KiB miniscript miniscript::miniscript::astelem::>::fmt::hc12b3098c3979175\n 0.0% 0.1% 2.5KiB miniscript miniscript::miniscript::astelem::>::fmt::h76e624d7abc545ba\n 0.0% 0.1% 2.5KiB miniscript miniscript::miniscript::astelem::>::fmt::h24511846d004e114\n 0.0% 0.1% 2.5KiB miniscript miniscript::miniscript::astelem::>::fmt::h0d96e9d943f04d7d\n\n
\n\n Since Debug and Display implementations are ~equal except the Debug or Display representation of its child, this introduce conditional fmt trading performance for code size. Since performance shouldn't be that important in string conversion seems an interesting trade-off.\n\n This is a PoC since the final impl of `conditional_fmt` is a little tedious, would like a concept ack before proceding\n\nACKs for top commit:\n apoelstra:\n ACK 395aab8131061f4c24b8d105132ad50e65275189\n\nTree-SHA512: 71fbdc55b11d5f5452c810da3934f087ed7d8a26156bfc6e174d29cbf1590dc85e32142dd12c477a2fbe86393429aa55a5b4d7dedbd96f216d083e1614fc1dac","shortMessageHtmlLink":"Merge #651: add conditional formatting for Terminal"}},{"before":"95b93376ba0948d40fe9fd900d99eaa0410f40ee","after":"dcbef520580db76e5e6bd8fa5d17b5cf329d739a","ref":"refs/heads/master","pushedAt":"2024-03-06T13:45:22.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#652: Drop the `Property` trait entirely\n\ne971e77d64527d8f70bad690500ea12a51cfdf08 types: remove error path from sub-fragment parameter to threshold() (Andrew Poelstra)\nd4dc2267e40f2a2253fa0bf4ef2b67b223533d3a types: make a ton of constructors const (Andrew Poelstra)\nfdea7f642e77be14cbaaf8c275f4e8bca316460f types: drop `Property` trait entirely (Andrew Poelstra)\nb25023db3a54b4034339bdbea315263ba867326d compiler: remove a bunch of unused error paths (Andrew Poelstra)\neb854aacc5eeab55477b8fa9e7f659ea176c6a81 compiler: stop using Property trait in CompilerExtData (Andrew Poelstra)\n602fd29ba4d7e701a97888a0f41e7fffe7e54d01 types: remove all Result returns for ExtData (Andrew Poelstra)\nb6c3ca859b56a9cbe0ccdee1d42d5cb2bbdd3b92 types: don't implement Property for ExtData. (Andrew Poelstra)\n87294ff7d350c4e9d64956a4d85b93b78d4e2ebb types: don't implement Property for Malleability (Andrew Poelstra)\ndd0978d547e45e0c61702c8c91de97df6f79494a types: don't implement Property for Correctness (Andrew Poelstra)\n962038034c607c3690acc450f5dcdea39bcca94e clippy: fix a couple nits (Andrew Poelstra)\n3c1c896ace7134015ede5ab8ba580c38e6dc14f6 blanket_traits: remove crate:: in a bunch of places (Andrew Poelstra)\n9280609aa3500f43798f34b4f3995f335e67c21e blanket_traits: add some more bounds (Andrew Poelstra)\n\nPull request description:\n\n Something of a followup to #649, which specifically removes the `type_check` method from `Property`.\n\n Basically, this whole trait is confused. Originally it was supposed to express \"a recursively defined property of a Miniscript\" which could be defined by a couple constructors and then automatically computed for any Miniscript. In fact, the trait required a separate constructor for every single Miniscript fragment so nothing was \"automatic\" except sometimes reusing code between the different hash fragments and between `older`/`after`.\n\n Furthermore, every implementor of this trait had slightly different requirements, meaning that there were `unreachable!()`s throughout the code, functions that were never called (e.g. `Type::from_sha256` passing through to `Correctness::from_sha256` and `Malleability::from_sha256` when all three of those types implemented the function by calling `from_hash`, which *also* was defined by `Type::from_hash` calling `Correctness::from_hash` and `Malleability::from_hash`. So much boilerplate) and many instances of methods being implemented but ignoring arguments, or (worse) being generic over `Pk`/`Ctx` and ignoring those types entirely, or returning `Result` but always returing the `Ok` variant.\n\n So basically, there was no value in being generic over the trait and the trait wasn't even a generalization of any of the types that implemented it.\n\n **Adding to this** having the trait prevents us from having constfns in our type checking code, which sucks because we have a lot of common fixed fragments. It also prevents us from returning different error types from different parts of the typechecker, which is my specific goal in removing the trait.\n\n This PR has a lot of commits but most of them are mechanical and/or small.\n\nACKs for top commit:\n sanket1729:\n ACK e971e77d64527d8f70bad690500ea12a51cfdf08. Looks a lot cleaner. Thanks for these changes. It's nice that we no longer have the artificial error paths because the parent trait had the definition to encompass all possible implementations.\n\nTree-SHA512: 38c254caf938e5c3f84c1f0007e0bfc93180e678aef3968cb8f16ad1544722a0f7cfda2c014056446f0091b198edb12c91c0424df64f68c31f5d316fac28425c","shortMessageHtmlLink":"Merge #652: Drop the Property trait entirely"}},{"before":"4c4597eaa7cdd7b8801cef64f799339122174778","after":"95b93376ba0948d40fe9fd900d99eaa0410f40ee","ref":"refs/heads/master","pushedAt":"2024-03-05T14:18:25.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#650: Replace macros with traits; other cleanups\n\n164bde9a9b1ec04c4c545e4f24a7fdbae2281b17 miniscript: add parsing benchmarks (Andrew Poelstra)\nbbafc39ee8d9ffb48f29c199e69155111c8b1195 expression: add parsing benchmark (Andrew Poelstra)\n30d2d11c2414f03fb551734491e2125dea67bff0 miniscript: factor out a couple parts of Terminal::from_tree (Andrew Poelstra)\nf22dc3aa000438bdb2c38f4b7acf70d0903f5960 miniscript: use new TRUE/FALSE constants throughout the codebase (Andrew Poelstra)\nbe41d8be5a2b16b59147cdaf8360b644c8c34690 miniscript: add constants for 1 and 0 (Andrew Poelstra)\n270e65d0de1abc33ef0e79be8399982368d47b21 Replace macros with blanket impls (Andrew Poelstra)\n5ec0f447d3d6b75e5d61df241ecc9bc3c2edbc01 add `blanket_traits` module to replace very noisy trait definitions (Andrew Poelstra)\n\nPull request description:\n\n There are several macros we use to implement functions when our `Pk` types satisfy a large bundle of trait conditions. There is a trick https://github.com/rust-lang/rust/issues/20671#issuecomment-1905186183 that we can use instead.\n\n While I'm at it, do several other small cleanups.\n\n As a weekend project I rewrote the expression module and was able to get a 10-15% speedup on parsing miniscripts, while eliminating recursion and simplifying the algorithms. I am still working on cleaning up the code and improving the error handling. This is the first set of commits from that branch, which should be simple and uncontroversial.\n\nACKs for top commit:\n apoelstra:\n > ACK [164bde9](https://github.com/rust-bitcoin/rust-miniscript/commit/164bde9a9b1ec04c4c545e4f24a7fdbae2281b17). Are you taking a performance refactor stab at rust-miniscript?\n sanket1729:\n ACK 164bde9a9b1ec04c4c545e4f24a7fdbae2281b17. Are you taking a performance refactor stab at rust-miniscript?\n\nTree-SHA512: 42e11f5f45fa705e14334e79126a66c97577fc6e807f804beaa1532bf3693a6c41a8b714bc4d1436209a1e0d808dc6a3ccc7198f20ff467f40f12126d1ee02f3","shortMessageHtmlLink":"Merge #650: Replace macros with traits; other cleanups"}},{"before":"551932edc1c5659d507784a099b9ae5751bfc06a","after":"4c4597eaa7cdd7b8801cef64f799339122174778","ref":"refs/heads/master","pushedAt":"2024-03-04T22:43:38.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#649: Refactor out type_check\n\n5f41cb64b5927dcd06b0c1ecda23ed27518b16d9 change FnMut -> Fn (Riccardo Casatta)\ncdcd53e36dc444d95291409b733604cde12faf9b Refactor out type_check (Riccardo Casatta)\n\nPull request description:\n\n This apply the same logic of https://github.com/ElementsProject/elements-miniscript/pull/74\n removing a couple of unreachable, simplify things and very likely reduce binary bloat.\n\n ~~However, in doing so, I don't think this MR is equivalent to master for the logic used for `get_child`.~~\n\n ~~I suspect current master is broken and this fix it (or viceversa?), but I have to suspend this work for now.~~\n\nACKs for top commit:\n apoelstra:\n ACK 5f41cb64b5927dcd06b0c1ecda23ed27518b16d9 this is great, thanks!\n\nTree-SHA512: 4b904fde55ba75895d377babde5e7a3a215cdf3b0ccff0c90572bb286de9d8a80234fc6a4921ad83bcb8c947affa1e3c23b2135534cb4363f38f1bab89368ba4","shortMessageHtmlLink":"Merge #649: Refactor out type_check"}},{"before":"02504cbf0678edda4264081886bcfa874749133a","after":"551932edc1c5659d507784a099b9ae5751bfc06a","ref":"refs/heads/master","pushedAt":"2024-03-04T21:12:42.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#646: Introduce an example binary useful for profiling\n\nc8d3b9ac1f9ec913eb30768439f0f5f4db9a02be fix formatting in big example (Riccardo Casatta)\nbc47538c2b0e126fbea20de9c27f4a6aea61d711 add taproot calls in big executable (Riccardo Casatta)\n545bbbebe97bbad0080ad58b6ab2d6403ac0211b add satisfy call in big executable (Riccardo Casatta)\n959546b5ec6c12a40f6838f48e6ca67690638e21 add psbt finalize call in big executable (Riccardo Casatta)\n883132ed7a1d26fd0650dda7732d8dd1e250baad add policy calls in big executable (Riccardo Casatta)\nec751fb06b7af82f20936208c377c61960f53648 Introduce an example binary useful for profiling (Riccardo Casatta)\n\nPull request description:\n\n Tools like `cargo bloat` don't work on libraries but on final executable.\n\n As seen in https://github.com/rust-bitcoin/rust-miniscript/issues/585 and https://github.com/rust-bitcoin/rust-miniscript/pull/584 the parse example is used as a base to profile binary bloat.\n\n However, since the parse example is not using all the API surface, we may have good optimization that are not recognized as such because the optimized function are not in the tree of the functions used.\n\n For benchmarking size optimization a specific binary that ideally touch all the API surface is needed and this MR introduce it.\n\n More coverage will be added if this seem a good idea for reviewers.\n\nACKs for top commit:\n apoelstra:\n ACK c8d3b9ac1f9ec913eb30768439f0f5f4db9a02be thanks!\n\nTree-SHA512: 70ac51a222b59b5de76a2ef314be2f3d82b3f5831d90dd7110929a4956a27a6d1eaa4889525dbf54575fb7e07db60f19d67556f2539b61979b4ba681fec0523e","shortMessageHtmlLink":"Merge #646: Introduce an example binary useful for profiling"}},{"before":"fe8f040b95445bc1d197d7686fa7d3587c8c9f2a","after":"02504cbf0678edda4264081886bcfa874749133a","ref":"refs/heads/master","pushedAt":"2024-03-04T14:22:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#642: Remove generics from Error by making fragment a String\n\n0afd8324dfb1fb0850efc6edfc3a554c4dcddd45 Remove generics from Error by making fragment a String (Riccardo Casatta)\n\nPull request description:\n\n This cause a reduction of IR lines emitted by the compiler of about 2% (using cargo llvm-lines), so this should improve compile times.\n\n I've seen using the parse example to check the produced binary size, but it's a small snippet I am not sure it calls a representative portion of the API surface.\n\n From a library perspective this is equivalent since the field is used only to be converted to string.\n\n In theory externally someone could use the field in the error to do things so it comes at a cost.\n\nACKs for top commit:\n apoelstra:\n ACK 0afd8324dfb1fb0850efc6edfc3a554c4dcddd45\n\nTree-SHA512: f6980ee43f93278f0c7dcf5000e67d1e201549a77996bc66c144ea978d3820debbb82a082ad9e2b9a57d91e62a879268e8c914b4e922bd1619e0f0763916b1ea","shortMessageHtmlLink":"Merge #642: Remove generics from Error by making fragment a String"}},{"before":"d3f638ded302b1ba036cee4bcd5bd450d0ba7378","after":"fe8f040b95445bc1d197d7686fa7d3587c8c9f2a","ref":"refs/heads/master","pushedAt":"2024-03-01T16:20:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#648: allow deprecated method calls in deprecated methods\n\nb96a1b53f834174edb8ec0fefcc7389cae78edd8 allow deprecated method calls in deprecated methods (Riccardo Casatta)\n\nPull request description:\n\n instead of https://github.com/rust-bitcoin/rust-miniscript/pull/647\n\nACKs for top commit:\n apoelstra:\n ACK b96a1b53f834174edb8ec0fefcc7389cae78edd8\n\nTree-SHA512: 9afe29493db61e1a1251adcec286ed23fc989f6379e28476f8e38624027b14bc29922385f2b8baa1f2fec93afe534c8e68d429f8619c01be751b3f44c65b33b7","shortMessageHtmlLink":"Merge #648: allow deprecated method calls in deprecated methods"}},{"before":"ef3abb6fc81419b8b225d312da02e7318719bd41","after":"d3f638ded302b1ba036cee4bcd5bd450d0ba7378","ref":"refs/heads/master","pushedAt":"2024-02-28T22:54:23.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#645: remove sketchy `LikelyFalse` error\n\n50db03c9620f052740c370362b3498a7ad483a8c cargo fmt (Andrew Poelstra)\n220f101f4cb4631f0a6c1d8226081a3acaee0ebf ci: screw up imports for https://github.com/rust-lang/rust/issues/121684 (Andrew Poelstra)\ndf069afe553c701215a800ce6cd234883e60e6bb ci: remove unnecessary imports of `bitcoin` (Andrew Poelstra)\n3725549e92fdaee24a23e1c96ada1e4c3a33e60c ci: tighten import of `Vec` (Andrew Poelstra)\nd441ccd4671c5e3638882d780dabfecb3ae23b78 ci: remove imports that are redundant with super::* (Andrew Poelstra)\nb87b4fba8ffb2712e0b5a67cddf77d5dfc690a6b remove sketchy `LikelyFalse` error (Andrew Poelstra)\n\nPull request description:\n\n This error would trigger on `l:0` on the basis that this is equivalent to `u:0` but always less efficient. There are no other \"linting\" errors like this in this library, and the C++ implementation doesn't have it, so we should drop it.\n\n Fixes #633\n\nACKs for top commit:\n tcharding:\n ACK 50db03c9620f052740c370362b3498a7ad483a8c\n sanket1729:\n ACK 50db03c9620f052740c370362b3498a7ad483a8c\n\nTree-SHA512: 30681e6abe7957b9fbe059e808d8057fd174ea156d1853960370d2fd63b032a500f85965a5c7424764df76ed804c62d9a781ae38cdc2b123e9b4b53308dd89f5","shortMessageHtmlLink":"Merge #645: remove sketchy LikelyFalse error"}},{"before":"666918fdce5b0c425e9a63472f53257dd0d12559","after":"ef3abb6fc81419b8b225d312da02e7318719bd41","ref":"refs/heads/master","pushedAt":"2024-02-27T00:07:56.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#644: remove unused generic on check_witness\n\nd958d216199c8aa49245a1f2937a98d05b1c2d4b remove unused generic on check_witness (Riccardo Casatta)\n\nPull request description:\n\nACKs for top commit:\n apoelstra:\n ACK d958d216199c8aa49245a1f2937a98d05b1c2d4b\n\nTree-SHA512: ec9c828e75949cceef165bfb195ea105c41bad9058aa24b787f6a034ac2e53215f4a62f4405361be9fd4aa4b5bdd77f6521e38887c7c13debaae94c853f1c909","shortMessageHtmlLink":"Merge #644: remove unused generic on check_witness"}},{"before":"18b1b309b0cabb33f81aa871bbac405f8cb13dfe","after":"666918fdce5b0c425e9a63472f53257dd0d12559","ref":"refs/heads/master","pushedAt":"2024-02-26T18:41:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#643: call reduce0 from reduce1 and 2\n\n5c4851615a43373bb8b6bd15e1d144f26b9300d0 call reduce0 from reduce1 and 2 (Riccardo Casatta)\n\nPull request description:\n\n reduce code duplication by calling the function that provide the same check and side effects\n\nACKs for top commit:\n apoelstra:\n ACK 5c4851615a43373bb8b6bd15e1d144f26b9300d0 neat!\n\nTree-SHA512: 7e37af561737e48dbe0d86d3bb86adc28d3a098155d6eb35f7686f7ff97597449de0b6356a9bae4dda943fb19f3cd9ff4f1b1bbca25cafc15f2b0eecb4dd27b3","shortMessageHtmlLink":"Merge #643: call reduce0 from reduce1 and 2"}},{"before":"3426ca52c5c458c6e34b83d13a6b23ba9dcc9098","after":"18b1b309b0cabb33f81aa871bbac405f8cb13dfe","ref":"refs/heads/master","pushedAt":"2024-02-17T21:58:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#640: Clippy lints MSRV 1.56.1\n\ne2636f390a41e43292b47a2eb7aeea1e3aa34a50 Clippy lints MSRV 1.56.1 (Jose Storopoli)\n\nPull request description:\n\n Nothing out of the ordinary.\n The most alarming was the non-inclusive range in\n `test_utils.rs`.\n\n In some test functions I allowed myself to use\n `#[allow(clippy::type_complexity)]` because clippy was asking to create a type instead of using the big tuple. Since these were used just once, I thought it was overkill.\n\n Note, depends on:\n\n - #639 (we can also merge this into it instead of `master`)\n - #638 (has some allows on dead_code)\n\nACKs for top commit:\n apoelstra:\n ACK e2636f390a41e43292b47a2eb7aeea1e3aa34a50\n\nTree-SHA512: d1f38d1e2a1415da816898806377c90986072fe0bc9a9dbc3e5476026c05c53743453cbd0a237a70aa27762f1be86e44c19422575b7e62f686140accc412177c","shortMessageHtmlLink":"Merge #640: Clippy lints MSRV 1.56.1"}},{"before":"f1211c717b4034af39c8d18e86ff516dd79087ce","after":"3426ca52c5c458c6e34b83d13a6b23ba9dcc9098","ref":"refs/heads/master","pushedAt":"2024-02-17T15:46:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#638: Deprecate across the board `max_satisfaction_weight`\n\n7fc76619abc33993e919e9e2c99d95f51f376cc9 Deprecate across the board max_satisfaction_weight (Jose Storopoli)\n\nPull request description:\n\n Adds a `since=10.0.0` to all `max_satisfaction_weight` deprecations. Adds a note telling users to check #476 for more details.\n\n Closes #637.\n\nACKs for top commit:\n apoelstra:\n ACK 7fc76619abc33993e919e9e2c99d95f51f376cc9\n tcharding:\n ACK 7fc76619abc33993e919e9e2c99d95f51f376cc9\n\nTree-SHA512: 90a75bd44d5b0bec5044fc58186323f6c992e43958a912d9d36a1bda411ef6156076ac2125ee6dc8806a742b0aef046ae1f540911301972c8c2f95bb02ec8980","shortMessageHtmlLink":"Merge #638: Deprecate across the board max_satisfaction_weight"}},{"before":"469c113b7258742ba58bf23f9ed3cf8aed514ca8","after":"f1211c717b4034af39c8d18e86ff516dd79087ce","ref":"refs/heads/master","pushedAt":"2024-02-17T15:23:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"apoelstra","name":"Andrew Poelstra","path":"/apoelstra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1351933?s=80&v=4"},"commit":{"message":"Merge rust-bitcoin/rust-miniscript#639: Update MSRV to 1.56.1\n\nc301ce3688e66a1f0f041154c4f2455c9dfa10e4 Update MSRV to 1.56.1 (Jose Storopoli)\n\nPull request description:\n\n Following `rust-bitcoin` MSRV of 1.56.1, this pins MSRV to 1.56.1.\n\n Quoting a recent merge in `rust-bitcoin`\n\n > Rust version 1.56.0 introduced edition 2021. Shortly afterwards, on\n > October 21 2021 Rust version 1.56.1 was released.\n >\n > Debian stable is currently shipping `rustc 1.63.0`.\n >\n > Our stated MSRV policy is: In Debian stable and at least 2 years old.\n >\n > Therefore our MSRV policy is met by Rust version 1.56.1 and we can strat\n > to bump our MSRV org wide.\n >\n > Links:\n > - https://blog.rust-lang.org/2021/11/01/Rust-1.56.1.html\n > - https://blog.rust-lang.org/2021/10/21/Rust-1.56.0.html\n > - https://packages.debian.org/stable/rust/rustc\n\n Removing the pins in `contrib/test.sh` since they are not necessary\n in 1.56.1.\n\n EDIT: CI fails because of the `#[allow(dead_code)]` implemented in #638 on some Psbt traits.\n Do I port these to here? Conceptually they belong to #638 and not here.\n\nACKs for top commit:\n apoelstra:\n ACK c301ce3688e66a1f0f041154c4f2455c9dfa10e4\n\nTree-SHA512: 9dad92068d03a648e0d16e1bf0cba34a1959be981fbcec28bc3e6265b2c82df1380777b047e68c69ed80c579638a7e67738d3cec28293e7259abae3f348c3752","shortMessageHtmlLink":"Merge #639: Update MSRV to 1.56.1"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAESYZavgA","startCursor":null,"endCursor":null}},"title":"Activity · rust-bitcoin/rust-miniscript"}